Requirements & Install
What you need before uploading Menu Manager, and how to activate it.
Requirements
- WHMCS 8.x or 9.x.
- PHP as required by your WHMCS version.
- A running WHMCS daily cron (only needed for activity-log pruning).
- A valid license key — entered in the module configuration after activation. The key is emailed after purchase and is also available in the client area under Account → My Products → manage product.
License required — after activating the module, click Configure and enter the License key you received by email (or from the client area: Account → My Products → manage product). The module will not run until a valid key is saved.
Install
- Upload the module folder — copy
menuManager/into your WHMCS installation:
WHMCS_ROOT/modules/addons/menuManager/ menuManager.php ← addon entry point + client area click controller hooks.php ← navbar hooks (rules, sticky, click recorder, cron) whmcs.json ← module metadata logo.png README.md lang/ ← language files lib/ ← namespaced classes templates/ ← admin Smarty templates templates_c/ ← compiled templates (auto-created)
- Activate the addon — in the WHMCS admin area go to Configuration → System Settings → Addon Modules, find Menu Manager and click Activate.
- Enter your license key — click Configure, paste the License key and save.
- Open the module — click the module name to open the Dashboard.
- Pick your template — on Settings select Six, Twenty-One or Nexus, then edit the menus.
What activation does
Activation imports the live menus by replaying the WHMCS navbar factories into storage/menus.json, creates the hsc_mm_settings table, and seeds Available Languages with your WHMCS default client language. Settings default to engine enabled with the Twenty-One template selected.
Upgrading from the legacy Menu Manager
If you ran the legacy module (mod_menumanager / mod_menumanagerconfig tables): back up the database, upload the new folder (removing/renaming a same-named legacy folder first), activate, and rebuild your rules in the new module — there is no automatic migration (different storage model). The legacy tables are never touched; drop them manually once you are happy.