HOME  /Welcart
 /welcart foreachループの中で利用できる業務パック割引を作成する
2020年11月04日

welcart foreachループの中で利用できる業務パック割引を作成する


この関数は下記URLの中で使っている関数です。

 商品個別ページで表示するSKUを1つだけにする方法

while(usces_have_skus())ループの中で利用できる関数は下記を利用して下さい。

 業務パック割引(itemGpExp)メッセージの不具合を改善する

 

またカートページの中の業務パック割引マークやメッセージを変更する場合は下記を参照してください。

 カートの中の業務パックマークの変更

ここでは、foreachループの中で利用できる業務パック割引ルーチンを作成します。

1.開発方針

1.関数名と引数

関数名:my_itemGpExp_foreach($sku,$msg)

引数 デフォルト値 備考
$sku なし(指定必須) SKUデータ
$msg ‘数量割引’ 表示するメッセージ

 

2.表示サンプル

上記はメッセージをデフォルトでCALLした場合です。

 

2.プログラム詳細

1.プログラム

func¥welcart¥itemフォルダの下に「my_itemGpExp_foreach.php」ファイルを作成し、下記を追加します。

<?php 
/*****************************************************************************
foreachループの中で業務パック内容を表示するプログラム
引数
$sku:SKUデータ(必須)
$title:表示するタイトル デフォルトは数量割引
*******************************************************************************/
function my_itemGpExp_foreach( $sku,$title='数量割引' ) {
	global $post, $usces;
	if($sku['gp'] == 0){return;}		/* 業務パック非適用の場合は終了 */

	$sku 	= $sku['code'];
	$post_id = $post->ID;
	$GpN1 = $usces->getItemGpNum1($post_id);		/* 指定個数 */
	$GpN2 = $usces->getItemGpNum2($post_id);
	$GpN3 = $usces->getItemGpNum3($post_id);
	$GpD1 = $usces->getItemGpDis1($post_id);			/* 値引き率 */
	$GpD2 = $usces->getItemGpDis2($post_id);
	$GpD3 = $usces->getItemGpDis3($post_id);
	$unit = $usces->getItemSkuUnit($post_id, $sku);	/* 単位 */
	$price = $usces->getItemPrice($post_id, $sku);   	/* 価格 */
	if($GpN1 == 0 || $GpD1 == 0){return;}					/* プライスダウン設定が無い場合は終了 */	

	if($unit == ''){$unit = '個';}									/* 単位が未設定の時は個を利用 */

	/* 値引き1のメッセージ作成 */
	$price1 =number_format(round($price * (100 - $GpD1) / 100));	
	$max1 = $GpN2 - 1;
	if($GpN2 == 0){
		$msg1 = $GpN1.$unit.'以上で '.$GpD1.' %引き:'.$price1.'円/'.$unit;}
	elseif($GpN1 != $max1){
		$msg1 = $GpN1.'~'.$max1.$unit.'で '.$GpD1.' %引き:'.$price1.'円/'.$unit;}
	else{
		$msg1 = $GpN1.$unit.'で '.$GpD1.' %引き:'.$price1.'円/'.$unit;}
	/* 値引き2のメッセージ作成 */
	$price2 =number_format(round($price * (100 - $GpD2) / 100));
	$max2 = $GpN3 - 1;
	if($GpN3 == 0 || $GpD3 == 0){
		$msg2 = $GpN2.$unit.'以上で '.$GpD2.' %引き:'.$price2.'円/'.$unit;}
	elseif($GpN2 != $max2){
		$msg2 = $GpN2.'~'.$max2.$unit.'で '.$GpD2.' %引き:'.$price2.'円/'.$unit;}
	else{
		$msg2 = $GpN2.$unit.'で '.$GpD2.' %引き:'.$price2.'円/'.$unit;}

	/* 値引き3のメッセージ作成 */
	$price3 =number_format(round($price * (100 - $GpD3) / 100));
	$msg3 = $GpN3.$unit.'以上で '.$GpD3.' %引き:'.$price3.'円/'.$unit;
?>
<div class='gp_box'>
	<div class='gp_title'><?php echo $title;?></div>
	<div class='gp_msg'>
		<div class='msg'><?php echo $msg1;?></div>
		<?php if($GpN2 != 0 & $GpD2 != 0):?>
			<div class='msg'><?php echo $msg2;?></div>
		<?php endif;?>
		<?php if($GpN3 != 0 & $GpD3 != 0):?>
			<div class='msg'><?php echo $msg3;?></div>
		<?php endif;?>
	</div>
</div>
<style>
	.gp_box{
		display:flex;
		align-items:center;
		border:1px solid #999;
		width:90%;
		margin:0;padding:0;}
	.gp_title{
		padding:2px 10px;
		font-weight:bold;}
	.gp_msg{
		padding:2px 10px;
		text-align:right;
		border-left:1px solid #999;}
</style>
<?php
}
?>

 

2.プログラムのロード

functions.phpに下記を記述します。

/* 個別商品関連関数の追加 */
	get_template_part('func/welcart/item/my_itemGpExp_foreach');		/* 業務パック関数 */

 

3.上記関数の使い方

global $post, $usces;
$skus = $usces->get_skus($post->ID);						/* SKUアレーの取得 */

foreach($skus as $id => $val):?>
	my_itemGpExp_foreach($val,'数量割引');
endforeach;

■まず始めに$uscesの中からskuデータを取得します。そのskuデータをforeachを使ってループさせます。skuで数量割引がONの物だけ、数量割引データが表示されます。

以上でこのドキュメントの説明は完了です。

関連ドキュメントは下記の関連記事一覧から探して下さい。


<関連記事一覧>

「wecart」に関連するドキュメントを表示しています。尚、このページネーションはJquryで制御しています。

Welcartには、カートを空にするクラス関数が用意されています。ここでは、この関数の使い方を解説しています。

Welcartの商品一覧ページに購入ボタンを配置する為には「usces_direct_intoCart」を利用しますが、この関数は必須オプションのチェックは行ってくれません。それをうまく行える方法を解説しています。

welcartで用意されているカート投入ボタンはwhile(usces_have_skus())ループの中でしか使えません。しかしforeachの方がカウンター処理がしやすいのでこれが使えるカート投入ボタンを作成しました。

welcartの購入数量指定はテキスト入力です。これをボタンで数値入力ができる様にしました

welcartの中ではどれ位のポイントが付与されるのか?どれ位の金額が値引きされるか?の表示がありません。そこでこれを表示する関数を作成しました。

welcartで用意されているSKU価格の表示関数はwhile(usces_have_skus())ループの中でしか使えません。しかしforeachの方がカウンター処理がしやすいのでこれが使えるSKU価格の表示関数を作成しました。

Welcart_basicテーマは、SKUが複数あると縦にダラダラと長く表示される問題点があります。そこでSKUを分解し、どのSKUを表示するのか?をラジオボタンやセレクトBOXで選択できる様にカスタマイズします。

Welcartでは業務パック割引(購入数量割引)という機能があります。この機能を使うとカートページにGPマークが表示させますがこのマークを任意のアイコンに変更する方法を解説しています。

カートに商品を投入すると、商品名は①商品名②商品コード③SKU名④SKUコードを合わせた文字列が商品名として表示されます。これをカスタマイズする方法を解説しています。

Welcartのカートへの投入ボタンのプログラム解説と、色と文字を変更する新しい関数の作成方法を解説しています。

welcart_basicのオプション表示は、入力必須をチェックしてもユーザから見て判りません。またチェックボックスやラジオボタン表示に一部、おかしい所があります。ここではこれらの修正方法を解説しています。

Welcartにはポイントを付与し、商品購入時にそのポイントを利用する仕組みがあります。又キャンペーン設定でポイントをn倍にしたり価格を値引く仕組みもあります。ここではそれらの概要と問題点及び解決策を解説しています。

Welcartでは業務パック割引(購入数量割引)という機能があります。これは、指定した数量以上を購入した場合に価格を値引く仕組みですが、業務パック割引という言葉はあまりなじみがないのでこのメッセージを変更する方法を解説しています。

Welcart_Basicの購入数量は数値入力です。しかしスマホではこのような入力方法は面倒なので+/-ボタンで購入数量が変更できる様に変更した事例を紹介しています。

Welcartでは個別商品画面に商品オプションやカスタムフィールドを追加する事ができます。ここではその追加方法を解説しています。

Welcartで個別商品表示画面から、商品マスタ編集にジャンプする事ができるとコンテンツ編集効率が飛躍的に向上します。しかしWelcartではこの機能が提供されていないのでこれを可能になる関数を作成します。

ここではWelcart商品を価格順に並び替える為に、WordpressのメタデータにWelcartの価格データを自動的に登録する関数の作成方法を解説しています。

ここではWelcartのキャンペーン商品設定の方法と、設定された商品リストを表示する関数を作成する方法を解説しています

ここではWelcartの商品カテゴリを指定して商品リストする関数を作成しています。全商品、おすすめ商品、新製品及び商品カテゴリが対象となります。

ここでは売れている商品をWelcartのDBから読み出して「売れ筋商品」としてリストする関数を作成する方法を解説しています。

Welcartには関連商品という概念はありません。そこで個別商品を表示した時に、その商品と同じカテゴリの商品を「関連商品リスト」として表示する関数を作成する方法を解説します。

Welcart_basicのメニュをカスタマイズする為にはどの様な仕組みで作られているか?を知る必要があります。そこでここではメニュの仕様を解説しています。

ここではWelcart_basicのカートボタンの「色」と「文字」を変更する関数の作成方法を解説しています。

カートボタンをカスタマイズする為には、このカートがどの様に作られているのか?を知る必要があります。そこでここではその仕様について解説しています。

Welcartで会員システムを使うのであれば、ログイン後の画面に現在使えるポイント数が表示されているのが親切です。そこでここではwelcart_bascで保有ポイントが表示されるようにカスタマイズしたサンプルを解説しています。

welcart_basicの会員システムをカスタマイズする為には、この機能がどの様に作られているか?を知る必要があります。
そこでこのでは会員システムの仕組みについて解説しています。

Welcart_basicの検索機能をカスタマイズする為には、これがどの様に作られているのか?を知る必要があります。ここではその仕様を解説しています。

welcart_basicは商品だけしか検索対象としていませんが、ここではページの情報を読み込んで、カテゴリ別に検索できる様にカスタマイズする方法を解説しています。

ここでは「welcart_basic」の「category.php」がブログ用のサイドーバーが使われてない問題点を修正方法を説明しています。また「welcart_basic」がどの様な構造になっているか?も併せて解説しています。

ここではwelcartの.検索機能制限の解除、カテゴリが製品か否かの判断関数、上位カテゴリの取得関数、.商品カテゴリの取得関数の作成方法を解説しています。

ここではWelcartで用意されている関数を解説しています。

Welcartのファンクションはfunctions.phpからincフォルダにあるファンクションをインクルードしています。この辺の構造を商品表示の設定例で解説しています。

Welcartのホームページと事前に作られている固有のページを解説してます。特にカートページやメンバーページ及びお問い合わせフォームの作り方も解説しています。

WelcartはWordPressの「固定ページ」と「投稿ページ」のみで作られております。この「投稿ページ」の中に「商品」が設定されています。そこで検索機能はファンクションの中で、商品のみを検索する様な設定が定義されている為、そのままではブログ等を検索できません。

ここではWelcartの商品画像を「slick」でスライドさせる方法を解説しています。スライド方法は下記の2つを解説しています。①.slickオプションだけでスライドさせる。②slickイベントやメソッドを使ってスライドさせる。

welcart_basicのカスタマイズ→ヘッダ画像で設定したヘッダ画像を「slick」で自動スライドさせる方法を解説しています。

「slick.js」はjqueryでスライド動作を指定するプラグインです。ここでは「slick.js」のインストールから、設定方法及び「slick.js」のオプションを解説しています。またslickのメソッドやイベントの使い方の説明しています。

ここでは「Welcart basic」の子テーマの作成方法を解説しています。

Welcartの商品画像適用ルールと「Media Library Assistant」による画像管理、及び商品画像の登録方法を解説しています。

Welcartで商品登録を行う前に.Welcart Shopの「基本設定」、「配送設定」及び「.商品カテゴリ」の登録が必要で、ここではその登録方法を解説しています。

ここではWelCartの商品の登録の仕方を解説しています。

WelcartはWordPressを使った無償のe-Commerceシステムです。ここでは「Welcart」の「インストール」と無償テンプレート「Welcart_basic」について解説します。

ここでは「Welcart_Basic」の「メニュ」や「ウィジェット」及び「ヘッダ画像」の使い方を解説します。