Developer guide
How to extend the plugin without editing its source.
- Filters and actions - every extension point the plugin exposes, all prefixed
wcmp_. - Template overrides - override the front-end menu templates the standard WooCommerce way.
- Stored data - the options, transient and user meta the plugin reads and writes.
Architecture at a glance
Section titled “Architecture at a glance”- Bootstrap (
woo-custom-my-account-page.php) defines constants, declares WooCommerce HPOS compatibility, presets the free license, and boots the core class onplugins_loadedafter confirming WooCommerce is active. - Core class (
includes/class-woo-custom-my-account-page.php) registers all admin and public hooks directly withadd_action()andadd_filter(). - Functions singleton (
includes/class-woo-custom-my-account-page-functions.php) owns the front-end portal: the menu takeover, endpoint content, settings assembly and defaults, endpoint registration, role filtering, the shortcodes and the block. - Admin class (
admin/class-woo-custom-my-account-page-admin.php) renders the settings screen on the shared Wbcom settings shell, runs the sanitisers, handles the endpoint-builder AJAX, keeps WooCommerce endpoint slugs in sync, and schedules rewrite flushes. - Public class (
public/class-woo-custom-my-account-page-public.php) loads front-end assets conditionally, filtersget_avatar, handles the avatar upload, reset and form, adds menu-item classes, and emits the style token bridge.
There are no custom database tables and no REST API. Custom endpoints are WordPress rewrite endpoints layered on the WooCommerce My Account query.
Front-end integration points
Section titled “Front-end integration points”- Menu render:
woocommerce_account_navigation(the plugin removes WooCommerce’s default navigation and prints its own). - Endpoint content:
woocommerce_account_content. - Menu item classes:
woocommerce_account_menu_item_classes. - Avatar: the
get_avatarfilter (priority 100). - Detection, title and redirect:
template_redirect. - Endpoint registration, block registration and legacy migration:
init.

