我们在使用 WooCommerce 建站的时候有些特殊情况下,网店需向顾客收取一部分额外的费用以摊薄成本。比较典型的应用场景就是开发票费用、出关的关税等等。而 WooCommerce 默认无法在订单中添加这类额外费用,只能添加税费等附加费用。但是,如果把这部分额外费用直接加到商品价格上就不妥了,会造成商品价格更高、无竞争力。因此,我们有必要为 WooCommerce 订单添加一项或多项附加费用来实现此功能。以下代码以收取每单商品价格加运费总和的 5%作为附加费用为例来说明如何添加附加费用功能:
一、为所有交易添加基于百分比的附加费
/**
* 添加1%的附加费到你的购物车和结算页面
* 更改百分比以将附加费设置为适合的值
*/
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, '' );
}
二、为所有交易添加固定的附加费
/**
* 为购物车/结帐中的所有交易添加固定的附加费
*/
add_action( 'woocommerce_cart_calculate_fees','wc_add_surcharge' );
function wc_add_surcharge() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$county = array('US');
// change the $fee to set the surcharge to a value to suit
$fee = 1.00;
if ( in_array( WC()->customer->get_shipping_country(), $county ) ) :
$woocommerce->cart->add_fee( 'Surcharge', $fee, true, 'standard' );
endif;
}
三、根据交货国家/地区添加附加费
/**
* 根据送货国向您的购物车/结算添加1%的附加费
* 税金、运费及订单小计均包含在附加费内
*/
add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$county = array('US');
$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;
}
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!