在我的WooCommerce網站上,我在這裏有一些代碼正在工作,但不是很好。各國根據類別和國家添加購買每件商品的運費
計算工作正常,但是當我添加的類別的價格是不正確的。
這裏是我的代碼:
add_filter('woocommerce_get_discounted_price', 'calculate_discounted_price', 10, 2);
add_filter('woocommerce_cart_item_subtotal', 'display_discounted_price', 10, 2);
function calculate_discounted_price($price, $values) {
global $woocommerce, $product;
$countryArray = array('AL', 'AD', 'AT', 'BY', 'BE', 'BA', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FO', 'FI', 'FR', 'DE', 'GI', 'GR', 'HU', 'IS', 'IE', 'IM', 'IT', 'RS', 'LV', 'LI', 'LT', 'LU', 'MK', 'MT', 'MD', 'MC', 'ME', 'NL', 'NO', 'PL', 'PT', 'RO', 'RU', 'SM', 'RS', 'SK', 'SI', 'ES', 'SE', 'CH', 'UA', 'VA', 'RS');
$catArray = array('handbags','kids','hats');
if($woocommerce->customer->get_shipping_country() == 'GB') {
foreach ($woocommerce->cart->cart_contents as $product) :
if (has_term($catArray, 'product_cat', $product['product_id'])) {
$price += 4.50;
} else {
$price += 8.50;
}
endforeach;
} elseif(in_array($woocommerce->customer->get_shipping_country(), $countryArray)) {
foreach ($woocommerce->cart->cart_contents as $product) :
if (has_term($catArray, 'product_cat', $product['product_id'])) {
$price += 4.50;
} else {
$price += 12.50;
}
endforeach;
} else {
foreach ($woocommerce->cart->cart_contents as $product) :
if (has_term($catArray, 'product_cat', $product['product_id'])) {
$price += 8.50;
} else {
$price += 18.50;
}
endforeach;
}
return $price;
}
function display_discounted_price($values, $item) {
return wc_price($item[ 'line_total' ]).'<br>incl. shipping';
}
當我刪除所有的foreach語句,只留下它工作正常,該國的條件,foreach循環以某種方式導致了問題。
對此的一些幫助,將非常感激。
謝謝。
任何人的幫助,感謝 –