私はpassword_resetがフックすることを知っています:
Runs after the user submits a new password during password reset
but before the new password is actually set.
しかし、同様のフックがあります _ _の後 /新しいパスワードが実際に設定されている?
編集:それはprofile_updateを使用することは論理的だろうが、私は試してみました、そして、profile_updateは、例えば「パスワードを失った」手順のためのパスワード変更の場合には呼ばれないようです。私の本当の問題はパスワードリセット後の自動ログインであり、これまでに発見された唯一の解決策は私のコードを実行する前に手動でwp_set_passwordを呼び出すpassword_resetフックを使用することでした。これはきれいな手順ではありません、そして 'ハック'の少ない解決策があるかどうか私は思っています...私はwordpress docのすべてのアクションフックを見ながらたくさん探しましたが、私は適切な解決策を見つけることができません。
あなたが探しているのだろうか これ :
/**
* Fires after the user's password is reset.
*
* @since 4.4.0
*
* @param object $user The user.
* @param string $new_pass New user password.
*/
do_action( 'after_password_reset', $user, $new_pass );
これはWordPress 4.4で導入され、reset_password()
関数内にあります。 after_password_reset
フックはwp_set_password()
の後に起動します。
これはテスト前の4.4以前の回避策のアイデアです。
/**
* Support for the 'after_password_reset' hook in WordPress pre 4.4
*/
add_action( 'password_reset', function( $user, $new_pass )
{
add_filter( 'pre_option_admin_email',
function( $pre_option, $option ) use ( $user, $new_pass )
{
// Setup our 'after_password_reset' hook
if( ! did_action( 'after_password_reset' ) )
do_action( 'after_password_reset', $user, $new_pass );
return $pre_option;
} 10, 2 );
}, 10, 2 );
ここであなたはあなた自身のカスタムafter_password_reset
フックを持つべきです。
テストの前に backup databaseを忘れないでください。