使用 Woocommerce 电子邮件中的自定义字段自定义格式化的账单全名

Customize formatted billing full name with a custom field in Woocommerce emails

在我的一个网站上,我使用 WooCommerce 的灵活结帐字段来创建 20 个自定义字段。其中两个需要是 select/dropdown 字段。我无法通过插件这样做(不想为此付费。现在后悔那个决定。太可怕了);所以我使用 WooCommerce 中的 first-name 和 last-name 默认标签将它们变成 select 字段。我用它们来 select 名字前的 Mr/Mrs 标题。

电子邮件现在只显示 first-name 和 last-name 字段,因为我希望有 first-name(Mr/Mrs 标题 select)和我的名字的新自定义字段。

我在 admin-new-order.php 中找到了下面的代码; <p><?php printf( __( 'You have received an order from %s. The order is as follows:', 'woocommerce' ), $order->get_formatted_billing_full_name() ); ?></p>

因为 $order->get_formatted_billing_full_name() 将显示帐单 first-name 和帐单 last-name。

有没有办法显示账单 first-name 和我的自定义字段?如果是,怎么做?

提前致谢。

您需要在 emails/admin-new-order.php 模板中替换以下内容 (第 28 行)

 <p><?php printf( __( 'You have received an order from %s. The order is as follows:', 'woocommerce' ), $order->get_formatted_billing_full_name() ); ?></p>

通过此代码 (其中 _billing_voornaam_1_24 是您自定义字段的 meta_key):

<p><?php 
    $formatted_full_name   = $order->get_billing_first_name();
    $formatted_full_name  .= ' ' . get_post_meta( $order->get_id(), '_billing_voornaam_1_24', true );
    $formatted_full_name  .= ' ' . $order->get_billing_last_name();

    printf( __( 'You have received an order from %s. The order is as follows:', 'woocommerce' ), $formatted_full_name ); ?></p>

如果订单存在 _billing_voornaam_1_24 自定义字段,这应该有效…