価格フィールドに最低金額を設定する方法

はじめに

WPFormsの価格フィールドに最低金額を設定したいですか?小さなPHPスニペットを使えば、ユーザー定義の 単品価格フィールドに最低金額を簡単に設定することができます。 このチュートリアルでは、これを実現するための各ステップを説明します。

フォームの作成

まず、フォームを作成し、フォームに単品価格フィールドを追加します。 フィールドを追加したら、アイテムタイプがユーザー定義になっていることを確認してください。

単一項目フィールドを持つフォームのセットアップにサポートが必要な場合は、こちらの記事をご覧ください

新しいフォームaを作成し、フォームに単一のアイテム価格フィールドを追加し、アイテムタイプをユーザー定義に設定する。

CSSクラスの追加

次に、このフィールドにCSSクラスを追加して、スニペットが必要な最低金額をチェックするようにします。

フォームフィールドにCSSクラス名を追加するには 単品 フィールドをクリックし 上級 タブ タブの中は CSSクラスを入力する。 set-minimum そしてフォームを保存する。

単一項目フィールドにcssクラス名を追加する

最低金額を設定するスニペットの追加

この最後のステップでは、スニペットをサイトに追加する必要があります。スニペットをサイトに追加する際にヘルプが必要な場合は、こちらのチュートリアルをご覧ください

/**
 * Set a minimum amount price field.
 *
 * @link https://wpforms.com/developers/how-to-set-minimum-amount-for-a-price-field/
 */

function wpf_set_minimum_amount_input( $field_id, $field_submit, $form_data ) {
 
    // This snippet will run for all forms
    $form_id = $form_data[ 'id' ];
 
    // And it will run for all fields with the CSS class of set-minimum
    $fields  = $form_data[ 'fields' ];
     
     
	// Define your minimum amount here.
	$minimum_amount = 5;
 
    // Check if field has custom CSS class configured
    if ( !empty( $fields[ $field_id ][ 'css' ] ) ) {
 
        $classes = explode( ' ', $fields[$field_id][ 'css' ] );
 
        if ( in_array( 'set-minimum', $classes ) ) {
 
            if ( $minimum_amount > (float) wpforms_sanitize_amount( $field_submit ) ) {
 
                wpforms()->process->errors[ $form_id ][ $field_id ] = __( 'Minimum amount is $' . $minimum_amount . '.', 'plugin-domain' );
 
                return;
            }
        }
    }
}
add_action( 'wpforms_process_validate_payment-single', 'wpf_set_minimum_amount_input', 10, 3 );

このスニペットはすべてのフォームに対して自動的に実行されますが、CSS クラス名がset-minimum であるフィールドに対してのみ実行されます。 入力された金額が最小値を満たさない場合、フォームが送信されたときにエラーが発生します。

現在では、フォームが送信されたときに最低額のエラーが発生する。

必要なのはこれだけです!この金額をメール通知から非表示にする方法を知りたいですか?チュートリアル「Eメール通知で商品価格を非表示にする方法」をご覧ください。

よくあるご質問

Q: なぜ私のサイトでは機能しないのですか?

A: このエラーでフォーム送信が停止しない場合は、正しいフィールドにCSSクラス名が入力されているか再確認してください。

単一項目フィールドにcssクラス名を追加する

Q: 上限額はどのように設定するのですか?

A: 同じようなスニペットを使って上限額を設定するには、まず最初に CSSクラス 名前を付ける set-maximum 上の前のステップで行ったのと同じ方法で。

そして、このスニペットをあなたのサイトに追加するだけだ。

/**
 * Set a maximum amount price field.
 *
 * @link https://wpforms.com/developers/how-to-set-minimum-amount-for-a-price-field/
 */
 
function wpf_set_maximum_amount_input( $field_id, $field_submit, $form_data ) {
 
    // This snippet will run for all forms
    $form_id = $form_data[ 'id' ];
 
    // And it will run for all fields with the CSS class of set-minimum
    $fields  = $form_data[ 'fields' ];
     
     
	// Define your minimum amount here.
	$maximum_amount = 5000;
 
    // Check if field has custom CSS class configured
    if ( !empty( $fields[ $field_id ][ 'css' ] ) ) {
 
        $classes = explode( ' ', $fields[ $field_id ][ 'css' ] );
 
        if ( in_array( 'set-maximum', $classes ) ) {
 
            if ( $maximum_amount < (float) wpforms_sanitize_amount( $field_submit ) ) {
 
                wpforms()->process->errors[ $form_id ][ $field_id ] = __( 'Maximum amount is $' . $maximum_amount . '.', 'plugin-domain' );
 
                return;
            }
        }
    }
}
add_action( 'wpforms_process_validate_payment-single', 'wpf_set_maximum_amount_input', 10, 3 );