{"id":322338,"date":"2026-06-08T07:03:47","date_gmt":"2026-06-08T07:03:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/conflict-detective\/"},"modified":"2026-06-08T07:03:30","modified_gmt":"2026-06-08T07:03:30","slug":"tahhan-conflict-detective","status":"publish","type":"plugin","link":"https:\/\/az.wordpress.org\/plugins\/tahhan-conflict-detective\/","author":23075774,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.5.0","stable_tag":"2.5.0","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Tahhan Conflict Detective","header_author":"Tahhan","header_description":"Automatically detects which plugin, theme, or update broke your WordPress site \u2014 without manual trial and error.","assets_banners_color":"121820","last_updated":"2026-06-08 07:03:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/Tahhan-nl\/Tahhan-Conflict-Detective","header_author_uri":"https:\/\/github.com\/Tahhan-nl","rating":0,"author_block_rating":0,"active_installs":0,"downloads":28,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.5.0":{"tag":"2.5.0","author":"mustafatahhan","date":"2026-06-08 07:03:30"}},"upgrade_notice":{"2.1.1":"<p>Security and quality patch. Upgrade recommended for all users on 2.1.0.<\/p>","2.0.0":"<p>Major feature release: Conflict Scanner, Safe Testing Mode, and Conflict Wizard.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3564211,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3564211,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3564211,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3564211,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.5.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard \u2014 system overview, active plugins, recent changes and errors at a glance.","2":"Conflict Scanner \u2014 automatically detected suspect plugin with confidence percentage.","3":"Safe Testing Mode \u2014 disable plugins for your session without affecting visitors.","4":"Conflict Wizard \u2014 step-by-step guided diagnosis with tailored advice.","5":"Error Log \u2014 parsed PHP errors attributed to the owning plugin, with type filters.","6":"Change History \u2014 full audit trail of every plugin activation, update, and deletion.","7":"Health Scan \u2014 duplicate functionality, incompatibilities, and server configuration checks."}},"plugin_section":[],"plugin_tags":[191246,94,93,1508,2391],"plugin_category":[59],"plugin_contributors":[266135],"plugin_business_model":[],"class_list":["post-322338","plugin","type-plugin","status-publish","hentry","plugin_tags-conflict","plugin_tags-debug","plugin_tags-errors","plugin_tags-health","plugin_tags-plugins","plugin_category-utilities-and-tools","plugin_contributors-mustafatahhan","plugin_committers-mustafatahhan"],"banners":{"banner":"https:\/\/ps.w.org\/tahhan-conflict-detective\/assets\/banner-772x250.png?rev=3564211","banner_2x":"https:\/\/ps.w.org\/tahhan-conflict-detective\/assets\/banner-1544x500.png?rev=3564211","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tahhan-conflict-detective\/assets\/icon-128x128.png?rev=3564211","icon_2x":"https:\/\/ps.w.org\/tahhan-conflict-detective\/assets\/icon-256x256.png?rev=3564211","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>\"Which plugin just broke my site?\"<\/strong> \u2014 answered automatically.<\/p>\n\n<p>Existing tools show you <em>that<\/em> an error occurred. Conflict Detective tells you <em>which plugin caused it<\/em> by correlating the plugin change timeline with the error log \u2014 and gives you a confidence score.<\/p>\n\n<h4>Features<\/h4>\n\n<p><strong>Dashboard<\/strong>\nLive overview of your WordPress\/PHP version, active plugins, active theme, memory limit, debug mode, recent changes, and latest errors \u2014 all on one screen.<\/p>\n\n<p><strong>Error Log Viewer<\/strong>\nReads <code>debug.log<\/code> and the server PHP error log automatically. Each entry is attributed to the plugin that owns the file where the error occurred. Filter by Fatal \/ Warning \/ Notice \/ Deprecated.<\/p>\n\n<p><strong>Change History<\/strong>\nFull audit trail of every plugin activation, deactivation, update, and deletion \u2014 with exact timestamps and version diffs (e.g. <code>8.3.0 \u2192 8.4.0<\/code>).<\/p>\n\n<p><strong>Health Scan<\/strong>\nOn-demand scan that detects:<\/p>\n\n<ul>\n<li>Duplicate plugin functionality (multiple SEO, caching, security, or backup plugins)<\/li>\n<li>Known incompatibilities between specific plugin pairs<\/li>\n<li>Outdated plugins (not updated in more than 2 years)<\/li>\n<li>Missing theme files or a missing parent theme<\/li>\n<li>PHP version, memory limit, and <code>max_execution_time<\/code> misconfigurations<\/li>\n<li>Pending WordPress core updates<\/li>\n<\/ul>\n\n<p><strong>Conflict Scanner<\/strong>\nAutomatically correlates plugin update timestamps with error spikes and reports a suspect plugin with a confidence percentage. Detected conflicts are stored in the database and can be marked as resolved with one click.<\/p>\n\n<p><strong>Safe Testing Mode<\/strong>\nDisable any plugin for your own admin session while visitors remain completely unaffected. Cookie-isolated \u2014 the live site is never touched.<\/p>\n\n<p><strong>Conflict Wizard<\/strong>\nStep-by-step guided diagnosis. Choose your symptom (white screen, login problem, WooCommerce issue, slow site, broken admin, front-end error, or other) and the wizard automatically analyses recent changes and errors to produce a tailored action plan.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>conflict-detective<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Navigate to <strong>Conflict Detective<\/strong> in the WordPress admin sidebar.<\/li>\n<\/ol>\n\n<p>No configuration is required. All scanning is done on demand inside the admin area \u2014 zero front-end overhead.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20slow%20down%20my%20site%3F\"><h3>Does this plugin slow down my site?<\/h3><\/dt>\n<dd><p>No. All analysis runs on demand inside the WordPress admin. There is zero front-end overhead.<\/p><\/dd>\n<dt id=\"what%20log%20files%20does%20it%20read%3F\"><h3>What log files does it read?<\/h3><\/dt>\n<dd><p>wp-content\/debug.log and the server PHP <code>error_log<\/code> path returned by <code>ini_get('error_log')<\/code>.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20configure%20anything%3F\"><h3>Do I need to configure anything?<\/h3><\/dt>\n<dd><p>No. Optionally, enable <code>WP_DEBUG<\/code> and <code>WP_DEBUG_LOG<\/code> in <code>wp-config.php<\/code> to populate the error log.<\/p><\/dd>\n<dt id=\"does%20safe%20testing%20mode%20affect%20my%20visitors%3F\"><h3>Does Safe Testing Mode affect my visitors?<\/h3><\/dt>\n<dd><p>Never. Safe Testing Mode uses a session cookie that is only present for your admin session. Visitors always see the live site.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20install%20the%20plugin%20via%20ftp%3F\"><h3>What happens if I install the plugin via FTP?<\/h3><\/dt>\n<dd><p>The plugin detects missing database tables on every request and recreates them automatically \u2014 no activation hook required.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20compatible%20with%20multisite%3F\"><h3>Is this plugin compatible with Multisite?<\/h3><\/dt>\n<dd><p>The plugin monitors the current site only. It is not a network-wide tool in this version.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.4<\/h4>\n\n<ul>\n<li>Fixed critical bug: Safe_Mode::init() and Database::maybe_upgrade() were registered inside Plugin::init() on plugins_loaded priority 5, meaning they were never called (priority 1 and 0 already fired). Both are now wired up directly at file load time, outside the Plugin class.<\/li>\n<li>Safe Mode tab fully redesigned: inactive state shows a card with instructions and a Start button; active state shows an amber banner with plugin count and a Stop button above the plugin toggle list.<\/li>\n<li>JavaScript Safe Mode toggle now uses delegated event binding ($(document).on) so it works regardless of DOM load order, and reloads the page on success to reflect the new state.<\/li>\n<li>Added safeModeLoading and safeModeStop localised strings for button feedback during AJAX calls.<\/li>\n<li>Added CSS for .pcd-safe-mode-banner, .pcd-btn-stop, .pcd-safe-mode-steps, and .pcd-safe-mode-count.<\/li>\n<\/ul>\n\n<h4>2.1.3<\/h4>\n\n<ul>\n<li>Added Safe Mode tab UI (render_safe_mode placeholder).<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Security: plugin slug from AJAX request now validated against the installed plugins list before being stored in user meta<\/li>\n<li>All JavaScript UI strings are now translatable via wp_localize_script \u2014 no hardcoded English in JS<\/li>\n<li>Replaced last remaining emoji with a Dashicon in the Conflict Wizard<\/li>\n<li>Fixed menu position conflict with WordPress core Plugins menu (changed from 65 to 65.1)<\/li>\n<li>Added languages\/ directory to match the Domain Path declaration in the plugin header<\/li>\n<li>Fixed navigation instructions in documentation (plugin is a top-level menu, not under Tools)<\/li>\n<li>LICENSE updated to full GPL-2.0-or-later text including the \"or any later version\" clause<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added Conflict Scanner with confidence percentage<\/li>\n<li>Added Safe Testing Mode (admin-only plugin toggle, visitors unaffected)<\/li>\n<li>Added Conflict Wizard with 7 symptom categories and automatic analysis<\/li>\n<li>New database table for storing scanner results<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release \u2014 Dashboard, Error Log Viewer, Plugin Change History, Health Scan<\/li>\n<\/ul>","raw_excerpt":"Automatically detects which plugin, theme, or update broke your WordPress site \u2014 without manual trial and error.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/az.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/322338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/az.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/az.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/az.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=322338"}],"author":[{"embeddable":true,"href":"https:\/\/az.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mustafatahhan"}],"wp:attachment":[{"href":"https:\/\/az.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=322338"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/az.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=322338"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/az.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=322338"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/az.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=322338"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/az.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=322338"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/az.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=322338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}