0
WooCommerce 3.2.6을 사용하고 있습니다. 달성하고자하는 일은 개별 제품마다 다른 배송 지역을 설정하고 싶습니다.WooCommerce 각 제품의 조건부 배송 구역 선택 개별적으로
고객님의 상자 크기에 따라 계산 된 배송비가 필요하며 요금 계산을 위해 FEDEX API를 사용하고있는 제품이 있습니다. 이를 위해 특정 제품에만 다른 배송 지역을 설정할 수있는 코드 나 필터가 필요합니다.
다음은 Shipping Zone을 사용하여 제품을 매핑 할 수있는 코드의 일부입니다. 그런 다음 실제로 배송지 만 설정하여 웹 사이트의 프론트 엔드에 요금을 표시 할 수 없습니다. 어떤 도움이라도 매우 감사하게 생각합니다.
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;
}