AI要約
説明
wpforms_frontend_output は、サイトのフロントエンドでフォームが表示される前、およびHTMLフォームコンテナ内でトリガーされます。フォームが存在し、フィールドが含まれている場合にのみトリガーされます。
パラメーター
- $form_data
- (配列) 後で使用するために処理および準備されたフォーム設定/データ。
- $form
- (WP_Post) フォームの投稿タイプ。
ソース
wpforms/src/Frontend/Frontend.php
詳細情報
wpforms_frontend_output は有効で空でないフォームに対してのみトリガーされますが、出力レンダリングプロセスの早い段階で実行されます。ただし、このアクションで配置したものはHTML form コンテナ内に表示されます。
検討すべき代替アクションとして wpforms_frontend_output_before があります。これは同様に機能しますが、HTMLフォームコンテナの外側で実行されます。
例
例として、クリスマスに無効になるフォームがあります。フォームの上に、今日の日付からクリスマスまでの日数を計算し、ユーザーにフォームを送信できる残り日数をカウントダウンするメッセージを表示したいと考えています。
/**
* 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 );