Documentation
"Knowledge is the foundation of vigilance."
Everything you need to deploy and configure Sentinel.
Installation
Since v1.2.0Sentinel 1.2 records what happens on a WordPress site and shows it in admin.
A log, not a firewall
Sentinel does not block sign-ins or scan for malware. It writes an activity record you can read, filter, and export.
Requirements
WordPress
6.2 or higher (tested up to 7.1)
PHP
7.4 or higher
MySQL
5.6 or higher
Memory
64MB PHP memory is enough for most sites
From WordPress.org
Open the listing
Go to wordpress.org/plugins/sml-sentinel, or in wp-admin use Plugins → Add New and search for Sentinel by Scarlett Media Lab.
Install and activate
Install the plugin, then activate it. Administrators see Quick Setup on first run.
No licence field
Sentinel 1.2 does not ask for a licence key.
From a zip
Use this if the site cannot use the plugin directory. Keep the same version as WordPress.org.
Download the zip
Get it from getsentinel.dev/download.
Upload and activate
In wp-admin go to Plugins → Add New → Upload Plugin, choose the zip, then activate.
Free stands alone
Sentinel 1.2 has no licence field. A licence will be available in Sentinel+, as a companion plugin.
Quick Setup
Since v1.2.0Administrators see Quick Setup the first time Sentinel 1.2 runs. You can open it again from Settings.
No licence step
The wizard does not ask for a key. Skipping it does not turn Sentinel off.
What it sets
Monitoring
How much everyday activity to record. Pause individual types later in Event Registry.
Privacy
Whether new events store IP addresses, and related defaults. Change these under Settings → Privacy & access.
Preview
Check the summary, apply the presets, or skip and keep the defaults.
Overview
Since v1.2.0Overview is the first screen in the Sentinel menu. It summarises what has already been recorded.
Today
Counts for the current day.
Volume
A week of activity, as a chart.
Heatmap
When events clustered over the week.
Site health
Whether file watch, mail, and related checks are on.
Recent activity
A short list of the latest events.
Not a live feed
Open Activity Logs for the full history. Editors who can edit published posts can open Overview. Event Registry and Settings stay with administrators.
Administrators also see Sentinel Memory Insights on the WordPress Dashboard. It shows current memory use, not a leak report.
Activity Logs
Since v1.2.0Activity Logs is the history of events Sentinel has stored. Open a row for the detail drawer.
Filters
Event type
The catalogue key, such as a sign-in or a plugin update.
User
Including guest rows where there is no account.
Priority
Critical, high, medium, or low.
Date
From and to.
IP
Only if IP logging is on in Settings.
Older names
Docs that say Dashboard or Activity Log (singular) mean this screen. It is an audit trail, not a live stream.
First Steps
Since v1.2.0After install, the Sentinel menu has four items.
Overview
Counts, volume, heatmap, and recent activity.
Activity Logs
Search and inspect what has already happened.
Event Registry
What Sentinel can detect. Pause types you do not want. WooCommerce, Contact Form 7, and WPForms add groups when those plugins are active. You cannot add custom events in Sentinel 1.2.
Settings
Data and retention, privacy and access, notifications, performance, export and API, and maintenance.
Mail uses WordPress
If the site cannot send email, these switches will not fix that.
Urgent
Critical events only. The same type stays quiet until the next day.
Daily briefing
Failed sign-ins are counted here, not emailed one by one.
Weekly briefing
Off unless you turn it on.
What counts as critical
PHP fatal, database or configuration error, critical memory use, a watched file change, or Sentinel hitting its own logging rate limit.
Purchase Process
Sentinel+Purchase will be available in Sentinel+.
License Activation
Sentinel+Licence activation will be available in Sentinel+. Sentinel Free has no licence field.
Verification
Sentinel+Verification steps will be available in Sentinel+.
Troubleshooting
Sentinel+Plus activation
No licence field
Issue: There is nowhere to type a key.
Sentinel Free has no licence field. Licence activation will be available in Sentinel+.
Authentication Tracking (Sentinel+)
Sentinel+Planned
Authentication tracking is planned for Sentinel+.
Email notifications
Since v1.2.0Sentinel 1.2 sends three kinds of mail. Turn them on under Settings → Notifications.
Urgent alerts
One email when a critical event happens. The same type stays quiet until the next day.
PHP fatal
The site hit a fatal error.
Database or configuration error
WordPress could not talk to the database, or wp-config.php is broken.
Critical memory use
PHP is close to the memory limit.
Watched file change
The daily check of wp-config.php or .htaccess saw a new hash.
Logging rate limit
Sentinel stopped writing events because it hit its own cap. This is not login protection.
Daily briefing
Failed sign-ins
Counted here. They are not emailed one by one.
What changed
Plugins, themes, content, and similar activity from the last day.
Errors
Problems that were recorded but are not urgent mail.
Weekly briefing
Off unless you turn it on
Same briefing template as the daily mail, rolled up for the week. Enable it under Settings → Notifications.
Turn it on
Open Notifications
Go to Sentinel → Settings → Notifications.
Choose what to send
Urgent alerts, the daily briefing, and the weekly briefing are separate switches.
Save
Mail uses WordPress’s mailer. If the site cannot send email, these switches will not fix delivery.
IP Allowlist Management
Sentinel+Planned
An IP allowlist is planned for Sentinel+.
Settings
Since v1.2.0Open Sentinel → Settings. Administrators only. There is no Log Management tab in 1.2. Quick Setup can be reopened from the header on this screen.
Tabs
Data & retention
Live activity age and row cap, archive lifetime, and which roles are skipped for everyday actions. Critical errors are still recorded.
Privacy & access
IP storage, anonymise older rows, editor visibility, deletion-request shortcode, and the daily file watch.
Notifications
Urgent alerts, daily briefing, optional weekly briefing. See Email notifications.
Performance
Batch writes, event-store rate limit, PHP memory watch, scheduled OPTIMIZE of Sentinel tables.
Export & API
Download live or archive activity as CSV, JSON, or XML. Optional read-only REST key.
Maintenance
Table status, run OPTIMIZE or the write queue now, archive all live rows, or anonymise all stored records immediately.
Data & retention
Live activity
When auto-archive is on, rows older than the chosen number of days, or over the live row cap, move to the archive on the cleanup schedule (hourly, daily, or weekly). That does not run the moment you save.
Archive
Archived rows are deleted after the archive period (forever, 6 months, 1 year, 2 years, or a custom number of days). Deleted archive rows cannot be restored.
Roles
Do not record activity for selected roles. Everyday actions by those people are skipped. Critical system errors are still written.
Event Registry
Since v1.2.0Event Registry is the catalogue of keys Sentinel 1.2 can write. Pause a type there and new rows of that key stop. Existing log rows are kept. Administrators only.
For developers
Log with sentinel_log_event( $event_key, $data = array(), $user_id = null ). $event_key must already be in this catalogue (or an active integration). Unknown keys are ignored. Payload is stored as JSON on the log row.
Built-in events
These keys ship with Sentinel 1.2. Labels in admin may differ slightly; the code is stable.
Sign-in
7 keysuser_loginSuccessful WordPress sign-in.user_logoutSign-out.user_registeredNew WordPress account created.login_failedUsername or password rejected on wp-login.auth_cookie_badStored sign-in cookie rejected.auth_successApplication password or other API credential accepted. Signed-in admin REST is omitted.auth_failAuthentication attempt rejected (API/XML-RPC and similar).Content
9 keysprofile_updatedUser profile updated.post_publishedPost or page published.post_updatedPost or page updated.post_deletedPost or page deleted.media_uploadedFile added to the Media Library.media_deletedFile removed from the Media Library.comment_postedComment posted.comment_approvedComment approved.comment_deletedComment deleted.Plugins, themes, and core
8 keysplugin_activatedPlugin switched on.plugin_deactivatedPlugin switched off.plugin_updatedPlugin updated.plugin_events_cleanedStored events for a plugin were cleaned up.plugin_activation_errorPlugin failed while being switched on.theme_switchedActive theme changed.theme_updatedTheme updated.core_upgradedWordPress core upgraded.Errors
15 keysphp_fatal_errorPHP fatal. Urgent mail.php_warningPHP warning.php_noticePHP notice.php_deprecatedDeprecated PHP feature used.wp_database_errorDatabase error. Urgent mail.wp_memory_errorPHP memory limit exceeded. Urgent mail.wp_config_errorConfiguration error. Urgent mail.http_404_errorRequest for a missing page.wp_remote_errorOutbound HTTP request from WordPress failed.wp_cron_errorScheduled task failed.file_upload_errorFile upload failed.wp_errorWordPress error. Ordinary REST 404s and sign-in form messages are omitted.memory_early_warningMemory use hit the early-warning threshold.memory_warningMemory use hit the warning threshold.memory_criticalMemory use hit the critical threshold. Urgent mail.Files and limits
4 keysfile_modifiedDaily hash of wp-config.php or .htaccess changed. Urgent mail. Only if file watch is on.rate_limit_warningThe site is approaching its cap on log writes for the current minute or hour. This is the whole site, not one visitor, and it is not login protection.rate_limit_exceededThe site hit that cap. Urgent mail. It limits how many events are stored, not visitor logins.api_key_generatedA Sentinel REST API key was generated or regenerated.Privacy
3 keysuser_deletion_requestLogged-in user submitted [sentinel_data_deletion_request].user_data_anonymizedPersonal data on log rows was anonymised.admin_deletion_request_processedAn administrator processed a deletion request.System
8 keysoption_updatedA WordPress option changed.maintenance_mode_enabledSite entered maintenance mode.maintenance_mode_disabledSite left maintenance mode.logs_cleanedOld activity rows were cleaned up.tables_optimizedSentinel tables were optimized.log_accessedSomeone opened Activity Logs (if that setting is on).admin_testTest event written from Sentinel.memory_auto_optimizationSentinel ran an automatic memory clean-up.Integrations
When WooCommerce, Contact Form 7, or WPForms is active, those keys are added to Event Registry automatically. See Plugin integrations. Pause them the same way as built-in types.
Performance
Since v1.2.0Settings → Performance. Most sites can leave these as they are.
Queue writes in batches
Activity can appear a little later. Use this if logging is slowing the site down. Batch size and queue interval (seconds) show when the switch is on.
Limit how many events are stored per minute
Protects the database if something logs in a tight loop. Critical events still get through. This is not login protection.
When the limit is reached
Allow some through, stop until the window resets, or keep important events only. Separate per-minute and per-hour caps.
Watch PHP memory use
Can skip logging when memory is under pressure. Warn-at percentage is the PHP memory limit, not a leak detector.
Optimise Sentinel tables on a schedule
Runs MySQL OPTIMIZE on the live and archive tables. Daily, weekly, or monthly. Housekeeping, not a speed control.
Run now
Settings → Maintenance can OPTIMIZE immediately, process the write queue, or retry failed writes.
Memory use
Since v1.2.0Sentinel Free records memory-pressure events (memory_early_warning, memory_warning, memory_critical) and shows Sentinel Memory Insights on the WordPress Dashboard for administrators. That widget is current and peak memory use, not a leak report.
Planned
A deeper leak view is planned for Sentinel+.
Privacy & access
Since v1.2.0Settings → Privacy & access. These are tools for how Sentinel stores and shows activity. They are not a legal certification.
Identifying data
Store originating IP addresses
New events only. Existing rows are not rewritten. Off means future Activity and exports have no IP.
Anonymise older records
A daily job masks IPv4 addresses and some email or username fields in stored payloads. This cannot be undone.
Anonymise records older than
30, 60, 90 days, 6 months, or 1 year. Applies to live and archive. IPv6 addresses are not masked today.
Who can see activity
Limit what editors can see
Editors then see user, content, and authentication events only. Administrators still see everything.
Log when someone opens Activity Logs
Writes log_accessed, including the request query. Can get noisy on a busy site.
Also on this tab
Deletion-request shortcode
Enable [sentinel_data_deletion_request], then place it on a page. Details on Data Deletion Request.
Watch critical files daily
Hashes wp-config.php and .htaccess once a day. Details under File Monitoring.
Security Controls
Sentinel+Planned
Incident response is planned for Sentinel+. Sentinel Free only records activity.
Data Deletion Request
Since v1.2.0A logged-in person can ask Sentinel to anonymise their activity rows. An administrator has to approve. This does not delete the WordPress user, their posts, or their comments. There is no per-user export of Sentinel data; administrators download from Settings → Export & API.
What approve does
Approve masks IPv4 on that user’s live and archive rows, and some email or username fields in payloads. IPv6 is not masked. Rows stay in the log. The WordPress account is left alone.
Turn the shortcode on
Settings → Privacy & access → Enable the deletion-request shortcode.
Put it on a page
Add [sentinel_data_deletion_request] to a page. Guests are told to sign in. A second request is blocked while one is still pending.
Approve or deny
The request is a user_deletion_request row. Open it in Activity Logs and approve or deny. Approve writes user_data_anonymized and admin_deletion_request_processed.
File Monitoring
Since v1.2.0When file watch is on, Sentinel 1.2 hashes two files once a day. A recorded change writes file_modified and can send urgent mail.
Where to turn it on
Settings → Privacy & access → Watch critical files daily.
What it watches
Files
2 pathswp-config.phpWordPress configuration, at the site root..htaccessServer rules, at the site root. Skipped if the file is missing.Event
Log row
1 keyfile_modifiedDaily hash no longer matches the stored baseline. Urgent mail. See Event Registry.How File Monitoring Works
Since v1.2.0Baseline
On the first successful read, Sentinel stores MD5, size, and mtime in the sentinel_file_hashes option. That first pass does not write file_modified.
Daily check
WP-Cron hook sentinel_check_files runs daily. Each path is ABSPATH plus the filename. Unreadable or missing files are skipped.
Compare
A new MD5 is compared to the stored hash. If it differs, Sentinel measures the absolute size delta against a 10-byte threshold (file_size_threshold, not shown in Settings).
Log or absorb
If the size delta is at least 10 bytes, it writes file_modified and then updates the stored hash. Smaller size deltas still update the baseline, so a same-size edit may not produce a log row.
Setup & Configuration
Since v1.2.0Open Privacy & access
Sentinel → Settings → Privacy & access.
Turn on the daily watch
Enable Watch critical files daily. The help text lists wp-config.php and .htaccess.
Save
Cron is scheduled on the next request that loads Sentinel. There is no hourly or weekly interval in 1.2.
Monitored Files
Since v1.2.0Hard-coded in Sentinel_File_Monitor. There is no custom path list in 1.2.
Paths
2wp-config.phpABSPATH + wp-config.php. Type config_file. Treated as critical for messaging..htaccessABSPATH + .htaccess. Type server_config. Ignored if the file does not exist.Understanding Alerts
Since v1.2.0file_modified is a critical event, so it can send urgent mail. The log row payload includes:
Payload
fieldsfile_namewp-config.php or .htaccess.file_pathAbsolute path.file_typeconfig_file or server_config.old_hash / new_hashMD5 before and after.old_size / new_size / size_changeBytes. size_change_text is a signed string such as +156 bytes.change_summaryMinor / moderate / significant additions or deletions, or same-size wording (same-size usually never logs; see How it works).last_known_modified / current_modifiedUnix mtimes, formatted GMT.Best Practices
Since v1.2.0Expect delay
The check is daily, not on save. A change can sit until the next cron run.
Deploys
Editing wp-config.php or .htaccess on purpose will look the same as an unexpected edit.
Urgent mail
The same file type stays quiet until the next day after one critical mail.
Troubleshooting
Since v1.2.0File watch
No .htaccess row
Issue: nginx and some hosts never create .htaccess.
That path is skipped when the file is missing. wp-config.php is still checked.
Change with no log row
Issue: Hash changed but size moved by fewer than 10 bytes, or cron has not run.
Same-size content edits update the stored hash without file_modified. Wait for the daily job, or confirm WP-Cron is running.
Watch looks on but nothing happens
Issue: The switch is in Privacy & access, not a separate Files tab.
Settings → Privacy & access → Watch critical files daily. Then wait for sentinel_check_files.
Enhanced Diff Viewer (Sentinel+)
Sentinel+Planned
A line-by-line file diff is planned for Sentinel+. Free records that wp-config.php or .htaccess changed.
Hooks & Filters
Since v1.2.0Sentinel 1.2 fires these hooks. Use them from a theme or a small plugin. SENTINEL_API is 1. The extra hooks are for another plugin. They are not Sentinel+ screens.
Actions
sentinel_loaded
After events and the public API are ready. No arguments.
sentinel_event_logged
After a row is written. Arguments: $event_key, $record, $log_id. $record is the redacted row.
sentinel_event_registered
When a key is added to the in-memory catalogue. Arguments: $event_key, $config.
sentinel_register_extra_events
Another plugin can register extra event types here. No arguments.
sentinel_admin_menu
After the Sentinel menu exists. Argument: $parent_slug (sentinel-dashboard).
sentinel_overview_widgets
Extra cards on Overview. Argument: $data.
sentinel_settings_sections
Extra markup on a Settings tab. Argument: $tab.
add_action( 'sentinel_event_logged', function( $event_key, $record, $log_id ) {
if ( 'plugin_activated' === $event_key ) {
// $record is the redacted row. Do not call sentinel_log_event() from here in a loop.
}
}, 10, 3 );Filters
sentinel_extra_event_definitions
Extra catalogue entries. Argument: $events. Built-in keys cannot be overwritten.
sentinel_can_register_event
Return false to refuse a custom key. Arguments: $allowed, $event_key.
sentinel_monitored_files
Extra file-monitor paths. Argument: $paths. Built-in wp-config.php and .htaccess stay.
sentinel_settings_extra
Companion settings keys. Arguments: $extra, $existing_settings, $save_tab. Free keys cannot be overwritten.
sentinel_log_management_pre_update
Last change to companion keys before save. Arguments: $merged, $existing_settings, $save_tab. Free values are reapplied afterwards.
sentinel_settings_tabs
Extra Settings tabs. Argument: $tabs. Built-in tabs stay.
sentinel_admin_screen_hooks
Extra admin screen hooks that may load Sentinel assets. Argument: $hooks.
sentinel_wp_error_is_noise
Return true to treat a WordPress error as noise so it is not stored. Arguments: $noise, $code, $message, $data.
sentinel_wp_error_collapse_seconds
How long to collapse repeat WP errors of the same code. Default 15 minutes. Arguments: $seconds, $code, $message.
Functions
Since v1.2.0sentinel_log_event( $event_key, $data = array(), $user_id = null ) writes a row. $event_key must already be in Event Registry (or an active integration). Unknown keys are ignored. Payload is stored as JSON on the row.
sentinel_log_event(
'comment_posted',
array(
'source' => 'my-plugin',
)
);Summary counts
Safe for a template or widget. Counts only: no names, IPs, or log lines.
$stats = sentinel_get_public_stats();
// $stats['total_logs']
// $stats['today_logs']
// $stats['logins_today']
echo sentinel_get_total_logs();
echo sentinel_get_today_logs();
echo sentinel_get_logins_today();Classes
Most integrations use the functions above. These classes are here if you need lower-level access.
Sentinel_Logger
Handles writing events to the database, including batch queueing and disabled-event checks.
$logger = new Sentinel_Logger();
sentinel_log_event( 'comment_posted', array( 'source' => 'my-plugin' ) );
$logger->log( 'comment_posted', array( 'source' => 'my-plugin' ), $user_id );REST API
Since v1.2.0Namespace sentinel-plugin/v1. Off by default. Settings → Export & API → Allow read-only REST access, then generate a key. Generate shows the full key once. After that the field is masked, and Sentinel stores a hash. Anyone with the key can read activity. Keep it in server-side code.
Auth
Send the X-Sentinel-API-Key header. Query-string keys are not accepted.
curl -H 'X-Sentinel-API-Key: YOUR_KEY' \
'https://example.com/wp-json/sentinel-plugin/v1/logs'Endpoints
GET /logs
Live activity. Query: limit (1–1000, default 50), offset, event_key, priority, user_id.
GET /stats
Summary counts only: total_logs, today_logs, logins_today. No log rows.
GET /events/types
Registered keys with label, category, and priority.
Common Issues
Since v1.2.0Activity and mail
An event is not being recorded
Issue: The type is paused, the role is skipped, or the write is still in the batch queue.
Event Registry: make sure the type is not paused. Settings → Data & retention: the person’s role may be skipped for everyday actions (critical errors still write). If Queue writes in batches is on, rows can appear a little later.
No email for a failed sign-in
Issue: Failed logins are not emailed one by one.
They are counted in the daily briefing. Urgent mail is only for critical events, and the same type stays quiet until the next day. Confirm Settings → Notifications and that WordPress can send mail.
A file change did not log
Issue: The daily check has not run, or the size moved by fewer than 10 bytes.
Settings → Privacy & access → Watch critical files daily. Same-size edits can update the stored hash without file_modified. See File Monitoring.
REST returns 403
Issue: The API is off, or the key is wrong.
Settings → Export & API → Allow read-only REST access, then generate a key. Send X-Sentinel-API-Key. Query-string keys are not accepted. Generate shows the full key once; after that the field is masked and Sentinel stores a hash. See REST API.
Frequently Asked Questions
Since v1.2.0What does it record?
Sign-ins and failed sign-ins, content and comments, Media Library, plugins and themes, WordPress upgrades, PHP and WordPress errors, and Sentinel’s own privacy or housekeeping events. WooCommerce, Contact Form 7, and WPForms add keys when those plugins are active. Pause types in Event Registry.
Does it email every failed login?
No. Failed sign-ins are counted in the daily briefing. Urgent mail is only for critical events, and the same type will not email again until the next day.
Can I add custom events?
Not from a screen in Sentinel Free. Built-in types can be paused. sentinel_log_event() only writes keys Sentinel already knows. Another plugin can register types through the hooks in Hooks & filters. A screen for that is planned for Sentinel+.
Does it block attacks?
No. It records activity and can email you. The Performance rate limit caps how many log writes Sentinel will store for the whole site, not visitor logins. Response modes are planned for Sentinel+.
Can I watch every file?
No. The free plugin can hash wp-config.php and .htaccess once a day. That switch is under Settings → Privacy & access.
Will logging slow the site down?
Writes go into Sentinel’s own tables. If volume is a problem, Settings → Performance can queue writes in batches and cap how many events are stored per minute.
Is there a REST API?
Yes, read-only, off by default. Settings → Export & API. See REST API.
Is it compatible with multisite?
It is built for a single site. It is not tested as a network-activated plugin.
Support
Since v1.2.0Use the contact form.
Include
WordPress version, PHP version, Sentinel version, and what you expected versus what happened.
Check first
Overview for recent activity, Event Registry if a type is paused, Settings → Notifications if mail is missing.
Sentinel+
Sentinel+ support will be available with the companion. Questions go through the contact form.
Custom Events
Sentinel+Planned
A screen for registering extra event types is planned for Sentinel+. Another plugin can register types through the hooks in Hooks & filters.
Export & API
Since v1.2.0Settings → Export & API. This download does not follow the filters on Activity Logs. It includes IP, user agent, URL, and payloads if they were stored. There is no per-user export.
Format
CSV, JSON, or XML.
Date range
Last 7, 30, or 90 days, or all stored activity.
Source
Live, archive, or both.
REST
The same tab can generate a read-only API key. See REST API.
Who can see Sentinel
Since v1.2.0Administrators
Overview, Activity Logs, Event Registry, and Settings.
Editors
Overview and Activity Logs. Settings → Privacy & access → Limit what editors can see restricts them to user, content, and authentication events.
Role skip
Settings → Data & retention can skip everyday actions for selected roles. Critical errors are still recorded.
Plugin integrations
Since v1.2.0Sentinel 1.2 records a small set of events from three plugins. If the plugin is active, the keys are in Event Registry and can be paused there.
WooCommerce
New orders, payments, status changes, and failed orders.
Contact Form 7
Submit, mail sent, and mail failed. Form name only, not message text.
WPForms
Form submitted. Form name only, not message text.
Keys
WooCommerce
4 keyswoo_new_orderOrder placed. Stores order number, total, currency, payment method, item count.woo_payment_completeOrder marked paid. Stores order number, total, payment method.woo_order_status_changedStatus changed. Stores order number, previous status, new status.woo_payment_failedOrder marked failed. Stores order number and payment method.Contact Form 7
3 keyscf7_form_submittedForm submitted. Stores form name, not the message.cf7_mail_sentNotification email sent. Stores form name.cf7_form_failedNotification email failed after submit. Stores form name.WPForms
1 keywpf_form_submittedForm submitted. Stores form name, not the message.WooCommerce Integration
Since v1.2.0Requires WooCommerce. Events appear in Event Registry while WooCommerce is active. Order number, totals, and payment method are stored. Line items and customer addresses are not.
Orders
4 keyswoo_new_orderwoocommerce_new_order. Order number, status, total, currency, payment method, item count.woo_payment_completewoocommerce_payment_complete. Order number, total, payment method.woo_order_status_changedwoocommerce_order_status_changed. Order number, old status, new status.woo_payment_failedwoocommerce_order_status_failed. Order number and payment method.Contact Form 7 Integration
Since v1.2.0Requires Contact Form 7. Events appear in Event Registry while CF7 is active. Message body and field values are not stored.
Forms
3 keyscf7_form_submittedwpcf7_submit. Form name.cf7_mail_sentwpcf7_mail_sent. Form name.cf7_form_failedwpcf7_mail_failed. Form name.WPForms Integration
Since v1.2.0Requires WPForms Lite or Pro. The key appears in Event Registry while WPForms is active. Message body and field values are not stored.
Forms
1 keywpf_form_submittedwpforms_process_entry_save. Form name.