You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Woocommerce 后台订单汇总显示含税总价及自定义代码问题咨询

修复后完整可直接使用的代码

function action_woocommerce_admin_order_item_values( $null, $item, $absint ) {
    // 仅处理商品和运费行,提前判断属性存在避免退款场景报错
    if ( !is_object( $item ) || !method_exists( $item, 'get_type' ) || !in_array( $item->get_type(), [ 'line_item', 'shipping' ] ) ) {
        echo '<td class="item_fcost">&nbsp;</td>';
        return;
    }

    $total = (float) $item->get_total();
    $total_tax = (float) $item->get_total_tax();
    $val = $total + $total_tax;

    // 调用本地化价格格式化函数,自动适配站点小数分隔符规则
    $val_formatted = wc_format_localized_price( $val );
    ?>
    <td class="item_fcost" data-sort-value="<?php echo esc_attr( $val ); ?>">
        <div class="view" style="font-weight: bold; text-align: right; padding-right: 10px;">
            <?php echo $val_formatted . ' DKK'; ?>
        </div>
    </td>
    <?php
};
// 优先级调为20,在系统默认列之后加载,排在最右侧
add_action( 'woocommerce_admin_order_item_values', 'action_woocommerce_admin_order_item_values', 20, 3 );


function action_woocommerce_admin_order_item_headers( $order ) {
    echo '<th class="item_fcost sortable" data-sort="float" style="text-align: right;">Pris inkl. moms</th>';
};
// 优先级和内容行保持一致,对应列顺序
add_action( 'woocommerce_admin_order_item_headers', 'action_woocommerce_admin_order_item_headers', 20, 3 );

对应需求的修改说明

  • 小数分隔符适配:替换原有的wc_format_decimal为WooCommerce内置的本地化价格格式化函数,会自动读取你站点后台设置的小数分隔符规则,和全站其他位置的价格显示格式完全一致。
  • 免费/零元场景空值修复:移除了原代码中仅在值大于0时输出的判断,只要是商品或运费行,哪怕金额为0也会正常显示格式化后的零值,不会出现空列。
  • 列顺序调整:将两个钩子的执行优先级从默认的10调整为20,会在系统默认的税额列加载完成后再新增当前列,自动排在表格最右侧,符合「数量、总价、税额、含税总价」的排序要求。
  • 退款订单报错修复:新增了对象类型校验、属性存在性判断,使用WooCommerce标准的get_方法读取订单商品属性,避免退款场景下访问不存在的数组键导致的致命错误,兼容正常订单和退款订单。

内容的提问来源于stack exchange,提问作者eqr21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 05:45:00