WPIntell

Source evidence

Critical error for settings with one selection in PHP 8.2

Checkout Field Manager (Checkout Manager) for WooCommerce · support · 2025-07-09T18:40:00+00:00

mixedsentiment
highseverity
0.94relevance
2replies
Evidence linked to opportunitycommercial context

Proof Health

Open evidence

Commercial opportunities need traceable source links before they are treated as build-worthy.

6 / 25 rows with source links

24.0% of this page's analysis has direct source links.

0 build-decision rows missing links

0 rows here require auditable proof before promotion.

19 rows with no attached evidence

0 rows have source counts but still need direct links.

Conversation

support
weaselnerd resolved
The plugin was throwing an fatal error for us on order pages: [09-Jul-2025 15:42:06 UTC] PHP Fatal error: Uncaught TypeError: implode(): Argument #2 ($array) must be of type ?array, string given in /home/headwate/public_html/wp-content/plugins/ woocommerce-checkout-manager/lib/controller/class-order.php:341 Stack trace: #0 /home/headwate/public_html/wp-content/plugins/woocommerce-checkout-manager/lib/controller/class-order.php(341): implode(',', 'processing') #1 /home/headwate/public_html/wp-includes/class-wp-hook.php(326): QuadLayers\WOOCCM\Controller\Order->upload_os(Array) #2 /home/headwate/public_html/wp-includes/plugin.php(205): WP_Hook->apply_filters(Array, Array) #3 /home/headwate/public_html/wp-includes/option.php(217): apply_filters('default_option_...', Array, 'wooccm_order_up...', true) #4 /home/headwate/public_html/wp-content/plugins/woocommerce-checkout-manager/lib/controller/class-order.php(153): get_option('wooccm_order_up...', Array) #5 /home/headwate/public_html/wp-includes/class-wp-hook.php(324): QuadLayers\WOOCCM\Controller\Order->add_upload_files(38329) #6 /home/headwate/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #7 /home/headwate/public_html/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #8 /home/headwate/public_html/wp-content/plugins/woocommerce/templates/checkout/thankyou.php(82): do_action('woocommerce_tha...', 38329) ... The issue appears to be we only had one selection made (“processing”) for the “Add for this order status” setting on the Order settings page. This apparently caused the setting to be stored as a string instead of an array in the options table. So when it is used in the implode() call in the line in question it throws the fatal error. We hotfixed it by converting the string to array at line 341: public function upload_os( $value ) { $options = get_option( 'wccs_settings' ); if ( ! empty( $options['checkness']['upload_os'] ) ) { $upload_os_option = $options['checkness']['upload_os']; if ( ! is_array( $upload_os_option ) ) { $upload_os_option = [ $upload_os_option ]; } return (array) @implode( ',', $upload_os_option ); } return $value; } ... PHP: 8.2 WordPress: 6.8.1 WooCommerce: 9.9.5 WooCommerce Checkout Manager: 7.7.1 Cheers, Sean @weaselnerd Hello mate, we inform you that the issue you were experiencing is resolved. Could you please update to the latest versions? Best regards, Quadlayers Support Team. Thanks for the update!

Comments

2 shown
jmatiasmastro 2025-07-14T03:46:00+00:00

@weaselnerd Hello mate, we inform you that the issue you were experiencing is resolved. Could you please update to the latest versions? Best regards, Quadlayers Support Team.

weaselnerd 2025-07-15T17:44:00+00:00

Thanks for the update!