[解決済み] 特定の配送方法だけ合計個数で送料を変える
- このトピックには6件の返信、3人の参加者があり、最後に
blue_appleにより12年前に更新されました。
-
投稿者投稿
-
2013年10月8日 6:12 PM #56147
blue_apple
参加者動作に関するご質問の場合は必ずご記入ください。
WordPress のバージョン:3.6.1
Welcart のバージョン:1.2
ご利用のテーマ:welcart default theme
症状を確認したブラウザ:Safari
サーバー(会社名、サービス名):さくらレンタルサーバー
SSLの利用: 無し | 専用SSL | 共用SSL
WordPress のパーマリンク設定:
配送A 送料一律 800円
配送B 3個まで2500円、6個まで3500円、10個まで5000円
としたいのですが
add_filter( ‘usces_filter_getShippingCharge’, ‘override_getShippingCharge’, 10, 3);
function override_getShippingCharge($charge) {
global $usces;
$total = $usces->get_total_quantity( $cart );
if ( ($total >= 4) && ($total < 7) ) {
$charge = 3500;
}
if ( ($total >= 7) && ($total <= 10) ) {
$charge = 5000;
}
return $charge;
}
とfunctions.phpに入れたら、個数で送料を変えるのは出来たのですが
これを配送Bだけに反映させることが出来ません。
配送方法を指定するにはどうしたら良いのでしょうか?
2013年10月17日 2:42 AM #67732
yskysmrキーマスターフィルターフック「usces_filter_getShippingCharge」を利用されていますので、第三引数に「$entry」が渡されています。配送方法IDは
$entry
で取得できます。
2013年10月17日 7:35 AM #67733blue_apple
参加者yskysmrさま、下記のように$entry = 1;
と入れてみたのですが、上手く出来ません。
あちこち探してようやく見つけたプログラムなので
基本的なプログラム理解していません。もう少し詳しく教えていただけますでしょうか。
add_filter( ‘usces_filter_getShippingCharge’, ‘override_getShippingCharge’, 10, 3);
function override_getShippingCharge($charge) {
global $usces;
$total = $usces->get_total_quantity( $cart );
$entry = 1;
if ( ($total >= 4) && ($total < 7) ) {
$charge = 3500;
}
if ( ($total >= 7) && ($total <= 10) ) {
$charge = 5000;
}
return $charge;
}
2013年10月24日 8:03 PM #67734yama11
参加者細かいことまでは説明しませんがとりあえず、
$entry = 1の場合だけ適用したいなら
if($entry = 1)という感じで書かなければいけないと思います。if文を勉強してみてはいかがでしょう。
これだったら
if($entry = 1){
if ( ($total >= 4) && ($total < 7) ) {
$charge = 3500;
}
if ( ($total >= 7) && ($total <= 10) ) {
$charge = 5000;
}
}
return $charge;
}
で二重のif文にしてあげれば良いのでは。ただこれだけだとこの商品がある場合、この商品の送料(もしくは一番大きい送料?)に設定されてしまうため、他の送料との足し算にはならないでしょうね。
2013年10月25日 6:46 AM #67735blue_apple
参加者yama11さま、ありがとうございます。
デザインは出来ますがプログラムは苦手で・・・
でも、何度やっても0の場合にも適用されてしまいます??
何度入れ直しても、キャッシュが残っているのかと再読み込みしてみても変化ありませんでした。
「配送方法が違う場合は同時に購入できません」と注意文を入れています。
それ以上は出来そうにありません。
ですので、これさえ解決すれば良いのですが
2013年10月25日 9:13 AM #67736yama11
参加者すみません、if($entry = 1)だと=で代入式になってしまうかな。if($entry == 1){…でもう一度やってみてください。
2013年10月25日 10:42 AM #67737blue_apple
参加者できました〜〜!!
ありがとうございますm(__)m
-
投稿者投稿
- このトピックに返信するにはログインが必要です。
PAGE TOP