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

Form Locker Addon を使ってフォームに残りのエントリー数を表示する方法を知りたいですか? 訪問者に残りのエントリー数を知らせたい場合は特に便利です。このチュートリアルでは、PHP を使ってフォームに残りのエントリーを表示する方法を紹介します。

フォームロッカーの qddon では、フォームに送信できるエントリー数を制限することができます。

入力制限に達すると、Form Lockerアドオンは自動的にフォームを閉じます。

私たちのチュートリアルでは、フォームが閉じるまでにあといくつエントリーが残っているかを訪問者に見てもらいたいと思います。

フォームの作成

はじめに、新しいフォームを作成し、フィールドを追加します。このチュートリアルでは、エントリーの名前と メールアドレスのみを収集します。

フォームの作成にヘルプが必要な場合は、こちらのドキュメントをご覧ください

入場制限の有効化

次に、[設定]タブをクリックして [フォームロッカー]タブを選択し、フォームの入力制限を有効にします。入力制限と制限の下で、トグルを「入力制限を有効にする」にスライドさせ、制限額とフォームが閉じられたときに表示されるメッセージを設定します。

フォームロッカーの入力制限を有効にする

残りのエントリーを表示

最後に、このスニペットをサイトに追加する必要がある。

スニペットをサイトに追加する方法がわからない場合は、こちらのチュートリアルをご覧ください。

/**
 * Display remaining entry limit.
 *
 * @link https://wpforms.com/developers/how-to-display-remaining-entry-limit-number/
 */

function wpf_dev_remaining_entries( $form_data ) {
 
    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #1899.
    if ( absint( $form_data[ 'id' ] ) !== 1899 ) {
        return;
    }
 
    if ( empty( $form_data[ 'settings' ][ 'form_locker_entry_limit_enable' ] ) ) {
        return;
    }
 
    $reference = ! empty( $form_data[ 'settings' ][ 'form_locker_entry_limit' ] ) ? (int) $form_data[ 'settings' ][ 'form_locker_entry_limit' ] : 0;
	
    $entries_count = wpforms()->entry->get_entries( array( 'form_id' => $form_data[ 'id' ] ), true );
	
    $result = absint( $reference - $entries_count );
 
    echo '<p>' . esc_html( $result ) . __( ' entries remaining', 'text-domain' ) . '</p>';
 
}
 
add_action( 'wpforms_frontend_output', 'wpf_dev_remaining_entries', 10, 1 );

上記のスニペットのフォームIDを自分のフォームIDに合わせて更新する必要があります。フォームIDを探すのに助けが必要な場合は、こちらのチュートリアルをご覧ください

コードが追加されると、入力制限はフォームのタイトルの下とフォームフィールドの上に表示されます。

これで、フォームに残りのエントリー枠が表示されていることがわかります。

表示される数字は、フォームが読み込まれた時点で決定されます。そのため、ユーザーがフォームを送信する時点では、この数値は正確でない可能性があります。

これだけで、フォームロッカーのフォームに残りのエントリー数を表示することができます。 フォームの送信数を表示したいですか? チュートリアル「特定のフォームのエントリー送信数を表示する方法」をご覧ください。

参考アクション

wpforms_frontend_output