Добавление второго адреса электронной почты для уведомлений пользователей WP


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

Но, допустим, у меня есть пользователь, которым управляют два человека (потому что это компания, организация, состоящая из нескольких человек) - я хочу, чтобы все электронные письма отправлялись также на второй адрес электронной почты, который я введу на странице профиля этого пользователя WP.

Каков наилучший способ достичь этого? Я знаю, как добавить поле на страницу профиля, но я не знаю, как отправлять каждое уведомление, которое пользователь получает на второй адрес электронной почты. пожалуйста, помогите:)

Author: Zack, 2012-02-17

2 answers

Не является специфичным для WP решением, но обычно вы можете настроить псевдоним/отправителя в своей системе электронной почты, который отправляет копию обоим пользователям.

Например,

[email protected]

[email protected]

И т.д.

 1
Author: Refiner, 2012-02-23 19:35:57

Предложение, хотя и своего рода взлом, я хотел бы сделать, это использовать список рассылки. Вы можете добавлять бесконечное количество электронных писем в список рассылки.

Альтернативой, которую вы могли бы сделать, является использование publish_{$posttype} крючок для отправки уведомлений по электронной почте через wp_mail. Тот wp_mail параметр функции $to принимает либо строку, либо массив, чтобы вы могли передавать несколько адресов электронной почты.

РЕДАКТИРОВАТЬ:

function notify_users_of_new_post($post_id) {
    // Get list of subscribers and their secondary email address stored in wp_usermeta
    $user_query = get_users('blog_id=1&orderby=nicename&role=subscriber&fields=all_with_meta');

    $bName = get_bloginfo('name');
    $permalink = get_permalink($post_id);
    foreach($user_query as $user) {
        $email = $user->email;

        if (isset($user->secondary_email) AND !empty($user->secondary_email)) {
            $email = array( $user->email, $user->secondary_email );
        }

        wp_mail($email, sprintf('New Blog Entry on %s', $bName), sprintf('A new entry has been published to %s. View it clicking here: %s', $bName, $permalink));
    }
}
add_action('publish_post', 'notify_users_of_new_post');

Я попытался выполнить пример блока кода (выше). Предложение, если вы планируете использовать это на производственном сайте, используйте задание cron, если у вас много зарегистрированных пользователей, в противном случае я уверен, что это приведет к тайм-ауту в PHP.

 2
Author: Zack, 2017-04-13 12:37:32