左坊のメモ帳

WordPress など

*

「Members Import」ユーザーを一括csv登録してメール送信する方法

   

しろやぎさんからお手紙ついた?

WordPress の Members Import で mail が does not send な件。

ユーザー情報をcsvファイルから一括登録できるプラグイン「Members Import」。
ユーザー登録自体は全く問題なく完了したのですが、登録されたユーザーに送信されるはずのメールが全く送信されません。

いろいろ調べた結果、なんとかメール送信されるようになりましたので、そのメモです。

スポンサーリンク

修正方法

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の仕様が少し変わったそうです。

https://github.com/websharks/s2member/issues/732

wp_new_user_notification関数自体は、以下のファイルで定義されていますが、

wp-includes/pluggable.php

引数の数が2つから3つになった、と。

呼び出し側では2つしか渡していなかったので3つ目を追加し、無事メール受信。

パスワードが未設定の場合は、パスワード生成ページのリンクを作成して、登録ユーザーへメールする、という仕様のようです。
なので、パスワード含めてcsvで一括登録した場合はそもそも送信されない、かもしれません。

 - WordPress, トラブル