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;
}