説明
について wpforms_frontend_output
は、サイトのフロントエンドと HTML フォームコンテナ内にフォームが表示される前に発生します。フォームが存在し、フィールドが含まれている場合にのみ発生します。
パラメータ
- フォームデータ
- (配列) 処理済みのフォーム設定/データ。
- フォーム
- (WP_Post) フォーム投稿タイプ。
ソース
wpforms/src/Frontend/Frontend.php
詳細情報
一方 wpforms_frontend_output
は有効な空でないフォームに対してのみ実行され、出力レンダリング処理の早い段階で実行されます。しかし、このアクションで配置したものは、HTMLの中で表示されます。 form
コンテナ
別のアクションとして、wpforms_frontend_output_beforeがあります。
例
この例では、クリスマスの日に閉鎖されるフォームがあります。フォームの上にメッセージを表示し、今日の日付からクリスマス当日を差し引いたものを計算し、フォーム送信までの残り日数をユーザーに知らせたいと思います。
/** * Output something before your form(s). * * @link https://wpforms.com/developers/wpforms_frontend_output/ * * @param array $form_data Form data and settings. * @param object $form Form post type. */ function wpf_dev_frontend_output( $form_data, $form ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #898. if ( absint( $form_data[ 'id' ] ) !== 898 ) { return; } // Set the PHP timezone date_default_timezone_set( 'America/New_York' ); // Set the variable to Christmas day $christmasDay = strtotime( 'December 25' ); // Get the current date $time = time(); // Calculate how many days from today's date to Christmas day $days = ceil(($christmasDay - $time)/60/60/24); echo '<div class="countdown_wrapper"> <p>' . __( 'This contest closes on <strong>12/25/2024</strong>, enter now! There are only <strong>', 'text-domain' ) . $days . __( '</strong> days left to enter!', 'text-domain' ) . '</p></div>'; } add_action( 'wpforms_frontend_output', 'wpf_dev_frontend_output', 10, 2 );