今、取りかっかている案件でパスワード再発行のページを作っている。作っててなんで?と思った事があったのでメモ!!
ユーザー名またはメールアドレスで登録されているユーザーかどうか確認後、登録されていれば、乱数のパスワードを自動生成させてメールでユーザーに送った後にwp_update_userでデータベースのパスワードを発行した乱数に書き換える。
ここまで、問題なく作ったけど、テストすると「Warning: Cannot modify header information – headers already sent by 〜」のエラー
えっ???
ヘッダーに何もスペースとかないけど???
と思ったのでグッグッてみたら海外のWordPressフォーラムに書いてあった!
「wp_update_userは、パスワードを更新した際に、クッキーをリセットしようとします。
PHPの関数setcookie()クッキークリアとクッキー・リセットは、ページのヘッダーに追加されます。したがって、get_header()の前にwp_update_user()を呼び出す必要があります。 」
みたいなことが書いてあった。
なるほど・・・・
wp_update_userの後にget_headerやらなきゃいけないのね!
ということで、無事に完成!!