профиль пользователя для пользовательского кода

Я добавил этот фрагмент кода к своим функциям.php

//hooks add_action( 'show_user_profile', 'Add_user_fields' ); add_action( 'edit_user_profile', 'Add_user_fields' ); function Add_user_fields( $user ) { ?> <h3 class="sizeShapeH3">Select Chapters</h3> <table class="form-table"> <tr> <th><label for="dropdown" >MPF Chapters </label></th> <td> <?php $topselected= get_the_author_meta( 'user_top', $user->ID ); ?> <select name="user_top" id="user_top"> <option value="MPF Pune Central:" <?php echo ($topselected == "MPF Pune Central:")? 'selected="selected"' : '' ?>>MPF Pune Central:</option> <option value="MPF Pune East:" <?php echo ($topselected == "MPF Pune East:")? 'selected="selected"' : '' ?>>MPF Pune East:</option> <option value="MPF Pune West:" <?php echo ($topselected == "MPF Pune West:")? 'selected="selected"' : '' ?>>MPF Pune West:</option> <option value="MPF Pune South:" <?php echo ($topselected == "MPF Pune South:")? 'selected="selected"' : '' ?>>MPF Pune South:</option> <option value="MPF PCMC:" <?php echo ($topselected == "MPF PCMC:")? 'selected="selected"' : '' ?>>MPF PCMC:</option> </select> </td> </tr> </table> <?php } add_action( 'personal_options_update', 'save_user_fields' ); add_action( 'edit_user_profile_update', 'save_user_fields' ); function save_user_fields( $user_id ) { if ( !current_user_can( 'edit_user', $user_id ) ) return false; //save top update_usermeta( $user_id, 'user_chapters', $_POST['user_chapters'] ); } 

Теперь я вижу раскрывающийся список главы в профиле пользователя. но он не сохраняется при изменении главы пользователя. Например: из приведенного выше списка, если я выбираю MPF Pune East и нажимаю кнопку «Обновить профиль», я снова вижу MPF Pune Central по умолчанию. Кажется, он не сохраняется, когда мы нажимаем кнопку «Обновить профиль». есть ли у нас что-то еще, чтобы спасти его?

Solutions Collecting From Web of "профиль пользователя для пользовательского кода"

Я вижу

$topselected= get_the_author_meta( 'user_top', $user->ID ); ,

здесь вы используете « user_top » как мета-ключ, но при обновлении вы используете « user_chapter »,

update_usermeta( $user_id, 'user_chapters', $_POST['user_chapters'] );

Любое name вы предоставляете в <select name="user_top" id="user_top"> , должно использоваться в $_POST['']

Итак, здесь вы используете « user_top » в качестве своего имени, поэтому оно будет $_POST['user_top']