Woocommerce 电子邮件通知收件人有条件地基于自定义字段
Woocommerce email notification recipient conditionally based on custom field
我有一个带有自定义字段的结帐表单。
我想根据自定义字段中的值向订单电子邮件添加额外的收件人。自定义字段目前是一个只有 3 个选项的下拉菜单。
下面是我通过谷歌搜索拼凑起来的代码,但这似乎不起作用。
function sv_conditional_email_recipient( $recipient, $order ) {
$custom_field = get_post_meta($orderid, 'custom_field', true);
if ($custom_field == "Value 1")
{
$recipient .= ', email1@gmail.com';
}
elseif ($custom_field == "Value 2")
{
$recipient .= ', email2@gmail.com';
}
elseif ($custom_field == "Value 3")
{
$recipient .= ', email3@gmail.com';
}
return $recipient;
}
add_filter( 'woocommerce_email_recipient_new_order', 'sv_conditional_email_recipient', 10, 2 );
感谢任何帮助。
谢谢。
您的问题来自未定义的 $orderid
。试试这个:
add_filter( 'woocommerce_email_recipient_new_order', 'new_order_conditional_email_recipient', 10, 2 );
function new_order_conditional_email_recipient( $recipient, $order ) {
if ( ! is_a( $order, 'WC_Order' ) ) return $recipient; // (Optional)
// Get the order ID (retro compatible)
$order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
// Get the custom field value (with the right $order_id)
$custom_field = get_post_meta( $order_id, 'custom_field', true );
if ($custom_field == "Value 1")
$recipient .= ', email1@gmail.com';
elseif ($custom_field == "Value 2")
$recipient .= ', email2@gmail.com';
elseif ($custom_field == "Value 3")
$recipient .= ', email3@gmail.com';
return $recipient;
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
代码已经过测试并适用于 WooCommerce 2。6.x 和 3+。
This hook is targeting "new_order" email notification only
我有一个带有自定义字段的结帐表单。
我想根据自定义字段中的值向订单电子邮件添加额外的收件人。自定义字段目前是一个只有 3 个选项的下拉菜单。
下面是我通过谷歌搜索拼凑起来的代码,但这似乎不起作用。
function sv_conditional_email_recipient( $recipient, $order ) {
$custom_field = get_post_meta($orderid, 'custom_field', true);
if ($custom_field == "Value 1")
{
$recipient .= ', email1@gmail.com';
}
elseif ($custom_field == "Value 2")
{
$recipient .= ', email2@gmail.com';
}
elseif ($custom_field == "Value 3")
{
$recipient .= ', email3@gmail.com';
}
return $recipient;
}
add_filter( 'woocommerce_email_recipient_new_order', 'sv_conditional_email_recipient', 10, 2 );
感谢任何帮助。
谢谢。
您的问题来自未定义的 $orderid
。试试这个:
add_filter( 'woocommerce_email_recipient_new_order', 'new_order_conditional_email_recipient', 10, 2 );
function new_order_conditional_email_recipient( $recipient, $order ) {
if ( ! is_a( $order, 'WC_Order' ) ) return $recipient; // (Optional)
// Get the order ID (retro compatible)
$order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
// Get the custom field value (with the right $order_id)
$custom_field = get_post_meta( $order_id, 'custom_field', true );
if ($custom_field == "Value 1")
$recipient .= ', email1@gmail.com';
elseif ($custom_field == "Value 2")
$recipient .= ', email2@gmail.com';
elseif ($custom_field == "Value 3")
$recipient .= ', email3@gmail.com';
return $recipient;
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
代码已经过测试并适用于 WooCommerce 2。6.x 和 3+。
This hook is targeting "new_order" email notification only