ご注意!

この記事には PHP コードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

フォームのアクションをカスタマイズする方法

WPFormsでフォームのアクションをカスタマイズする必要がありますか?WPFormsを外部ソースと統合しており、送信時にアクションをカスタマイズして別のページソースに送信する必要があるかもしれませんか?このチュートリアルでは、PHPを使用してフォームアクションをカスタマイズし、ページを指定のURLにリダイレクトする方法を説明します。

デフォルトでは、スニペットを使用せずに、確認タブの確認タイプリダイレクトに設定することで、フォームビルダー内でフォームのアクションを変更できます。詳細については、こちらのドキュメントをご覧ください

フォームの作成

まず、フォームを作成し、フィールドを追加する必要があります。

これについてサポートが必要な場合は、こちらのドキュメントをご確認ください

このスニペットを使用する場合、確認タブで設定した設定は適用されないことに注意することが重要です。

このスニペットを使用してフォームアクションをカスタマイズすると、確認タブの設定はすべて無視されます

フォームでのAJAXの無効化

次のステップに進む前に、設定 » 一般 » 詳細設定に移動し、フォームのAJAXフォーム送信を有効にする設定がオフになっていることを確認してください。

フォームアクションのカスタマイズ

フォームアクションを使用してページを指定のURLにリダイレクトするには、このスニペットをサイトにコピーする必要があります。

スニペットの追加にヘルプが必要な場合は、こちらのチュートリアルをご確認ください

/*
 * Return a specific URL on the form submission.
 *
 * @link https://wpforms.com/developers/how-to-customize-the-form-action/
*/

function wpf_custom_form_action( $action, $form_data ) {
    
    if ( $form_data[ 'id' ] == '25' ) {

        return 'https://www.somesite.com';

    }

    return $action;
}

add_filter( 'wpforms_frontend_form_action', 'wpf_custom_form_action', 10, 2 );

このスニペットは、フォームID25でのみ実行されます。このIDをフォームのフォームIDに合わせて更新する必要があります。フォームIDの見つけ方にヘルプが必要な場合は、こちらのチュートリアルをご確認ください

フォームIDを定義したら、https://www.somesite.comのURLをリダイレクトしたいURLに合わせて更新するだけです。

注意:リダイレクトURLを配置すると、フォームのエントリはWPFormsエントリに保存されません。

これで、PHPを使用して送信時のリダイレクトのためにフォームアクションをカスタマイズするために必要なすべてが揃いました。チェックボックスフィールドに「すべて選択」オプションを提供しますか?チェックボックスフォームフィールドに「すべて選択」オプションを追加する方法の記事をご覧ください。

参照フィルター

フィルターリファレンス:wpforms_frontend_form_action