向Woocommerce添加固定费用的百分比费用

时间:2018-10-16 13:32:35

标签: php wordpress woocommerce cart checkout

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

但是,它对我不起作用。

2 个答案:

答案 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对象变量作为参数…