※ ChatGPTを利用し、要約された質問です(原文:welcartの送料に関するフックについて)
welcartの送料に関するフックについて
このQ&Aのポイント
welcartの送料に関するフックについて質問です。
現在の設定では、1個購入の場合と2個購入の場合の送料が正常に動作していません。
購入商品が6個以下の場合は1箱分の送料、7個以上12個以下の場合は2箱分の送料となるようなフックを教えていただきたいです。
以下を実現させようとしてfunctionに記入したものの、7個以上の条件などは正常に動いているようにみえるのですが、1個購入の時と2個購入になると送料が0円になってしまいます。どこがおかしいのでしょうか?
【実現したい内容】
・郵送用の箱(一箱に商品6個まで)を使用。
・購入商品が6個以下は、送料1箱分の送料
・購入商品が7個以上12個以下は送料2箱分の送料
と6個毎に1箱分の送料を加算するフックを教えてください。
【現状】
【functions.php末尾に】
function usces_get_item_count() {
global $usces;
$cart = $usces->cart->get_cart();
$itemconut = 0;
for($i=0; $i<count($cart); $i++) {
$cart_row = $cart[$i];
$itemconut += esc_attr($cart_row['quantity']);
}
return $itemconut;
}
add_filter('usces_filter_set_cart_fees_shipping_charge', 'my_func', 10,3);
function my_func($shipping_charge,$carts,$entries) {
//本数を$totalNumとする
//何個口か計算
$deliveryNum = round(usces_get_item_count() / 6);
switch ($entries['delivery']['pref']){
case '北海道':
$shipping_charge = 1350 * $deliveryNum;
break;
case '青森県':
$shipping_charge = 1250 * $deliveryNum;
break;
/*繰り返しが長いので省略します*/
default:
break;
}
//最期に値を返してあげる
return $shipping_charge;
}
?>
【wc_item_single.php末尾に】
</div><!-- end of content -->
<?php echo usces_get_item_count(); ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
と書いてます。
オープンを控え急いでいるのですが
http://www.welcart.com/community/forums
がお休みのようなのでこちらでお伺いしました。
どなたかご教授頂けると幸いです。
環境は以下です。
WordPress のバージョン:バージョン 4.2.4
Welcart のバージョン:バージョン 1.4.20
サーバー(会社名、サービス名):xserver
お礼
おおおおおおおおおお!!!出来ました!! ありがとう御座います!!ずっと悩んだので感動です! 初心者のため問題点へ考えが至りませんでした。 ちなみに >$deliveryNum = floor(usces_get_item_count() / 6) + 1; だと6個が2箱になってしまったので $deliveryNum = floor(usces_get_item_count() / 7) + 1; とすることで、6個まで1箱、7個目~12個目まで2箱と出来ました!! 参考サイトまで!大変勉強になりました! ありがとう御座いました! welcart素晴らしいのですが、送料設定に難があるようで… 今回同様の変更等ないものか相当検索したのですが見つけられませんでした。 同じような仕様にしたい方の参考になればと思います。