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

如何在WooCommerce后台订单详情页显示含税总价并解决退款订单报错

错误原因分析

原代码触发致命错误主要是两个场景适配问题:

  • 未对订单项类型做校验:订单详情页的订单项列表除了商品项外,还包含退款项、运费项、手续费项等,这类非商品项不具备常规商品订单项的属性和方法,调用时会抛出错误
  • 未做订单对象有效性判断:部分异常场景下通过订单项获取关联订单对象可能返回空值,后续调用订单相关方法时会触发报错

修复后代码

function action_woocommerce_admin_order_item_values( $null, $item ) {
    // 仅处理商品类型的订单项,排除退款、运费等其他类型项
    if ( ! $item instanceof WC_Order_Item_Product ) {
        return;
    }
    
    $order = $item->get_order();
    // 校验订单对象是否有效,无效直接返回
    if ( ! $order instanceof WC_Order ) {
        return;
    }

    // 如果需要退款状态的订单完全不显示该列,可以打开下面两行注释
    // if ( $order->has_status( 'refunded' ) ) {
    //     return;
    // }

    $val = floatval($item->get_total()) + floatval($item->get_total_tax());
?>
<td class="item_full_cost" data-sort-value="<?= $val ?>">
    <div class="view" style="font-weight: bold; text-align: right; padding-right: 10px;">
        <?= wc_price($val, ['currency' => $order->get_currency()]) ?>
    </div>
    <?php
    $refunded = $order->get_total_refunded_for_item( $item->get_id() );

    if ( $refunded ) {
        echo '<small class="refunded">-' . wc_price( $refunded, array( 'currency' => $order->get_currency() ) ) . '</small>';
    }
    ?>
</td>
<?php
};
add_action( 'woocommerce_admin_order_item_values', 'action_woocommerce_admin_order_item_values', 10, 2 );


function action_woocommerce_admin_order_item_headers( $order ) {
    // 如果需要退款状态的订单完全不显示该列,可以打开下面两行注释
    // if ( $order->has_status( 'refunded' ) ) {
    //     return;
    // }
    echo '<th class="line_full_cost sortable" data-sort="float" style="font-weight:bold;text-align: right;">' . __('Price incl. VAT') .'</th>';
};
add_action( 'woocommerce_admin_order_item_headers', 'action_woocommerce_admin_order_item_headers', 10, 1 );

修复说明

  • 移除了原代码中对$item的强制类型声明,避免非商品订单项传入时直接抛出类型错误
  • 新增订单项类型校验,仅对商品类订单项输出含税金额列
  • 新增订单对象有效性校验,避免空对象调用方法时的致命错误
  • 预留了退款订单隐藏整列的判断逻辑,按需开启注释即可使用
  • 修正了表头钩子的参数接收数量,原代码声明接收3个参数但实际仅传入1个,避免PHP警告

内容的提问来源于stack exchange,提问作者Corentin-CPCI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:15:01