Plugin Directory

Changeset 3433756


Ignore:
Timestamp:
01/06/2026 03:35:42 PM (12 days ago)
Author:
wpfixit
Message:

Improved email testing tool

Location:
conflict-finder-wp-fix-it
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • conflict-finder-wp-fix-it/tags/7.0/readme.txt

    r3433072 r3433756  
    33Contributors: wpfixit 
    44Donate link: https://www.wpfixit.com/ 
    5 Tags: plugin conflict, troubleshooting, wp_debug, debug log, admin tools 
    6 Requires at least: 4.9
    7 Tested up to: 6.9
     5Tags: plugin conflict, theme conflict, troubleshooting, wp_debug, debug log, email testing, admin tools 
     6Requires at least: 4.9 
     7Tested up to: 6.9 
    88Stable tag: 7.0 
    9 License: GPLv2
    10 License URI: https://www.gnu.org/licenses/gpl-2.0.html
     9License: GPLv2  
     10License URI: https://www.gnu.org/licenses/gpl-2.0.html 
    1111
    12 Conflict Finder is a powerful, admin-only troubleshooting toolkit designed to safely diagnose WordPress issues caused by plugin conflicts, theme conflicts, debugging configuration, or email delivery problems.
     12Conflict Finder is a WordPress troubleshooting toolkit that helps diagnose plugin conflicts, theme issues, debugging errors, and email delivery problems by temporarily changing site behavior during testing.
    1313
    1414== Description ==
    1515
    16 Conflict Finder is a powerful, admin-only troubleshooting plugin designed to help WordPress site owners, developers, and support professionals quickly identify the cause of site issues.
     16Conflict Finder is a comprehensive troubleshooting plugin designed for WordPress administrators, developers, and support professionals who need to identify the root cause of site issues.
    1717
    18 From a single interface, you can temporarily disable plugins, switch themes, enable and manage WP_DEBUG settings, view and clear the debug log, and test email delivery.
     18From a single interface, Conflict Finder allows you to:
    1919
    20 Conflict Finder automatically tracks your original configuration and ensures it can be restored at any time, allowing you to isolate problems quickly and confidently.
     20* Enable and manage WP_DEBUG without manually editing files
     21* View, download, and clear the WordPress debug log
     22* Temporarily disable plugins to identify conflicts
     23* Switch themes to test theme-related issues
     24* Test WordPress email delivery using `wp_mail()`
    2125
    22 == Key Features ==
     26**Important:** 
     27Conflict Finder **does temporarily affect site behavior** while troubleshooting is active. This may include:
    2328
    24 * One-click disable and restore plugins
    25 * Safe theme switching for conflict testing
    26 * Enable and manage WP_DEBUG without FTP or server access
    27 * View and clear the WordPress debug log directly from the admin area
    28 * Test if site is delivering emails
     29* Disabled plugins
     30* A different active theme
     31* Debug notices or errors being displayed
     32* Changes visible to logged-out visitors
    2933
    30 == Why Use Conflict Finder ==
     34For this reason, troubleshooting should be performed during maintenance windows or on staging sites whenever possible.
    3135
    32 * Quickly determine if a plugin or theme is causing an error
    33 * Avoid FTP access or manual file edits
    34 * Safely debug live sites
    35 * Designed specifically for administrators and support workflows
    36 * Clean, modern UI focused on clarity and speed
     36Conflict Finder automatically tracks your original configuration and allows you to restore plugins, themes, and debugging settings once testing is complete.
     37
     38== Features ==
     39
     40* **Troubleshooting Dashboard**
     41  * Central overview of debugging and conflict states
     42  * Environment snapshot including WordPress, PHP, memory, and server software
     43
     44* **WP_DEBUG Tool**
     45  * Enable or disable WP_DEBUG with a single switch
     46  * Control error display and logging behavior
     47  * Load unminified scripts for debugging
     48  * View, download, or clear `wp-content/debug.log`
     49  * Safely updates `wp-config.php` as needed
     50
     51* **Plugin Conflict Tool**
     52  * Temporarily deactivate all active plugins
     53  * Save and restore original plugin states
     54  * Activate plugins one at a time to identify conflicts
     55
     56* **Theme Conflict Tool**
     57  * Temporarily switch to another installed theme
     58  * Identify theme-related layout or functionality issues
     59  * Restore the original theme instantly
     60
     61* **Email Delivery Tool**
     62  * Send a real test email using WordPress mail
     63  * Confirm whether the server can successfully send email
     64  * Helps identify SMTP or hosting mail issues
     65
     66== When to Use Conflict Finder ==
     67
     68* Diagnosing white screens or fatal errors
     69* Identifying plugin conflicts
     70* Testing theme-related layout or functionality issues
     71* Investigating PHP notices or warnings
     72* Verifying WordPress email delivery
     73* Support and development workflows
    3774
    3875== Installation ==
    3976
    40 1. Upload the plugin ZIP file to your WordPress admin under **Plugins → Add New → Upload Plugin**, or extract the folder to `/wp-content/plugins/`.
    41 2. Activate Conflict Finder through the **Plugins** menu.
     771. Upload the plugin ZIP file via **Plugins → Add New → Upload Plugin**, or extract it to `/wp-content/plugins/`.
     782. Activate Conflict Finder from the **Plugins** menu.
    42793. Access the tools under **Tools → Troubleshoot**.
    4380
    4481== Frequently Asked Questions ==
    4582
    46 **Do I need FTP or server access?** 
    47 No. Conflict Finder allows you to manage debugging and troubleshooting directly from the WordPress admin.
     83**Does this affect visitors?** 
     84Yes. While troubleshooting is active, plugins may be disabled, themes may be switched, and debug output may be visible on the frontend.
    4885
    4986**Is this safe to use on live sites?** 
    50 Yes. The plugin is designed specifically to avoid impacting non-admin users.
     87It can be used on live sites, but it is recommended to troubleshoot during low-traffic periods or on staging environments when possible.
    5188
    52 For questions, support, or suggestions, please visit: 
    53 https://www.wpfixit.com/contact
     89**Does this permanently change my site?** 
     90No. All changes are temporary and can be restored once troubleshooting is complete.
     91
     92**Do I need FTP or server access?** 
     93No. Conflict Finder manages debugging and conflict testing directly from the WordPress admin.
    5494
    5595== Screenshots ==
    5696
    57 1. Conflict Finder overview
    58 2. WP_DEBUG troubleshooting tool
     971. Troubleshooting tools overview and environment snapshot 
     982. WP_DEBUG configuration and reporting options 
    59993. Debug log viewer 
    60 4. Plugin troubleshooting tool
    61 5. Theme troubleshooting tool
    62 6. Email delivery tool
     1004. Plugin conflict isolation tool 
     1015. Theme conflict isolation tool 
     1026. Email delivery testing tool 
    63103
    64104== Changelog ==
  • conflict-finder-wp-fix-it/trunk/conflict-finder.php

    r3433068 r3433756  
    1010Conflict Finder automatically saves your original setup and allows you to restore everything instantly once troubleshooting is complete, making it safe to use on live sites.
    1111
    12 Version: 7.0
     12Version: 7.1
    1313
    1414Author: WP Fix It
     
    108108    }
    109109);
    110 
    111110
    112111class conflict_finder_wp_debug_toggle_tool {
     
    137136    }
    138137
    139     public function conflict_finder_send_test_email() {
     138public function conflict_finder_send_test_email() {
    140139
    141140    if ( ! current_user_can( 'manage_options' ) ) {
     
    154153    }
    155154
    156 $subject = '✅ Email Delivery Test Successful';
    157 
    158 $site_name = get_bloginfo( 'name' );
    159 $site_url  = home_url();
    160 $admin_url = admin_url( 'tools.php?page=wpfi-troubleshooting-tools#wpfi-tab-email-tool' );
    161 
    162 $message = '
     155    // =========================
     156    // Force FROM (scoped only)
     157    // =========================
     158    $parsed_url = wp_parse_url( home_url() );
     159    $domain     = $parsed_url['host'] ?? '';
     160   
     161    $domain = preg_replace( '/^www\./', '', strtolower( $domain ) );
     162   
     163    // Final forced FROM address (DMARC-aligned)
     164    $force_from_email = 'noreply@' . $domain;
     165   
     166    // Safety fallback (should almost never hit)
     167    if ( ! is_email( $force_from_email ) ) {
     168        $force_from_email = get_option( 'admin_email' );
     169    }
     170   
     171    $force_from_name  = get_bloginfo( 'name' );
     172
     173    $from_email_filter = function () use ( $force_from_email ) {
     174        return $force_from_email;
     175    };
     176
     177    $from_name_filter = function () use ( $force_from_name ) {
     178        return $force_from_name;
     179    };
     180
     181    $phpmailer_filter = function ( $phpmailer ) use ( $force_from_email, $force_from_name ) {
     182
     183        $phpmailer->setFrom(
     184            $force_from_email,
     185            $force_from_name,
     186            false
     187        );
     188
     189        // Absolute last line of defense
     190        $phpmailer->Sender   = $force_from_email;
     191        $phpmailer->From     = $force_from_email;
     192        $phpmailer->FromName = $force_from_name;
     193    };
     194
     195    add_filter( 'wp_mail_from', $from_email_filter, 9999 );
     196    add_filter( 'wp_mail_from_name', $from_name_filter, 9999 );
     197    add_action( 'phpmailer_init', $phpmailer_filter, 9999 );
     198
     199    // =========================
     200    // Email content
     201    // =========================
     202    $subject = '✅ Email Delivery Test Successful';
     203
     204    $site_name = get_bloginfo( 'name' );
     205    $site_url  = home_url();
     206    $admin_url = admin_url( 'tools.php?page=wpfi-troubleshooting-tools#wpfi-tab-email-tool' );
     207
     208    $message = '
    163209<!doctype html>
    164210<html>
     
    173219        <table width="100%" cellpadding="0" cellspacing="0" style="max-width:520px;background:#ffffff;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.08);overflow:hidden;">
    174220
    175           <!-- Header -->
    176221          <tr>
    177222            <td style="background:#d16aff;padding:22px 26px;color:#ffffff;">
    178               <h1 style="margin:0;font-size:20px;font-weight:600;">
    179                 Website Email Test
    180               </h1>
     223              <h1 style="margin:0;font-size:20px;font-weight:600;">Website Email Test</h1>
    181224              <p style="margin:6px 0 0;font-size:14px;opacity:.9;">
    182225                Email delivery is working correctly!
     
    185228          </tr>
    186229
    187           <!-- Body -->
    188230          <tr>
    189231            <td style="padding:26px;">
     
    218260          </tr>
    219261
    220           <!-- Footer -->
    221262          <tr>
    222263            <td style="background:#f6f7f9;padding:16px 26px;font-size:12px;color:#777;text-align:center;">
     
    233274  </table>
    234275</body>
    235 </html>
    236 ';
    237 
    238 $headers = [
    239     'Content-Type: text/html; charset=UTF-8',
    240 ];
    241 
     276</html>';
     277
     278    $headers = [
     279        'Content-Type: text/html; charset=UTF-8',
     280        'From: ' . $force_from_name . ' <' . $force_from_email . '>',
     281    ];
     282
     283    // =========================
     284    // Send
     285    // =========================
    242286    $sent = wp_mail( $email, $subject, $message, $headers );
    243287
     288    // =========================
     289    // Cleanup (CRITICAL)
     290    // =========================
     291    remove_filter( 'wp_mail_from', $from_email_filter, 9999 );
     292    remove_filter( 'wp_mail_from_name', $from_name_filter, 9999 );
     293    remove_action( 'phpmailer_init', $phpmailer_filter, 9999 );
     294
     295    // =========================
     296    // Persist result + redirect
     297    // =========================
    244298    update_option(
    245     'conflict_finder_email_test_status',
    246     [
    247         'status' => $sent ? 'success' : 'fail',
    248         'time'   => time(),
    249     ]
    250 );
     299        'conflict_finder_email_test_status',
     300        [
     301            'status' => $sent ? 'success' : 'fail',
     302            'time'   => time(),
     303        ]
     304    );
    251305
    252306    wp_safe_redirect(
     
    825879        wp_send_json_error( [ 'message' => 'debug.log is not writable.' ], 500 );
    826880    }
    827 
    828881
    829882    // Truncate file safely (do NOT delete)
     
    16071660                <?php if ( isset( $_GET['email_result'] ) ) : ?>
    16081661                    <?php if ( $_GET['email_result'] === 'success' ) : ?>
    1609                         <div style="margin-top:15px;color:#166534;">
    1610                             ✅ Test email was sent successfully!
     1662                        <div style="color:#166534;">
     1663                        <span style="font-size: 15px;font-weight: 700;">    ✅ Test email was sent successfully!</span>
     1664                            <p style="background: #efe;padding: 15px;border-radius: 10px;font-size: 13px;">If this message arrived in your spam or junk folder, your server can send email but is not yet trusted by mailbox providers.<br><br>For reliable inbox delivery, configure an SMTP plugin and DNS authentication (SPF, DKIM, DMARC).</p>
    16111665                        </div>
    16121666                    <?php else : ?>
     
    16331687            <h3>Common reasons email fails</h3>
    16341688            <ul>
     1689                <li>Check spam or junk folder</li>
    16351690                <li>No SMTP plugin configured</li>
    16361691                <li>Hosting provider blocks PHP mail()</li>
     
    22982353';
    22992354}
    2300 
    23012355
    23022356private function conflict_finder_js() {
     
    24802534}
    24812535
    2482 
    24832536    public function conflict_finder_ajax_get_debug_log() {
    24842537        if ( ! current_user_can( 'manage_options' ) ) {
  • conflict-finder-wp-fix-it/trunk/readme.txt

    r3433072 r3433756  
    33Contributors: wpfixit 
    44Donate link: https://www.wpfixit.com/ 
    5 Tags: plugin conflict, troubleshooting, wp_debug, debug log, admin tools 
    6 Requires at least: 4.9
    7 Tested up to: 6.9
    8 Stable tag: 7.
    9 License: GPLv2
    10 License URI: https://www.gnu.org/licenses/gpl-2.0.html
     5Tags: plugin conflict, theme conflict, troubleshooting, wp_debug, debug log, email testing, admin tools 
     6Requires at least: 4.9 
     7Tested up to: 6.9 
     8Stable tag: 7.1
     9License: GPLv2  
     10License URI: https://www.gnu.org/licenses/gpl-2.0.html 
    1111
    12 Conflict Finder is a powerful, admin-only troubleshooting toolkit designed to safely diagnose WordPress issues caused by plugin conflicts, theme conflicts, debugging configuration, or email delivery problems.
     12Conflict Finder is a WordPress troubleshooting toolkit that helps diagnose plugin conflicts, theme issues, debugging errors, and email delivery problems by temporarily changing site behavior during testing.
    1313
    1414== Description ==
    1515
    16 Conflict Finder is a powerful, admin-only troubleshooting plugin designed to help WordPress site owners, developers, and support professionals quickly identify the cause of site issues.
     16Conflict Finder is a comprehensive troubleshooting plugin designed for WordPress administrators, developers, and support professionals who need to identify the root cause of site issues.
    1717
    18 From a single interface, you can temporarily disable plugins, switch themes, enable and manage WP_DEBUG settings, view and clear the debug log, and test email delivery.
     18From a single interface, Conflict Finder allows you to:
    1919
    20 Conflict Finder automatically tracks your original configuration and ensures it can be restored at any time, allowing you to isolate problems quickly and confidently.
     20* Enable and manage WP_DEBUG without manually editing files
     21* View, download, and clear the WordPress debug log
     22* Temporarily disable plugins to identify conflicts
     23* Switch themes to test theme-related issues
     24* Test WordPress email delivery using `wp_mail()`
    2125
    22 == Key Features ==
     26**Important:** 
     27Conflict Finder **does temporarily affect site behavior** while troubleshooting is active. This may include:
    2328
    24 * One-click disable and restore plugins
    25 * Safe theme switching for conflict testing
    26 * Enable and manage WP_DEBUG without FTP or server access
    27 * View and clear the WordPress debug log directly from the admin area
    28 * Test if site is delivering emails
     29* Disabled plugins
     30* A different active theme
     31* Debug notices or errors being displayed
     32* Changes visible to logged-out visitors
    2933
    30 == Why Use Conflict Finder ==
     34For this reason, troubleshooting should be performed during maintenance windows or on staging sites whenever possible.
    3135
    32 * Quickly determine if a plugin or theme is causing an error
    33 * Avoid FTP access or manual file edits
    34 * Safely debug live sites
    35 * Designed specifically for administrators and support workflows
    36 * Clean, modern UI focused on clarity and speed
     36Conflict Finder automatically tracks your original configuration and allows you to restore plugins, themes, and debugging settings once testing is complete.
     37
     38== Features ==
     39
     40* **Troubleshooting Dashboard**
     41  * Central overview of debugging and conflict states
     42  * Environment snapshot including WordPress, PHP, memory, and server software
     43
     44* **WP_DEBUG Tool**
     45  * Enable or disable WP_DEBUG with a single switch
     46  * Control error display and logging behavior
     47  * Load unminified scripts for debugging
     48  * View, download, or clear `wp-content/debug.log`
     49  * Safely updates `wp-config.php` as needed
     50
     51* **Plugin Conflict Tool**
     52  * Temporarily deactivate all active plugins
     53  * Save and restore original plugin states
     54  * Activate plugins one at a time to identify conflicts
     55
     56* **Theme Conflict Tool**
     57  * Temporarily switch to another installed theme
     58  * Identify theme-related layout or functionality issues
     59  * Restore the original theme instantly
     60
     61* **Email Delivery Tool**
     62  * Send a real test email using WordPress mail
     63  * Confirm whether the server can successfully send email
     64  * Helps identify SMTP or hosting mail issues
     65
     66== When to Use Conflict Finder ==
     67
     68* Diagnosing white screens or fatal errors
     69* Identifying plugin conflicts
     70* Testing theme-related layout or functionality issues
     71* Investigating PHP notices or warnings
     72* Verifying WordPress email delivery
     73* Support and development workflows
    3774
    3875== Installation ==
    3976
    40 1. Upload the plugin ZIP file to your WordPress admin under **Plugins → Add New → Upload Plugin**, or extract the folder to `/wp-content/plugins/`.
    41 2. Activate Conflict Finder through the **Plugins** menu.
     771. Upload the plugin ZIP file via **Plugins → Add New → Upload Plugin**, or extract it to `/wp-content/plugins/`.
     782. Activate Conflict Finder from the **Plugins** menu.
    42793. Access the tools under **Tools → Troubleshoot**.
    4380
    4481== Frequently Asked Questions ==
    4582
    46 **Do I need FTP or server access?** 
    47 No. Conflict Finder allows you to manage debugging and troubleshooting directly from the WordPress admin.
     83**Does this affect visitors?** 
     84Yes. While troubleshooting is active, plugins may be disabled, themes may be switched, and debug output may be visible on the frontend.
    4885
    4986**Is this safe to use on live sites?** 
    50 Yes. The plugin is designed specifically to avoid impacting non-admin users.
     87It can be used on live sites, but it is recommended to troubleshoot during low-traffic periods or on staging environments when possible.
    5188
    52 For questions, support, or suggestions, please visit: 
    53 https://www.wpfixit.com/contact
     89**Does this permanently change my site?** 
     90No. All changes are temporary and can be restored once troubleshooting is complete.
     91
     92**Do I need FTP or server access?** 
     93No. Conflict Finder manages debugging and conflict testing directly from the WordPress admin.
    5494
    5595== Screenshots ==
    5696
    57 1. Conflict Finder overview
    58 2. WP_DEBUG troubleshooting tool
     971. Troubleshooting tools overview and environment snapshot 
     982. WP_DEBUG configuration and reporting options 
    59993. Debug log viewer 
    60 4. Plugin troubleshooting tool
    61 5. Theme troubleshooting tool
    62 6. Email delivery tool
     1004. Plugin conflict isolation tool 
     1015. Theme conflict isolation tool 
     1026. Email delivery testing tool 
    63103
    64104== Changelog ==
     105
     106= 7.1 January 6th, 2026 =
     107
     108* Improved email testing tool
    65109
    66110= 7.0 January 5th, 2026 =
Note: See TracChangeset for help on using the changeset viewer.