説明

について 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 );

参考記事

エントリー枠の残数を表示する方法