Die akzeptierte Antwort funktioniert nicht mehr ab WooCommerce Version 2.6. Es gibt immer noch eine Ausgabe, aber diese Ausgabe ist falsch, da sie die neu eingeführten Shipping Zones nicht verwendet.
Um die Mindestausgaben Betrag für freie Schifffahrt in einer bestimmten Zone zu erhalten, versuchen u diese Funktion ich zusammen:
/**
* Accepts a zone name and returns its threshold for free shipping.
*
* @param $zone_name The name of the zone to get the threshold of. Case-sensitive.
* @return int The threshold corresponding to the zone, if there is any. If there is no such zone, or no free shipping method, null will be returned.
*/
function get_free_shipping_minimum($zone_name = 'England') {
if (! isset($zone_name)) return null;
$result = null;
$zone = null;
$zones = WC_Shipping_Zones::get_zones();
foreach ($zones as $z) {
if ($z['zone_name'] == $zone_name) {
$zone = $z;
}
}
if ($zone) {
$shipping_methods_nl = $zone['shipping_methods'];
$free_shipping_method = null;
foreach ($shipping_methods_nl as $method) {
if ($method->id == 'free_shipping') {
$free_shipping_method = $method;
break;
}
}
if ($free_shipping_method) {
$result = $free_shipping_method->min_amount;
}
}
return $result;
}
Setzen Sie die obige Funktion in functions.php und verwenden Sie es in einer Vorlage wie so:
$free_shipping_min = '45';
$free_shipping_en = get_free_shipping_minimum('England');
if ($free_shipping_en) {
$free_shipping_min = $free_shipping_en;
}
echo $free_shipping_min;
Hoffen, dass dies jemand hilft.
Vielen Dank. Es hat funktioniert :) – Vidhi
Ich habe Ihre Stimme stimmen, aber dieser Code funktioniert nicht mehr mit WooCommerce Version 2.6+ ... Ich habe eine funktionale Antwort für die aktuelle Version von WooCommerce hier: http://Stackoverflow.com/a/42201311/ 3730754 – LoicTheAztec