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 не совпадают и не дать зарегистрироваться пользователю, пока он не укажет правильное значение?
Вы не имеете права на публикацию сообщений в этой теме
 
                     
                    
                    
                 
                