Using WordPress ‘profile_personal_options’ PHP action

The profile_personal_options WordPress action fires after the ‘Personal Options’ settings table on the ‘Profile’ editing screen, and only if the current user is editing their own profile.

Usage

add_action('profile_personal_options', 'your_custom_function_name');
function your_custom_function_name($profile_user) {
    // Your custom code here
}

Parameters

  • $profile_user (WP_User) – The current WP_User object.

More information

See WordPress Developer Resources: profile_personal_options

Examples

Add a custom field to the personal options

This example adds a custom field for the user’s favorite color to the personal options section.

add_action('profile_personal_options', 'add_favorite_color_field');
function add_favorite_color_field($profile_user) {
    $favorite_color = get_user_meta($profile_user->ID, 'favorite_color', true);
    ?>
    <tr>
        <th scope="row">Favorite Color</th>
        <td>
            <input type="text" name="favorite_color" id="favorite_color" value="<?php echo esc_attr($favorite_color); ?>" />
        </td>
    </tr>
    <?php
}

Save custom field data

This example saves the custom field data when the profile is updated.

add_action('personal_options_update', 'save_favorite_color_field');
function save_favorite_color_field($user_id) {
    if (current_user_can('edit_user', $user_id)) {
        update_user_meta($user_id, 'favorite_color', sanitize_text_field($_POST['favorite_color']));
    }
}

Add a custom message after the personal options

This example adds a custom message after the personal options section.

add_action('profile_personal_options', 'add_custom_message');
function add_custom_message($profile_user) {
    echo '<p>Your custom message goes here.</p>';
}

Add custom CSS to style the personal options

This example adds custom CSS to style the personal options section.

add_action('admin_head-profile.php', 'add_custom_css');
function add_custom_css() {
    echo '<style>
        /* Your custom CSS here */
    </style>';
}

Add a custom JavaScript to the personal options

This example adds custom JavaScript to the personal options section.

add_action('admin_footer-profile.php', 'add_custom_js');
function add_custom_js() {
    echo '<script>
        // Your custom JavaScript here
    </script>';
}