WordPress買い物カートプラグインWelCartの送料カスタマイズ

WordPressの買い物カートプラグインのWelCartを使うことになり、今回の要件を実現可能か、検証中です。
検証にあたり、金額に応じた「送料」の設定は、基本機能では「上限金額を超えた場合無料」の設定しかありません。
(段階的に、5000円以上は300円、5000円未満は600円としたい場合に困る)

で、プラグインは直接コードを修正してしまうと、バージョンアップのときに困りますので、フックが提供されているか、調べてみました。
すると、ありました!これはラッキー。
以下のコードを、functions.phpへ追加して、今回の要件をクリアしました。

add_filter( 'usces_filter_getShippingCharge', 'override_getShippingCharge', 10, 3);
function override_getShippingCharge($charge) {
    global $usces;
    $total = $usces->get_total_price( $cart );
    if ( ($total >= 5000) && ($total < 10000) ) {
        $charge = 300;
    }
    return $charge;
}

同じようなところで困っている方がいたら、参考にしてみてください。

(Visited 1,009 times, 2 visits today)
  • Totoandcoco

    こんにちは、送料のカスタマイズで検索してたどり着きましたが、、まだ私の問題が解決されそうにないのでどうか教えてください。例えば送料がお買い物合計金額10000円以上の場合300円割引、など、無料でなく割り引く場合はどのようにすれば良いでしょうか?
    よろしくお願いします!

  • makitobisawa

    Totoandcocoさん、こんにちは。
    送料自体は、10000円以上のとき無料に設定して(変動の送料は管理画面から設定可能)、$total_priceを、1万円以上の場合は現在の金額から300円割引にするよう、フックを利用すると良いかと思います。

    合計金額のフック名は、
    ‘usces_filter_set_cart_fees_total_price’
    引数として、現在の合計金額が $total_priceで与えられます。
    引数の取得は、func_get_args()関数から取得できます。
    フックの使い方は、以下の説明が詳しくて、よく分かると思います。
    http://www.welcart.com/community/archives/1697

    welcartフォーラムの以下の記事を参考にすると、合計金額を割引した結果を反映できます。[解決済み] 特殊な価格や送料の計算
    http://www.welcart.com/forum/topic.php?id=344

    • Totoandcoco

      ありがとうございます。
      年内にセットできるようにがんばってみます。
      年末のお忙しいところ返信ありがとうございました(^○^)
      それでは良いお年を。。

  • Hirakawa

    こんにちは。

    送料の変動について質問させてください。

    送料を販売個数で変動させるにはどうしたらよいでしょうか?

    1個購入で500円、2個購入で1,000円、3個購入で1,500円
    といった送料×個数を反映させる方法です。
    よろしくお願い致します。