Intereting Posts
Показывать содержимое, если установлен флажок Meta Checkbox? get_post_terms не работает должным образом Пользовательский тип сообщения и URL-адрес разница между запросом базы данных и использованием цикла current_user_can не всегда работает должным образом Кнопка «Сохранить изменения» WooCommerce появляется внутри пользовательских настроек WordPress + JavaScipt + AJAX + MySQL: вставить запрос для формы Содержимое домашней страницы зависит от пользовательских значений полей (устанавливается автоматически), как мне получить домашнюю страницу для обновления без ручной страницы обновления? Пользовательская разбивка на страницы в коротком коде с WP_Query Какие проблемы безопасности следует учитывать при настройке FS_METHOD на «direct» в wp-config? Запустить Google CDN jQuery в нижнем колонтитуле upload_async.php возвращает 500 ошибок Автоматическое создание сообщения с последними 10 изображениями в каталоге WordPress Макет полной ширины для пользовательских страниц типа сообщения PHP Устарел: нестатический метод не следует называть статическим

Пользовательское поле профиля с днем ​​рождения. Проблемы с <select>

Я сделал настраиваемые поля профиля для данных дня рождения.

function my_user_field( $user ) { $birthday_day = esc_attr( get_the_author_meta( 'birthday_day', $user->ID ) ); $birthday_month = esc_attr( get_the_author_meta( 'birthday_month', $user->ID ) ); $birthday_year = esc_attr( get_the_author_meta( 'birthday_year', $user->ID ) ); ?> <h3><?php _e('More About You'); ?></h3> <table class="form-table"> <tr> <th> <label for="birthday"><?php _e('Birthday'); ?> </label></th> <td> <span class="description"><?php _e('When is your birthday?'); ?></span><br> <form action=""> <select name="birthday_day" id="birthday_day"> <?php for ($i=1; $i<=31; $i++) { echo '<option value="'; echo $i; echo '"'; if ($birthday_day == $i ) { echo 'selected'; } echo' >'; echo $i; echo'</option>'; }; ?> </select> <select name="birthday_month" id="birthday_month" onchange="updateDays();"> <option value="1" <?php if ($birthday_month == '1') { ?>selected<?php }?> >January</option> <option value="2" <?php if ($birthday_month == '2' ) { ?>selected<?php }?> >February</option> <option value="3" <?php if ($birthday_month == '3' ) { ?>selected<?php }?> >March</option> <option value="4" <?php if ($birthday_month == '4' ) { ?>selected<?php }?> >April</option> <option value="5" <?php if ($birthday_month == '5' ) { ?>selected<?php }?> >May</option> <option value="6" <?php if ($birthday_month == '6' ) { ?>selected<?php }?> >June</option> <option value="7" <?php if ($birthday_month == '7' ) { ?>selected<?php }?> >July</option> <option value="8" <?php if ($birthday_month == '8' ) { ?>selected<?php }?> >August</option> <option value="9" <?php if ($birthday_month == '9' ) { ?>selected<?php }?> >September</option> <option value="10" <?php if ($birthday_month == '10' ) { ?>selected<?php }?> >October</option> <option value="11" <?php if ($birthday_month == '11' ) { ?>selected<?php }?> >November</option> <option value="12" <?php if ($birthday_month == '12' ) { ?>selected<?php }?>>December</option> </select> <select name="birthday_year" id="birthday_year" onchange="updateDays();"> <?php for ($i=2010; $i>1930; $i--) { echo '<option value="'; echo $i; echo '"'; if ($birthday_year == $i ) { echo 'selected'; } echo' >'; echo $i; echo'</option>'; }; ?> </select> </form> </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, 'birthday_day', $_POST['birthday_day'] ); update_usermeta( $user_id, 'birthday_month', $_POST['birthday_month'] ); update_usermeta( $user_id, 'birthday_year', $_POST['birthday_year'] ); } 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' ); 

И это нормальное сохранение db, но есть сбой. Я могу выбрать, например, «31 февраля», и это плохо. Как я могу сделать для них проверку? Я хочу, если бы пользователь выбрал «31 февраля» и отправил форму, тогда его дата будет сохранена как «28 февраля», но если выбранный год – високосный год, то «29 февраля».

Я знаю, что можно сделать более гибкую форму с помощью javascript, но как это сделать с помощью PHP?

Solutions Collecting From Web of "Пользовательское поле профиля с днем ​​рождения. Проблемы с <select>"

На самом деле это не вопрос WP, но: насколько PHP идет, функция, которую вы ищете, – checkdate () . Тем не менее, вы действительно должны также сделать что-то клиентское (то есть JS) для пользователя.