如何为所有交易添加基于百分比的附加费(加上附加税)

Posted

技术标签:

【中文标题】如何为所有交易添加基于百分比的附加费(加上附加税)【英文标题】:How to add a percentage based surcharge (plus tax of surcharge) to all transactions 【发布时间】:2022-01-22 10:26:38 【问题描述】:

我正在尝试在购物车和结帐时从 Woocommerce 小计中添加基于百分比的费用。但是,这笔费用要由小计的 5% 附加费 + 5% 附加费的 20% 税来弥补。

小计:100 英镑 附加费:6 英镑

我已经设法添加了小计 5% 的费用。但是,如何在上面加上 20% 的 $surcharge?

此外,这种类型的更改对电子邮件也有效吗? (以及购物车/结帐)是

任何建议将不胜感激。

提前致谢。

    add_action( 'woocommerce_cart_calculate_fees','custom_adminfee_surcharge' );
    function custom_adminfee_surcharge() 
      global $woocommerce;
        if ( is_admin() && ! defined( 'DOING_AJAX' ) )
            return;
$percentage = 0.05 * .20;
        $surcharge = ( $woocommerce->cart->subtotal + $woocommerce->cart->shipping_total ) * $percentage;   
        $woocommerce->cart->add_fee( 'Surcharge', $surcharge, true, '' );
    

【问题讨论】:

那么,小计的 5%,然后是 5% 的 20%? 是的,完全正确。 【参考方案1】:

这应该是小计的 5%,然后是 5% 的 20%...

add_action( 'woocommerce_cart_calculate_fees','custom_adminfee_surcharge' );
function custom_adminfee_surcharge() 
  global $woocommerce;
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;

    $percentage = ( $woocommerce->cart->subtotal + $woocommerce->cart->shipping_total ) * 0.05;
    $surcharge = $percentage * 0.20;
    $total_charges = $percentage + $surcharge;

    $woocommerce->cart->add_fee( 'Surcharge', $total_charges, true, '' );

【讨论】:

优秀。感谢您的协助和时间。 老板,我可以问一个简单的问题,自定义附加费非常适用于购物车和结帐页面,但是如何将其应用于电子邮件订单表?通过使用过滤器 woocommerce_get_order_item_totals,相同的功能是否适用于电子邮件?谢谢 @Ross,它应该会出现,但我不是 100% 确定。如果它没有显示,那么您可以通过挂钩将该字段添加到电子邮件中,如下所示:woocommerce.com/document/… 希望您可以从该文档中解决它.. 您可以在电子邮件挂钩函数$fees = $woocommerce->cart->get_fees() 中使用这将是一个数组,然后使用$fees['Surcharge'] 访问您的费用(未经测试,但希望能给您一些想法)

以上是关于如何为所有交易添加基于百分比的附加费(加上附加税)的主要内容,如果未能解决你的问题,请参考以下文章

php [WooCommerce Core]为所有交易添加基于百分比的附加费

php [WooCommerce Core]为所有交易添加基于百分比的附加费

如何为自定义单元格中的动态附加输入字段添加约束

php [WooCommerce Core]为所有交易添加标准的$ value附加费

php [WooCommerce Core]为所有交易添加标准的$ value附加费

php [WooCommerce Core]为所有交易添加标准的$ value附加费