WordPress の Members Import で mail が does not send な件。
ユーザー情報をcsvファイルから一括登録できるプラグイン「Members Import」。
ユーザー登録自体は全く問題なく完了したのですが、登録されたユーザーに送信されるはずのメールが全く送信されません。
いろいろ調べた結果、なんとかメール送信されるようになりましたので、そのメモです。
[adsense]
修正方法
wp-content/plugins/members-import/members-import.phpの中身を1カ所だけ修正したら、メール送信されるようになりました。
修正箇所は以下の1カ所です。
Before
wp_new_user_notification( $user_id, $userdata[‘user_pass’] );
After
wp_new_user_notification( $user_id, $userdata[‘user_pass’],1 );
メールが送信されない理由
wordpress4.3.1のアップデートで、メール送信部分の関数wp_new_user_notificationの仕様が少し変わったそうです。
WordPress 4.3.1 changed wp_new_user_notification() again, conflicting s2member v150827 · Issue #732 · wpsharks/s2member
The change in WordPress 4.3.1 wp_new_user_notification() pluggable function effectively undoes the fix in the latest s2member version, which was extensively dis...
wp_new_user_notification関数自体は、以下のファイルで定義されていますが、
wp-includes/pluggable.php
引数の数が2つから3つになった、と。
呼び出し側では2つしか渡していなかったので3つ目を追加し、無事メール受信。
パスワードが未設定の場合は、パスワード生成ページのリンクを作成して、登録ユーザーへメールする、という仕様のようです。
なので、パスワード含めてcsvで一括登録した場合はそもそも送信されない、かもしれません。
コメント