0
我使用的是WooCommerce 3.2.6,而我想要實現的是我想爲每個單獨產品設置不同的運輸區域。WooCommerce有條件的運輸區域爲每個產品單獨選擇
我有需要根據自定義框尺寸計算運費的產品,我使用FEDEX API進行費率計算。爲了實現這一點,我需要一些代碼或過濾器,我可以設置不同的運輸區域只有特定的產品。
這裏有一段代碼,我可以通過這個代碼來將產品映射到發貨區,但是接下來我不能着手實際上只設置那個運輸區來在網站前端顯示價格。任何幫助將高度讚賞。
add_action('wp_head','show_only_selected_zone', 2, 10);
function show_only_selected_zone() {
//if(is_product) {
global $post;
$product_id = get_the_ID();
$product_name = get_the_title($product_id);
$explode_product = explode(" ",$product_name);
$all_zones = orig_get_all_zones();
foreach ($all_zones as $key => $zone) {
//echo "<pre>";print_r($zone);echo "</pre>";
$extracted_zone = $zone['zone_name'];
$zone_id = $zone['zone_id'];
if(in_array($extracted_zone,$explode_product)) {
//echo 'This is Extracted Zone: '.$extracted_zone. ' '. $zone_id;
$set_zone_id = $zone_id;
echo $set_zone_id;
$zone = WC_Shipping_Zones::set_zone_by('zone_id', $set_zone_id);
//echo 'Zone Result May be: '.$zone;
break;
}
//echo "<pre>";print_r($zone);echo "</pre>";
//echo $zone['zone_name'].'<br>';
}
}
function orig_get_all_zones() {
if(class_exists('WC_Shipping_Zones')) {
$all_zones = WC_Shipping_Zones::get_zones();
return $all_zones;
}
return false;
}
function orig_get_zone($zone_id = 0) {
if(class_exists('WC_Shipping_Zones')) {
$the_zone = WC_Shipping_Zones::get_zone($zone_id);
return $the_zone;
}
return false;
}