The gform_coupons_is_valid_code filter allows you to override the default alphanumeric validation check for coupon codes in Gravity Forms.
Usage
To use this filter, add the following code to your functions.php file:
add_filter('gform_coupons_is_valid_code', 'your_function_name', 10, 2);
Parameters
- $is_alphanumeric (bool): Indicates if the coupon code is alphanumeric.
- $field (Field Object): The field object representing the coupon code field.
More information
See Gravity Forms Docs: gform_coupons_is_valid_code
Examples
Mark all coupon codes as valid
This example marks all coupon codes as valid, regardless of whether they are alphanumeric or not.
add_filter('gform_coupons_is_valid_code', 'mark_coupon_valid', 10, 2); function mark_coupon_valid($alphanumeric, $field) { return true; }
Only allow numeric coupon codes
This example only allows coupon codes containing numbers.
add_filter('gform_coupons_is_valid_code', 'allow_only_numeric', 10, 2); function allow_only_numeric($alphanumeric, $field) { return ctype_digit($field->value); }
Allow coupon codes with specific prefixes
This example allows coupon codes with specific prefixes (e.g., ‘PRE-‘, ‘SPECIAL-‘).
add_filter('gform_coupons_is_valid_code', 'allow_specific_prefixes', 10, 2); function allow_specific_prefixes($alphanumeric, $field) { $prefixes = array('PRE-', 'SPECIAL-'); foreach ($prefixes as $prefix) { if (substr($field->value, 0, strlen($prefix)) === $prefix) { return true; } } return false; }
Allow specific coupon codes
This example allows only specific coupon codes.
add_filter('gform_coupons_is_valid_code', 'allow_specific_codes', 10, 2); function allow_specific_codes($alphanumeric, $field) { $allowed_codes = array('SAVE10', 'FREESHIP', 'EARLYBIRD'); return in_array($field->value, $allowed_codes); }
Custom alphanumeric validation
This example uses a custom alphanumeric validation that allows spaces and dashes.
add_filter('gform_coupons_is_valid_code', 'custom_alphanumeric_validation', 10, 2); function custom_alphanumeric_validation($alphanumeric, $field) { return preg_match('/^[a-zA-Z0-9 -]+$/', $field->value); }