{"id":234948,"date":"2025-06-02T10:18:25","date_gmt":"2025-06-02T10:18:25","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/plug-conflict-detector\/"},"modified":"2025-06-02T12:41:41","modified_gmt":"2025-06-02T12:41:41","slug":"plug-error-handler","status":"publish","type":"plugin","link":"https:\/\/tah.wordpress.org\/plugins\/plug-error-handler\/","author":13282926,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.2","stable_tag":"1.0.2","tested":"6.8.5","requires":"6.6","requires_php":"7.4","requires_plugins":null,"header_name":"Plug Error Handler","header_author":"Monzur","header_description":"Automatically detects and deactivates plugins that cause PHP fatal or parse errors during activation or update to prevent site crashes.","assets_banners_color":"4cabad","last_updated":"2025-06-02 12:41:41","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/profiles.wordpress.org\/monzur\/","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/plug-error-handler","header_author_uri":"https:\/\/profiles.wordpress.org\/monzur\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":366,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"monzur","date":"2025-06-02 12:41:41"}},"upgrade_notice":{"1.0.2":"<p>Supports both plugin activation and plugin update safety handling. Update recommended for enhanced protection.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3306158,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3304994,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3304814,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3305026,"resolution":"2","location":"assets","locale":""}},"screenshots":{"1":"Example admin notice showing which plugin was deactivated and why."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[222216,22682,243278,49506,13261],"plugin_category":[],"plugin_contributors":[243279],"plugin_business_model":[],"class_list":["post-234948","plugin","type-plugin","status-publish","hentry","plugin_tags-error-handler","plugin_tags-fatal-error","plugin_tags-parse-error","plugin_tags-plugin-conflict","plugin_tags-safety","plugin_contributors-monzur","plugin_committers-monzur"],"banners":{"banner":"https:\/\/ps.w.org\/plug-error-handler\/assets\/banner-772x250.png?rev=3304994","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/plug-error-handler\/assets\/icon-256x256.png?rev=3306158","icon_2x":"https:\/\/ps.w.org\/plug-error-handler\/assets\/icon-256x256.png?rev=3306158","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/plug-error-handler\/assets\/screenshot-1.png?rev=3304814","caption":"Example admin notice showing which plugin was deactivated and why."},{"src":"https:\/\/ps.w.org\/plug-error-handler\/assets\/screenshot-2.png?rev=3305026","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>Plug Error Handler<\/strong> is a lightweight and safety-focused WordPress plugin that helps prevent white screens or fatal crashes caused by problematic plugins. It does this by <strong>automatically detecting and deactivating any plugin that throws a PHP fatal error or parse error<\/strong> during activation or update.<\/p>\n\n<p>It\u2019s designed to ensure a smooth admin experience by intercepting site-breaking issues at the moment they occur.<\/p>\n\n<h3>\ud83d\udd10 Key Features<\/h3>\n\n<ul>\n<li>Detects PHP <strong>fatal errors<\/strong>, <strong>parse errors<\/strong>, <strong>compile errors<\/strong>, and <strong>core errors<\/strong>.<\/li>\n<li>Automatically <strong>deactivates the faulty plugin<\/strong> during activation or update.<\/li>\n<li>Displays a clear <strong>admin notice<\/strong> indicating which plugin caused the issue and what type of error it triggered.<\/li>\n<li>Lightweight: No database usage (uses transients), no impact on performance.<\/li>\n<li>No settings page \u2014 works silently in the background for your safety.<\/li>\n<\/ul>\n\n<h3>\u26a0\ufe0f Limitations<\/h3>\n\n<ul>\n<li>Only handles <strong>PHP errors<\/strong> \u2014 does <strong>not<\/strong> detect:\n\n<ul>\n<li>JavaScript errors<\/li>\n<li>CSS conflicts<\/li>\n<li>Plugin conflicts that don't produce fatal errors<\/li>\n<\/ul><\/li>\n<li>Only handles errors during <strong>activation<\/strong> or <strong>update<\/strong> (not runtime issues).<\/li>\n<li>Designed for <strong>administrator-level users<\/strong> who manage plugin changes.<\/li>\n<\/ul>\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under the GPLv2 or later. See https:\/\/www.gnu.org\/licenses\/gpl-2.0.html for details.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder <code>plug-error-handler<\/code> to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>That\u2019s it! The plugin runs silently in the background.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='what%20does%20this%20plugin%20actually%20do%3F'><h3>What does this plugin actually do?<\/h3><\/dt>\n<dd><p>It monitors for PHP fatal errors, parse errors, and similar fatal conditions during plugin activation or update. If such an error occurs, it immediately deactivates the plugin and prevents your site from breaking.<\/p><\/dd>\n<dt id='how%20does%20it%20detect%20errors%3F'><h3>How does it detect errors?<\/h3><\/dt>\n<dd><p>It uses <code>register_shutdown_function()<\/code> to catch fatal errors via <code>error_get_last()<\/code> and uses the <code>$_GET['plugin']<\/code> and <code>$_GET['action']<\/code> values to identify which plugin was being activated or updated.<\/p><\/dd>\n<dt id='does%20it%20protect%20from%20runtime%20plugin%20errors%3F'><h3>Does it protect from runtime plugin errors?<\/h3><\/dt>\n<dd><p>No. It only works at the time of <strong>plugin activation<\/strong> or <strong>plugin update<\/strong>. Runtime errors (which occur after a plugin has been successfully activated) are not handled.<\/p><\/dd>\n<dt id='does%20it%20protect%20against%20javascript%20or%20css%20errors%3F'><h3>Does it protect against JavaScript or CSS errors?<\/h3><\/dt>\n<dd><p>No, this plugin only handles <strong>PHP errors<\/strong>. It does not analyze or mitigate issues from JavaScript or stylesheets.<\/p><\/dd>\n<dt id='will%20this%20plugin%20conflict%20with%20other%20admin%20plugins%3F'><h3>Will this plugin conflict with other admin plugins?<\/h3><\/dt>\n<dd><p>No. It's built to be conflict-free and only activates its logic when a plugin is being activated or updated.<\/p><\/dd>\n<dt id='can%20i%20see%20logs%20or%20history%20of%20plugin%20errors%3F'><h3>Can I see logs or history of plugin errors?<\/h3><\/dt>\n<dd><p>No logs are stored to the database to keep this plugin lightweight. You\u2019ll only see an <strong>admin notice<\/strong> if a plugin was automatically deactivated due to an error.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added support for plugin updates (<code>update-plugin<\/code> action).<\/li>\n<li>Improved error handling logic.<\/li>\n<li>Fixed text domain mismatch and translation comments.<\/li>\n<li>Compliant with WordPress plugin standards and Plugin Checker.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Initial public release with fatal error detection during plugin activation.<\/li>\n<\/ul>","raw_excerpt":"Automatically detects and deactivates plugins that cause PHP fatal or parse errors during activation or update to prevent site crashes.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/234948","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=234948"}],"author":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/monzur"}],"wp:attachment":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=234948"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=234948"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=234948"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=234948"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=234948"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=234948"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}