SNSフォローボタン

Welcart で商品個数の条件に応じて代引き手数料を変更するカスタマイズ方法

Welcart の基本設定では決済種別が「代金引換」の支払い方法が選択された際に加算される代引き手数料の設定を行えますが、条件によって代引き手数料の金額を変更する設定にしたい場合はカスタマイズが必要となってきます。この記事では、合計金額や商品個数の条件に応じて代引き手数料を変更するカスタマイズ方法を説明していきます。カスタマイズにはフックを利用します。フックの仕組みや使い方についてはこちらの記事をご確認ください。

WordPress に用意されているフックを利用するとテーマやプラグインに新たな機能を追加したり表示内容を変更したりカスタマイズを行うことができます。この記事ではフックの基本や使い方を解説しています。

条件によって送料を変更するカスタマイズ方法についてはこちらの記事をご確認ください。

usces_filter_set_cart_fees_shipping_charge フックを利用し、条件に応じて送料を変更する様々なカスタマイズを自由に行うことができます。こちらの記事ではその方法を解説しています。

カスタマイズを行うにはテーマ内の PHP ファイルの編集を行う必要があります。ご自身での対応に自信がない場合、カスタマイズ対応も承っておりますのでお問い合わせフォームからお気軽にお問い合わせください。

Welcart の代引き手数料設定

Welcart の標準の基本設定では決済種別が「代金引換」の支払い方法が選択された際に「代引き手数料(固定額)を加算する」といった設定や「商品の合計金額に応じて変動する代引き手数料を加算する」といった設定が行えます。カスタマイズを実装することによって「カート内の商品の総個数が〇〇個以上の場合、代引き手数料を無料にする」といった基本設定では行えない設定に自由に変更することができます。

フックの利用準備

使用するフック:usces_filter_set_cart_fees_cod
フック記述箇所:usc-e-shop/classes/usceshop.class.php

テーマの functions.php の一番下に下記のコードを追加します。一番下に?>が書かれている場合はその上に追加してください。customized_set_cart_fees_codという関数名の部分は自由にわかりやすい名前を付けていただいて構いません。

add_filter('usces_filter_set_cart_fees_cod', 'customized_set_cart_fees_cod', 10, 7);
function customized_set_cart_fees_cod($cod_fee, $entries, $total_items_price, $use_point, $discount, $shipping_charge, $amount_by_cod) {
   // 基本の代引き手数料が計算されて $cod_fee に入った状態で呼び出されます。
   // ここに条件と送料 $cod_fee を変更する処理を書きます。
   return $cod_fee;
}

代引き手数料を変更することができるusces_filter_set_cart_fees_codフックを利用し、条件と代引き手数料を変更するコードを追加しカスタマイズを実装します。基本の代引き手数料が計算された後にこちらが呼び出されます。条件に該当しない場合は、代引き手数料は変更されず元のままの金額となります。

カスタマイズ例

商品個数によって代引き手数料を無料にする場合

「カート内の商品の総個数が 10 個以上の場合、代引き手数料を無料にする」といった設定の場合のサンプルコードです。

add_filter('usces_filter_set_cart_fees_cod', 'customized_set_cart_fees_cod', 10, 7);
function customized_set_cart_fees_cod($cod_fee, $entries, $total_items_price, $use_point, $discount, $shipping_charge, $amount_by_cod) {
   // カート内の商品の総個数を取得します。
   global $usces;
   $total_quantity = $usces->get_total_quantity();

   // 商品の総個数が 10 個以上の場合、代引き手数料を無料にします。
  if ( 10 <= $total_quantity ) {
      $cod_fee = 0;
   }
   return $cod_fee;
}

$usces->get_total_quantity()でカート内の商品の総個数を取得し、条件によって代引き手数料 $cod_fee を変更しています。条件に当てはまらない場合は、元の代引き手数料から変更されません。

確認方法

functions.php にカスタマイズ内容のコードを追加して保存を行った後は、カートに商品を入れて注文入力を進めて表示される注文確認画面の代引き手数料欄で実際に代引き手数料が変更されるかを確認することができます。

最後に

代引き手数料のシンプルなカスタマイズは簡単に実現できますのでぜひ挑戦してみてください。上手く動作しない場合は、下記お問い合わせフォームにてカスタマイズのご相談や対応も受け付けております。