キャンペーン割引の値引き表示をカート画面にも

スポンサーリンク

2/28追記:キャンペーン対象が「全商品」の場合は、条件判定が作動せず値引き表示がされないようです。仕様なのかバグなのか・・・。

Welcartの標準仕様では、キャンペーン時の割引は買い物の最後の確認画面にしか出ませんので、カートページにも表示されると親切です。

そこで、Welcartフォーラムの書き込みを参考に、カート画面をカスタマイズしました。

カートでも値引き表示

(参考)キャンペーン割引の表示を商品詳細画面にも表示させたい

Welcartテーマを変更することになるので、プラグインがアップデートされる時に上書きされないよう、カートページwc_cart_page.phpのテーマの退避が必要です。

もくじ

手順としては、以下の通りです。

  1. wc_cart_page.phpを退避させる
  2. 退避させた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 ←ココ

カスタマイズは新たに設置した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>&nbsp;</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); ?>

これで、割引がある場合は自動で計算されます。

値引き表示後

値引き表示後

割引金額と合計金額がはっきりとわかると、よりユーザーフレンドリーになりますね。

コメントは受け付けていません。

Copyright© 2024 Welcart カスタマイズ ブログ All Rights Reserved.