【问题标题】:Display a custom field in WooCommerce email notifications for admin在 WooCommerce 电子邮件通知中为管理员显示自定义字段
【发布时间】:2020-11-26 01:47:24
【问题描述】:

我在我的 wordpress 网站上安装了 Checkout Field Editor。我创建了自定义字段。但是,使用以下代码,pcustomer 字段会同时出现在我和客户收到的“新订单”电子邮件中。相反,我希望它只属于我。我试图编辑代码,但它仍然不起作用。

add_filter( 'woocommerce_email_order_meta_fields', 'custom_woocommerce_email_order_meta_fields', 10, 3 );
function custom_woocommerce_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
    $fields['meta_key'] = array(
        'label' => __( 'Label' ),
        'value' => get_post_meta( $order->id, 'meta_key', true ),
    );
    return $fields;
}

【问题讨论】:

    标签: php wordpress woocommerce custom-fields email-notifications


    【解决方案1】:

    自 WooCommerce 3 以来,您的代码有点过时,有一些错误尝试以下操作:

    add_filter( 'woocommerce_email_order_meta_fields', 'custom_woocommerce_email_order_meta_fields', 10, 3 );
    function custom_woocommerce_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
        $meta_key = '_meta_key1'; // <= Here define the correct meta key
        $meta_value = $order->get_meta( $meta_key1 );
        
        if ( ! empty( $meta_value1 ) ) {
            $fields[ $meta_key1 ] = array(
                'label' => __( 'My label 1', "text-domain' ),
                'value' => $meta_value1,
            );
        }
        return $fields;
    }
    

    代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并且可以工作。


    现在要将代码仅限于管理员电子邮件通知,您将使用$sent_to_admin 参数变量,如下所示:

    add_filter( 'woocommerce_email_order_meta_fields', 'custom_woocommerce_email_order_meta_fields', 10, 3 );
    function custom_woocommerce_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
        if ( $sent_to_admin ) {
            $meta_key1 = '_meta_key1'; // <= Here define the correct meta key
            $meta_value1 = $order->get_meta( $meta_key1 );
            
            if ( ! empty( $meta_value1 ) ) {
                $fields[ $meta_key1 ] = array(
                    'label' => __( 'My label 1', "text-domain' ),
                    'value' => $meta_value1,
                );
            }
        }
        return $fields;
    }
    

    代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并且可以工作。

    这一次,此自定义字段将不会显示在客户电子邮件通知中。

    注意

    • $order-&gt;id自 WooCommerce 3 以来不正确。请改用 $order-&gt;get_id()
    • WordPress get_post_meta() 函数可以被 WooCommerce WC_Data get_meta() 方法替换。

    【讨论】:

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