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

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>'; } }