Black Friday: 79% off every plugin Shop the sale →

Hooks & Filters

The plugin has a small, deliberate surface. There are no shortcodes and no blocks.

Filters#

FilterArgumentsPurpose
ers_storeengine_store_urlstring $urlChange the StoreEngine store URL used for license checks and updates. Default https://technoleet.dev (or the ERS_STOREENGINE_STORE_URL constant).
ers_storeengine_product_idint $product_idChange the StoreEngine product ID. Return 0 to disable licensing entirely. Default 23606 (or the ERS_STOREENGINE_PRODUCT_ID constant).
ers_store_dashboard_urlstring $urlChange 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#

ActionArgumentsPurpose
ers_process_scan_chunknoneThe 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.

Was this article helpful?