Изменение данных пользователя WordPress
Можно ли каким-то образом заменить данные пользователя в админке.
Мне нужно, чтобы вместо стандартных first_name/last_name пользователь мог вводить фамилию, имя, отчество, дату рождения и паспортные данные.
Можно ли каким-то образом заменить данные пользователя в админке.
Мне нужно, чтобы вместо стандартных first_name/last_name пользователь мог вводить фамилию, имя, отчество, дату рождения и паспортные данные.
Плагин WP-Recall. у него есть такая замечательная фишка как поля профиля https://wordpress.org/plugins/wp-recall/
Ну что вы, сударь, это же из пушки по воробьям. Мне просто нужно заменить поля в профиле. Ну есть же фильтр user_contactmethods который позволяет профильтровать массив полей контактных данных. Хорошо бы что-то подобное для личных данных.
Для изменения хуков нет. И сделать это проще всего, просто скрыв их через CSS и добавить свои поля. Вот статья, как добавить произвольные поля на страницу редактирования пользователя (англ.).
Если коротко в коде то так:
<?php ## Добавляем данные на страницу редактирования профиля. add_action( 'show_user_profile', 'yoursite_extra_user_profile_fields' ); add_action( 'edit_user_profile', 'yoursite_extra_user_profile_fields' ); function yoursite_extra_user_profile_fields( $user ) { ?> <h3><?php _e("Extra profile information", "blank"); ?></h3> <table class="form-table"> <tr> <th><label for="phone"><?php _e("Phone"); ?></label></th> <td> <input type="text" name="phone" id="phone" class="regular-text" value="<?php echo esc_attr( get_the_author_meta( 'phone', $user->ID ) ); ?>" /><br /> <span class="description"><?php _e("Please enter your phone."); ?></span> </td> </tr> </table> <?php } ## Сохраняем данные при сохранении add_action( 'personal_options_update', 'yoursite_save_extra_user_profile_fields' ); add_action( 'edit_user_profile_update', 'yoursite_save_extra_user_profile_fields' ); function yoursite_save_extra_user_profile_fields( $user_id ) { $saved = false; if ( current_user_can( 'edit_user', $user_id ) ) { update_user_meta( $user_id, 'phone', $_POST['phone'] ); $saved = true; } return true; }2 Выводим во фронте