概要
wp_password_change_notification
アクションは、ユーザーが自分のパスワードを変更した際に、管理者にその変更を通知するために使用されるフックです。このアクションは、パスワード変更をトリガーとして、管理者に対して何らかの処理を実行する場合によく使用されます。以下のような機能を実装する際に役立ちます。
- 管理者へのパスワード変更通知メールの送信
- ログイン監視システムへの通知
- セキュリティアラートのログ記録
- ユーザートラッキングシステムへの情報送信
- パスワード変更後のユーザーフィードバック促進
- パスワード変更の履歴管理
- システム監査用ログの作成
- 不正アクセス試行の記録
構文
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
アクションは、他のアクションでの使用例は確認されていません。このアクションは特定のバージョンで非推奨または削除されていません。