Intereting Posts
Получите все пользовательские сообщения с определенной таксономией WordPress делает дубликаты изображений разного размера Автоматически вставлять функцию php в post $ the_content meta_query сравнение даты и времени Сообщение об ошибке с сообщением об удалении сообщения переднего конца и успешное сообщение Создание многоуровневого ассоциативного объекта с использованием AJAX post_parent равно 0 при загрузке новых файлов в чем разница между uri и path? Локализация плагина WordPress NavXT Добавить параметры сайта UI в многосайтовых сайтах> Информация Как вернуть количество элементов, найденных в SQL-запросе Включить метабокс на экране «домашнего» пользовательского типа сообщения? Если нет, то на странице панели мониторинга? получить заголовок страницы, URL и выдержку страницы Как добавить 3 недели к функции the_time () Что такое zinging мои команды HTML? Я не думаю, что могу обвинить TinyMCE на этот раз …

Как добавить флажок и переключатель в страницу профиля

Мне понравилось настраивать мою страницу профиля, добавляя новые поля, чтобы получить больше информации от пользователя, например «Пол» или «Говорящие языки». Мне удалось получить текстовую форму ввода для работы, проблема, с которой я сейчас столкнулся, – это радио и флажок типа ввода. Вот мой код:

function my_user_field( $user ) { ?> <h3><?php _e('More About You'); ?></h3> <table class="form-table"> <tr> <th> <label for="Dealing Type"><?php _e('Gender'); ?> </label></th> <td><span class="description"><?php _e('Gender?'); ?></span><br> <label><input type="radio" name="dealing" value="Male">Male<br /></label> <label><input type="radio" name="dealing" value="Female">Female<br /></label> </td> </tr> <tr> <th> <label for="company"><?php _e('Company'); ?> </label></th> <td> <span class="description"><?php _e('Insert Your Company name'); ?></span><br> <input type="text" name="company" id="company" value="<?php echo esc_attr( get_the_author_meta( 'company', $user->ID ) ); ?>" class="regular-text" /><br /> </td> </tr> <tr> <th> <label for="language"><?php _e('Language'); ?> </label></th> <td><input type="checkbox" name="Engilsh" value="Malay" /> English<br /> <input type="checkbox" name="language" value="Mandarin" /> Mandarin<br /> </td> </tr> </table> <?php } function my_save_custom_user_profile_fields( $user_id ) { if ( !current_user_can( 'edit_user', $user_id ) ) return FALSE; update_usermeta( $user_id, 'gender', $_POST['gender'] ); update_usermeta( $user_id, 'company', $_POST['company'] ); update_usermeta( $user_id, 'language', $_POST['language'] ); } add_action( 'show_user_profile', 'my_user_field' ); add_action( 'edit_user_profile', 'my_user_field' ); add_action( 'personal_options_update', 'my_save_custom_user_profile_fields' ); add_action( 'edit_user_profile_update', 'my_save_custom_user_profile_fields' ); 

«Пол» и «Языки» не проходят через $ _post []. Я новичок в кодировании, надеюсь, что вы, ребята, можете помочь.

Вам не хватает «проверенного» значения для входов

 <input type="checkbox" name="language" <?php if (get_the_author_meta( 'language', $user->ID) == 'Mandarin' ) { ?>checked="checked"<?php }?> value="Mandarin" /> Mandarin<br /> 

Кроме того, usermeta имеет дело, но вы проверяете $_POST['gender']

Наконец, у вас должен быть один usermeta для английского и другого для мандарина, поскольку они не являются взаимно экслюзивными

[edit: рабочий код] [edit2: несколько языков]

 <?php $lingo = array('en' => 'English', 'md' => '普通話', 'es' => 'Español', 'fr' => 'Français', 'pt' => 'Português'); function my_user_field( $user ) { $gender = get_the_author_meta( 'dealing', $user->ID); $company = esc_attr( get_the_author_meta( 'company', $user->ID ) ); ?> <h3><?php _e('More About You'); ?></h3> <table class="form-table"> <tr> <th> <label for="Dealing Type"><?php _e('Gender'); ?> </label></th> <td><span class="description"><?php _e('Gender?'); ?></span><br> <label><input type="radio" name="dealing" <?php if ($gender == 'Male' ) { ?>checked="checked"<?php }?> value="Male">Male<br /></label> <label><input type="radio" name="dealing" <?php if ($gender == 'Female' ) { ?>checked="checked"<?php }?> value="Female">Female<br /></label> </td> </tr> <tr> <th> <label for="company"><?php _e('Company'); ?> </label></th> <td> <span class="description"><?php _e('Insert Your Company name'); ?></span><br> <input type="text" name="company" id="company" value="<?php echo $company; ?>" class="regular-text" /><br /> </td> </tr> <tr> <th> <?php _e('Language'); ?> </th> <td><?php global $lingo; foreach($lingo as $key => $value) { $code = 'language_'.$key; $lang = get_the_author_meta( $code, $user->ID); ?> <label><input type="checkbox" name="<?php echo $code; ?>" <?php if ($lang == 'yes' ) { ?>checked="checked"<?php }?> value="yes" /> <?php echo $value; ?></label><br /> <?php } ?> </td> </tr> </table> <?php } function my_save_custom_user_profile_fields( $user_id ) { if ( !current_user_can( 'edit_user', $user_id ) ) return FALSE; update_usermeta( $user_id, 'dealing', $_POST['dealing'] ); update_usermeta( $user_id, 'company', $_POST['company'] ); global $lingo; foreach($lingo as $key => $value) { $code = "language_".$key; update_usermeta( $user_id, $code, $_POST[$code] ); } } add_action( 'show_user_profile', 'my_user_field' ); add_action( 'edit_user_profile', 'my_user_field' ); add_action( 'personal_options_update', 'my_save_custom_user_profile_fields' ); add_action( 'edit_user_profile_update', 'my_save_custom_user_profile_fields' );