Managing plugins in a WordPress Multisite network can be challenging, especially when you want a plugin active across most sites but disabled on one specific sub-site. This is particularly common for businesses running multiple WooCommerce stores, a Headless WordPress WooCommerce setup, or sites using specialized functionality such as a WooCommerce Plugin Subscription or WooCommerce Display Product Attributes Filter.
While WordPress makes it easy to manage standard plugins on individual sites, things become more complicated when dealing with network-activated plugins.
In this guide, you’ll learn how to disable a plugin for a single site in a WordPress Multisite network, including both regular plugins and network-only plugins.
Understanding Plugin Management in WordPress Multisite
WordPress Multisite allows you to run multiple websites from a single WordPress installation. Plugin management works in two ways:
Site-Level Activation
A plugin can be activated individually on specific sites within the network.
Network Activation
A plugin can be activated across the entire network, making it available to every sub-site automatically.
The method you use to disable a plugin depends on how the plugin is activated.
Scenario 1: Disable a Regular Plugin for One Site
Many businesses use WordPress Multisite to manage multiple online stores from a single installation. For example, one site may require a WooCommerce Plugin Subscription to handle recurring payments, while another may use a WooCommerce Display Product Attributes Filter to improve product discovery and navigation.
Instead of activating every plugin across all sites, administrators often choose to enable specific plugins only where they are needed. This helps improve performance, reduce conflicts, and simplify site management.
If the plugin supports individual site activation, disabling it for one site is straightforward.
Example
Suppose you have five websites in your Multisite network:
- Site 1
- Site 2
- Site 3
- Site 4
- Site 5
You want to disable WooCommerce only on Site 3 while keeping it active everywhere else.
Step 1: Check Network Activation
Go to:
Network Admin → Plugins
Find the plugin and verify whether it is network activated.
If it is network activated:
- Click Network Deactivate
This allows individual site control.
Step 2: Activate on Required Sites
Now visit each site’s dashboard:
- Site 1 → Activate
- Site 2 → Activate
- Site 4 → Activate
- Site 5 → Activate
Leave Site 3 deactivated.
That’s all you need to do.
Scenario 2: Disable a Network-Only Plugin for One Site
Some plugins are designed to run only at the network level.
When viewing them from a sub-site dashboard, you’ll see a label such as:
Network Only
Examples include:
- Multisite management plugins
- Cross-posting plugins
- Network administration tools
- Security and synchronization plugins
These plugins cannot be activated or deactivated from individual site dashboards.
The Challenge
WordPress does not provide a built-in option to disable a network-only plugin for a specific site.
However, you can use custom code to programmatically deactivate it.
Important Warning
Before proceeding, understand that some network-only plugins expect to run across the entire network.
Disabling them on a specific site may:
- Break plugin functionality
- Trigger PHP errors
- Cause database inconsistencies
- Create unexpected behavior
Always test changes in a staging environment before applying them to a live network.
Disable a Network-Activated Plugin for One Site
Add the following code to a custom plugin or your network-wide functionality plugin:
add_action( 'admin_init', function() {
// Site ID where plugin should be disabled
$blog_id = 3;
// Plugin path
$plugin_slug = 'plugin-folder/plugin-file.php';
if ( $blog_id === get_current_blog_id() ) {
deactivate_plugins( $plugin_slug );
} else {
switch_to_blog( $blog_id );
deactivate_plugins( $plugin_slug );
restore_current_blog();
}
} );
Understanding the Code
Specify the Site ID
$blog_id = 3;
This identifies the sub-site where the plugin should be disabled.
You can find the site ID under:
Network Admin → Sites
Define the Plugin Path
$plugin_slug = 'plugin-folder/plugin-file.php';
Replace this with the actual plugin path.
For example:
$plugin_slug = 'woocommerce/woocommerce.php';
or
$plugin_slug = 'akismet/akismet.php';
Deactivate the Plugin
The function:
deactivate_plugins()
removes the plugin activation for the specified site.
How to Find Your Plugin Slug
Navigate to:
wp-content/plugins/
Locate the plugin folder and main plugin file.
Examples:
| Plugin | Slug |
|---|---|
| WooCommerce | woocommerce/woocommerce.php |
| Akismet | akismet/akismet.php |
| Yoast SEO | wordpress-seo/wp-seo.php |
Use the correct path inside the code snippet.
Alternative Approach: Plugin-Level Conditional Loading
In some cases, directly deactivating a network-only plugin is not recommended.
Instead, developers often prevent the plugin’s functionality from running on specific sites.
Example:
if ( get_current_blog_id() === 3 ) {
return;
}
This method allows the plugin to remain network activated while skipping execution on selected sites.
Many enterprise WordPress Multisite installations prefer this approach because it reduces compatibility issues.
Best Practices for WordPress Multisite Plugin Management
When managing plugins across a network:
Use Staging First
Always test plugin changes before deploying them to production.
Document Site IDs
Keep a record of site IDs used in custom code.
Monitor Error Logs
Check for warnings after disabling network-only plugins.
Update Carefully
Plugin updates may alter behavior, so retest after major updates.
Review Plugin Documentation
Some plugins explicitly state whether they support selective activation in Multisite environments.
Troubleshooting Common Issues
Plugin Reactivates Automatically
Some network-only plugins force activation during initialization.
Review the plugin code or documentation for network requirements.
Fatal Errors After Deactivation
This usually happens when another plugin or theme depends on the disabled plugin.
Check:
- PHP error logs
- Site Health reports
- Plugin dependencies
Changes Don’t Apply
Clear:
- Object cache
- Page cache
- Server cache
Then test again.
Conclusion
Disabling a plugin for one site in a WordPress Multisite network depends on how the plugin is activated.
For standard plugins, simply deactivate network activation and activate the plugin individually on the sites that need it. This approach works well for WooCommerce-related extensions such as a WooCommerce Plugin Subscription or a WooCommerce Display Product Attributes Filter, where only specific stores require the functionality.
For network-only plugins, WordPress does not provide a built-in solution. In those cases, a custom code snippet using deactivate_plugins() can help disable the plugin for a specific site, though caution is required to avoid compatibility issues.
Whether you’re managing a traditional WooCommerce store or a Headless WordPress WooCommerce implementation, proper plugin management can improve performance, reduce complexity, and ensure each site uses only the features it needs. For larger or more complex Multisite networks, many businesses choose to Hire WooCommerce Developer experts to implement custom solutions and maintain long-term stability.
Key Takeaway
- Regular plugins: Activate individually on required sites.
- Network-only plugins: Use custom code or conditional loading.
- WooCommerce stores can selectively enable features like WooCommerce Plugin Subscription and WooCommerce Display Product Attributes Filter.
- Always test changes in a staging environment before deploying to production.
- Consider hiring a professional if your Multisite network includes custom WooCommerce functionality or a Headless WordPress WooCommerce architecture.
This approach gives WordPress administrators greater flexibility when managing plugins across large Multisite networks while maintaining optimal performance and functionality.
Hi and welcome! I’ve spent more than 7 years helping WordPress users with easy-to-follow guides, tutorials, and practical tips all completely free.Need expert developer help? I’m just a message away.