WordPress お問い合わせフォームから質問の回答に応じて別のページに移動したい場合があります。 たとえば、アンケートの作成者の選択によって、「マーケティング」、「カスタマーサポート」、または他の部門のページやサイトに移動したい場合があります。 このような状況では、WPFormsやQuformなどのコンタクトフォームプラグインを使用して、特定のアイテムの回答に従って目的の場所にリダイレクトできます。
WPFormsプラグインを使用して質問の回答に基づいて、他のページやサイトに移動させる
WPFormsは300万個以上のサイトに使用されている無料のコンタクトフォームのプラグインです。 無料版では、機能に制限がありますが、シンプルなお問い合わせフォームを WordPress サイトにつけてたいときに使用することができます。
WPFormsでは、次のようなコードをテーマの関数ファイルに追加して、特定の項目への回答に基づいて目的のページまたはサイトに移動させることができます。
// 질문의 답변에 따라 다른 페이지 또는 사이트로 이동시키기
/**
* WPForms: Conditional form redirects based on field value. 필드 값에 따라 조건부 리디렉션
*
* @param string $url URL form will redirect to
* @param int $form_id Form ID
* @param array $fields Submitted form fields
* @return string
*/
function wpf_custom_redirect( $url, $form_id, $fields ) {
// Only consider changing the redirect if its for form #50
if ( '50' == $form_id ) {
// In the example below, we look at the submitted value for field #5
// If that value is "test", then we change the redirect URL
if ( !empty( $fields['5']['value'] ) && 'test' == $fields['5']['value'] ) {
$url = 'https://wpforms.com';
}
}
return $url;
}
add_filter( 'wpforms_process_redirect_url', 'wpf_custom_redirect', 10, 3 );
// 출처: https://gist.github.com/slaFFik/ff355fe1d3f2ba8670691852112b5912
上記のコードではform_idは、実際のフォームIDに変更する必要があります。 そしてfield IDもそのフィールドIDに変更してください。 コードは、チャイルドテーマの関数ファイル(functions.php)に追加する必要が今後のテーマを更新時に追加したコードが消えません。
上記のコードが動作するには、お問い合わせフォームの 確認 設定で 確認タイプ을 Go to URL(Redirect)に設定し、 Confirmation Redirect URLフォームが提出された後、移動先のページやサイトのURLを入力する必要があります。
Quformプラグインを使用して質問の回答に基づいて、他のページやサイトに移動させる方法
有料コンタクトフォームのプラグインである Quformでもユーザーの回答に基づいて送信ボタンをクリックしたときに、他のページやサイトにリダイレクトすることができます。
例コード:
// 특정 질문의 답변에 따라 다른 페이지 또는 사이트로 이동시키기
// Redirect users depending on the answer to a specific question in Quform
add_filter('quform_confirmation_redirect_url_1_1', function ($url, Quform_Confirmation $confirmation, Quform_Form $form) {
$choice = $form->getValue('quform_1_5');
if ('Yellow' == $choice) {
$url = 'https://www.google.com';
}
elseif ('Green' == $choice) {
$url = 'https://www.yahoo.com';
}
return $url;
}, 10, 3);
上記のコードで1_1をconfirmation unique IDに変更する必要があります。 そしてフィールドID(上記のコードでは、1_5)も適切に変更してください。 同様チャイルドテーマの関数ファイルに、上記のコードスニペットを追加する必要が今後のテーマの更新時に追加した内容が初期化されません。
WPFormsと同様にQuformも、上記のコードが動作するには、Confirmationの設定でお問い合わせフォームを提出後、カスタムURLにリダイレクトするためのオプションを選択する必要があります。 確認設定 画面で 種類을 カスタム URL にリダイレクトする選択したURLにフォームを送信した後移動先のURLを入力します。
Gravity Formsプラグインでフォームの送信後にリダイレクトされるURLを設定する
Gravity Formsプラグインを使用している場合は、次のようなフック(フィルタ)を応用することができます。 以下は、フォームIDに基づいてフォームを送信した後の動作(リダイレクト/確認メッセージ)を制御するためのコードです。 フィールドの値をチェックする条件文を追加すると、上記で述べたのと同様の効果を得ることができるでしょう。
add_filter( 'gform_confirmation', 'custom_confirmation', 10, 4 );
function custom_confirmation( $confirmation, $form, $entry, $ajax ) {
if( $form['id'] == '101' ) {
$confirmation = array( 'redirect' => 'http://www.google.com' );
} elseif( $form['id'] == '102' ) {
$confirmation = "Thanks for contacting us. We will get in touch with you soon";
}
return $confirmation;
}
グラビティフォームプラグインで提供されるフックは Hooks文書を参考にしてみてください。 フック(アクション/フィルタ)の詳細な説明と一緒に例示が出ているので、簡単に応用が可能であることです。
最後に、
WordPressで、特定の質問に対するユーザーの回答に基づいて、他のページやサイトに移動する方法について説明しました。 WordPress クイズプラグインでも、このような機能を提供する場合、クイズの回答に基づいて別のページに移動することが可能になります。 (使用しているクイズプラグイン開発者に連絡して、同様の機能を提供しているを確認してみるといいようです。)
WordPress コンタクトフォームのプラグインでは、Contact Form 7が最も多く使用されていて、その後に続いてWPFormsが名を連ねています。 CF7は、フォームの送信後にリダイレクトするURLを設定するためのフックを提供していないようです。
コメントを残す