先日はありがとうございました。
最終的に商品名に「【送料無料】」の文字が含まれる場合に基本送料を減額する形で関数を書きました。
送料を本州四国九州は500円(基本送料)、沖縄と北海道は800円に設定しているとして
カートの中に入っている商品名を調べて【送料無料】があれば、基本送料(500円)を減額して
本州四国九州は0円で送料無料、沖縄と北海道は300円の送料になるという場合です。
使用中のテーマのfunctions.phpに以下のコードを追加してください。
//商品に「【送料無料】」の文字がある場合送料を減額する
add_filter(‘usces_filter_set_cart_fees_shipping_charge’, ‘mysouoff_filter_set_cart_fees_shipping_charge’, 10, 3);
function mysouoff_filter_set_cart_fees_shipping_charge($shipping_charge, $cart, $entry){
global $usces;
$cart = $usces->cart->get_cart();
$souoff = ‘0’;
for($i=0; $i<count($cart); $i++) {
$cart_row = $cart[$i];
$post_id = $cart_row[‘post_id’];
$sku = $cart_row[‘sku’];
$sku_code = esc_attr(urldecode($cart_row[‘sku’]));
$itemName = $usces->getItemName($post_id);
$cartItemName = $usces->getCartItemName($post_id, $sku_code);
if(preg_match(“/【送料無料】/”, $cartItemName)) {
$souoff = $souoff+1;
}
}
if($souoff != ‘0’){
$shipping_charge -= 500; //500円減額する
}
return $shipping_charge;
}
素人が見よう見まねで作ったコードなので変なところとかあると思いますが一応これで動いたのでお知らせいたします。
ありがとうございました。