I am doing some basic checks using gform_field_validation. The below checks the correct format for 2 different fields in the same form (field 12 and 13).
By default, both fields are optional. However, I want to get a little more complex now, and make at least one of the fields required. That is, if field 12 is empty field 13 is required, OR if field 13 is empty field 12 is required.
What changes would I need to make for the more complex logic?
/**
* Validate 11 numbers for ABN
*/
add_filter( 'gform_field_validation_1_12', 'validate_abn', 10, 4 );
function validate_abn( $result, $value, $form, $field ) {
$pattern = "/^[0-9]{11,}$/";
if ( !empty( $value ) && !preg_match( $pattern, $value ) ) {
$result['is_valid'] = false;
$result['message'] = 'Invalid ABN format';
}
return $result;
}
/**
* Validate 9 numbers for ACN
*/
add_filter( 'gform_field_validation_1_13', 'validate_acn', 10, 4 );
function validate_acn( $result, $value, $form, $field ) {
$pattern = "/^[0-9]{9,}$/";
if ( !empty( $value ) && !preg_match( $pattern, $value ) ) {
$result['is_valid'] = false;
$result['message'] = 'Invalid ACN format';
}
return $result;
}