• Я создал произвольное поле для поста. Хотелось бы или при создании поста или его обновлении, если поле пустое остановить создание, обновление (чтобы не показывалось сообщение «Запись обновлена») и вывести сообщение об ошибке. Я написал код, но сообщение Запись обновлена выводится и сообщение об ошибке при пустом поле не выводится. Подскажите, пожалуйста, что не так в коде. Буду благодарен за любую помощь!

    class Event {

    public function __construct() {
    add_action( 'add_meta_boxes', [ __CLASS__, 'fields_event' ] );
    add_action( 'save_post', [ __CLASS__, 'save_update_event' ] );
    add_action( 'admin_notices', [ __CLASS__, 'show_error_message' ] );
    }

    static function fields_event() {
    add_meta_box(
    'fields_event',
    __( 'Event info', 'mantra-house' ),
    [ __CLASS__, 'content_box' ],
    'post',
    'side'
    );
    }

    static function content_box( $post ) {
    wp_nonce_field( 'save_event_meta', 'event_meta_nonce' ); ?>

    <div class="info-event">
    <label for="start-event">
    <?= __( 'Start of the event', 'mantra-house' ); ?>
    </label>
    <input
    id="start-event"
    type="datetime-local"
    name="start-event"
    value="<?= esc_attr( get_post_meta( $post->ID, 'start-event', true ) ); ?>">
    </div>

    <style>
    .postbox-header h2 {
    padding: 0 16px !important;
    }
    .info-event {
    margin-bottom: 15px;
    }
    .info-event label {
    display: block;
    margin-bottom: 5px;
    }
    </style>
    <?php
    }

    static function save_update_event( $post_id ) {

    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
    return;
    }

    if ( wp_is_post_revision( $post_id ) ) {
    return;
    }

    if ( !current_user_can( 'edit_post', $post_id ) ) {
    return;
    }

    if ( !isset( $_POST[ 'event_meta_nonce' ] ) || ! wp_verify_nonce( $_POST[ 'event_meta_nonce' ], 'save_event_meta' ) ) {
    return;
    }

    if ( !isset( $_POST[ 'start-event' ] ) ) {
    return;
    }

    $event_start = trim( $_POST[ 'start-event' ] );

    if ( !empty( $event_start ) ) {
    update_post_meta( $post_id, 'start-event', sanitize_text_field( $event_start ) );
    } else {

    add_filter( 'redirect_post_location', function( $location ) {
    return add_query_arg( 'event_error', 1, $location );
    } );

    return;
    }

    }

    static function show_error_message() {

    if ( isset( $_GET[ 'event_error' ] ) ) {
    echo '<div class="notice notice-error is-dismissible">';
    echo '<p>' . __( 'The "Start of the Event" field cannot be empty. Please fill it out.', 'mantra-house' ) . '</p>';
    echo '</div>';
    }

    }