はじめに
WPFormsの価格フィールドに最低金額を設定したいですか?小さなPHPスニペットを使えば、ユーザー定義の 単品価格フィールドに最低金額を簡単に設定することができます。 このチュートリアルでは、これを実現するための各ステップを説明します。
フォームの作成
まず、フォームを作成し、フォームに単品価格フィールドを追加します。 フィールドを追加したら、アイテムタイプがユーザー定義になっていることを確認してください。
単一項目フィールドを持つフォームのセットアップにサポートが必要な場合は、こちらの記事をご覧ください。
CSSクラスの追加
次に、このフィールドにCSSクラスを追加して、スニペットが必要な最低金額をチェックするようにします。
フォームフィールドにCSSクラス名を追加するには 単品 フィールドをクリックし 上級 タブ タブの中は CSSクラスを入力する。 set-minimum
そしてフォームを保存する。
最低金額を設定するスニペットの追加
この最後のステップでは、スニペットをサイトに追加する必要があります。スニペットをサイトに追加する際にヘルプが必要な場合は、こちらのチュートリアルをご覧ください。
/** * 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クラス名が入力されているか再確認してください。
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 );