Ich benutze WooCommerce 3.2.6 und Thing möchte ich erreichen, ist Ich möchte verschiedene Shipping Zone für jedes einzelne Produkt einrichten.WooCommerce Conditional Shipping Zone Auswahl für jedes Produkt einzeln
Ich habe Produkte, die Versandrate basierend auf benutzerdefinierten Box Dimensionen berechnet und ich verwende FEDEX API für die Berechnung der Preise. Um dies zu erreichen, brauche ich ein Stück Code oder Filter, mit dem ich verschiedene Versandzonen nur für bestimmte Produkte einrichten kann.
Hier ist ein Stück Code, mit dem ich in der Lage war, das Produkt mit Shipping Zone MAP, aber dann konnte ich nicht weiter gehen, nur SET SHOW ZONE zu bringen und zeigen Preise im Frontend der Website. Jede Hilfe wäre sehr geschätzt.
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;
}