У меня есть многоэтапная форма, созданная с помощью Gravity Forms. После успешного завершения я настроил перенаправление, чтобы пользователь отправлялся на страницу продукта WooCommerce. Я хочу, чтобы это был единственный способ доступа к этой странице, поскольку им необходимо заполнить форму, прежде чем им будет разрешено приобрести продукт. Им не нужно регистрироваться на сайте, поэтому членские роли не могут быть использованы.
Кто-нибудь знает, как я могу это сделать?
Буду признателен за любую оказанную помощь.
Есть несколько способов сделать это. Простой (но очень неуклюжий) способ — защитить паролем страницу продукта, а затем предоставить пароль пользователю через подтверждающее сообщение формы. Это не идеальный пользовательский опыт …
Альтернативное решение — установить куки при отправке формы. На странице Product вы можете установить фильтр через хук WordPress «the_content», чтобы показать / скрыть содержимое страницы в зависимости от того, установлен ли этот cookie. я имею потрясающий плагин Gravity Forms для этого, но вот основы:
Установить Cookie на отправку формы
add_action( 'gform_pre_submission', 'set_form_submitted_cookie' );
function set_form_submitted_cookie( $form ) {
setcookie( 'gf_form_submitted', $form['id'], null, '/' );
}
Проверьте, существует ли Cookie
add_filter( 'the_content', 'maybe_hide_the_content' );
function maybe_hide_the_content( $content ) {
if( ! isset( $_COOKIE['gf_form_submitted'] ) ) {
$content = 'You do not have access to this page.'
}
return $content;
}
Все завернуто с красивым бантом
Если вы не хотите трогать какой-либо код, я упаковал его в более надежный плагин. Вы можете прочитать больше об этом здесь:
Других решений пока нет …