HTML,CSS,PHP,ワードプレスカスタマイズ 技術情報資料

Welcart の購入数量をリスト選択にする

スポンサーリンク

Welcart の購入数量を固定にしたいと気がある。 要するに1個、5個、10個の単位でしか購入できない場合だ。 購入数量のフィールドを作り出すのは、funstions/template_func.php の中の usces_the_itemQuant でやっている。 ここをカスタマイズしなけばいけないのだけど・・・ すべてがすべてそうではない。 だからここを直接直すわけにはいかない。 商品マスターにカスタムフィールドを設けるしかないかな? カスタムフィールドを見て、数量入力なのか、リスト選択なのか・・・

Welcart 購入数量の方式を切り替える方法

WelCart のバージョンアップのたび書き換えるのはカッコ悪い。 現在のところ usces_the_itemQuant は、フックは持っていない。 バージョンアップの時に書き換えようってことで、フックを追加する。 具体的には、こんな感じ
function usces_the_itemQuant( $out = '' ) {
	global $usces, $post;
	$post_id = $post->ID;
	$sku = esc_attr(urlencode($usces->itemsku['code']));
	$value = isset( $_SESSION['usces_singleitem']['quant'][$post_id][$sku] ) ? $_SESSION['usces_singleitem']['quant'][$post_id][$sku] : 1;
	$quant = "<input name=\"quant[{$post_id}][" . $sku . "]\" type=\"text\" id=\"quant[{$post_id}][" . $sku . "]\" class=\"skuquantity\" value=\"" . $value . "\" onKeyDown=\"if (event.keyCode == 13) {return false;}\" />";
	$html = apply_filters('usces_filter_the_itemQuant', $quant, $post);

	$html = apply_filters( 'usces_the_itemQuant_para_to_customer', $html); ←フックの追加

	if( $out == 'return' ){
		return $html;
	}else{
		echo $html;
	}
}
呼び出し側
/*           フック名                              マイ関数          優先順位 受け取り引数 */
add_filter("usces_the_itemQuant_para_to_customer","welcartitemQuant",10      , 1 );
function welcartitemQuant($html) {
 :
}
これで好きなことができる。

WelCart の購入数量入力の切り替えは、カスタムフィールドで個数選択させようか。

※このソースは試作サンプルのなので実際に動かしていません。 以下をプラグインに足して、その内容をみて select にするか input にするか決めるといい。

Welcart 商品マスターに個数をエントリー

/********************************************************/
/* function body エントリーの表示 (投稿画面) */
/********************************************************/
function welcart_entry() {
	global $post;
	$welcart_entry_value = get_post_meta($post->ID, $meta_box['itemQuant'], true);
	echo'<input type="hidden" name="itemQuant_noncename" id="itemQuant_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />';
	echo'<textarea name="itemQuant" cols="54" rows="5"/>'.$welcart_entry_value.'</textarea>';
	echo'<br />';
}
/********************************************************/
/* 設定 */
/********************************************************/
function create_welcart_entry() {
	global $theme_name;
	if ( function_exists('add_meta_box') ){
		/* 商品マスターは、ページなので ページ内にメタボックスを設定する */
		add_meta_box(
		'work-welcart-entry_meta-boxes', 	// メタボックスID
		'Welcart 数量エントリー', 		// メタボックスタイトル
		'welcart_entry',			// メタボックス内容表示 callback
		'page',		// メタボックスの表示先 (post, page, link, dashboard,)
		'normal',	// 編集画面での表示場所 (normal, advanced, side) 
		'high' );	// メタボックス表示優先度 (high, core, default, low)
	}
}
/********************************************************/
/* 入力内容を保存										*/
/********************************************************/
function entry_welcart_meta_save_postdata( $post_id ) {
	global $post, $entry_meta_boxes;
	foreach($entry_meta_boxes as $meta_box) {
	// Verify
		if ( !wp_verify_nonce( $_POST['itemQuant_noncename'], plugin_basename(__FILE__) )) {
			return $post_id;
		}

		if ( 'page' == $_POST['post_type'] ) {
			if ( !current_user_can( 'edit_page', $post_id ))
				return $post_id;
		} else {
			if ( !current_user_can( 'edit_post', $post_id ))
				return $post_id;
		}

		$data = $_POST[$meta_box['itemQuant']];

		if(get_post_meta($post_id, $meta_box['itemQuant']) == "")
			add_post_meta($post_id, $meta_box['itemQuant'], $data, true);
		elseif($data != get_post_meta($post_id, $meta_box['itemQuant'], true))
			update_post_meta($post_id, $meta_box['itemQuant'], $data);
		elseif($data == "")
			delete_post_meta($post_id, $meta_box['itemQuant'], get_post_meta($post_id, $meta_box['itemQuant'], true));
	}
}
/********************************************************/
/* WP 設定メニュー表示/投稿ページでの設定表示			*/
/********************************************************/
add_action('admin_menu', 'create_welcart_entry');
add_action('save_post', 'entry_welcart_meta_save_postdata');

スポンサーリンク

スポンサーリンク

よく使うタグ

・float クリア
<br clear="all"><div style="clear:both;" class="clearfix"></div>
・角丸め
round-radius
border-radius:5px; -webkit-border-radius:10px; -moz-border-radius:10px;
・div box
overflow:scroll;min-width:300px;max-width:300px;min-height:300px;max-height:300px;
・TEXTAREAリサイズ
resize: vertical;
・サイトURL
home_url() // http://…
if(site_url()==home_url){
$shorturl_yuzu_path = substr(ABSPATH,0,strpos( ABSPATH, substr(site_url(),strlen(home_url()) ) ) ).’/’;
}else{
$shorturl_yuzu_path = ABSPATH.’/’;
}
// /var/…
・WP HOME URL
site_url() // http://…/wp
ABSPATH // /var/…/wp
・プラグイン(自分のDIR追加必要)
plugins_url() // http://…/plugins
WP_PLUGIN_URL // http://…/plugins
WP_PLUGIN_DIR // /var/…/plugins
・使用中のテーマ
get_template_directory_uri() // http://…/theme/xx
get_template_directory() // /var/…/theme/xx
・wp-content
content_url() // http://…/wp-content
WP_CONTENT_DIR // /var/…/wp-content
・画像URLからDIR変換
$pctdir=str_replace(content_url(), WP_CONTENT_DIR,$pcturl);
・パス名分解
$pathData = pathinfo($file);
echo $pathData["dirname"]; // /var/~
echo $pathData["filename"]; // xxx
echo $pathData["extension"]; // txt
echo $pathData["basename"]; // xxx.txt
・画像サイズ
list($width,$height) = getimagesize($url);
if(has_post_thumbnail()){
$thumbnail_id = get_post_thumbnail_id();
$thumbnail_img = wp_get_attachment_image_src( $thumbnail_id , ‘full’ );
$src = $image[0]; //url
$width = $image[1]; //横幅
$height = $image[2]; //高さ
・画像サイズ比率
list($src_w,$src_h) = getimagesize($file);
$dst_w = 600;$dst_h = 0;
$dst_h = ($dst_w!=0)?(intval(($src_h*$dst_w)/$src_w )):(($dst_h!=0)?(intval(($src_w*$dst_h)/$src_h)):0);
・疑似要素順
link visited hover active


特殊文字
シングルクォート : &#39;
ダブルクォート : &quot;
WP設定内表示前処理(htmlタグ許可項目)
$str = str_replace(‘<','&lt;' ,$str);
$str = str_replace(‘>’,’&gt;’ ,$str);
$str = str_replace(‘\”‘,’&quot;’,$str);
$str = str_replace(“\'”,’&#39;’ ,$str);
WO設定項目表示前処理(htmlタグ許可項目)
$str = str_replace(‘\”‘,'”‘,$str);
$str = str_replace(“\'”,”‘”,$str);
・テーマ
get_theme_root_uri()
get_theme_root()
・WP 情報
get_bloginfo( $show )
・Wp config FTP 情報 設置
define( ‘FTP_HOST’, ‘host’ );
define( ‘FTP_USER’, ‘id’ );
define( ‘FTP_PASS’, ‘pw’ );
define( ‘FTP_SSL’, false );
弾に使う
placeholder:ユーザー入力補助

カテゴリー

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ)

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルアナリティクスとサーチコンソール。別にグーグルのアナリティクス、サーチコンソールでなくてもアクセス解析はできるんだけど、グーグルはユーザー囲

FB 広告 最適化~グーグルアナリティクスの使い方(必要な分だけ)

FB 広告 最適化~グーグルアナリティクスの使い方(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルアナリティクス。別にグーグルのアナリティクスでなくてもアクセス解析はできるんだけど、グーグルはユーザー囲い込みの為他のアクセス解析では見せな

FB 広告 最適化~グーグルサーチコンソールの使い方(必要な分だけ)

FB 広告 最適化~グーグルサーチコンソールの使い方(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルサーチコンソール。別にグーグルのサーチコンソールでなくてもいいんだけど、グーグルはユーザー囲い込みの為他のアクセス解析では見せなくしたキーワ

FB 広告 最適化~グーグルのアクセス解析の基本

FB 広告 最適化~グーグルのアクセス解析の基本 FB広告を最適化するためには、アクセス解析が重要なカギを握ります。FB広告から当該ページに飛んでくるときURLにオプションを付けることができます。このURLにつけたオプションを使ってどの広告から、どん

jQuery ボタンを押しても反応しない

jQuery ボタンを押しても反応しない jQuery の click イベントを使ってボタンを押したら alert を表示する簡単な仕様なのになにも反応しない。一瞬はまってしまうことって・・・ありますよね?例えば、こう書きます。popup.

WP パーマリンク リダイレクト インターナルサーバーエラー

WP パーマリンク リダイレクト インターナルサーバーエラー WP パーマリンクのリダイレクトがインターナルサーバーエラーを起こすようになった。ユーザーさんのサイトなので「なにをしたか」わからない。WP パーマリンク リダイレクト インターナルサーバーエラーのい