I got a message this morning from one of my staff that she couldn’t log into our website.
I immediately investigated and found 705 of these:
[17-Nov-2020 02:12:53 UTC] PHP Fatal error: Cannot redeclare wc_stripe() (previously declared in /usr/local/lsws/vhost1/htdocs/wp-content/plugins/woo-stripe-payment/includes/class-stripe.php:340) in /usr/local/lsws/vhost1/htdocs/wp-content/plugins/woocommerce-gateway-stripe/woocommerce-gateway-stripe.php on line 57
So, clearly the WooCommerce Stripe Payment Gateway author has arrogantly stomped all over the namespace of the Stripe for WooCommerce plugin. Now that WordPress performs automatic updates, plugin authors should be especially careful to respect the namespace around them, especially when the plugin is an official WooCommerce one!
4.5.5 – 2020-11-17
Fix – Guard against fatal errors that may occur on inbox data store load.
It should also include
Break – Break websites by declaring or renaming function wc_stripe()
We were just testing the Stripe for WooCommerce plugin, as it enables Cardholder Not Present payments through the admin order screen, but since this incident we have completed the testing and have uninstalled the WooCommerce Stripe Payment Gateway plugin and will not be using it again.
Instead, we recommend Stripe for WooCommerce, which you can get free from the WordPress plugins directory.