Логотип 2 клика Петрозаводск
2 клика

digital-агентство

С 9 до 20, без выходных
логотип 2 клика
2 клика

digital-агентство

Contact form 7 — отправить или почту или телефон, одно из двух обязательно

Что бы сделать обязательным одно из полей — почту или телефон, но не обязательным и то и другое вместе, добавьте в форму поля

[text* user-name placeholder "Ваше имя *"]

[tel user-phone placeholder "Ваш телефон"]

[email user-email placeholder "Ваш e-mail"]

[submit "Отправить"]

[acceptance acceptance-991 optional default:on] <small>Отправляя заявку, Вы даете согласие на обработку своих персональных данных и соглашаетесь с <a href="/politika/" target="_blank" rel="noopener">политикой конфиденциальности</a></small> [/acceptance]

Шокрткод формы

[contact-form-7 id="9307" title="Скидка на модуль"]

Что бы работало на конкретной форме, надо взять id для проверки (в нашем случае 9307) и добавить код ниже в файл function.php

/**
 * 
 * Проверка обязательного ввода одного из двух полей в форме - почта или телефон
 */

add_filter( 'wpcf7_validate', 'dva_klika_form_validate', 10, 2 );

function dva_klika_form_validate( $result, $tags ) {
	if ( isset($_POST['_wpcf7']) && $_POST['_wpcf7'] == 9307) { // проверка конкретной формы по id
	
		$form = WPCF7_Submission::get_instance();
		
		// Получаем данные полей
		$email = $form->get_posted_data( 'user-email' );
		$phone = $form->get_posted_data( 'user-phone' );
		
		// Текст ошибки
		$error_msg = 'Заполните телефон или email';
		
		// Если оба поля не заполонены - выдать ошибку
		if ( empty( $phone ) && empty( $email ) ) {
			$result->invalidate( 'user-email', $error_msg );
			$result->invalidate( 'user-phone', $error_msg );
		}
		
		return $result;        
	} else {
		return $result;
	}   
}

Не работает? Не получается? Ничего не понятно? Пишите, если нужна помощь!

Мы поможем! Консультации бесплатны

Отправляя форму, вы соглашаетесь с политикой сайта

Читайте так же:

логотип 2 клика
2 клика

digital-агентство

Звоните, с 9 до 22, без выходных

Мы используем технологию Cookies что это