web-dev-qa-db-ja.com

の2番目のメールアドレスを追加 WP ユーザー通知

WPシステムはたくさんのメールを作者に送ります。作者に電子メール通知を使用するプラグインもあります。

しかし、2人で管理されているユーザーがいるとしましょう(これは会社であり、1人以上のエンティティであるため) - すべての電子メールを2番目の電子メールアドレスにも送信するとします。そのWPユーザーのプロフィールページにあります。

これを達成するための最良の方法は何ですか?プロフィールページにフィールドを追加する方法はわかっていますが、ユーザーが2番目の電子メールアドレスに届くたびに通知を送信する方法がわかりません。助けてください :)

1
Asaf Chertkoff

WP固有の解決策ではありませんが、通常は両方の人にコピーを送信するように電子メールシステムにエイリアス/フォワーダを設定できます。

例えば.

[email protected]

[email protected]

等.

1
Refiner

ちょっとしたハックですが、私がしたいのは、メーリングリストを使うことです。あなたはメーリングリストに無限の数のEメールを追加することができます。

別の方法として、 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
Zack