如何获得Woocommerce 2.6免费送货的最低金额

时间:2016-07-03 17:58:37

标签: php wordpress woocommerce

升级到Woocommerce 2.6之后,我决定使用新的Shipping Zones功能,我已经打破了我的功能,计算与购物车价值的差异,以便免费送货。

我曾经获得免费送货价值,如:

$shipping_methods = $woocommerce->shipping->load_shipping_methods();
$free_shipping = $shipping_methods['free_shipping'];
$cart_total = $woocommerce->cart->cart_contents_total;
$minimum_amount_required = floatval($free_shipping->min_amount);
$diff = $minimum_amount_required - $cart_total;

但是现在情况发生了变化,我想使用运输区。 那么如何才能获得免运费所需的最低金额?我已经从选项中设置了值,我已经尝试了

$shipping = new WC_Shipping_Free_Shipping();

返回

object(WC_Shipping_Free_Shipping)#9235 (22) {
      ["min_amount"]=>
      string(1) "0"
      ["requires"]=>
      string(0) ""
      ["supports"]=>
      array(3) {
        [0]=>
        string(14) "shipping-zones"
        [1]=>
        string(17) "instance-settings"
        [2]=>
        string(23) "instance-settings-modal"
      }......

虽然我在设置中设置了一个数量,但它返回0.

2 个答案:

答案 0 :(得分:1)

经过一段时间的搜索(我有同样的错误),我意识到你需要在试图获得可用的运输方式时给你的包裹。

load_shipping_method中的套餐参数是可选的,但WC无法获取min_amount数量,因此将此值设置为“0”。这是因为您可以设置多个min_amount(每个区域一个)。

你可以得到这样的包裹:

$packages = WC()->cart->get_shipping_packages();

对于多个包装支持,您必须对每个包进行迭代,然后您可以使用以下方法获取方法:

//In $available_methods you must have initialised your free_shipping min_amount value.
$available_methods = WC()->shipping()->load_shipping_methods($packages[i]);

我希望这会对你有帮助!

答案 1 :(得分:0)

你可以使用:

$free_shipping_settings = get_option( 'advanced_free_shipping_settings' );
$min_amount = $free_shipping_settings['min_amount'];

我已经习惯了,但它会返回NULL结果,但你可以尝试一下。也许和你一起工作。