Skip to content

Commit 4b3a288

Browse files
committed
Conditionally hidden required fields now not stopping registration form submission if they are hidden and don't have data
1 parent 5759104 commit 4b3a288

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

includes/actions.php

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -603,3 +603,70 @@ function wpum_field_conditional_logic_rules( $data ) {
603603
add_action( 'wpum_after_account_form', 'wpum_field_conditional_logic_rules', 1 );
604604
add_action( 'wpum_after_custom_account_form', 'wpum_field_conditional_logic_rules', 1 );
605605

606+
function wpumcf_form_skip_field_validation( $skip, $field_key, $values, $fields ) {
607+
$form_data = (object) array();
608+
$form_data->fields = $fields;
609+
610+
$rulesets = apply_filters( 'wpum_field_conditional_logic_rules', array(), $form_data );
611+
$field_rules = $rulesets[ $field_key ];
612+
613+
if ( ! $field_rules ) {
614+
return false;
615+
}
616+
617+
foreach ( $field_rules as $rules ) {
618+
foreach ( $rules as $rule ) {
619+
$valid_rule = apply_filters( "wpumcf_validate_rule_{$rule['condition']}", true, $rule, $values );
620+
if ( ! $valid_rule ) {
621+
return true;
622+
}
623+
}
624+
}
625+
626+
return false;
627+
}
628+
629+
add_filter( 'wpum_form_skip_field_validation', 'wpumcf_form_skip_field_validation', 10, 4 );
630+
631+
function wpumcf_validate_rule_value_not_equals( $valid, $rule, $values ) {
632+
return $values[ $rule['field'] ] !== $rule['value'] ? true : false;
633+
}
634+
635+
add_filter( 'wpumcf_validate_rule_value_not_equals', 'wpumcf_validate_rule_value_not_equals', 10, 3 );
636+
637+
function wpumcf_validate_rule_value_equals( $valid, $rule, $values ) {
638+
return $values[ $rule['field'] ] === $rule['value'] ? true : false;
639+
}
640+
641+
add_filter( 'wpumcf_validate_rule_value_equals', 'wpumcf_validate_rule_value_equals', 10, 3 );
642+
643+
function wpumcf_validate_rule_value_contains( $valid, $rule, $values ) {
644+
return strpos( $values[ $rule['field'] ], $rule['value'] );
645+
}
646+
647+
add_filter( 'wpumcf_validate_rule_value_contains', 'wpumcf_validate_rule_value_contains', 10, 3 );
648+
649+
function wpumcf_validate_rule_has_value( $valid, $rule, $values ) {
650+
return $values[ $rule['field'] ] !== '';
651+
}
652+
653+
add_filter( 'wpumcf_validate_rule_has_value', 'wpumcf_validate_rule_has_value', 10, 3 );
654+
655+
function wpumcf_validate_rule_has_no_value( $valid, $rule, $values ) {
656+
return $values[ $rule['field'] ] === '';
657+
}
658+
659+
add_filter( 'wpumcf_validate_rule_has_no_value', 'wpumcf_validate_rule_has_no_value', 10, 3 );
660+
661+
function wpumcf_validate_rule_value_greater( $valid, $rule, $values ) {
662+
return $values[ $rule['field'] ] > $rule['value'];
663+
}
664+
665+
add_filter( 'wpumcf_validate_rule_value_greater', 'wpumcf_validate_rule_value_greater', 10, 3 );
666+
667+
function wpumcf_validate_rule_value_less( $valid, $rule, $values ) {
668+
return $values[ $rule['field'] ] < $rule['value'];
669+
}
670+
671+
add_filter( 'wpumcf_validate_rule_value_less', 'wpumcf_validate_rule_value_less', 10, 3 );
672+

0 commit comments

Comments
 (0)