在管理员的 WooCommerce 电子邮件通知中显示自定义字段
Display a custom field in WooCommerce email notifications for admin
我在我的 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;
}
从 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 文件。已测试并有效。
这次这个自定义字段将不会显示在客户电子邮件通知中。
Note:
$order->id
自 WooCommerce 3 以来是不正确的。请改用 $order->get_id()
.
- WordPress
get_post_meta()
功能可以用 WooCommerce WC_Data
get_meta()
方法代替。
我在我的 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;
}
从 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 文件。已测试并有效。
这次这个自定义字段将不会显示在客户电子邮件通知中。
Note:
$order->id
自 WooCommerce 3 以来是不正确的。请改用$order->get_id()
.- WordPress
get_post_meta()
功能可以用 WooCommerceWC_Data
get_meta()
方法代替。