Customization & Hooks
Filters and actions for extending the portal.
WooAccount exposes a stable extension surface. Navigation, widgets, routes, strings, events and layout decisions are all filterable. Pro features and third-party integrations use exactly these hooks — nothing is hardwired.
Register a dashboard widget
functions.php or a plugin
add_filter( 'wooaccount/widgets', function ( $widgets ) {
$widgets[] = [
'id' => 'loyalty-points',
'label' => __( 'Loyalty points', 'my-plugin' ),
'dashboard'=> true, // eligible for the dashboard layout
'render' => function () {
return '<div class="my-points">1,240 pts</div>';
},
];
return $widgets;
} );Add a portal route
add_filter( 'wooaccount/portal/routes', function ( $routes ) {
$routes['warranty'] = [
'kind' => 'module', // module | adapter | native
'title' => __( 'Warranty', 'my-plugin' ),
'nav' => [ 'section' => 'primary', 'icon' => 'shield' ],
'capability' => 'read',
];
return $routes;
} );React to store events
add_action( 'wooaccount/event/order.completed', function ( $event ) {
// $event contains ids only — load what you need.
// Canonical types: order.created, order.paid, order.processing,
// order.completed, order.cancelled, order.refunded,
// notification.created, account.password_changed
} );The full hook reference is on the Developers page. Hook names are namespaced with forward slashes and follow WordPress filter conventions.
Didn't find it? Ask us directly — a human answers.