The Wonderful Relations mother plugin broadcasts a small set of WordPress actions so child plugins (and unrelated extensions) can wire their boot order to the mother’s lifecycle without coupling to its internals.

Actions

wonderful_relations_plugin_loaded

Fires after the WR mother plugin has finished installing and is ready to be used. Child plugins extending AbstractChildPlugin listen to this hook automatically — that is when their Kernel boots modules and the admin menu.

do_action( 'wonderful_relations_plugin_loaded' );

Use it from non-AbstractChildPlugin code that still needs WR to be ready (for example a small companion mu-plugin):

add_action( 'wonderful_relations_plugin_loaded', function () {
    // Safe to call Executor / Form / Template APIs from here.
} );

wonderful_relations_plugin_deactivated

Fired by the mother when it is being deactivated, and also broadcast when an update is pending so children put themselves into Safe Mode. AbstractChildPlugin reacts by calling its own trigger_deactivation to stop child modules from running against an inconsistent DB.

load_wr_plugins_locales

Fired during locale switching so every WR child plugin can re-register its textdomain with the new locale. Kernel::load_textdomain() already hooks into this — you only need to subscribe directly when you load extra .mo files outside wp-content/plugins/<your-plugin>/languages.

Registration actions

These are the actions Wonderful Relations fires once during boot to let your subsystems self-register:

ActionUsed bySubscribe via
register_new_action_typeActionType instancesConstructor of ActionType
register_new_taskTask instancesConstructor of Task
wr_register_new_workerWR_Worker instancesConstructor of WR_Worker

You do not normally call these directly. Instantiating an ActionType, Task or WR_Worker once during your Modules\Init is enough — the constructor hooks into the right action and the central store picks the instance up.