Php 在Woocommerce购物车和结帐页面中以不同方式重新排序多个费用

Php 在Woocommerce购物车和结帐页面中以不同方式重新排序多个费用,php,wordpress,woocommerce,checkout,fee,Php,Wordpress,Woocommerce,Checkout,Fee,在woocommerce中向结帐添加多个费用时,是否可以对这些费用的顺序进行优先级排序?目前,woocommerce似乎是根据费用值来订购的,因此,例如:费用1=10.00英镑,费用2=20.00英镑,他们的订购方式如下: 小计 费用2=20.00英镑 费用1=10.00英镑 总数 有没有可能定制订单?可能会为附加费用的行动增加优先权?我希望费用2始终是最后一项费用 这是可以实现的吗?在Woocommerce中,费用由类处理,如果您查看方法的源代码,您将看到排序是通过uasort()php排

在woocommerce中向结帐添加多个费用时,是否可以对这些费用的顺序进行优先级排序?目前,woocommerce似乎是根据费用值来订购的,因此,例如:费用1=10.00英镑,费用2=20.00英镑,他们的订购方式如下:

  • 小计
  • 费用2=20.00英镑
  • 费用1=10.00英镑
  • 总数
有没有可能定制订单?可能会为附加费用的行动增加优先权?我希望
费用2
始终是最后一项费用


这是可以实现的吗?

在Woocommerce中,费用由类处理,如果您查看方法的源代码,您将看到排序是通过
uasort()
php排序函数中的费用金额进行的

要对购物车和结账页面中显示的费用进行不同排序,唯一的方法是

1)按名称对费用进行排序:首先,这里有一个自定义函数,用于按标签名称对费用进行排序:

function wc_get_sorted_fees(){
    $fees = WC()->cart->get_fees();
    ksort($fees);
    return $fees;
}
代码进入活动子主题(或活动主题)的function.php文件。测试和工作

2)显示-覆盖模板
cart/cart totals.php
checkout/review order.php

在这两个模板文件中,您将替换以下行:

<?php foreach ( WC()->cart->get_fees() as $fee ) : ?>




相关:

完美,正是我所需要的!嗨,这并没有拉到订单确认页面(谢谢页面)和电子邮件。但在结帐时效果很好。@Shaunhenden这只用于购物车和结帐页面,不用于订单!
<?php foreach ( wc_get_sorted_fees() as $fee ) : ?>