ワードプレスのwp_password_change_notificationアクションの使用方法・解説

概要

wp_password_change_notification アクションは、ユーザーが自分のパスワードを変更した際に、管理者にその変更を通知するために使用されるフックです。このアクションは、パスワード変更をトリガーとして、管理者に対して何らかの処理を実行する場合によく使用されます。以下のような機能を実装する際に役立ちます。

  1. 管理者へのパスワード変更通知メールの送信
  2. ログイン監視システムへの通知
  3. セキュリティアラートのログ記録
  4. ユーザートラッキングシステムへの情報送信
  5. パスワード変更後のユーザーフィードバック促進
  6. パスワード変更の履歴管理
  7. システム監査用ログの作成
  8. 不正アクセス試行の記録

構文

add_action('wp_password_change_notification', 'custom_function_name', 10, 1);

パラメータ

  • $USER: パスワードを変更したユーザーオブジェクト。

戻り値

このアクション自体には戻り値はありませんが、関連する関数内での処理結果に応じて何らかのアクションを実行します。

関連する関数

wp_password_change_notification

使用可能なバージョン

このアクションはWordPress 4.0以降で使用可能です。

コアファイルのパス

wp-includes/user.php

サンプルコード

サンプルコード1: 管理者へのパスワード変更通知メールの送信

このコードは、ユーザーがパスワードを変更した際に、管理者に通知メールを送信します。

add_action('wp_password_change_notification', 'notify_admin_on_password_change', 10, 1);

function notify_admin_on_password_change($user) {
    $admin_email = get_option('admin_email');
    $subject = 'パスワードが変更されました';
    $message = sprintf('%sのパスワードが変更されました。', $user->display_name);
    wp_mail($admin_email, $subject, $message);
}

サンプルコード2: パスワード変更をログに記録

このコードは、パスワードが変更された日時をカスタムログファイルに記録します。

add_action('wp_password_change_notification', 'log_password_change', 10, 1);

function log_password_change($user) {
    $log = sprintf("[%s] %sのパスワードが変更されました。n", date('Y-m-d H:i:s'), $user->user_login);
    file_put_contents(__DIR__ . '/password_changes.log', $log, FILE_APPEND);
}

サンプルコード3: セキュリティコンプライアンスのための通知

このコードは、特定のセキュリティ監視サービスに対してパスワード変更を通知します。

add_action('wp_password_change_notification', 'send_security_alert', 10, 1);

function send_security_alert($user) {
    $url = 'https://security-service.example.com/notify';
    $data = ['username' => $user->user_login, 'changed_at' => time()];
    wp_remote_post($url, array('body' => $data));
}

サンプルコード4: ユーザーにカスタムメッセージを表示

このコードは、パスワード変更後にユーザーに特定のメッセージを表示します。

add_action('wp_password_change_notification', 'display_message_after_password_change', 10, 1);

function display_message_after_password_change($user) {
    add_action('user_profile_update_errors', function($errors) {
        $errors->add('password_changed', 'パスワードが正常に変更されました。');
    });
}

サンプルコード5: パスワード変更リクエストを記録

このコードはパスワード変更リクエストを管理画面で確認できるカスタムテーブルに記録します。

add_action('wp_password_change_notification', 'record_password_change_request', 10, 1);

function record_password_change_request($user) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'password_change_requests';
    $wpdb->insert($table_name, array('user_id' => $user->ID, 'changed_at' => current_time('mysql')));
}

この関数のアクションでの使用可能性

アクション名 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

wp_password_change_notificationアクションは、他のアクションでの使用例は確認されていません。このアクションは特定のバージョンで非推奨または削除されていません。

この関数について質問する


上の計算式の答えを入力してください