2014-10-27 7 views

Antwort

8

Dieser Wert in einem option unter dem Schlüssel woocommerce_free_shipping_settings gespeichert wird angezeigt. Es ist ein Array, das von WC_Settings_API->init_settings() geladen wird.

Wenn Sie Zugang zu ihm erhalten möchten direkt können Sie get_option() verwenden:

$free_shipping_settings = get_option('woocommerce_free_shipping_settings'); 
$min_amount = $free_shipping_settings['min_amount']; 
+0

Vielen Dank. Es hat funktioniert :) – Vidhi

+1

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

2

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.

+0

Das funktioniert. Vielen Dank! – Moe