Хорошо, у меня есть следующий php, который работает нормально, поскольку в нем выполняется IF, но независимо от того, что я делаю, я не могу получить сообщение bp_core для запуска на экране, это просто дает мне изменения, сохраненные в сообщении … почему то, что я делать не так!
function valid_postcode ($self) { $getFieldID = $self->field_id; $PostCodeFieldID = 23; $postcodecheck = $_POST['field_23']; if ( $getFieldID == $PostCodeFieldID || $postcodecheck == ''){ $GetValuePost = $self->value; $regex = '/[az][0-9][az][- ]?[0-9][az][0-9]$/i'; if(!preg_match($regex, $GetValuePost)) { bp_core_add_message( __( 'That Postcode is invalid. Check the formatting and try again.', 'buddypress' ), 'error' ); }elseif (!isset($getFieldID)) { bp_core_add_message( __( 'You need to fill out the post code.', 'buddypress' ), 'error' ); } } } add_action( 'xprofile_data_before_save', 'valid_postcode', 1, 1 );