WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

wpcf7_form_action_url хук-фильтр . CF7 1.0

Позволяет изменить URL который указывается в атрибуте action="" формы Contact Form 7.

Ищем WP-разработчика! Фулл-тайм, удаленка, хорошая зарплата, соц. пакет. Подробности.
Компания Boosta.

Использование

add_filter( 'wpcf7_form_action_url', 'filter_function_name_549' );
function filter_function_name_549( $url ){
	// filter...

	return $url;
}
$url(строка)
Сгенерированный URL для формы. Создается функцией wpcf7_get_request_uri().

Примеры

#1 Исправим URL формы при ajax запросе

Например, мы используем аякс запрос, чтобы получить форму. Для этого в обработчике аякс запроса мы используем шорткод.

do_shortcode( '[contact-form-7 id="15" title="Контактная форма 1"]' )

Для созданной формы функция wpcf7_get_request_uri() возмет текущий url запроса, а так как это аякс запрос, там будет URL этого аякс запроса, например такой:

/wp-admin/admin-ajax.php?action=ajaxs_action&ajaxs_nonce=f7f4e21bdf&jxs_act=ajaxs_render_event#wpcf7-f90-o2

Но нам нужно получить относительный #wpcf7-f90-o2. Для этого перед вызовом шорткода можно добавить фильтр, который изменить получаемый URL на нужный нам. В фильтре удалим текущий URL запроса, оставив, только хэш

// функция создания формы
function render_callback_form(){

	$callback = '
		<div id="callback_form" class="dialog" style="display: none">
			<div class="menu__search-modal fancybox-content" id="callback" style="display: inline-block;">
				<a href="#" class="link close">✕</a>
				<div class="callback">Заказ обратного звонка</div>
				' . do_shortcode('[contact-form-7 id="15" title="Контактная форма 1"]') . '
			</div>
		</div>';

	return $callback;
}

// Обработчик аякс запроса
function ajaxs_render_event(){

	// поправим URL формы
	add_filter( 'wpcf7_form_action_url', function( $url ){

		// удалим из URL текущий запрос
		$url = str_replace( wpcf7_get_request_uri(), '/', $url );

		return $url;
	} );

	echo render_callback_form();
}

Где вызывается хук

WPCF7_ContactForm::form_html()
wpcf7_form_action_url
contact-form-7/includes/contact-form.php 501
$url = apply_filters( 'wpcf7_form_action_url', $url );

Где используется хук в ядре Contact Form 7

Использование не найдено.
Комментариев нет
    Войти