ご注意!

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

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

閉じる

金額フィールドの最小金額を設定する方法

はじめに

WPFormsの価格フィールドに最小金額を設定しますか?簡単なPHPスニペットを使用すると、ユーザー定義単一項目価格フィールドに最小金額を簡単に設定できます。このチュートリアルでは、これを達成する方法をステップごとに説明します。

フォームの作成

まず、フォームを作成し、フォームに単一項目価格フィールドを追加する必要があります。フィールドを追加したら、アイテムタイプユーザー定義に設定されていることを確認してください。

単一項目フィールドを含むフォームの設定についてサポートが必要な場合は、こちらの記事をご覧ください

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

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を持つフィールドでのみ実行されます。入力された金額が最小値に満たない場合、フォーム送信時にエラーが発生します。

これで、フォーム送信時に最小金額エラーが発生します。

これで完了です!メール通知からこの金額を非表示にする方法を知りたいですか?メール通知でアイテム価格を非表示にする方法のチュートリアルをご覧ください。

よくある質問

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