WooCommerce Sites Experiencing Fatal Errors
WooCommerce sites have been crashing due to a fatal error caused by a single line of code. The issue has been reported by multiple users on the WordPress.org support forums, with many stating that their sites crashed suddenly without any recent changes or updates.
The Cause of the Error
The error message "Uncaught Error: strpos(): Argument #1 ($haystack) must be of type string, null given" is being displayed on the BlockPatterns.php file, which is a part of the WooCommerce plugin. The file is located in the wp-content/plugins/woocommerce/src/Blocks/ directory.
Workaround Solution
A temporary workaround has been found, which involves editing the BlockPatterns.php file. The solution is to add ?? ” to line 251 of the file, which changes the line to: if ( strpos( $category['title'] ?? '', $prefix ) !== false ) {
. This fix will get sites back up and running, but it’s essential to clear any WordPress caching layers after applying the change.
Official Response from WooCommerce
The WooCommerce team is aware of the issue and is working on a permanent fix. They have acknowledged the problem and stated that it was caused by a bad response from the Woo pattern repository. A fix has been deployed to the repository, but some sites may still have a bad cache value.
Additional Issues on WP Engine
Some users hosting their sites on WP Engine have reported difficulties in implementing the fix. This is due to WP Engine’s multiple caching layers, including Page Cache and Varnish caches. To resolve the issue, users need to clear these caches, which can be done by following the instructions on the WP Engine support page.
GitHub Discussion
The issue is being tracked on the WooCommerce GitHub repository, where users can find updates and discuss the problem. The repository also provides a quick fix for users who need to get their sites up and running immediately.
Conclusion
The fatal error affecting WooCommerce sites is a significant issue that needs to be addressed quickly. While a temporary workaround is available, it’s crucial to wait for the official patch from the WooCommerce team to ensure a stable solution. Site owners can track the progress of the fix on the GitHub repository and follow the instructions to clear their caches and implement the temporary fix. By doing so, they can get their sites back online and minimize any potential losses.