如何为所有交易添加基于百分比的附加费(加上附加税)
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附加费