Intereting Posts

Отправлять электронные письма администратора нескольким адресам электронной почты

Есть ли крючок, который позволит мне отправлять по электронной почте несколько адресов электронной почты для уведомлений по электронной почте администратора по умолчанию?

Я надеялся, что смогу построить массив:

$adminEmails = array('me1@example.com', 'me2@example.com'); 

Затем все электронные письма администратора (например, новые уведомления пользователей) отправляются в $ adminEmails

Возможное?

Solutions Collecting From Web of "Отправлять электронные письма администратора нескольким адресам электронной почты"

Попробуй это:

 update_option( 'admin_email', 'me1@example.com, me2@example.com' ); 

Обратите внимание, что значение представляет собой строку; только открытые и закрытые кавычки!

Это можно сделать, отфильтровывая функцию wp_mail , проверяя, установлен ли to электронной почты администратора, и если да, добавьте дополнительные адреса электронной почты и верните аргументы обратно в wp_mail

 add_filter( 'wp_mail', 'my_custom_to_admin_emails' ); /** * Filter WP_Mail Function to Add Multiple Admin Emails * * * * @param array $args A compacted array of wp_mail() arguments, including the "to" email, * subject, message, headers, and attachments values. * * @return array */ function my_custom_to_admin_emails( $args ) { // If to isn't set (who knows why it wouldn't) return args if( ! isset($args['to']) || empty($args['to']) ) return $args; // If TO is an array of emails, means it's probably not an admin email if( is_array( $args['to'] ) ) return $args; $admin_email = get_option( 'admin_email' ); // Check if admin email found in string, as TO could be formatted like 'Administrator <admin@domain.com>', // and if we specifically check if it's just the email, we may miss some admin emails. if( strpos( $args['to'], $admin_email ) !== FALSE ){ // Set the TO array key equal to the existing admin email, plus any additional emails // // All email addresses supplied to wp_mail() as the $to parameter must comply with RFC 2822. Some valid examples: // user@example.com // User <user@example.com> $args['to'] = array( $args['to'], 'another@domain.com', 'Admin4 <admin4@domain.com>' ); } return $args; } 

Мы возвращаем TO как массив, так как wp_mail будет обрабатывать массив и взорвать его по мере необходимости для отправки электронной почты

Вот мое решение, оно использует фильтр update_option_ *, я считаю, что это правильный путь. добавьте это в плагин или в файл functions.php темы, а затем вы можете безопасно помещать запятые электронные письма администратора в настройки -> общий экран.

 add_filter('pre_update_option_admin_email','sanitize_multiple_emails',10,2); function sanitize_multiple_emails($value,$oldValue) { //if anything is fishy, just trust wp to keep on as it would. if(!isset($_POST["admin_email"])) return $value; $result = ""; $emails = explode(",",$_POST["admin_email"]); foreach($emails as $email) { $email = trim($email); $email = sanitize_email( $email ); //again, something wrong? let wp keep at it. if(!is_email($email)) return $value; $result .= $email.","; } if(strlen($result == "")) return $value; $result = substr($result,0,-1); return $result; }