如何在woocommerce中获得免费送货的最低订单金额

Posted

技术标签:

【中文标题】如何在woocommerce中获得免费送货的最低订单金额【英文标题】:How to get minimum order amount for free shipping in woocommerce 【发布时间】:2014-12-22 07:20:07 【问题描述】:

如何在 woocommerce 中获取获得免费送货所需的最低订单金额(woocommerce_free_shipping_min_amount 在 woocommerce 管理面板 -> 设置 -> 送货 -> 免费送货 -> 最低订单金额中设置)?

我想在前端页面显示这个价格

【问题讨论】:

【参考方案1】:

此值存储在 option 中,位于键 woocommerce_free_shipping_settings 下。它是一个由WC_Settings_API->init_settings() 加载的数组。

如果你想直接访问它,你可以使用get_option():

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

【讨论】:

我对你的答案投了赞成票,但是这段代码不再适用于 WooCommerce 版本 2.6+ ......我在这里有一个实际版本的 WooCommerce 的功能答案:***.com/a/42201311/3730754 我也有其他可能的解决方案:***.com/a/62351059/1193038【参考方案2】:

从 WooCommerce 2.6 版开始,接受的答案不再有效。它仍然提供输出,但该输出是错误的,因为它没有使用新引入的 Shipping Zones。

为了获得特定区域包邮的最低消费金额,试试我整理的这个功能:

/**
 * 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;

将上述函数放在functions.php中,并在模板中使用,如下所示:

$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;

希望这对某人有所帮助。

【讨论】:

以上是关于如何在woocommerce中获得免费送货的最低订单金额的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Woocommerce 中的订单项中获取产品 sku [重复]

在 woocommerce 3 中获取订单项的元数据

如何从 WooCommerce 中的订单项中获取产品类别 ID

禁用 Woocommerce 购物车订单项数量价格计算

在 Woocommerce 3+ 中使用订单项以编程方式创建订单

当 WooCommerce 3 中提供免费送货时,隐藏细节统一费率