=== Fatal Error Notify Pro ===
Contributors: verygoodplugins
Tags: error, reporting, debugging
Requires at least: 4.6
Tested up to: 6.9.1
Stable tag: 1.14.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Receive notifications when errors occur on your WordPress site.

== Description ==

This plugin hooks into PHP's shutdown functions to send you a notification whenever a fatal error (or other error level, configurably) is detected on your site.

Unlike traditional uptime monitoring services, which will only notify you if your entire site is down, this plugin can notify you when an error is detected on any page or process on your site.

Automatic plugin and theme updates often introduce problems that you aren't aware of until they're reported by your visitors. Fatal Error Notify lets you address these issues as they occur and before they cause significant problems.

== Changelog ==

= 1.14.2 - 2/2/2026 =
* Introduced [new filters](https://fatalerrornotify.com/documentation/developer/hooks-and-filters/) to control action buttons and message blocks in Slack notifications: 'fen_slack_show_actions', 'fen_slack_actions', and 'fen_slack_blocks'

= 1.14.1 - 12/18/2025 =
* Fixed PHP notice "Undefined index: file" when viewing the error log table
* Fixed PHP warning "Undefined array key "line"" when displaying the file and line number in the log table list
* Fixed deprecated constant E_STRICT with PHP 8.4
* Fixed plugin settings menu not appearing in multisite network admin
* Miscellaneous security and code quality improvements to the log table

= 1.14.0 - 5/16/2025 =
* Added option to configure logging errors to the database independently of sending notifications
* Added Pause This File button to Slack and Email notifications, which will mute any errors from that file, rather than the specific line number
* Improved - Query parameters like version numbers will now be removed from files for the purposes of matching errors or pausing notifications
* Improved - Uncaught JavaScript errors with message "Script error" (from 3rd party scripts without CORS) will now be ignored
* Fixed warning `Undefined array key "resource_url"` in JavaScript error notifications when the URL to the resource was not available
* Fixed WP Fusion integration text saying "API error" for notice-level messages
* Fixed URLs not showing in the log table list for HTTP API and JavaScript errors
* Fixed log table list showing a level of "0" for non-PHP error types

= 1.13.7 - 2/28/2025 =
* Improved - Pausing a Resource Loading Failure error will now pause based on the resource URL, not current page URL
* Fixed resource loading notifications sometimes triggering on admin requests to PHP pages

= 1.13.6 - 2/28/2025 =
* Added resource loading failure option to JavaScript error notifications (will detect if a JavaScript file, stylesheet, image, video, or audio failed to load)
* Improved - Access tokens, API keys, auth secrets, and other sensitive data will be removed from URLs in notifications
* Fixed PHP warning `Undefined array key "slack_channel_id"` when Slack integration had enabled notification triggers but no channel was set

= 1.13.5 - 2/11/2025 =
* Improved - Cookies will be removed from HTTP API error notifications, due to potential privacy concerns
* Improved - Fallback to PHP mail() if wp_mail() fails to send
* Improved - Slack notifications will now strip out any HTML tags from the error message that cannot be converted to markdown
* Fixed checkbox settings not saving if no checkboxes were selected
* Fixed PHP warning `Undefined array key "SERVER_NAME"` when both the `HTTP_HOST` and `SERVER_NAME` are not set
* Fixed infinite loop on HTTP API error notifications if sending notifications resulted in an HTTP API error

= 1.13.4 - 1/14/2025 =
* Added confirm dialog for muting plugins in Slack notifications
* Improved - Slack integration will check if the channel is shared with external organizations and remove sensitive data if so
* Improved - Removed unnecessary Slack scopes
* Improved - `chmod()` warnings will now be ignored by default

= 1.13.3 - 1/8/2025 =
* Added support for basic HTML in Slack notification messages
* Added Pause this URL option in Slack notifications for HTTP API errors
* Improved - Added link to edit form and entry in Gravity Forms notifications
* Improved - Files that generate errors no longer include the full system path in the error message
* Improved - Test notifications will always be sent, even if they are rate limited or paused
* Fixed missing HTTP API request URL in notifications when the URL was a bad URL and failed `wp_http_validate_url()`
* Fixed "This app is not configured to handle interactive responses" error when clicking the pause button in Slack
* Fixed PHP warning "Undefined array key 2" when sending notifications
* Fixed duplicate notifications when an HTTP API error was also logged by WP Fusion
* Fixed URL in notifications using a relative path and not the full URL to the site
* Fixed Slack notifications showing Mute Plugin on HTTP API and other non-code errors
* Developers: added `fen_rate_limit_data` filter for customizing rate limiting behavior
* Developers: added action `fen_handle_error` immediately before notifications are sent
* Developers: added action `fen_handle_error_{ $error_type }` for customizing error handling for a specific error type

= 1.13.2 - 12/21/2024 =
* Added support for joining and posting to private Slack channels
* Added option to specify a custom email subject for error notifications
* Improved error reporting for Slack integration
* Improved - The Send Test button with Slack no longer requires you to save the settings after entering a channel name
* Improved - FEN will try to remove any API keys, Oauth tokens, or other sensitive data from request URIs and payloads when sending HTTP API error notifications
* Developers: added `fen_is_error_type_enabled` filter
* Developers: added `fen_is_error_paused` filter
* Developers: added `fen_is_rate_limited` filter
* Developers: added `fen_error` filter
* Developers: added `fen_slack_notification_data` filter
* Developers: added `fen_email_notification_output` filter
* Developers: added `fen_email_notification_subject` filter
* Added developer documentation at [https://fatalerrornotify.com/developers/](https://fatalerrornotify.com/developers/)

= 1.13.1 - 12/12/2024 =
* Fixed Slack notifications not being sent if the stack trace was longer than 3000 characters

= 1.13.0 - 12/4/2024 =
* Added [JavaScript error notifications](https://fatalerrornotify.com/coming-soon-javascript-error-reporting/)
  - Console error tracking
  - Console warning tracking
  - Uncaught error tracking
  - Unhandled promise rejection tracking
  - Rate limiting to prevent notification spam
* Added an [EchoDash integration](https://echodash.com/) for real-time error monitoring
* Added a Slack app integration with improved message formatting and interactive buttons
* Added ability to configure error types independently for each notification channel
* Improved - Out of memory errors will now show the total amount of memory that was exhausted
* Improved - Updated rate limiting to use object cache if available, falling back to transients if not
* Improved - Better error filtering to prevent duplicate notifications
* Fixed PHP warning in WPForms integration
* Developers: added methods for `is_enabled()`, `get_enabled_channels()` and `get_enabled_types()` to the integration class
* Developers: added filter `fen_rate_limit_time` (default is 1 hour)
* Developers: added `fen_js_error` AJAX action for handling JavaScript errors

= 1.12.2 - 5/10/2024 =
* Improved - Pausing HTTP notifications for a URL will now ignore query parameters (i.e. ?doing-wp-cron=xyz)
* Improved - Shortened "Pause Notifications for this URL" to "Pause this URL" in Slack so it wouldn't get truncated
* Fixed license status check using transients and checking the status on every admin page load when using some Redis object cache plugins

= 1.12.1 - 4/10/2024 =
* Updated activate and deactivate license API calls to use GET instead of POST

= 1.12.0 - 4/10/2024 =
* Added WordPress HTTP API error reporting
* Added nonce further to secure admin test error action
* Improved - the link to deactivate notifications can now be used even when not logged in
* Improved - the updater now uses GET instead of POST requests for better performance
* Fixed broken link to contact support when license activation encountered an error

= 1.11.2 - 1/5/2024 =
* Fixed email notifications not sending since 1.11.0

= 1.11.1 - 12/14/2023 =
* Fixed license check running on every admin request since 1.11.0

= 1.11.0 - 12/12/2023 =
* Added a [Twilio integration](https://fatalerrornotify.com/documentation/#twilio-notifications)
* Added a FluentSMTP integration
* Improved Slack message layout (now uses columns and sections)
* Improved - If no notification email address is configured, and the Test button is clicked, the admin's email will be used
* Improved - You can now configure plugin-level notifications independently across email, Slack, and Twilio
* Improved - Removed some very uncommon PHP errors, like `E_USER_DEPRECATED`, `E_COMPILE_WARNING`, etc.
* Fixed license activation / deactivation errors not being displayed
* Fixed non-PHP errors not being rate limited
* Fixed PHP warning when the license server returned an empty response when checking the license status
* Fixed error test endpoint being accessible by non-admins
* Fixed missing icon in Slack notifications
* Added `get_options` command to WP CLI interface

= 1.10.0 - 8/11/2023 =
* Added WP Mail SMTP integration
* Added WPForms integration
* Added [WP CLI interface](https://fatalerrornotify.com/documentation/#wp-cli)
* Added option to alert for Notice level errors with WP Fusion
* Improved - `mkdir` warnings will be ignored by default

= 1.9.0 - 1/3/2023 =
* Added WooCommerce error notifications.

= 1.8.5 - 11/21/2022 =
* Fixed typo (misplaced parenthesis) checking `WARNING` level errors in v1.8.4
* Fixed Flush Logs button not working
* Fixed checking for the existence of the logs table on each page load
* Fixed notice `Undefined array key 1` when handling errors from a theme

= 1.8.4 - 9/9/2022 =
* Improved - Moved actions to `shutdown` action priority 1, to fix cases where other plugins generate notices or warnings during `shutdown` after a fatal error
* Improved - Out of memory errors will not be triggered multiple times within the same hour if the only part of the message that has changed is the amount of bytes
* Improved - "rmdir" warnings will be ignored by default

= 1.8.3 - 4/14/2022 =
* Fixed failed license auto-activation creating a redirect and preventing admin logins
* Fixed deactivating license not removing license key from settings
* Fixed `unlink` warnings still triggering notifications if `unlink` was the first part of the error string

= 1.8.2 - 2/15/2022 =
* Improved - If a license key is saved and the site is inactive, the site will be activated for updates on the next update check
* Improved - "unlink" warnings will be ignored by default (see https://wordpress.org/support/topic/wordfence-notification-error-wordfenceclass-php/#post-15187940)
* Fixed ampersands in the site title causing an invalid payload error with Slack notifications

= 1.8.1 - 10/4/2021 =
* Updated EDD plugin updater to v1.9.0
* Fixed error Class 'Fatal_Error_Notify_Updater' not found

= 1.8.0 - 8/26/2021 =
* Added a must-use plugin helper to allow FEN to load before all other plugins. Deactivate and re-activate FEN to install the helper file in /wp-content/mu-plugins/
* Improved - You can now trigger a manual notification by calling `fatal_error_notify()->public->send_notifications()`
* Fixed PHP notice in `Fatal_Error_Notify_Public`

= 1.7.6 - 8/5/2021 =
* Fixed Stealth Mode setting not saving

= 1.7.5 - 6/7/2021 =
* Improved - Gravity Forms notifications will now send if the note sub_type is "error"
* Fixed Slack webhooks being rejected if the site title had an apostrophe
* Fixed not being able to deactivate Stealth Mode

= 1.7.4 - 5/13/2021 =
* License key can now be defined in wp-config.php using define( 'FATAL_ERROR_NOTIFY_LICENSE_KEY', 'XXX' );
* Fixed broken pause link in email
* Fixed PHP notices in the admin

= 1.7.3 - 1/11/2021 =
* Added link to pause notifications from offending plugin
* Improved Slack message layout
* Added FEN logo to Slack notifications

= 1.7.2 - 12/16/2020 =
* Fixed PHP notice when HTTP referrer was missing
* Tested for WordPress 5.6

= 1.7.1 - 11/25/2020 =
* Fixed call to undefined function is_plugin_active_for_network()
* Fixed PHP notice when HTTP referrer was missing

= 1.7 - 10/26/2020 =
* Added ability to activate and configure the plugin at the network level
* Added fen_use_wp_mail filter
* Updated updater

= 1.6.3 - 8/30/2020 =
* Added option to un-pause paused notifications
* Added full error context to WP Fusion notifications

= 1.6.2 - 5/22/2020 =
* Fixed plugin error notifications not sending
* Fixed conflict with other plugins looking for error_log query parameter

= 1.6.1 - 1/9/2020 =
* Added ability to configure email and Slack notifications independently
* WP Fusion integration will now include the affected user ID
* Removed Auto Deactivate feature

= 1.6 - 11/30/2019 =
* Added WP Fusion API error integration
* Fixed bug with older Gravity Forms version
* Added hidden option to reset Stealth Mode

= 1.5.1 - 11/9/2019 =
* Fixed bug with undefined list_files()

= 1.5 - 10/29/2019 =
* Added framework for reporting plugin errors
* Added Gravity Forms feed error notifications
* Bugfixes for pause notification feature

= 1.4 - 9/24/2019 =
* Added link to pause notifications
* Added username of affected user to notifications
* Added setting to specify a custom From address for notification emails
* Added descriptions to common error levels

= 1.3.1 - 8/5/2019 =
* Fixed URL encoding causing invalid_payload error with Slack

= 1.3 - 4/26/2019 =
* Added request URI, HTTP Referrer, and current user ID to notifications

= 1.2 - 4/21/2018 =
* Added filter to ignore errors
* Added "Send Test" button
* Rate limiting so notifications are only sent once per hour
* Fixed link to edit file in notifications

= 1.1 - 2018/2/1 =
* Added out of memory handling

= 1.0 - 2017/12/13 =
* Initial release