ご注意!

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

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

閉じる

wpforms_process_validate_payment-coupon

説明

wpforms_process_validate_payment-couponアクションは、フォーム送信時にクーポンフォームフィールドの検証を実行します。

パラメーター

$field_id
(int) フィールドID。
$field_submit
(array) フィールドに送信された元の未加工/未サニタイズのフィールド値。
$form_data
(配列)  後で使用するために処理および準備されたフォーム設定/データ。

ソース

wpforms/includes/class-process.php

詳細情報

wpforms_process_validate_payment-couponアクションは、たとえば関数で設定された特定金額を超える場合に、クーポンフォームフィールドに適用され、クーポンの金額を確認します。

この例では、クーポンのフラットレート金額が1.00未満の場合、フォーム送信を防止しています。

/*
 * Do not allow to submit coupons lower than 1.00.
 *
 * @link https://wpforms.com/developers/wpforms_process_validate_payment-coupon/
 *
 * @param int     $field_id        Field ID.
 * @param array   $field_submit    Unsanitized field value submitted for the field.
 * @param array   $form_data       Form data and settings.
*/

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

記事参照:金額でクーポンを制限する方法