Hooks & Filters
The plugin has a small, deliberate surface. There are no shortcodes and no blocks.
Filters#
| Filter | Arguments | Purpose |
|---|---|---|
ers_storeengine_store_url | string $url | Change the StoreEngine store URL used for license checks and updates. Default https://technoleet.dev (or the ERS_STOREENGINE_STORE_URL constant). |
ers_storeengine_product_id | int $product_id | Change the StoreEngine product ID. Return 0 to disable licensing entirely. Default 23606 (or the ERS_STOREENGINE_PRODUCT_ID constant). |
ers_store_dashboard_url | string $url | Change the “Manage License” link on the license screen. Default {store}/dashboard/license-keys/. |
These filters run on plugins_loaded, so add them from a must-use plugin or from a plugin that loads before Editor Readiness Scanner.
<?php
// wp-content/mu-plugins/ers-staging.php
// Point license checks at a staging copy of the store while testing.
add_filter( 'ers_storeengine_store_url', static function () {
return 'https://staging.technoleet.dev';
} );
Actions#
| Action | Arguments | Purpose |
|---|---|---|
ers_process_scan_chunk | none | The background hook the plugin schedules (Action Scheduler group editor-readiness-scanner, or WP-Cron) to continue a running scan. Fired by the scheduler; you do not normally hook it yourself, but you can trigger it with wp cron event run ers_process_scan_chunk or wp action-scheduler run to push a stuck background scan along. |
Meta box flags the scanner understands#
If you write plugins yourself, these add_meta_box() callback arguments change how the scanner (and WordPress) treats a box:
add_meta_box(
'acme_box',
'Acme',
'acme_render_box',
'post',
'side',
'default',
array(
'__block_editor_compatible_meta_box' => true, // false = "Incompatible with the block editor"
'__back_compat_meta_box' => false, // true = classic editor only, hidden in the block editor
'__rtc_compatible_meta_box' => true, // proposed flag: safe for real-time collaboration
)
);
Rules file#
Rules live in rules/rules.json inside the plugin and are validated when loaded. Each rule has an id, title, applies_to (php, js, css, block.json, runtime), scope (all, editor_assets, script_bundles, meta_boxes), a check (regex, json_compare or meta_box), severity, confidence, status (shipped or upcoming), dev_note_url, why and fix. There is no filter to add rules from another plugin; new rules ship as plugin updates.
