概要
wp_update_user
アクションは、ユーザー情報を更新する際に使用されるフックです。このアクションは特に、ユーザーのプロフィールや役割を変更する際に便利です。以下のようなシナリオでよく使用されます。
- ユーザーのロールを変更する
- ユーザーのメタデータを更新する
- 他のプラグインと連携してユーザーに関連するデータを更新する
- ユーザー登録後に自動的に情報を追加する
- ユーザーアクティビティをトラッキングする
- フロントエンドからのユーザー情報更新に対応する
- 管理画面でのユーザー情報の変更をフックする
- 外部APIを介してユーザー情報を取得・更新する
構文
do_action('wp_update_user', $user_id, $old_user_data);
パラメータ
$user_id
(int) – 更新するユーザーのID。$old_user_data
(WP_User) – 更新前のユーザーデータ。
戻り値
このアクション自体は戻り値を持たず、呼び出された際に他のコールバック関数を実行します。
関連する関数
バージョン
wp_update_user
アクションは、WordPress 2.0.0で追加されました。現在のバージョンでは非推奨や削除されていません。
コアファイルのパス
wp-includes/user.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |
サンプルコード
サンプル1: ユーザーのロールを変更する
このコードは、ユーザーが更新された後にそのユーザーのロールを変更します。
add_action('wp_update_user', 'change_user_role');
function change_user_role($user_id) {
$user = new WP_User($user_id);
$user->set_role('editor');
}
引用元: https://developer.wordpress.org/reference/functions/wp_update_user/
サンプル2: ユーザーメタを追加する
ユーザー情報が更新されたら、特定のメタフィールドも追加します。
add_action('wp_update_user', 'add_user_meta_on_update');
function add_user_meta_on_update($user_id) {
add_user_meta($user_id, 'custom_meta_key', 'example_value', true);
}
引用元: https://developer.wordpress.org/reference/functions/wp_update_user/
サンプル3: 更新されたユーザーのログを記録
このコードは、ユーザー情報が更新された際の情報をログにつけます。
add_action('wp_update_user', 'log_user_update');
function log_user_update($user_id) {
error_log('User ' . $user_id . ' was updated.');
}
引用元: https://developer.wordpress.org/reference/functions/wp_update_user/
サンプル4: パスワード変更時に通知を送信
このコードは、ユーザーのパスワードが変更された場合に通知を送信します。
add_action('wp_update_user', 'notify_password_change', 10, 2);
function notify_password_change($user_id, $old_user_data) {
if (!empty($_POST['pass1']) && $_POST['pass1'] !== $old_user_data->user_pass) {
wp_mail($old_user_data->user_email, 'Password Changed', 'Your password has been changed.');
}
}
引用元: https://developer.wordpress.org/reference/functions/wp_update_user/
サンプル5: ユーザー更新後のカスタム処理
このコードでは、ユーザーが更新された際に特定の動作を実行します。
add_action('wp_update_user', 'custom_user_update_action');
function custom_user_update_action($user_id) {
// ユーザーが更新された後のカスタム処理
// 例えば、外部APIにユーザー情報を送信する
}
引用元: https://developer.wordpress.org/reference/functions/wp_update_user/