我正在建立一个网站与Woocommerce和YITH Woocommerce预订。我已经添加了一个ACF字段,以包括在每个预订不同的电子邮件,并从新的预订发送邮件到包含在ACF字段和管理员电子邮件的电子邮件。
当我直接在代码中添加一封电子邮件而不是变量时,它工作得很好,但是当我把它改回来从ACF字段中获取电子邮件时,它就不工作了。
我在functions.php文件中有以下代码,但它对我不起作用。我有什么错吗?
add_filter( 'woocommerce_email_headers', 'new_booking_client', 9999, 3 );
function new_booking_client( $headers, $email_id, $order ) {
if ( 'yith_wcbk_admin_new_booking' == $email_id ) {
$client_email = get_field( 'e_mail_prestador');
$headers = "BCC: Name <" . $client_email . ">\r\n";
};
return $headers;
}
1条答案
按热度按时间btxsgosb1#
看了您在问题中分享的代码,我可以向您保证,您的方向是正确的。但是,您缺少了一些东西。钩子
woocommerce_email_headers
为您提供了三个参数:$headers
是包含电子邮件标题的变量,您已正确地尝试编辑它以向其添加BCC参数。$email_id
包含一个唯一标识符,用于检查触发了哪个电子邮件事件。正确的值是yith_wcbk_admin_new_booking
。$order
包含在触发此电子邮件事件之前创建的对象。在本例中,它应该是yith_booking
对象。您没有使用
yith_booking
对象从它那里获取产品沿着连接到该产品的ACF字段,这就是它不工作的原因。函数get_field( 'e_mail_prestador')
不知道您试图访问哪个产品的ACF字段,因此它不提供要添加到标题中的正确电子邮件地址。根据上面的所有解释,应该正确工作的代码如下: