重力フォームページがあります。フォームに記入した後、確認ページが表示されます。
この設定の問題点は、次のとおりです。誰かがフォームに記入して確認ページに移動し、その後サイトを離れたとしましょう。後で彼らは確認ページから別のファイルをダウンロードする必要があることを覚えています。彼らはサイトに戻ってきて、もう一度フォームに記入しなければなりません。
重力フォームには、Cookieを指定したり、ユーザーが既にフォームに記入したことを示すものや、確認ページに直接移動するためのオプションがありますか
Gravityフォームのgform_after_submission
フックを利用して送信されたフォームIDに基づいてクッキーを設定し、確認ページでそれをtemplate_redirect
にフックして確認する方法についてのコードを次に示します。
機能をカスタマイズするには、 setcookie
、 gform_after_submission
、および template_redirect
のドキュメントを調べてください。
フォームの場合
// Make sure to swap out {your_form_id} with the ID of the form.
add_action( 'gform_after_submission_{your_form_id}', 'wpse_set_submitted_cookie', 10, 2 );
function wpse_set_submitted_cookie( $entry, $form ) {
// Set a third parameter to specify a cookie expiration time,
// otherwise it will last until the end of the current session.
setcookie( 'wpse_form_submitted', 'true' );
}
ページの場合
add_action( 'template_redirect', 'wpse_protect_confirmation_page' );
function wpse_protect_confirmation_page() {
if( is_page( 'my-confirmation-page' ) && ! isset( $_COOKIE['wpse_form_submitted'] ) ) {
wp_redirect( home_url( '/my-form/' ) );
exit();
}
}
これはそれにかなり近いです。
http://gravitywiz.com/submit-gravity-form-access-content/ /
あなたのシナリオとに基づいて、あなたの確認内容が静的であると仮定して、あなたはあなたの望む内容でWordPressページをセットアップするでしょう。その後、ユーザーがそのコンテンツにアクセスするためのフォームを送信する必要があるように、スニペットを構成します。それ以降の訪問では、ユーザーがすでに送信している場合は、コンテンツを(フォームなしで)表示するだけです。