gpt4 book ai didi

php - 重新排列 WooCommerce 电子邮件通知上的订单详细信息总计

转载 作者:行者123 更新时间:2023-12-03 15:57:48 27 4
gpt4 key购买 nike

我在 WooCommerce 中自定义订单电子邮件模板,需要在订单详细信息中将“运费”放在倒数第二位,就在“总计”上方。

enter image description here

我知道这个循环在 woocommerce>templates>emails 的“email-order-details.php”页面的第 52 行,所以在我的子主题中设置它,但我不知道从那里去哪里。这是我正在尝试的:

if ( $totals = $order->get_order_item_totals() ) {
$i = 0;
foreach ( $totals as $total ) {
$i++;
if($total['label'] === "Shipping"){
//make second-last above total somehow
}
else{
?><tr>
<th class="td" scope="row" colspan="3" style="text-align:<?php echo $text_align; ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo $total['label']; ?></th>
<td class="td" style="text-align:left; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>" colspan="1"><?php echo $total['value']; ?></td>
</tr><?php
}
}
}

最佳答案

使用卡在 woocommerce_get_order_item_totals 中的自定义函数过滤器钩子(Hook),将允许按预期重新排序项目总数:

add_filter( 'woocommerce_get_order_item_totals', 'reordering_order_item_totals', 10, 3 );
function reordering_order_item_totals( $total_rows, $order, $tax_display ){
// 1. saving the values of items totals to be reordered
$shipping = $total_rows['shipping'];
$order_total = $total_rows['order_total'];

// 2. remove items totals to be reordered
unset($total_rows['shipping']);
unset($total_rows['order_total']);

// 3 Reinsert removed items totals in the right order
$total_rows['shipping'] = $shipping;
$total_rows['order_total'] = $order_total;

return $total_rows;
}

代码在您的事件子主题(或主题)的 function.php 文件中或任何插件文件中。

测试和工作。

enter image description here

关于php - 重新排列 WooCommerce 电子邮件通知上的订单详细信息总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47942991/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com