如果国家和支付网关WordPress免费送货

时间:2017-02-21 12:09:28

标签: wordpress woocommerce

如果满足某些条件,我在尝试在最新的Woocommerce(2.6.x)中设置免费送货时遇到一个小问题。

如果选择“货到付款”,价格超过X€且选择了某个国家/地区,则客户需要设置免费送货。

我尝试了很多我发现的片段,但似乎没有任何效果。我不想使用太多的插件(已经有很多插件)。

我需要类似的东西:

if ($country == 'DE' && $cart_total >= 100 && $payment_gateway == 'cod' ) {
    $shipping == 0; 
}

提前感谢您的所有答案,
法律上的

1 个答案:

答案 0 :(得分:0)

我正在使用Table Rate Shipping for WordPress,我找到了解决问题的方法。缺少检查付款方式,但这不应该很难找到。以防其他人发现它有用。

add_filter( 'woocommerce_package_rates', 'sl_custom_shipping_rates', 10, 2 );

function sl_custom_shipping_rates( $rates, $package ) {

    foreach( $rates as $key => $value ) {

        if( $value->method_id == 'table_rate_shipping' && WC()->cart->cart_contents_total >= 100 && WC()->customer->get_shipping_country() == "DE") {
            $rates[ $key ]->cost = 100;
        }
    }

    return $rates;
}