AI要約
はじめに
特定の金額に基づいてクーポンを制限する方法に興味がありますか?このチュートリアルでは、設定した閾値を下回る値のクーポンが処理されないように、PHPアクションを利用する手順を説明します。
デフォルトでは、任意の金額に対して、パーセンテージまたはフラットレート形式でクーポンを作成するオプションがあります。しかし、75%の代わりに誤って.75と入力してしまった場合はどうでしょうか?この小さなコードスニペットは、フォーム送信時のこのようなエラーを回避するのに役立ちます。このチュートリアルでその手順を説明します。
クーポンに関する詳細は、こちらの役立つガイドをご覧ください。
クーポンの作成
まず、クーポンを作成しましょう。このチュートリアルでは、意図としては75%に設定したいのですが、フラットレートで.75のクーポンを作成します。これはデモンストレーション目的であり、追加するスニペットがどのように検証に役立つかを強調するためです。
新しいクーポンを作成するには、WPForms » Payments » Couponsに移動し、Add New Couponをクリックします。Nameフィールドに、整理しやすいようにわかりやすいクーポン名を入力してください。
次に、Codeフィールドにクーポンコードを手動で入力するか、Generate CodeボタンをクリックしてWPFormsにコードを作成させます。Amountフィールドに.75と入力し、ドロップダウンから通貨記号を選択してください。
通貨記号を選択することで、パーセンテージではなくフラットレート割引を利用することになります。
このチュートリアルでは、日付や時刻は設定しません。下にスクロールしてこのクーポンを使用したいフォームを選択し、Save Couponをクリックして変更を保存します。

フォームの作成
クーポンが設定されたので、フォームを作成する時間です。フォームの作成方法については、こちらのステップバイステップガイドをご覧ください。

Couponフィールドを追加すると、クーポンがすでに割り当てられていることに気づくでしょう。

スニペットの追加
次にスニペットを追加します。スニペットの追加方法や場所については、こちらのチュートリアルをご覧ください。
/*
* Do not allow to submit coupons lower than 1.00.
*
* @link https://wpforms.com/developers/how-to-restrict-coupons-by-amount/
*/
function wpf_discard_low_coupons( $field_id, $field_submit, $form_data ) {
$coupon = wpforms_coupons()->get( 'repository' )->get_coupon_by_code( $field_submit );
if ( $coupon === null ) {
return;
}
$currency = wpforms_get_currency();
if ( $coupon->get_discount_type() === 'flat' && (float) $coupon->get_discount_amount() <= 1.00 ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = sprintf( /* translators: %s - Currency code name. */
esc_html__( 'Coupon amount is less that 1.00 %s. Please, use another one.', 'your-translation-domain' ),
$currency
);
}
}
add_action( "wpforms_process_validate_payment-coupon", 'wpf_discard_low_coupons', 10, 3 );
これで完了です。訪問者がこのクーポンを使用すると、フォームを送信できなくなります。

関連
アクションリファレンス:wpforms_process_validate_payment-coupon