3ответ(ов) в теме
Здравствуйте!
Помогите доделать код, проблема в том, что если в value ввести другое значение, через редактирование кода, то функция не добавит нужное значение в usermeta пользователя при регистрации и не выведет ошибки о том, что пользователь не выбрал нужный параметр.
Планировалось, что будут добросовестные пользователи и если при реге не выбирают этот параметр, то функция видит не заполненное поле и выводит свою вп ошибку, но введя левое значение в value, функция видит, что input не пустой, ошибку не выводит, позволяет создать пользователя, но не записывает в usermeta ключ color.
function register_form_more() { $color = ( ! empty( $_POST['color'] ) ) ? trim( $_POST['color'] ) : ''; $color = get_the_author_meta('color',$user->ID ); ?> <div><input value="Black" name="color" type="radio" /> Black</div> <div><input value="White" name="color" type="radio" /> White</div> <?php } add_action( 'register_form', 'register_form_more' ); function register_form_plus_errors( $errors, $sanitized_user_login, $user_email ) { if ( empty( $_POST['color'] ) || ! empty( $_POST['color'] ) && trim( $_POST['color'] ) == '' ) { $errors->add( 'color_error', "Вы не указали цвет!" ); } return $errors; } add_filter( 'registration_errors', 'register_form_plus_errors', 10, 3 ); // здесь проверяем, совпадают ли выбранный пункт, если нет, то не сохраняем в бд function register_form_plus( $user_id ) { if ( ! empty( $_POST['color'] == 'Black')) { update_user_meta( $user_id, 'color', $_POST['color'] ); } elseif ( ! empty( $_POST['color'] == 'White')) { update_user_meta( $user_id, 'color', $_POST['color'] ); } } add_action( 'user_register', 'register_form_plus' );
Как сделать, чтобы ошибка выходила, если value не совпадают и не дать зарегистрироваться пользователю, пока он не укажет правильное значение?
Вы не имеете права на публикацию сообщений в этой теме