wpcf7_skip_mail
- это фильтр, который контролирует отправку письма при сабмите формы. Фильтр может возвращать
true
(письмо не будет отправлено) или
false
(письмо будет отправлено). Вся остальная логика работы обработчика формы не меняется. Если именно такое поведение вам нужно - тогда работайте с ним.
Ваша проверка не работает, потому что переменная
$a
находится вне области видимости функции
maybe_skip_mail()
. Это приводит к тому, что PHP генерирует ошибку, которая выводится в ответе и ломает формат этого самого ответа - поэтому кружочек и крутится.
function maybe_skip_mail( $skip_mail )
{
if ( ! empty( $_POST['your_field_name'] ) ) {
// Use appropriate sanitization method.
$value = sanitize_text_field( $_POST['your_field_name'] );
// Check whether this value already exists in the database.
$result = ... // Your query here. Must return boolean.
return $result;
}
return $skip_mail;
}
add_filter( 'wpcf7_skip_mail', 'maybe_skip_mail' );
Это основа, поиск номера в базе думаю сами сделаете.