【问题标题】:Display a custom field value in Woocommerce email notification template在 Woocommerce 电子邮件通知模板中显示自定义字段值
【发布时间】:2017-07-17 14:12:08
【问题描述】:

在 WooCommerce 中,我使用 "WC Fields Factory" 插件来创建 'serial' 自定义字段。我需要在/woocommerce/emails/customer-completed-order.php模板文件中显示它的值。

我试过用:

echo get_post_meta(get_post()->ID, "wccaf_serial", true );

但它不起作用。

我做错了什么?

谢谢

【问题讨论】:

    标签: php wordpress woocommerce orders email-notifications


    【解决方案1】:

    您可以直接使用 $order 与此电子邮件模板中的所有 WC_Order 方法,以获取订单 ID,这样:

    // Get the Order ID (WooCommerce retro-compatibility)
    $order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
    
    // Get "serial" custom field value
    $serial = get_post_meta($order_id, "wccaf_serial", true );
    
    // Display "serial" custom field value
    echo '<p>'.__('Serial', 'woocommerce') . $serial . '</p>';
    

    请阅读:Template Structure + Overriding Templates via a Theme


    除了覆盖这个模板,你还可以使用任何可用的钩子,例如:

    add_action( 'woocommerce_email_order_details', 'action_wc_email_order_details' 50, 4 );
    function action_wc_email_order_details( $order, $sent_to_admin, $plain_text, $email ){
        // Get the Order ID (WooCommerce retro-compatibility)
        $order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
    
        // Get "serial" custom field value
        $serial = get_post_meta($order_id, "wccaf_serial", true );
    
        // Display "serial" custom field value
        echo '<p>'.__('Serial', 'woocommerce') . $serial . '</p>';
    }
    

    代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件中。

    代码经过测试,可在 WooCommerce 2.6.x 或 3+ 中运行

    【讨论】:

    • 非常感谢您的回答!它真的很有用。但不幸的是我仍然无法得到想要的结果。我得到了变量的 text (Serial) + 空值。我再次检查了字段 "serial" 的名称和值,但没有帮助(我使用 admin fieldtext value )。无论如何,我会努力继续。谢谢。
    • @Fost 您应该直接在 wp_postmeta 表中的数据库中查找“wccaf_serial”meta_key。如果你没有得到它,那么搜索一个订单ID(post_id),看看你是否得到任何“串行”元密钥……
    • 谢谢,我搜索了 5 个字段(可能我复制并删除了该字段以进行验证),名称为 "wccaf_serial"。第一个值为 "meta_value" {"type":"text","label":"serial","name":"serial","r.... 的字段。其他字段为空。
    【解决方案2】:

    看看 WP HTML Mail。这个插件有一个用于 WooCommerce 电子邮件的集成邮件生成器。您可以在 WordPress 编辑器中编辑邮件内容,并从菜单“占位符”添加自定义字段。 以下是部分截图:http://wp-html-mail.com/woocommerce-custom-email-content/

    【讨论】:

      猜你喜欢
      • 2018-08-31
      • 1970-01-01
      • 2020-12-07
      • 2020-11-05
      • 1970-01-01
      • 2018-08-30
      • 2021-02-01
      • 2020-09-09
      • 2020-11-26
      相关资源
      最近更新 更多