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

如何在WooCommerce PDF优惠券插件邮件模板中显示账单名字?

问题分析与解决方案

两种写法的问题点

  • 第一种写法:直接使用$order_id变量,但当前邮件模板上下文未定义该变量,导致wc_get_order()无法获取有效订单对象,自然无法拿到客户名字。
  • 第二种写法:
    1. $email->object在该PDF优惠券邮件模板中对应的是优惠券对象(voucher),而非订单对象,直接调用订单方法会失效;
    2. get_billing_first_name是WooCommerce订单对象的方法,你漏掉了末尾的括号(),写成了属性调用,即便拿到订单对象也无法正确取值。

正确实现方式

根据插件文档提示,通过优惠券对象获取订单后提取账单名字,代码示例如下:

<?php do_action( 'woocommerce_email_header', $email_heading, $email ); ?>

<?php
// 从优惠券对象获取关联订单
$order = $voucher->get_order();
// 校验订单对象有效性,避免报错
if ( $order instanceof WC_Order ) {
    $first_name = $order->get_billing_first_name();
    // 整合客户名字到邮件文案
    printf( __( "Hi %s. You've been sent a voucher!", 'woocommerce-pdf-product-vouchers' ), esc_html( $first_name ) );
} else {
    // 订单无效时显示默认文案
    printf( _n( "Hi there. You've been sent a voucher!", "Hi there. You've been sent %d vouchers!", $voucher_count, 'woocommerce-pdf-product-vouchers' ), $voucher_count );
}
?>

<?php do_action( 'woocommerce_email_footer', $email ); ?>

补充说明

  • 该PDF优惠券插件的邮件模板默认会传入$voucher变量,无需额外定义;
  • 使用esc_html()转义输出内容,避免XSS安全风险;
  • 增加订单对象校验,防止因订单数据异常导致邮件渲染失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 14:06:05