添加费用到woocommerce购物车

时间:2015-12-02 12:18:15

标签: wordpress woocommerce

当客户有特定的结算国家/地区时,我想向我的购物车添加费用。例如比利时(BE)

我发现此代码默认添加费用。 任何人都可以帮助我使用IF公式或其他东西,这样只有在结算国家= BE?

时才会应用它
add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_surcharge'    );
function woocommerce_custom_surcharge() {
global $woocommerce;

if ( is_admin() && ! defined( 'DOING_AJAX' ) )
    return;

$percentage = 0.01;
$surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage;    
$woocommerce->cart->add_fee( 'Surcharge', $surcharge, true, '' );

}

1 个答案:

答案 0 :(得分:1)

这就是你需要的。只需将BE添加到$county数组中(我刚刚在下面的代码中为您执行了此操作)。

/**
 * Add a 1% surcharge to your cart / checkout based on delivery country
 * Taxes, shipping costs and order subtotal are all included in the surcharge amount
 *
 * Change $percentage to set the surcharge to a value to suit
 *
 * Add countries to array('BE'); to include more countries to surcharge
 * http://en.wikipedia.org/wiki/ISO_3166-1#Current_codes for available alpha-2 country codes 
 *
 * Change in_array to !in_array to EXCLUDE the $countries array from surcharges
 *
 * Uses the WooCommerce fees API
 * Add to theme functions.php
 */
add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
  global $woocommerce;

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    $county     = array('BE');
    $percentage     = 0.01;

    if ( in_array( $woocommerce->customer->get_shipping_country(), $county ) ) :
        $surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage;
        $woocommerce->cart->add_fee( 'Surcharge', $surcharge, true, '' );
    endif;

}

来源:https://docs.woothemes.com/document/add-a-surcharge-to-cart-and-checkout-uses-fees-api/