PHP8.1 came out on 25/11/21, so its unlikely this error is coming from WooCommerce, which is kept up-to-date. It may be coming from some other software which is trying to use WooCommerce functions.
Have you carried out a conflict test. Switch to the Storefront theme and deactivate all plugins except WooCommerce. The site should work without error now? Reactivate one by one and check to try to identify the software element which is not 8.1 compatible.
@dssunil you can try: Woocommerce -> Status -> Tools
Clear all cache and transients. It helped me.
EDIT:
Unfortunately only for a moment
-
This reply was modified 3 years, 2 months ago by
BDR Bros..
Hi, @dssunil
To help you investigate this further, please share a copy of your site’s System Status: It is under WooCommerce > Status. Select “Get system report” and then “Copy for support”.
Since the issue is reported in GitHub I recommend subscribing to the GitHub thread so that you can receive updates when there is progress.
Hi, @bdrbros
For better assistance, you can create your own thread for your issue, right here.
Thank you.
Note that below is temporary solution because if you update woocommerce, the change will be replaced (but hoping thew updates from woocommerce would solve the problem)
First backup this file so that you can replace it if there is a problem later:
Edit line 139 of that file with error as follows:
if ( strstr( isset($path)?$path:' ', $customer_logout ) || strstr( isset($query)?$query:'', $customer_logout ) ) {
unset( $items[ $key ] );
}
Just replace strstr( $path, $customer_logout ) with strstr( isset($path)?$path:’ ‘, $customer_logout )
and
replace strstr( $query, $customer_logout ) with strstr( isset($query)?$query:”, $customer_logout )
@jkkenzie
I’m no coder, but as this throws an error, I think you may mean replace line 139 with
if ( strstr( isset($path)?$path:", $customer_logout ) || strstr( isset($query)?$query:", $customer_logout ) ) {
To Just avoid mistakes, because you are not a coder, copy this code and replace line 139
if ( strstr( isset($path)?$path:'', $customer_logout ) || strstr( isset($query)?$query:'', $customer_logout ) ) {
I suspect you might have used double quote (“) instead of single quotes (”)
I am using this code right now in my project and this code stopped the error. my woocommerce version is Version 7.7.2… on php 8.1
-
This reply was modified 2 years, 9 months ago by
jkkenzie.
-
This reply was modified 2 years, 9 months ago by
jkkenzie.
My (obvious) mistake. Thanks.