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

使用Action Hook在WooCommerce打印订单中显示自定义字段求助

问题:在BizPrint Print Manager打印订单中显示WooCommerce自定义字段

我在WooCommerce中通过《Checkout Field Editor for WooCommerce》插件创建了自定义字段,现在需要把这个字段显示在通过《BizPrint Print Manager》插件连接BizSwoop打印服务的订单打印页里。

我试过这段代码,但无法正常运行:

add_action( 'Zprinttemplatesorder-htmlafterShippingDetails', 'afterShippingDetails', 10, 1 );

function afterShippingDetails( int $order_id  ): void {
    echo 'Sede de dónde sale el pedido ' . $order_id->billing_sede;
}

但如果直接把这段代码硬编码到HTML/PHP模板里,就能正常工作:

<tr>
<td colspan="4"><?php _e('Sede de dónde sale el pedido :', 'Print-Google-Cloud-Print-GCP-WooCommerce'); ?>
<?= $order->billing_sede; ?></td>
</tr>

后来我又尝试了下面的写法,但不确定是否正确,问题仍未解决:

function sede_orden ( $order_id ) {
        $order = wc_get_order( $order_id );
        echo '<h4>'.__('Sede de dónde sale el pedido: ').'</strong> ' . $order->get_billing_sede . '</h4>'; 
    }
add_action( 'Zprinttemplatesorder-htmlend', 'sede_orden', 10, 1 );

解决方案

你的问题主要出在两个细节上:

  1. 第一段代码里直接把$order_id当成WC_Order对象调用属性,但它只是纯数字的订单ID,必须先转为订单对象才能操作。
  2. 编辑后的代码里,get_billing_sede是方法需要加括号调用,还多了一个未配对的</strong>标签。

修正后的可用代码如下:

add_action( 'Zprinttemplatesorder-htmlafterShippingDetails', 'display_order_billing_sede', 10, 1 );

function display_order_billing_sede( $order_id ) {
    // 将订单ID转为WC_Order对象
    $order = wc_get_order( $order_id );
    if ( ! $order ) return;

    // 获取自定义字段值(注意方法要加括号)
    $billing_sede = $order->get_billing_sede();
    if ( empty( $billing_sede ) ) return;

    // 输出和硬编码一致的HTML结构,保证打印样式匹配
    echo '<tr>
    <td colspan="4">' . __('Sede de dónde sale el pedido :', 'Print-Google-Cloud-Print-GCP-WooCommerce') . '
    ' . esc_html( $billing_sede ) . '</td>
    </tr>';
}

关键说明

  • 必须通过wc_get_order($order_id)将订单ID转为WC_Order对象,这是WooCommerce操作订单的标准流程。
  • 自定义字段的获取需要用get_字段名()的方法格式(带括号),这是插件生成字段时自动注册的方法。
  • 用esc_html()过滤输出内容,避免潜在的XSS安全问题。
  • 保持输出的HTML结构和硬编码版本一致,确保打印出来的样式和预期一致。

内容的提问来源于stack exchange,提问作者Juan Manuel Sanchez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:27:22