There has been released latest versions PHP 8.0 and 8.1 but Wordpress and some of its plugins are not ready to convey the patterns provided in PHP 8. I just found today that after upgrading a website from 7.4, a lot of error notifications appeared everywhere in the website when enabling of debug mode. However, we will focused on the given title in this blog as important matter in order to check the status of the orders if approved, pending or cancelled.
This content lets you spend very short time in finding out errors in Wordpress 6.0 with PHP 8.0 most specifically the one I had figured out from this notice "Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /www/.../wp-admin/includes/class-wp-list-table.php:717". However, in our case, the website has an installed plugins "Advanced Custom Field Pro" and "Woocommerce 7.3" which combined to manipulate order statuses. The website has an e-commerce platform that visitors can shop online.
I tried to look at the line 717, as shown code below:
707: /**
708: * Filters the 'Months' drop-down results.
709: *
710: * @since 3.7.0
711: *
712: * @param object[] $months Array of the months drop-down query results.
713: * @param string $post_type The post type.
714: */
715: $months = apply_filters( 'months_dropdown_results', $months, $post_type );
716:
717: $month_count = count( $months );
718:
719: if ( ! $month_count || ( 1 == $month_count && 0 == $months[0]->month ) ) {
720: return;
721: }
Yet, I realized that the code on line 717 explicitly counts results of order status in array and that was deprecated in PHP 8. Maybe to organize the declarations for checking then execute supplied code. I had to touch the WP core file and implement checking method if variable $months which is in array have bulking values then I replaced with the organized one with following:
717: $month_count = $months ? count( $months ) : 0;
Variable $month_count first check values of $month whether it has a value or zero value that thrown to the following condition statement below it that either it is true or false, it will return to checking method and execute.
When you have a problem with multiple errors in Wordpress under PHP 8, I am willing to solve it and give the solution. Just comment down.
Comments
Post a Comment