FDP & FDP PRO Developer’s Integration Checklist

Purpose: This comprehensive checklist serves as a reverse-engineering guide for developers creating custom add-ons or integrations for Freesoul Deactivate Plugins (FDP) and FDP PRO. By understanding the extensive testing and validation process of the core plugins, developers gain insight into the architecture, hooks, filters, and edge cases they must consider when extending functionality.

Please refer to this checklist for testing your FDP add-on together with FDP core and, eventually, FDP PRO.


1. Installation & Activation

Fresh Installation

  • [FDP] Install plugin via WordPress admin
  • [FDP] Verify activation redirects to FDP settings page
  • [FDP] Verify MU-plugin file is created at wp-content/mu-plugins/eos-deactivate-plugins.php
  • [FDP] Verify MU-plugin version matches main plugin version (2.5.0)
  • [FDP] Verify “Plugins Manager” appears in admin menu
  • [FDP] Verify “Plugins Manager” appears under Plugins menu
  • [FDP] Verify no PHP errors or warnings during activation
  • [FDP] Verify activation notice displays correctly
  • [FDP] Check that fdp_loaded action fires (if monitoring hooks)

Multisite Installation

  • [FDP] Attempt network-wide activation – should show error message
  • [FDP] Activate on individual site – should work correctly
  • [FDP] Verify MU-plugin created per site, not network-wide
  • [FDP] Verify settings are site-specific, not network-wide

Permalink Requirements

  • [FDP] Test with “Post name” permalink structure – should work
  • [FDP] Test with “Day and name” permalink structure – should work
  • [FDP] Test with “Month and name” permalink structure – should work
  • [FDP] Test with custom structure ending in %postname% – should work
  • [FDP] Test with plain permalinks – should show warning
  • [FDP] Verify warning message displays when unsupported permalink structure detected

2. Upgrade from Previous Version

Upgrade Process

  • [FDP] Upgrade from previous version via WordPress updater
  • [FDP] Verify MU-plugin is updated automatically during upgrade
  • [FDP] Verify old MU-plugin file is deleted before new one is created
  • [FDP] Verify plugin slug/name mapping is updated (fdp_plugin_slug_names option)
  • [FDP] Verify existing settings are preserved after upgrade
  • [FDP] Verify no data loss in plugin deactivation settings
  • [FDP] Verify admin menu cache is rebuilt after upgrade
  • [FDP] Verify rewrite rules cache is maintained
  • [FDP] Check that eos_dp_after_upgrade function runs correctly
  • [FDP] Verify changelog transient is cleared after upgrade

Settings Migration

  • [FDP] Verify all post meta _eos_deactive_plugins_key values are preserved
  • [FDP] Verify all option values are preserved (check database)
  • [FDP] Verify post types matrix settings are intact
  • [FDP] Verify archive settings are intact
  • [FDP] Verify custom URL settings are intact
  • [FDP] Verify backend settings are intact

Compatibility Check

  • [FDP + PRO interaction] Verify FDP PRO remains active after FDP upgrade
  • [FDP + PRO interaction] Verify FDP PRO settings are not affected
  • [FDP + PRO interaction] Verify FDP PRO version compatibility check works
  • [FDP] Verify no conflicts with other active plugins during upgrade

3. Admin UI & Settings

Menu & Navigation

  • [FDP] Verify top-level “Freesoul Deactivate Plugins” menu appears
  • [FDP] Verify “Plugins Manager” submenu item works
  • [FDP] Verify menu can be hidden via user preferences
  • [FDP] Verify menu appears under Plugins even if top-level is hidden
  • [FDP] Verify navigation menu renders correctly
  • [FDP] Verify all menu items are accessible
  • [FDP] Verify active menu item highlighting works
  • [FDP] Verify menu collapse/expand functionality works
  • [FDP] Verify “Refresh FDP Navigation” admin bar link works

Settings Pages Access

  • [FDP] Verify Singles page (eos_dp_menu) loads correctly
  • [FDP] Verify Post Types page (eos_dp_by_post_type) loads correctly
  • [FDP] Verify Archives page (eos_dp_by_archive) loads correctly
  • [FDP] Verify Terms Archives page (eos_dp_by_term_archive) loads correctly
  • [FDP] Verify Mobile page (eos_dp_mobile) loads correctly
  • [FDP] Verify Search page (eos_dp_search) loads correctly
  • [FDP] Verify One Place page (eos_dp_one_place) loads correctly
  • [FDP] Verify Browser/User Agent page (eos_dp_browser) loads correctly
  • [FDP] Verify Custom URLs page (eos_dp_url) loads correctly
  • [FDP] Verify Backend URLs page (eos_dp_admin_url) loads correctly
  • [FDP] Verify Backend Singles page (eos_dp_admin) loads correctly
  • [FDP] Verify Integration page (eos_dp_integration) loads correctly
  • [FDP] Verify Firing Order page (eos_dp_firing_order) loads correctly
  • [FDP] Verify Reset Settings page (eos_dp_reset_settings) loads correctly
  • [FDP] Verify Experiments page (eos_dp_experiments) loads correctly
  • [FDP] Verify Help page (eos_dp_help) loads correctly
  • [FDP] Verify Add-ons page (eos_dp_addons) loads correctly
  • [FDP] Verify Create Plugin page (eos_dp_create_plugin) loads correctly
  • [FDP] Verify Favorite Plugins page (eos_dp_favorite_plugins) loads correctly
  • [FDP] Verify Roles Manager page (eos_dp_roles_manager) loads correctly

Page Titles & Headers

  • [FDP] Verify browser tab titles are correct for each page
  • [FDP] Verify page titles include post type names when applicable
  • [FDP] Verify page titles include taxonomy names when applicable
  • [FDP] Verify fdp_page_titles filter works correctly

UI Functionality

  • [FDP] Verify plugin checkboxes work correctly
  • [FDP] Verify “Select all” / “Deselect all” functionality
  • [FDP] Verify row-level select all works
  • [FDP] Verify column-level select all works
  • [FDP] Verify drag-and-drop sorting works (on sortable pages)
  • [FDP] Verify save button works and shows success message
  • [FDP] Verify AJAX save requests complete successfully
  • [FDP] Verify error messages display correctly on save failure
  • [FDP] Verify loading indicators appear during AJAX operations
  • [FDP] Verify JavaScript console has no errors

Admin Page Cleanup

  • [FDP] Verify other plugins’ admin_head actions are removed on FDP pages
  • [FDP] Verify other plugins’ admin_footer actions are removed on FDP pages
  • [FDP] Verify only allowed scripts/styles load on FDP pages
  • [FDP] Verify Content Security Policy headers are set correctly
  • [FDP] Verify CSP can be disabled via user preferences

User Preferences

  • [FDP] Verify user preferences section appears in user profile
  • [FDP] Verify “Show FDP top level admin menu” preference works
  • [FDP] Verify “Show metabox” preference works
  • [FDP] Verify “Content Security Policy” preference works
  • [FDP] Verify preferences can be hidden via fdp_hide_user_preferences filter
  • [FDP] Verify preferences save correctly

Capabilities & Access Control

  • [FDP] Verify users without activate_plugins cannot access settings
  • [FDP] Verify users with fdp_plugins_viewer can view but not edit
  • [FDP] Verify eos_dp_settings_capability filter works
  • [FDP] Verify eos_dp_user_can_settings filter works
  • [FDP] Verify access denied message displays correctly

4. Plugin Deactivation Logic

Core Deactivation Mechanism

  • [FDP] Verify MU-plugin runs before standard plugins load
  • [FDP] Verify option_active_plugins filter is applied correctly
  • [FDP] Verify disabled plugins are removed from active plugins array
  • [FDP] Verify FDP itself is never disabled
  • [FDP] Verify untouchable plugins cannot be disabled
  • [FDP] Verify filters are removed before updating rewrite rules
  • [FDP] Verify filters are removed before updating active_plugins option

Priority System

  • [FDP] Verify Singles settings override Post Types settings
  • [FDP] Verify Singles settings override Archive settings
  • [FDP] Verify URL settings override Singles settings
  • [FDP] Verify Post Types settings apply when Singles are rows are off
  • [FDP] Verify device settings (mobile/desktop) apply correctly
  • [FDP] Verify search settings apply correctly
  • [FDP] Verify browser/User Agent settings apply correctly

Frontend Deactivation

  • [FDP] Verify plugins are disabled on frontend pages
  • [FDP] Verify plugins are disabled on frontend posts
  • [FDP] Verify plugins are disabled on archive pages
  • [FDP] Verify plugins are disabled on term archive pages
  • [FDP] Verify plugins are disabled on search results page
  • [FDP] Verify plugins are disabled on homepage (when configured)
  • [FDP] Verify disabled plugins list appears in console (if debug enabled)
  • [FDP] Verify Disabled-Plugins HTTP header is sent correctly
  • [FDP] Verify fdp_frontend_plugins filter works

Backend Deactivation

  • [FDP PRO] Verify plugins are disabled on admin pages
  • [FDP PRO] Verify plugins are disabled on specific admin URLs
  • [FDP PRO] Verify plugins are disabled on backend singles pages
  • [FDP PRO] Verify FDP admin pages still work when plugins are disabled
  • [FDP PRO] Verify admin menu items from disabled plugins are hidden
  • [FDP PRO] Verify admin menu cache is used correctly
  • [FDP PRO] Verify fdp_backend_plugins filter works

AJAX Deactivation

  • [FDP PRO] Verify plugins can be disabled during AJAX requests
  • [FDP PRO] Verify AJAX action-specific deactivation works
  • [FDP PRO] Verify WooCommerce AJAX (wc-ajax) is handled correctly
  • [FDP PRO] Verify fdp_ajax_plugins filter works

Cron Deactivation

  • [FDP PRO] Verify plugins can be disabled during cron jobs
  • [FDP PRO] Verify cron settings are applied correctly
  • [FDP PRO] Verify eos_dp_cron_active_plugins function works

5. Conditional Rules

Singles (Individual Pages/Posts)

  • [FDP] Verify plugin deactivation works for individual pages
  • [FDP] Verify plugin deactivation works for individual posts
  • [FDP] Verify plugin deactivation works for custom post types
  • [FDP] Verify settings save correctly via AJAX
  • [FDP] Verify settings save correctly via metabox
  • [FDP] Verify inactive post rows use Post Types settings
  • [FDP] Verify active post rows use Singles settings
  • [FDP] Verify private posts are handled correctly
  • [FDP] Verify homepage settings work when show_on_front is “page”
  • [FDP] Verify homepage redirects correctly based on show_on_front setting

Post Types

  • [FDP] Verify Post Types settings apply to all posts of that type
  • [FDP] Verify Post Types settings override inactive Singles rows
  • [FDP] Verify Post Types settings don’t override active Singles rows
  • [FDP] Verify “Enable/disable entire row” switch works
  • [FDP] Verify locked IDs list is maintained correctly
  • [FDP] Verify settings save correctly

Archives

  • [FDP] Verify archive settings apply to category archives
  • [FDP] Verify archive settings apply to tag archives
  • [FDP] Verify archive settings apply to author archives
  • [FDP] Verify archive settings apply to date archives
  • [FDP] Verify “all archives” settings work correctly
  • [FDP] Verify archive URL matching works correctly
  • [FDP] Verify archive settings save correctly

Terms Archives

  • [FDP] Verify term archive settings apply to specific taxonomy terms
  • [FDP] Verify term archive settings work for custom taxonomies
  • [FDP] Verify term archive URL matching works correctly
  • [FDP] Verify term archive settings save correctly

Custom URLs

  • [FDP] Verify URL pattern matching works with exact URLs
  • [FDP] Verify URL pattern matching works with wildcard *
  • [FDP] Verify URL patterns with query strings work
  • [FDP] Verify URL patterns with anchors work
  • [FDP] Verify [home] placeholder is replaced correctly
  • [FDP] Verify URL priority works (first match wins)
  • [FDP PRO] Verify URL settings can be filtered via f flag (PRO)
  • [FDP] Verify URL row notes save correctly
  • [FDP] Verify URL row copy/paste functionality works
  • [FDP] Verify URL row deletion works

Backend URLs

  • [FDP] Verify admin URL pattern matching works
  • [FDP] Verify admin URL patterns match specific admin pages
  • [FDP] Verify admin URL settings save correctly
  • [FDP] Verify admin URL deactivation works correctly

Backend Singles

  • [FDP PRO] Verify backend singles settings work for specific admin pages
  • [FDP PRO] Verify backend singles settings save correctly
  • [FDP PRO] Verify theme can be disabled on specific admin pages
  • [FDP PRO] Verify backend singles work with admin menu cache

Mobile/Desktop

  • [FDP] Verify mobile detection works correctly
  • [FDP] Verify plugins are disabled on mobile when configured
  • [FDP PRO] Verify plugins are disabled on desktop when configured
  • [FDP] Verify device detection uses server-side detection
  • [FDP] Verify eos_dp_is_mobile() function works correctly
  • [FDP] Verify mobile/desktop settings save correctly

Search

  • [FDP] Verify plugins are disabled on search results page
  • [FDP] Verify search settings save correctly
  • [FDP] Verify search URL matching works correctly

Browser/User Agent

  • [FDP] Verify User Agent string matching works
  • [FDP] Verify case-insensitive matching works
  • [FDP] Verify multiple User Agent patterns work
  • [FDP] Verify browser settings save correctly

One Place (Keep Active Only On URLs)

  • [FDP PRO] Verify “one place” settings keep plugins active only on matched URLs
  • [FDP PRO] Verify plugins are disabled everywhere except matched URLs
  • [FDP PRO] Verify URL matching works correctly
  • [FDP PRO] Verify one place settings save correctly

Integration Actions

  • [FDP] Verify plugins can be disabled during specific action hooks
  • [FDP] Verify action hook matching works correctly
  • [FDP] Verify integration settings save correctly

Logged Users (PRO)

  • [FDP PRO] Verify plugins can be disabled for logged-in users
  • [FDP PRO] Verify user condition expressions work correctly
  • [FDP PRO] Verify user meta conditions work
  • [FDP PRO] Verify user capability conditions work
  • [FDP PRO] Verify user role conditions work
  • [FDP PRO] Verify complex expressions with AND/OR/NOT work
  • [FDP PRO] Verify logged user settings save correctly

POST Requests (PRO)

  • [FDP PRO] Verify plugins can be disabled during POST requests
  • [FDP PRO] Verify POST action-specific deactivation works
  • [FDP PRO] Verify POST request settings save correctly

REST API (PRO)

  • [FDP PRO] Verify plugins can be disabled on REST API endpoints
  • [FDP PRO] Verify REST API URL matching works
  • [FDP PRO] Verify theme can be disabled on REST API
  • [FDP PRO] Verify REST API settings save correctly

6. Frontend Behavior

Page Loading

  • [FDP] Verify frontend pages load correctly with plugins disabled
  • [FDP] Verify no PHP errors when plugins are disabled
  • [FDP] Verify page functionality works when non-essential plugins are disabled
  • [FDP] Verify critical plugins remain active when needed
  • [FDP] Verify disabled plugins don’t load at all (not just deactivated)
  • [FDP] Verify fdp_disabled action fires when FDP is disabled

URL Matching

  • [FDP] Verify URL matching works with permalink structures
  • [FDP] Verify URL matching works with translated URLs (WPML/Polylang)
  • [FDP] Verify URL matching handles query strings correctly
  • [FDP] Verify URL matching handles fragments correctly
  • [FDP] Verify fdp_request_uri filter works

Translation Support

  • [FDP] Verify WPML translation URLs are handled correctly
  • [FDP] Verify Polylang translation URLs are handled correctly
  • [FDP] Verify Transposh translation URLs are handled correctly
  • [FDP] Verify language query parameters are handled correctly
  • [FDP] Verify translated post IDs are resolved correctly

Preview Mode

  • [FDP] Verify preview mode works (?eos_dp_preview=1)
  • [FDP] Verify preview shows correct disabled plugins
  • [FDP] Verify preview nonce validation works
  • [FDP] Verify preview with js=off parameter disables JavaScript
  • [FDP] Verify preview button in metabox works
  • [FDP] Verify preview button in Singles page works
  • [FDP] Verify preview respects current settings
  • [FDP] Verify preview doesn’t affect actual page behavior

Debug Mode

  • [FDP] Verify debug mode works (?eos_dp_debug_options=1)
  • [FDP] Verify debug information displays correctly
  • [FDP] Verify disabled plugins list appears in debug output
  • [FDP] Verify debug information includes reason for deactivation
  • [FDP] Verify debug button works in admin
  • [FDP] Verify EOS_DP_DEBUG constant enables debug mode
  • [FDP] Verify debug output appears in console when enabled
  • [FDP] Verify show_disabled_plugins parameter works

HTTP Headers

  • [FDP] Verify Disabled-Plugins header is sent correctly
  • [FDP] Verify header shows correct count of disabled plugins
  • [FDP] Verify header shows “none” when no plugins disabled
  • [FDP] Verify header shows reason when FDP is disabled

Theme Replacement

  • [FDP] Verify theme can be replaced for previews
  • [FDP] Verify theme replacement works with REST API
  • [FDP] Verify theme replacement doesn’t affect normal pages
  • [FDP] Verify eos_dp_replace_theme function works

7. Backend / Admin Behavior

Admin Pages

  • [FDP PRO] Verify admin pages load correctly
  • [FDP PRO] Verify admin pages work when plugins are disabled
  • [FDP PRO] Verify admin menu items from disabled plugins are hidden
  • [FDP PRO] Verify admin menu cache is used correctly
  • [FDP PRO] Verify admin menu cache is rebuilt when needed
  • [FDP PRO] Verify admin submenu items are handled correctly
  • [FDP PRO] Verify admin page hooks are cached correctly

Admin Menu Management

  • [FDP PRO] Verify admin menu is rebuilt after plugin activation/deactivation
  • [FDP PRO] Verify admin menu shows correct update counts (plugins, comments)
  • [FDP PRO] Verify WooCommerce order count appears correctly
  • [FDP PRO] Verify Yoast SEO notification count appears correctly
  • [FDP PRO] Verify fdp_woo_order_count filter works
  • [FDP PRO] Verify fdp_yoast_notification_count filter works

Metabox

  • [FDP] Verify FDP metabox appears on post edit screens
  • [FDP] Verify FDP metabox appears on page edit screens
  • [FDP] Verify FDP metabox appears on custom post type edit screens
  • [FDP] Verify FDP metabox doesn’t appear on attachments
  • [FDP] Verify metabox can be hidden via user preferences
  • [FDP] Verify metabox shows correct plugin states
  • [FDP] Verify metabox lock/unlock functionality works
  • [FDP] Verify metabox links to Singles and Post Types pages work
  • [FDP] Verify metabox preview buttons work
  • [FDP] Verify metabox saves correctly with post
  • [FDP] Verify metabox respects Post Types settings when locked

AJAX Functionality

  • [FDP] Verify AJAX save requests work correctly
  • [FDP] Verify AJAX nonce validation works
  • [FDP] Verify AJAX error handling works
  • [FDP] Verify fdp_before_ajax_request action fires
  • [FDP] Verify AJAX responses are correct
  • [FDP] Verify AJAX loading indicators work

Settings Import/Export (PRO)

  • [FDP PRO] Verify settings can be exported
  • [FDP PRO] Verify settings can be imported
  • [FDP PRO] Verify imported settings are applied correctly
  • [FDP PRO] Verify import validates data correctly

8. Performance & Caching Considerations

Rewrite Rules

  • [FDP] Verify rewrite rules are cached correctly
  • [FDP] Verify rewrite rules are rebuilt when needed
  • [FDP] Verify rewrite rules warning appears when flushed during request
  • [FDP] Verify fdp_flush_rewrite_rules action fires correctly
  • [FDP] Verify rewrite rules monitoring works
  • [FDP] Verify rewrite rules are updated after theme activation
  • [FDP] Verify rewrite rules are updated after plugin activation/deactivation

Navigation Cache

  • [FDP] Verify navigation menu is cached
  • [FDP] Verify navigation cache is cleared when needed
  • [FDP] Verify navigation cache rebuilds after plugin changes
  • [FDP] Verify navigation cache rebuilds after language changes
  • [FDP] Verify “Refresh FDP Navigation” clears cache correctly

Option Autoloading

  • [FDP PRO] Verify autoloaded options are set correctly
  • [FDP PRO] Verify fdp_autoloaded_options filter works
  • [FDP PRO] Verify frequently accessed options are autoloaded
  • [FDP PRO] Verify database queries are minimized

Plugin Slug/Name Mapping

  • [FDP] Verify plugin slug/name mapping is updated after plugin activation
  • [FDP] Verify plugin slug/name mapping is updated after upgrade
  • [FDP] Verify mapping is used correctly throughout admin interface

9. Compatibility Checks

WooCommerce

  • [FDP] Verify WooCommerce pages work with plugins disabled
  • [FDP] Verify WooCommerce checkout works correctly
  • [FDP] Verify WooCommerce cart works correctly
  • [FDP] Verify WooCommerce product pages work correctly
  • [FDP] Verify WooCommerce AJAX requests work correctly
  • [FDP] Verify WooCommerce order processing works
  • [FDP] Verify WooCommerce admin menu counts work correctly
  • [FDP] Verify woocommerce_include_processing_order_count_in_menu filter works

Page Builders

  • [FDP] Verify Elementor preview works correctly
  • [FDP] Verify Elementor editor works with plugins disabled
  • [FDP] Verify Beaver Builder works correctly
  • [FDP] Verify Divi Builder works correctly
  • [FDP] Verify Gutenberg editor works correctly
  • [FDP] Verify page builder iframes are handled correctly

Translation Plugins

  • [FDP] Verify WPML compatibility works
  • [FDP] Verify Polylang compatibility works
  • [FDP] Verify Transposh compatibility works
  • [FDP] Verify language switchers are hidden on FDP pages
  • [FDP] Verify translated post matching works

Caching Plugins

  • [FDP] Verify compatibility with WP Super Cache
  • [FDP] Verify compatibility with W3 Total Cache
  • [FDP] Verify compatibility with WP Rocket
  • [FDP] Verify cache is bypassed for preview mode
  • [FDP] Verify cache respects disabled plugins

Security Plugins

  • [FDP] Verify compatibility with Wordfence
  • [FDP] Verify compatibility with iThemes Security
  • [FDP] Verify compatibility with Sucuri
  • [FDP] Verify security plugins don’t block FDP functionality

Query Monitor

  • [FDP] Verify Query Monitor integration works
  • [FDP] Verify Query Monitor is disabled on FDP pages
  • [FDP] Verify Query Monitor debug output works

Code Profiler

  • [FDP] Verify Code Profiler integration works
  • [FDP] Verify Code Profiler mode disables plugins correctly
  • [FDP] Verify Code Profiler settings save correctly

10. Error Handling & Edge Cases

Fatal Error Detection

  • [FDP] Verify fatal errors are detected correctly
  • [FDP] Verify fatal error notices appear in admin
  • [FDP] Verify fatal error notices can be dismissed
  • [FDP] Verify problematic plugins are disabled on FDP pages automatically
  • [FDP] Verify fatal error information is logged correctly
  • [FDP] Verify fdp_plugin_disabledd_fatal_error transient works

Emergency Modes

  • [FDP] Verify FDP_OFF constant disables FDP
  • [FDP] Verify FDP_EMERGENCY_LOG_ADMIN works
  • [FDP] Verify FDP_EMERGENCY_ADMIN_PLUGINS works
  • [FDP] Verify FDP_EMERGENCY_ADMIN_THEME_OFF works
  • [FDP] Verify emergency mode file loads correctly

Edge Cases

  • [FDP] Verify empty plugin lists are handled correctly
  • [FDP] Verify invalid post IDs are handled correctly
  • [FDP] Verify missing post meta is handled correctly
  • [FDP] Verify malformed URL patterns are handled correctly
  • [FDP] Verify very long URL patterns are handled correctly
  • [FDP] Verify special characters in URLs are handled correctly
  • [FDP] Verify posts with same slug (different post types) are handled
  • [FDP] Verify child pages with same slug as parent are handled
  • [FDP] Verify homepage detection works correctly
  • [FDP] Verify archive detection works for custom taxonomies

Missing Dependencies

  • [FDP] Verify behavior when required functions are missing
  • [FDP] Verify behavior when required constants are missing
  • [FDP] Verify behavior when database options are corrupted
  • [FDP] Verify behavior when MU-plugin is missing but main plugin is active
  • [FDP] Verify fdp_disabled action fires when FDP is missing

Development Mode

  • [FDP PRO] Verify development mode works (dev_mode setting)
  • [FDP PRO] Verify development mode disables FDP on frontend without fdp-dev parameter
  • [FDP PRO] Verify development mode allows access with correct fdp-dev parameter
  • [FDP PRO] Verify FDP_DEV_MODE constant works

11. Uninstall / Cleanup

Plugin Deactivation

  • [FDP] Verify deactivation removes MU-plugin file
  • [FDP] Verify deactivation clears navigation cache
  • [FDP] Verify deactivation doesn’t remove settings (by design)
  • [FDP] Verify deactivation doesn’t cause errors
  • [FDP] Verify eos_dp_deactivate_plugin function runs correctly

Settings Cleanup (if uninstalling)

  • [FDP] Verify uninstall removes all FDP options (if uninstall hook exists)
  • [FDP] Verify uninstall removes all FDP post meta (if uninstall hook exists)
  • [FDP] Verify uninstall removes all FDP user meta (if uninstall hook exists)
  • [FDP] Verify uninstall removes all FDP transients (if uninstall hook exists)
  • [FDP] Verify uninstall removes MU-plugin file
  • [FDP] Verify uninstall doesn’t affect other plugins’ data

File Cleanup

  • [FDP] Verify MU-plugin directory is cleaned up if empty
  • [FDP] Verify no orphaned files remain after uninstall
  • [FDP] Verify cache files are removed

12. Regression Smoke Tests

Critical Paths

  • [FDP] Verify basic plugin deactivation on a single page works
  • [FDP] Verify basic plugin deactivation on a single post works
  • [FDP] Verify Post Types settings apply correctly
  • [FDP] Verify Archive settings apply correctly
  • [FDP] Verify Custom URL settings apply correctly
  • [FDP] Verify settings save and persist correctly
  • [FDP] Verify preview mode works
  • [FDP] Verify admin interface loads correctly

Known Issues (Check Previous Release Notes)

  • [FDP] Verify rewrite rules warning doesn’t appear unnecessarily
  • [FDP] Verify admin menu cache doesn’t cause issues
  • [FDP] Verify URL matching works with all permalink structures
  • [FDP] Verify translation plugin compatibility is maintained
  • [FDP] Verify WooCommerce compatibility is maintained

Browser Compatibility

  • [FDP] Verify admin interface works in Chrome
  • [FDP] Verify admin interface works in Firefox
  • [FDP] Verify admin interface works in Safari
  • [FDP] Verify admin interface works in Edge
  • [FDP] Verify JavaScript functionality works in all browsers
  • [FDP] Verify CSS styling is correct in all browsers

PHP Version Compatibility

  • [FDP] Verify plugin works on PHP 7.2
  • [FDP] Verify plugin works on PHP 7.3
  • [FDP] Verify plugin works on PHP 7.4
  • [FDP] Verify plugin works on PHP 8.0
  • [FDP] Verify plugin works on PHP 8.1
  • [FDP] Verify plugin works on PHP 8.2
  • [FDP] Verify no deprecated PHP functions are used

WordPress Version Compatibility

  • [FDP] Verify plugin works on WordPress 5.9
  • [FDP] Verify plugin works on WordPress 6.0
  • [FDP] Verify plugin works on WordPress 6.1
  • [FDP] Verify plugin works on WordPress 6.2
  • [FDP] Verify plugin works on WordPress 6.3
  • [FDP] Verify plugin works on WordPress 6.4
  • [FDP] Verify plugin works on latest WordPress version

Multisite Compatibility

  • [FDP] Verify plugin works on multisite installations
  • [FDP] Verify settings are site-specific
  • [FDP] Verify MU-plugin is created per site
  • [FDP] Verify network activation is prevented correctly

High Plugin Count

  • [FDP] Verify plugin works with 50+ active plugins
  • [FDP] Verify admin interface performance is acceptable
  • [FDP] Verify page load performance is acceptable
  • [FDP] Verify memory usage is reasonable

Complex Scenarios

  • [FDP] Verify multiple conditional rules work together correctly
  • [FDP] Verify priority system works with all rule types
  • [FDP] Verify URL patterns with multiple wildcards work
  • [FDP] Verify settings with many posts/pages save correctly
  • [FDP] Verify settings with many plugins save correctly

13. FDP PRO Integration Tests

PRO Activation

  • [FDP + PRO interaction] Verify FDP PRO activates correctly when FDP is active
  • [FDP + PRO interaction] Verify FDP PRO MU-plugin loads correctly
  • [FDP + PRO interaction] Verify FDP PRO version check works
  • [FDP + PRO interaction] Verify FDP PRO license validation works
  • [FDP + PRO interaction] Verify FDP PRO license expiration is detected

PRO Features Integration

  • [FDP + PRO interaction] Verify PRO features appear in FDP admin
  • [FDP + PRO interaction] Verify PRO menu items appear correctly
  • [FDP + PRO interaction] Verify PRO settings pages load correctly
  • [FDP + PRO interaction] Verify PRO filters work with FDP filters
  • [FDP + PRO interaction] Verify fdp_active_by_addon filter works

14. Additional Features

Create Plugin

  • [FDP] Verify plugin creation works correctly
  • [FDP] Verify created plugin has correct structure
  • [FDP] Verify created plugin can be activated
  • [FDP] Verify created plugin can be edited
  • [FDP] Verify eos_dp_after_create_plugin action fires
  • [FDP] Verify plugin name uniqueness is handled

Favorite Plugins

  • [FDP] Verify favorite plugins can be marked
  • [FDP] Verify favorite plugins appear in filtered views
  • [FDP] Verify favorite plugins can be unmarked
  • [FDP] Verify favorite plugins persist across sessions

Firing Order

  • [FDP] Verify firing order page displays correctly
  • [FDP] Verify firing order can be changed
  • [FDP] Verify firing order settings save correctly
  • [FDP] Verify firing order affects plugin loading

Reset Settings

  • [FDP] Verify reset settings page works
  • [FDP] Verify reset removes all FDP settings
  • [FDP] Verify reset confirmation works
  • [FDP] Verify reset doesn’t affect other plugins

Site Health

  • [FDP] Verify Site Health integration works
  • [FDP] Verify rewrite rules test appears
  • [FDP] Verify plugin conflicts test appears
  • [FDP] Verify Site Health tests run correctly

Add-ons System

  • [FDP] Verify FDP add-ons are detected correctly
  • [FDP] Verify add-ons load correctly
  • [FDP] Verify add-ons can modify plugin lists
  • [FDP] Verify add-ons page displays correctly

Testing Notes

Test Environment Setup

  • Use a staging site that mirrors production
  • Test with realistic data (multiple posts, pages, plugins)
  • Test with various user roles
  • Test with different themes
  • Test with common plugin combinations

Critical Test Scenarios

  1. Fresh installation – Ensure new users can install and use FDP
  2. Upgrade path – Ensure existing users can upgrade without issues
  3. Complex rules – Test multiple conditional rules working together
  4. Edge cases – Test unusual scenarios (same slugs, special characters, etc.)
  5. Performance – Ensure no performance regressions
  6. Compatibility – Ensure compatibility with popular plugins/themes

Known Limitations to Test

  • Plain permalinks are not supported (should show warning)
  • Network-wide activation is not supported (should show error)
  • Some features require PRO version (should show appropriate messages)

Reporting Issues

When issues are found, document:

  • Steps to reproduce
  • Expected behavior
  • Actual behavior
  • WordPress version
  • PHP version
  • Active plugins list
  • FDP version
  • FDP PRO version (if applicable)
  • Browser and version
  • Screenshots if applicable
  • Error messages/logs