Skip to content

Commit

Permalink
Merge pull request #439 from stellarwp/bugfix/adv-form-number-field-r…
Browse files Browse the repository at this point in the history
…equired-message

Bugfix/adv form number field required message
  • Loading branch information
oakesjosh authored Mar 12, 2024
2 parents 1bc0473 + fd7490a commit 08cc29d
Show file tree
Hide file tree
Showing 5 changed files with 178 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ dist/
zip/
bin/strauss.phar
.idea
.vscode
/.vscode/
/vendor/
/vendor-prefixed/
bin/pup.phar
Expand Down
16 changes: 15 additions & 1 deletion includes/advanced-form/advanced-form-ajax.php
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@ public function process_fields( $fields ) {
} else {
$required_message = ! empty( $field['required_message'] ) ? $field['required_message'] : __( 'Missing a required field', 'kadence-blocks' );
$this->process_bail( __( 'Submission Failed', 'kadence-blocks' ), $required_message );
break;
}
} else {
continue;
Expand All @@ -261,9 +262,17 @@ public function process_fields( $fields ) {
$value = $this->sanitize_field( $field['type'], isset( $_POST[ $expected_field ] ) ? $_POST[ $expected_field ] : '', empty( $field['multiSelect'] ) ? false : $field['multiSelect'] );

// Fail if this field is empty and is required.
if ( empty( $value ) && ! empty( $field['required'] ) && $field['required'] && $field['type'] !== 'file' ) {
if ( empty( $value ) && ! empty( $field['required'] ) && $field['required'] && $field['type'] !== 'file' && $field['type'] !== 'number') {
$required_message = ! empty( $field['required_message'] ) ? $field['required_message'] : __( 'Missing a required field', 'kadence-blocks' );
$this->process_bail( __( 'Submission Failed', 'kadence-blocks' ), $required_message );
break;
}

// Fail if this field is number and required and value is not numeric.
if(! empty( $field['required'] ) && $field['required'] && !is_numeric($value) && $field['type'] === 'number') {
$required_message = ! empty( $field['required_message'] ) ? $field['required_message'] : __( 'Missing a required field', 'kadence-blocks' );
$this->process_bail( __( 'Submission Failed', 'kadence-blocks' ), $required_message );
break;
}

// If field is file, verify and process the file.
Expand All @@ -280,13 +289,15 @@ public function process_fields( $fields ) {
$max_count = ! empty( $field['multipleLimit'] ) ? absint( $field['multipleLimit'] ) : 5;
if ( isset( $field['multiple'] ) && $field['multiple'] && $file_count > $max_count ) {
$this->process_bail( __( 'Submission Failed. Trying to include too many files.', 'kadence-blocks' ), __( 'Too many files', 'kadence-blocks' ) );
break;
}
foreach ( $post_file as $file ) {
$file_name_array[] = $file['name'];
if ( empty( $file['size'] ) && ! empty( $field['required'] ) && $field['required'] ) {
$required_message = ! empty( $field['required_message'] ) ? $field['required_message'] : __( 'Missing a required field', 'kadence-blocks' );

$this->process_bail( __( 'Submission Failed', 'kadence-blocks' ), $required_message );
break;
} else if ( empty( $file['size'] ) ) {
continue;
}
Expand All @@ -297,10 +308,12 @@ public function process_fields( $fields ) {
// Is file too big.
if ( $file['size'] > $max_upload_size_bytes ) {
$this->process_bail( __( 'Submission Failed. File too large', 'kadence-blocks' ), __( 'File too large', 'kadence-blocks' ) );
break;
}

if ( ! is_uploaded_file( $file['tmp_name'] ) ) {
$this->process_bail( __( 'Submission Failed. File could not be uploaded', 'kadence-blocks' ), __( 'File was not uploaded', 'kadence-blocks' ) );
break;
}

$allowed_file_categories = empty( $field['allowedTypes'] ) ? array( 'images' ) : $field['allowedTypes'];
Expand All @@ -316,6 +329,7 @@ public function process_fields( $fields ) {
$space = get_upload_space_available();
if ( $space < $file_size || upload_is_user_over_quota( false ) ) {
$this->process_bail( __( 'Submission Failed. Not enough disk quota on this website.', 'kadence-blocks' ), __( 'Not enough disk quota on this website.', 'kadence-blocks' ) );
break;
}
}
if ( ! function_exists( 'wp_handle_upload' ) ) {
Expand Down
Loading

0 comments on commit 08cc29d

Please sign in to comment.