在Woocommerce中,我想在结帐页面上添加3%的手续费和30美分的“固定”费用。
我设法使用以下代码添加了处理费:
add_action( 'woocommerce_cart_calculate_fees', 'woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$percentage = 0.03;
$surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage;
$woocommerce->cart->add_fee( 'Processing Fee', $surcharge, true, '' );
}
现在,我只需要添加30美分的“固定”费用。我该如何实现?
我尝试过,添加:
$fee = 0.30;
但是,它对我不起作用。
答案 0 :(得分:1)
如果您需要同时添加两种附加费,以使其分别显示,则可以:
$percentage = 0.03;
$fixed_fee = 0.30;
$surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage;
$woocommerce->cart->add_fee( 'Processing Fee', $surcharge, true, '' );
$woocommerce->cart->add_fee( 'Fixed fee', $fixed_fee, true, '' );
如果您不需要单独显示它们,只需注意“处理费”包括3%的附加费和30美分的固定费用:
$percentage = 0.03;
$fixed_fee = 0.30;
$surcharge = (( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage) + $fixed_fee);
$woocommerce->cart->add_fee( 'Processing Fee', $surcharge, true, '' );
两者都应该起作用。这将取决于下游的需求
答案 1 :(得分:1)
您的代码有些过时,请尝试以下操作,这将为百分比费用增加固定费用:
add_action( 'woocommerce_cart_calculate_fees', 'woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$percentage = 0.03;
$fixed_fee = 0.3;
$percentage_fee = ( $cart->cart_contents_total + $cart->shipping_total ) * $percentage;
$surcharge = $fixed_fee + $percentage_fee;
$cart->add_fee( 'Processing Fee', $surcharge, true );
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
当使用此钩子时,不需要
$global $woocommerce;
,因为钩子函数可以使用WC_Cart
对象变量作为参数…