我对wp\\u mail()非常困惑。这是我的代码。
function email_notification_for_admin_and_customer( $order_data ) {
$subject_email = \'Subject LOREM IPSUM\';
$customer_email = \'Hi Customer, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tempus, dui eget luctus accumsan, turpis orci malesuada turpis, eget volutpat ante velit a quam.\';
$admin_email = \'Hi Admin, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tempus, dui eget luctus accumsan, turpis orci malesuada turpis, eget volutpat ante velit a quam.\';
$send_email = array(
array(
\'to\' => \'[email protected]\',
\'subject\' => $subject_email,
\'message\' => $customer_email
),
array(
\'to\' => \'[email protected]\',
\'subject\' => $subject_email,
\'message\' => $admin_email
)
);
foreach ($send_email as $key => $value) {
wp_mail( $value[\'to\'], $value[\'subject\'], $value[\'message\']);
}
}
我想向管理员和客户发送电子邮件通知,但wp\\u mail()只发送第一封电子邮件,这是给客户的。你能帮帮我吗。非常感谢。
我也有同样的问题this thread, 但情况不同。
UPDATE THE ANSWER
我正在使用wp\\u邮件过滤器将wordpress普通电子邮件格式化为html电子邮件模板。
add_filter(\'wp_mail\', \'my_wp_mail_filter\');
function my_wp_mail_filter($args) {
$message = $args[\'message\'];
$args[\'message\'] = wpet_email_template(apply_filters(\'wpet_filter_email\', $message));
return $args;
}
这是包含html模板的函数。
function wpet_email_template($message) {
// Render Template
ob_start();
include(\'custom-email-template.php\');
$wpet_template = ob_get_contents();
ob_end_clean();
// Replace Placeholder
$message = str_replace(\'%%MAILCONTENT%%\', $message, $wpet_template);
// Return Template with Data
return $message;
}
问题是
include_once(\'custom-email-template.php\');然后我改为
include(\'custom-email-template.php\');因此,这就是为什么电子邮件只发送给客户电子邮件(第一个$send\\u email数组)的问题所在。
在这里the answer
SO网友:timnavigate
作用wp_mail()
不适合在回路中使用。
不幸的是,循环反复数百次可能会大大降低脚本的速度,正如PHP\\u mail()函数的参考中所指出的那样。mail()函数不适用于循环中的大量电子邮件,这一点毫无意义。此函数用于打开和关闭每封电子邮件的SMTP套接字,但效率不高,循环运行时会出现许多故障。我在2016年3月出版的SmashingMagazine关于自定义Wordpress的书中找到了此信息。
我建议划分向管理员和客户发送电子邮件通知的功能。
function email_notification_for_customer( $order_data ) {
$subject_email = \'Subject LOREM IPSUM\';
$customer_email = \'Hi Customer, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tempus, dui eget luctus accumsan, turpis orci malesuada turpis, eget volutpat ante velit a quam.\';
/* send to list of customers mails */
$send_email_to = array(
\'[email protected]\',
\'[email protected]\',
\'[email protected]\',
\'[email protected]\',
\'[email protected]\'
);
wp_mail( send_email_to, $subject_email, $customer_email);
}
function email_notification_for_admin( $order_data ) {
$subject_email = \'Subject LOREM IPSUM\';
$admin_email = \'Hi Admin, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tempus, dui eget luctus accumsan, turpis orci malesuada turpis, eget volutpat ante velit a quam.\';
/* send to single admin\'s mail */
$send_email_to = array(
\'[email protected]\'
);
wp_mail( $value[\'to\'], $subject_email, $admin_email);
}