現在時刻のスマートタグを作成する方法

はじめに

フォームに現在時刻を表示したいですか?WPFormsのスマートタグを使えば、フォームに時刻を表示するスマートタグを作ることができます。このチュートリアルでは、小さなPHPスニペットを使って、各ステップを説明します!

現在時刻のスマートタグの追加

スマート・タグを使うには、まずコード・スニペットを追加して作成する必要があります。

あなたのサイトにコード・スニペットを追加する方法についてヘルプが必要な場合は、こちらのチュートリアルをご覧ください

/**
 * Create a custom Smart Tag 
 *
 * @link https://wpforms.com/developers/how-to-create-a-smart-tag-for-the-current-time
 */

function wpf_dev_register_smarttag( $tags ) {
 
    // Key is the tag, item is the tag name.
    $tags[ 'current_time' ] = 'Current Time';
	
    return $tags;
}
 
add_filter( 'wpforms_smart_tags', 'wpf_dev_register_smarttag' );
 
 
/**
 * Process the Smart Tag.
 *
 * @link https://wpforms.com/developers/how-to-create-a-smart-tag-for-the-current-time
 */

function wpf_dev_process_smarttag( $content, $tag ) {
 
    // Only run if it is our desired tag.
    if ( 'current_time' === $tag ) {
		
        date_default_timezone_set( 'US/Eastern' );
		
        $link = date( 'h:i:s A' );
		
        // Replace the tag with our link.
        $content = str_replace( '{current_time}', $link, $content );
    }
 
    return $content;
}
 
add_filter( 'wpforms_smart_tag_process', 'wpf_dev_process_smarttag', 10, 2 );

それぞれの機能を詳しく見てみよう。

スマートタグの作成

スマート・タグとは何かを定義する前に、まずスマート・タグを作成する必要があります。

wpf_dev_process_smarttag関数はスマートタグを作成し、名前を付けてセットアップします。つまり、フォームビルダーでこのスマートタグを呼び出せるようになります。

スマートタグの定義

タグを作成する関数が呼び出されたら、あとはそのタグを何に使うかを定義するだけだ。今回は、タイムゾーンを定義し、時間フォーマットを設定します。

タイムゾーンの設定や書式についてヘルプが必要な場合は、PHP ドキュメント を参照してください。

wpf_dev_process_smarttag関数でわかるように、タイムゾーンをUS/Easternに設定し、時刻フォーマットを'h:i:s A'にすると、03:12:46 PMと表示されます。

コードを保存すると、フォームビルダーでこの新しいカスタムスマートタグを使用できるようになります。

フォームの作成

いよいよフォームを作成します。フォームの作成にヘルプが必要な場合は、こちらの記事をご覧ください

フィールドをいくつか追加し、特に新しいスマート・タグとしてデフォルト値を設定する1行テキスト・フィールドを追加します。

デフォルト値を追加するには、単一行テキスト・フォーム・フィールドを選択し、詳細設定タブをクリックします。そこで「スマートタグを表示」をクリックし、先ほど追加したスマートタグが見つかるまでスクロールします。

コードをサイトに追加すると、フォームビルダーで現在時刻スマートタグを使用できます。

1行テキスト・フィールドにデフォルト値を設定する方法について、さらにヘルプが必要な場合は、こちらのドキュメントをご覧ください

これで完了です!これで、現在時刻の新しいスマート・タグが作成されました。フィールドラベル内でスマートタグを処理したいですか?フィールド・ラベル内でスマートタグを処理する方法のチュートリアルをご覧ください。

フィルター参照: