| @@ -34,9 +34,13 @@ | ||
| 34 | 34 | // Get params from request. |
| 35 | 35 | $params = $request->get_params(); |
| 36 | 36 | |
| 37 | 37 | // check parama is empty or not and is an array and consist form_data key. |
| 38 | - if ( empty( $params ) || ! is_array( $params ) || ! isset( $params['form_data'] ) || 0 === count( $params['form_data'] ) ) { | |
| 38 | + // count() is guarded by is_array(): a non-array form_data is a TypeError in PHP 8, | |
| 39 | + // and this endpoint is reachable with any JSON value. It falls through to the | |
| 40 | + // invalid_form_data check below instead. | |
| 41 | + if ( empty( $params ) || ! is_array( $params ) || ! isset( $params['form_data'] ) | |
| 42 | + || ( is_array( $params['form_data'] ) && 0 === count( $params['form_data'] ) ) ) { | |
| 39 | 43 | return new WP_Error( |
| 40 | 44 | 'srfm_ai_mapping_missing_form_data', |
| 41 | 45 | __( 'The AI form data is missing. Please try again.', 'sureforms' ), |
| 42 | 46 | [ 'status' => 400 ] |