JustPaste.it

add_filter(
    'hivepress/v1/forms/listing_update/errors',
    function( $errors, $form ) {
        $current_listing_id = $form->get_model()->get_id();
        
        // Check messengera_address
        $messengera_address = $form->get_value( 'messengera_address' );
        if ( $messengera_address ) {
            $listing_id = \HivePress\Models\Listing::query()->filter(
                [
                    'status__in' => [ 'draft', 'pending', 'publish' ],
                ]
            )->set_args(
                [
                    'meta_key'   => 'hp_messengera_address',
                    'meta_value' => $messengera_address,
                ]
            )->get_first_id();
            if ( $listing_id && $listing_id !== $current_listing_id ) {
                $errors['messengera_address'] = 'This messengera_address address is already listed.';
            }
        }

        // Check messengerb_address
        $messengerb_address = $form->get_value( 'messengerb_address' );
        if ( $messengerb_address ) {
            $listing_id = \HivePress\Models\Listing::query()->filter(
                [
                    'status__in' => [ 'draft', 'pending', 'publish' ],
                ]
            )->set_args(
                [
                    'meta_key'   => 'hp_messengerb_address',
                    'meta_value' => $messengerb_address,
                ]
            )->get_first_id();
            if ( $listing_id && $listing_id !== $current_listing_id ) {
                $errors['messengerb_address'] = 'This messengerb_address address is already listed.';
            }
        }

        return $errors;
    },
    10,
    2
);