0

ここで述べたように、カスタムのログインと登録フォームを WP に実装しました。ユーザーは登録できますが、管理者がバックエンドからそのユーザーを承認するまでログインできません。

新しいユーザー登録の管理者通知メールと、管理者がバックエンドから承認するユーザー通知メールを実装する必要があります。メールを送信するために登録フォームで以下のコードを試しましたが、うまくいかないようです。さらに、通常のメールは送信し続けます。

/ Redefine user notification function
if ( !function_exists('wp_new_user_notification') ) {
    function wp_new_user_notification( $user_id, $plaintext_pass = '' ) {
        $user = new WP_User($user_id);

        $user_login = stripslashes($user->user_login);
        $user_email = stripslashes($user->user_email);

        $message  = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "\r\n\r\n";
        $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
        $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n";

        @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message);

        if ( empty($plaintext_pass) )
            return;

        $message  = __('Hi there,') . "\r\n\r\n";
        $message .= sprintf(__("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "\r\n\r\n";
        $message .= wp_login_url() . "\r\n";
        $message .= sprintf(__('Username: %s'), $user_login) . "\r\n";
        $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n\r\n";
        $message .= sprintf(__('If you have any problems, please contact me at %s.'), get_option('admin_email')) . "\r\n\r\n";
        $message .= __('Adios!');

        wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_option('blogname')), $message);

    }
}

ユーザー登録の承認には、このプラグインを使用しています。

カスタム フォームを使用してユーザーが登録したときにメールを送信し、管理者が承認したときにユーザーに通知するにはどうすればよいですか。

4

1 に答える 1