{"id":316897,"date":"2026-06-25T19:15:48","date_gmt":"2026-06-25T19:15:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/conflict-guard\/"},"modified":"2026-06-25T19:15:16","modified_gmt":"2026-06-25T19:15:16","slug":"conflict-guard","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/conflict-guard\/","author":13209897,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.5","stable_tag":"1.0.5","tested":"7.0","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Conflict Guard","header_author":"Ceaser Mwangi","header_description":"Automatically detect, isolate, and troubleshoot WordPress plugin conflicts. Safe Test Mode, Smart Isolation, One-Click Rollback, and Real-Time Error Monitoring.","assets_banners_color":"e1ddec","last_updated":"2026-06-25 19:15:16","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/conflict-guard\/","header_author_uri":"https:\/\/profiles.wordpress.org\/mwangip\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":23,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.5":{"tag":"1.0.5","author":"mwangip","date":"2026-06-25 19:15:16"}},"upgrade_notice":{"1.0.5":"<p>Code-quality fix: uninstall.php now uses properly prepared\/escaped SQL for table and option cleanup instead of interpolated variables. No functional change for end users \u2014 safe to update.<\/p>","1.0.4":"<p>Important bug fix: Emergency Recovery was not activating in prior versions, and database table creation\/removal had SQL formatting bugs. Update recommended, especially if you rely on Emergency Recovery.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3586509,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3586509,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3586509,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3586509,"resolution":"1","location":"assets","locale":"","width":1226,"height":529},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3586509,"resolution":"2","location":"assets","locale":"","width":1228,"height":573},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3586509,"resolution":"3","location":"assets","locale":"","width":1236,"height":569},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3586509,"resolution":"4","location":"assets","locale":"","width":1223,"height":639},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3586509,"resolution":"5","location":"assets","locale":"","width":1229,"height":639},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3586509,"resolution":"6","location":"assets","locale":"","width":1234,"height":687},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3586509,"resolution":"7","location":"assets","locale":"","width":1239,"height":642},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3586509,"resolution":"8","location":"assets","locale":"","width":1198,"height":476}},"screenshots":{"1":"Main dashboard with site health score and plugin stability table.","2":"Safe Test Mode \u2014 enable session-based sandbox to test without plugins.","3":"Real-time error monitoring dashboard showing PHP, AJAX, and REST errors.","4":"Conflict timeline \u2014 visual history of every plugin event and crash.","5":"One-click rollback \u2014 select a plugin and restore a previous version.","6":"Emergency recovery mode \u2014 accessible even when WP Admin is broken.","7":"Diagnostics panel \u2014 system info, connectivity tests, and report export.","8":"Settings page with donation support section."}},"plugin_section":[],"plugin_tags":[191246,94,10708,8541,286],"plugin_category":[45,59],"plugin_contributors":[268907],"plugin_business_model":[],"class_list":["post-316897","plugin","type-plugin","status-publish","hentry","plugin_tags-conflict","plugin_tags-debug","plugin_tags-rollback","plugin_tags-troubleshooting","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-utilities-and-tools","plugin_contributors-mwangip","plugin_committers-mwangip"],"banners":{"banner":"https:\/\/ps.w.org\/conflict-guard\/assets\/banner-772x250.jpg?rev=3586509","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/conflict-guard\/assets\/icon-128x128.png?rev=3586509","icon_2x":"https:\/\/ps.w.org\/conflict-guard\/assets\/icon-256x256.png?rev=3586509","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/conflict-guard\/assets\/screenshot-1.png?rev=3586509","caption":"Main dashboard with site health score and plugin stability table."},{"src":"https:\/\/ps.w.org\/conflict-guard\/assets\/screenshot-2.png?rev=3586509","caption":"Safe Test Mode \u2014 enable session-based sandbox to test without plugins."},{"src":"https:\/\/ps.w.org\/conflict-guard\/assets\/screenshot-3.png?rev=3586509","caption":"Real-time error monitoring dashboard showing PHP, AJAX, and REST errors."},{"src":"https:\/\/ps.w.org\/conflict-guard\/assets\/screenshot-4.png?rev=3586509","caption":"Conflict timeline \u2014 visual history of every plugin event and crash."},{"src":"https:\/\/ps.w.org\/conflict-guard\/assets\/screenshot-5.png?rev=3586509","caption":"One-click rollback \u2014 select a plugin and restore a previous version."},{"src":"https:\/\/ps.w.org\/conflict-guard\/assets\/screenshot-6.png?rev=3586509","caption":"Emergency recovery mode \u2014 accessible even when WP Admin is broken."},{"src":"https:\/\/ps.w.org\/conflict-guard\/assets\/screenshot-7.png?rev=3586509","caption":"Diagnostics panel \u2014 system info, connectivity tests, and report export."},{"src":"https:\/\/ps.w.org\/conflict-guard\/assets\/screenshot-8.png?rev=3586509","caption":"Settings page with donation support section."}],"raw_content":"<!--section=description-->\n<p><strong>Conflict Guard<\/strong> is the ultimate free WordPress plugin troubleshooting tool. Stop manually disabling plugins one-by-one. Our intelligent conflict detection engine finds the problem automatically.<\/p>\n\n<p><strong>\"Find plugin conflicts before your users do.\"<\/strong><\/p>\n\n<h4>Core Features<\/h4>\n\n<p><strong>\ud83d\udd0d Automatic Plugin Conflict Detection<\/strong>\nScan all active plugins, detect compatibility issues, monitor PHP fatal errors, JavaScript conflicts, AJAX failures, and REST API errors. Every plugin receives a Stability Score.<\/p>\n\n<p><strong>\ud83e\uddea Safe Test Mode<\/strong>\nSession-based sandbox lets you disable plugins only for your admin session. Visitors continue seeing the live site normally \u2014 zero downtime, zero risk.<\/p>\n\n<p><strong>\ud83d\udd2c Smart Conflict Isolation Engine<\/strong>\nBinary search algorithm intelligently narrows down which plugin is causing your issue. Disable plugins one-by-one inside Safe Mode until errors disappear.<\/p>\n\n<p><strong>\u23ea One-Click Rollback<\/strong>\nDownload and restore previous plugin versions from WordPress.org. Automatic restore points are created before every plugin update.<\/p>\n\n<p><strong>\ud83d\udcca Real-Time Error Monitor<\/strong>\nLive dashboard showing PHP errors, fatal crashes, JavaScript conflicts, AJAX failures, REST API issues, and memory usage.<\/p>\n\n<p><strong>\ud83d\uded2 WooCommerce Compatibility Scanner<\/strong>\nDedicated WooCommerce diagnostics: checkout issue detection, payment gateway conflict analysis, and WooCommerce-safe plugin badges.<\/p>\n\n<p><strong>\ud83d\udea8 Emergency Recovery Mode<\/strong>\nIf WordPress crashes, use your personal Recovery URL to access a lightweight emergency interface \u2014 even when WP Admin is inaccessible.<\/p>\n\n<p><strong>\ud83d\udcc5 Conflict Timeline<\/strong>\nVisual event timeline tracing every plugin activation, deactivation, update, crash, rollback, and conflict detection.<\/p>\n\n<p><strong>\u26a1 Plugin Health Scoring<\/strong>\nEach plugin receives Stability, Security, Update Activity, and Performance impact scores.<\/p>\n\n<h4>Why Conflict Guard?<\/h4>\n\n<ul>\n<li>100% FREE \u2014 no locked features, no aggressive upsells<\/li>\n<li>Lightweight \u2014 uses async background scans, transient caching<\/li>\n<li>Beginner-friendly \u2014 clear, modern SaaS-style dashboard<\/li>\n<li>Developer-grade \u2014 binary isolation, detailed error reporting<\/li>\n<li>Non-invasive \u2014 Safe Mode only affects your admin session<\/li>\n<li>Secure \u2014 nonce verification, capability checks, prepared SQL<\/li>\n<\/ul>\n\n<h4>Compatibility<\/h4>\n\n<ul>\n<li>WordPress 6.0+<\/li>\n<li>PHP 8.0+<\/li>\n<li>WooCommerce (full integration)<\/li>\n<li>Elementor<\/li>\n<li>Gutenberg<\/li>\n<li>WordPress Multisite<\/li>\n<li>Shared &amp; cloud hosting environments<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Install and activate Conflict Guard<\/li>\n<li>Go to <strong>Conflict Guard<\/strong> in your WP Admin menu<\/li>\n<li>Click <strong>Run Scan<\/strong> to analyze all your plugins<\/li>\n<li>Review stability scores and conflict risks<\/li>\n<li>Use <strong>Safe Mode<\/strong> to test without plugins one-by-one<\/li>\n<li>Use <strong>Rollback<\/strong> to revert problematic updates<\/li>\n<li>Bookmark your <strong>Emergency Recovery URL<\/strong> just in case<\/li>\n<\/ol>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external services:<\/p>\n\n<h4>WordPress.org Plugin API<\/h4>\n\n<p><strong>What it is:<\/strong> The official WordPress.org plugin information API.\n<strong>What it is used for:<\/strong> Fetching available previous versions of a plugin when you request a rollback. This only happens when you click \"Load Versions\" on the Rollback tab.\n<strong>What data is sent:<\/strong> The slug (folder name) of the plugin you want to roll back. No personal data, no site data.\n<strong>When data is sent:<\/strong> Only on demand, when you request version history for a specific plugin.\n<strong>Endpoint:<\/strong> <code>https:\/\/api.wordpress.org\/plugins\/info\/1.0\/{plugin-slug}.json<\/code>\n<strong>Service provider:<\/strong> Automattic \/ WordPress.org\n<strong>Terms of Service:<\/strong> https:\/\/wordpress.org\/about\/privacy\/\n<strong>Privacy Policy:<\/strong> https:\/\/automattic.com\/privacy\/<\/p>\n\n<h4>WordPress.org Plugin Downloads<\/h4>\n\n<p><strong>What it is:<\/strong> The official WordPress.org plugin download server.\n<strong>What it is used for:<\/strong> Downloading the actual plugin ZIP file for the version you select during a rollback.\n<strong>What data is sent:<\/strong> Plugin slug and version number only. No personal data.\n<strong>When data is sent:<\/strong> Only when you click \"Perform Rollback\" for a specific plugin and version.\n<strong>Endpoint:<\/strong> <code>https:\/\/downloads.wordpress.org\/plugin\/{slug}.{version}.zip<\/code>\n<strong>Service provider:<\/strong> Automattic \/ WordPress.org\n<strong>Terms of Service:<\/strong> https:\/\/wordpress.org\/about\/privacy\/\n<strong>Privacy Policy:<\/strong> https:\/\/automattic.com\/privacy\/<\/p>\n\n<h4>PayPal<\/h4>\n\n<p><strong>What it is:<\/strong> PayPal's payment platform.\n<strong>What it is used for:<\/strong> Optional, voluntary donations to support plugin development. This is completely optional.\n<strong>What data is sent:<\/strong> No data is sent automatically. If you click the donate button, you are redirected to PayPal's website where PayPal's own terms apply.\n<strong>When data is sent:<\/strong> Only if you voluntarily click the donate button.\n<strong>Service provider:<\/strong> PayPal, Inc.\n<strong>Terms of Service:<\/strong> https:\/\/www.paypal.com\/us\/legalhub\/useragreement-full\n<strong>Privacy Policy:<\/strong> https:\/\/www.paypal.com\/us\/legalhub\/privacy-full<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>conflict-guard<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress<\/li>\n<li>Navigate to <strong>Conflict Guard<\/strong> in your admin menu<\/li>\n<li>Run your first scan<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20safe%20mode%20affect%20my%20visitors%3F\"><h3>Does Safe Mode affect my visitors?<\/h3><\/dt>\n<dd><p>No. Safe Mode is session-based \u2014 only your admin browser session sees plugin changes. All visitors continue seeing the normal live site.<\/p><\/dd>\n<dt id=\"can%20i%20rollback%20a%20plugin%20that%27s%20not%20on%20wordpress.org%3F\"><h3>Can I rollback a plugin that's not on WordPress.org?<\/h3><\/dt>\n<dd><p>Currently, automatic version downloads work for WordPress.org-hosted plugins. For premium\/third-party plugins, restore points are created automatically before updates.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20really%20free%3F\"><h3>Is this plugin really free?<\/h3><\/dt>\n<dd><p>Yes, 100% free forever. There are no locked features, no premium version, and no mandatory upgrades.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%3F\"><h3>What happens when I uninstall?<\/h3><\/dt>\n<dd><p>All plugin data (database tables, options, transients, scheduled events) is completely removed on uninstall.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes! There's a dedicated WooCommerce scanner that checks checkout health, payment gateways, and detects common WooCommerce plugin conflicts.<\/p><\/dd>\n<dt id=\"how%20do%20i%20support%20the%20plugin%3F\"><h3>How do I support the plugin?<\/h3><\/dt>\n<dd><p>The plugin is free forever. If it helped you, you can donate via PayPal from the Settings tab inside the plugin dashboard. Even a small amount helps keep it maintained!<\/p><\/dd>\n<dt id=\"who%20can%20use%20the%20rollback%20and%20emergency%20recovery%20features%20on%20a%20multisite%20network%3F\"><h3>Who can use the Rollback and Emergency Recovery features on a multisite network?<\/h3><\/dt>\n<dd><p>On a multisite network, rollback and recovery actions are restricted to network administrators (users with the <code>manage_network_options<\/code> capability), since these actions affect plugin files shared across the entire network. On a single-site install, any user with <code>manage_options<\/code> (typically the site admin) can use them.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fixed: DROP TABLE in uninstall.php used an interpolated variable directly in the query string \u2014 now uses the %i identifier placeholder (WP 6.2+) with a safe allow-list fallback for older WordPress versions<\/li>\n<li>Fixed: DELETE FROM query in uninstall.php now uses $wpdb-&gt;prepare() with %s\/%i placeholders instead of interpolating $wpdb-&gt;options directly into the SQL string<\/li>\n<li>Fixed: Documented why uninstall.php's one-time cleanup queries don't use object-cache functions (wp_cache_get\/wp_cache_set) \u2014 they run once during uninstall, not on a normal read path, so there's no cacheable result to store<\/li>\n<li>Fixed: Shortened the 1.0.4 upgrade notice to fit within the 300-character WordPress.org limit<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fixed: Emergency Recovery module was never booted (Recovery::instance() was missing from the plugin's init sequence), so the recovery key was never generated and the recovery page never worked<\/li>\n<li>Fixed: Database table creation used \"CREATE TABLE IF NOT EXISTS\", which dbDelta() cannot parse correctly (it misreads the table name as the literal word \"IF\"); also combined three CREATE TABLE statements into a single dbDelta() call, which is unreliable \u2014 each table now uses its own statement and call, with the required two-space \"PRIMARY  KEY\" formatting<\/li>\n<li>Fixed: Uninstall routine's DROP TABLE used $wpdb-&gt;prepare() with a %s placeholder wrapped in backticks, which produced invalid SQL (quotes inside backticks) \u2014 table names are plugin-controlled constants, not user input, so they're now sanitized directly<\/li>\n<li>Fixed: Removed the incorrect \"Network: true\" plugin header, which forced network-only activation on multisite and hid the plugin from per-site activation \u2014 this contradicted the plugin's own per-site, per-user design<\/li>\n<li>Fixed: Replaced deprecated wp.element.render() (deprecated since WP 6.2) with createRoot(), falling back to render() only on WordPress 6.0\/6.1 where createRoot() isn't available<\/li>\n<li>Fixed: Corrected several stale\/incorrect strings in the translation template (languages\/conflict-guard.pot): wrong \"Author\" entry, a malformed support-forum URL, and an outdated project version<\/li>\n<li>Fixed: Removed a stray empty directory accidentally bundled into the plugin ZIP since an early build<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fixed: Recovery page now uses wp_enqueue_style() via template_redirect instead of inline  tags<\/li>\n<li>Fixed: Removed unnecessary core file loads (class-wp-upgrader.php, class-wp-ajax-upgrader-skin.php) from download_version() \u2014 these are now only loaded where actually used, in perform_rollback()<\/li>\n<li>Fixed: Added a stricter permission_callback (check_sensitive_permission) for routes that change plugin files or expose the recovery URL \u2014 requires manage_network_options on multisite, manage_options on single-site<\/li>\n<li>Improved: New assets\/css\/recovery.css file for the emergency recovery page styling<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed: SchemaChange phpcs warning in uninstall.php with proper documentation<\/li>\n<li>Fixed: Short description trimmed to under 150 characters<\/li>\n<li>Fixed: Prefixed all global variables in uninstall.php<\/li>\n<li>Fixed: set_error_handler phpcs warning with inline justification<\/li>\n<li>Fixed: PreparedSQL interpolation warning in DROP TABLE statement<\/li>\n<li>Improved: All PCD prefixes replaced with CONFGU (4+ chars) per WP.org guidelines<\/li>\n<li>Improved: Removed load_plugin_textdomain() \u2014 auto-loaded since WP 4.6<\/li>\n<li>Improved: External Services section added to readme.txt<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Automatic plugin conflict detection<\/li>\n<li>Safe Test Mode with session sandbox<\/li>\n<li>Smart binary conflict isolation<\/li>\n<li>One-click rollback system<\/li>\n<li>Real-time error monitoring<\/li>\n<li>WooCommerce compatibility scanner<\/li>\n<li>Emergency recovery mode<\/li>\n<li>Conflict timeline<\/li>\n<li>Plugin health scoring system<\/li>\n<li>Diagnostic report export<\/li>\n<\/ul>","raw_excerpt":"Detect, isolate, and fix WordPress plugin conflicts. Safe Test Mode, Smart Isolation, One-Click Rollback, and Real-Time Error Monitoring.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/316897","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=316897"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mwangip"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=316897"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=316897"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=316897"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=316897"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=316897"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=316897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}