Category: Works , WordPress , Plugins
Works

welcart:キャンペーン期間中の表示を変更する

welcart:キャンペーン期間中の表示を変更する
  • twitter
  • facebook
  • はてな
  • line

welcartにはキャンペーンモードが有り、ポイント倍率変更・割引が選べます。

便利な機能なんですが、デフォルトでは商品詳細ページには表示されず、カートの最終画面でやっと割引金額や付与ポイントが確認できるようになります。

そこで商品詳細ページにもキャンペーン期間中の表示を行ってみたいと思います。

※welcart basicというテーマではそれ用の関数が有り、デフォルトで出力されるようになってました。

welcartにおけるキャンペーンの仕組み

welcartのキャンペーンは、Welcart Shop→基本設定営業設定で設定できます。

基本設定

項目は

  • 割引率(%)
  • ポイント倍率(倍)

のどちらかを設定できます。

キャンペーンを適応する商品もカテゴリーで選べるので、「このカテゴリーのみキャンペーン対象にしたい」という要望にも対応可能です。

キャンペーンは、Welcart Shop→営業日設定キャンペーン・スケジュールで指定した期間内に有効になります。

営業日設定

キャンペーン開催の表示

キャンペーン開催中でキャンペーン対象商品の商品詳細ページをこんな感じにしたいと思います。

割引

割引

ポイント還元

ポイント

option

キャンペーンを始めwelcartのデータ諸々はuscesというオプションに格納されているのでそれを取り出し$optionsという関数に入れておきます。

$options = get_option('usces');

display_mode

キャンペーン期間中かどうかは$options内のdisplay_modeで判別します。

Promotionsaleがキャンペーン期間中で、Usualsaleが通常の状態です。

//キャンペーン期間中かどうか
if( $options['display_mode'] == 'Promotionsale' ) {
	echo '只今キャンペーン期間中!';
}

割引かポイントか

キャンペーンの内容が価格の割引かポイント還元の倍率変更可は$options内のcampaign_privilegeで判別します。

discountが割引、pointがポイントです。

//割引かポイントか
if( $options['campaign_privilege'] == 'discount' ) {
	echo '割引';
} else if( $options['campaign_privilege'] == 'point' ) {
	echo 'ポイント';
}
//elseでもOK
if( $options['campaign_privilege'] == 'discount' ) {
	echo '割引';
} else {
	echo 'ポイント';
}

割引率

割引率は$options内のprivilege_discountで取得できます。

<p>表示価格より<?php echo $options['privilege_discount']; ?>%OFF!</p>
↓
表示価格より10%OFF!

ポイント倍率

ポイント倍率は$options内のprivilege_pointで取得できます。

<p>ポイント還元<?php echo $options['privilege_point']; ?>倍!</p>
↓
ポイント2倍!

まとめると

まとめるとこうなります。

$options = get_option('usces');
if( $options['display_mode'] == 'Promotionsale' ) {
	echo '<p>只今キャンペーン期間中!</p>';
	if( $options['campaign_privilege'] == 'discount' ) {
		echo '<p>表示価格より'.esc_html( $options['privilege_discount'] ).'%OFF!</p>';  
	} else {
		echo '<p>ポイント還元'.esc_html( $options['privilege_point'] ).'倍!</p>';    
	}
}

おもしろかった・役に立った
  • twitter
  • facebook
  • はてな
  • line
▼ブログランキング参加中!クリック!▼
  • ブログランキング・にほんブログ村へ

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください