時間帯に基づくフォームのスケジューリング

特定の時間帯にフォームをスケジューリングしたいですか?指定した時間帯にフォームが表示されたりされなかったりするように簡単に設定できます。

このチュートリアルでは、提供されたコード・スニペットを使って、この機能をシームレスに実装する手順を説明します。

それでは、フォームのスケジューリングを簡単にしてみましょう!


フォームの作成

まず始めに、新しいフォームを作成し、フィールドを追加します。フォームの作成にヘルプが必要な場合は、こちらのガイドをご覧ください。

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

スニペットの追加

フォームを作成したら、このスニペットをサイトに追加する必要があります。スニペットをサイトに追加する方法や場所についてヘルプが必要な場合は、こちらのチュートリアルをご覧ください

/* Hide a specific form based on the time of day 
 *
 * @link https://wpforms.com/developers/how-to-schedule-a-form-base-on-the-time-of-day/
*/
 
function wpf_dev_form_open_check( $form_data, $form ) {
     
    // Only process this snippet on form ID 3602
    if ( absint( $form_data[ 'id' ] ) !== 3602 ) {
        return;
    } 
    
	// H is for 24 hour format and h is for the 12 hour format
	// Get the current 24 hour format in hours only, this is pulled from your server
	$hours = intval(date('H'));

    // The form will be closed to any submissions from 8PM (20 in 24-hour time format) to 8AM
    if ( $hours >= 20 && $hours < 8 ) {
		// Display a message stating the form is currently closed
    	_e( 'We\'re sorry, this contest is only open for entry everyday from 8:00 AM EST to 8:00 PM EST. Please check back tomorrow for your raffle entry.', 'textdomain' );
		
		// Run a separate script to hide the form if it is currently closed to submissions
		echo '<script type="text/javascript">';
		echo 'jQuery("#wpforms-form-3602").hide();';
		echo '</script>';
	}

}
add_action( 'wpforms_frontend_output_after', 'wpf_dev_form_open_check', 10, 2 );

このスクリプトにはいくつか注意すべき点がある。このスクリプトはフォームID3602でのみ実行されるので、このID番号を自分のフォームに合わせて更新する必要があります。

フォームID番号の見つけ方については、こちらのチュートリアルをご覧ください

次に $hours variableは、ユーザーのブラウザーやコンピューター上ではなく、あなたのサーバー上にある現在の時間だけを検索します。また、大文字の H.12時間形式を使いたい場合は H に対する h.選択したフォーマットによっては if ( $hours >= 20 && $hours < 8 ).

でユーザーに表示するメッセージを忘れずに更新してください。 _e ステートメントを使用して、訪問者にフォームが閉じられたときに表示したい内容に合わせます。

最後に、スクリプトの最後の部分でフォームIDを隠す。 23 使用して echo 'jQuery("#wpforms-form-3602").hide();';.を忘れずに更新してください。 3602 を自分のフォームIDと一致させる。

フォームが閉じられたときに訪問者があなたのページにアクセスすると、あなたのメッセージが表示されます。

このスニペットで、特定の時間帯にのみフォームを表示するように簡単にスケジュールできます。

これだけで、時間帯に応じたフォームのスケジューリングが可能になる!

次に、送信ボタンを表示したり非表示にしたりしたいですか?WPFormsの送信ボタンを条件付きで表示する方法のチュートリアルをご覧ください。

アクション・リファレンス:wpforms_frontend_output_after