キャンペーン割引の値引き表示をカート画面にも
スポンサーリンク
2/28追記:キャンペーン対象が「全商品」の場合は、条件判定が作動せず値引き表示がされないようです。仕様なのかバグなのか・・・。
Welcartの標準仕様では、キャンペーン時の割引は買い物の最後の確認画面にしか出ませんので、カートページにも表示されると親切です。
そこで、Welcartフォーラムの書き込みを参考に、カート画面をカスタマイズしました。
(参考)キャンペーン割引の表示を商品詳細画面にも表示させたい
Welcartテーマを変更することになるので、プラグインがアップデートされる時に上書きされないよう、カートページwc_cart_page.phpのテーマの退避が必要です。
もくじ
手順としては、以下の通りです。
- wc_cart_page.phpを退避させる
- 退避させたwc_cart_page.phpをカスタマイズ
1.wc_cart_page.phpを退避させる
Welcartのテンプレートをカスタマイズする際は、プラグインのアップデート時に上書きされないよう、予め使用中のテーマに必要なテンプレートを退避させます。
テーマの退避の方法は、以下のページにも詳しく書いてあります。
ECサイト専用テンプレート「Welcart Default テーマ」の新機能
具体的には、Welcartプラグインフォルダ内のカートページ用テンプレートを、使用中テーマにコピペします。
カートページ用テンプレートwc_cart_page.phpは、プラグインフォルダ内の以下の場所にあります。
usc-e-shop/theme/welcart_default/wc_templates/cart/wc_cart_page.php
このテンプレートをコピーし、使用中のテーマに設置。設置場所はデフォルトテーマと同様の位置関係になるように、wc_templatesフォルダ→cartフォルダの中に入れます。
- 使用中のテーマ
- wc_templates
- cart
- wc_cart_page.php ←ココ
- cart
- wc_templates
カスタマイズは新たに設置したwc_cart_page.phpを使います。
2.退避させたwc_cart_page.phpをカスタマイズ
2-1. キャンペーン割引の表示
まずは、キャンペーン割引の金額の表示の行を入れます。
wc_cart_page.phpの55行目に、<?php usces_get_cart_rows(); ?>という文字列があります。カートに入った商品を表示するコードです。
この直下に、以下のコードを挿入。
<?php if(usces_order_discount('return')): ?> <tr> <td colspan="5" class="aright"><?php echo apply_filters('usces_confirm_discount_label', __('Campaign disnount', 'usces')); ?></td> <td class="aright" style="color:#FF0000">-<?php usces_crform(usces_order_discount('return'),true, false); ?></td> <td> </td> </tr> <?php endif; ?>
これでキャンペーン中には割引の金額の表示が出ます。
ただ、合計金額はこのままでは自動で計算されないため、次に合計金額を計算しなおしたコードに書き換えます。
2-2. 合計金額の計算
60行目あたりの<?php usces_crform(usces_total_price(‘return’), true, false); ?>が合計金額を出力しているコードです。
これを、以下のように書き換えます。
<?php usces_crform(usces_total_price('return')-usces_order_discount( 'return' ), true, false); ?>
これで、割引がある場合は自動で計算されます。
割引金額と合計金額がはっきりとわかると、よりユーザーフレンドリーになりますね。