What are theme and plugin conflicts?
A conflict is an error or malfunction caused by two parts of code giving conflicting signals. For example, plugin A gives the signal to put the order in “Completed” status and plugin B prevents this from happening.
Themes and plugins provide additional functionality and features — it also means more code is running on your website and the risk of incompatibility is higher. We strive to ensure compatibility with our own extensions, but third-party products made for WooCommerce are not guaranteed to work with our software. In this documentation page, we will explain how to test for plugin and theme conflicts.
How to do a conflict test
Testing is the only way to determine what is causing a conflict.
Backups and staging
We highly recommend making a backup of your site. Deactivating and reactivating plugins typically doesn’t cause issues, but having a good backup will save you a lot of time and energy on the rare occasion it does.
Most hosting providers offer a backup plan. If not, you can run a staging site
- Use a Staging site – This is a clone of your production site — one that is processing orders and has visitors — where you can safely test conflicts without your live site being affected and potentially losing revenue. Most hosting providers can help with this. Or, on most hosting platforms, you can also use the WP Staging plugin to create a clone in your Dashboard.
Deactivation and testing
To troubleshoot theme and plugin conflicts:
- Switch to a default WordPress theme, such as Twenty Nineteen to see if the issue persists.
- If no, your theme is causing the issue. You can: a) change your theme; b) contact the author of the theme and ask them to fix it.
- If yes, go to the next step.
- Temporarily deactivate all plugins except WooCommerce and the WooCommerce extensions you’re experiencing issues with.
- Test if the conflict still exists. How to test it, depends on what type of conflict you were experiencing.
- If the conflict occurred while browsing your site or the Dashboard, go to the same location. Examples of this would be:
- A feature not working on the product edit screen
- A button not showing on the cart page
- If the conflict only happens after a certain process, recreate and follow those identical steps. Examples of this would be:
- An order is marked “On Hold” instead of “Completed” after product A is added and paid for.
- An error displays while adding two products to the cart.
- If the conflict no longer exists, it means that the theme or plugins/extensions you deactivated were causing the conflict. If the conflict still exists, see ‘Drop-Ins and Must-Use’ and ‘Unsuccessful Conflict Tests’ below.
- If the conflict occurred while browsing your site or the Dashboard, go to the same location. Examples of this would be:
- Determine which plugin is causing the conflict by:
- reactivating them one by one
- testing again after each reactivation. For process-related conflicts, this means recreating the same process over and over again.
Drop-ins and must-use
On some sites is a “Must-Use” and/or “Drop-ins” section in the plugins list. These cannot be deactivated by you directly, but they can be the cause of the conflict.
- Some of these plugins are installed by another plugin. The function as a “helper plugin”. While doing a conflict test, deactivating those other “parent” plugins will also deactivate these ones.
- Also, many hosting companies use drop-in and/or must-use plugins that they pre-install on your site because it helps with their server setup.
If the conflict persists in the latter case while doing the above tests, it might be caused by a drop-in installed by your host. For example, we’ve seen conflicts caused by drop-in caching plugins. In this case, you need to contact your hosting company for help with deactivation.
Unsuccessful conflict tests
Should nothing change/resolve with issues and/or errors you’re experiencing after testing for conflicts, it likely means there is another cause. Contact a WooCommerce.com Happiness Engineer via our Support Help Desk. Please include a detailed description of:
- Steps which can be taken to replicate the issue
- Conflict tests you performed to exclude conflicts