ご注意!

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

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

閉じる

説明

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 );

参考記事

残りのエントリー制限数を表示する方法