Remove a Sidebar Item

You can customize the Client Area’s sidebar navigation menus through hooks and custom modules.

For more information, see Client Area Sidebars and our Developer Documentation.

Remove a Sidebar Menu Item

You can remove a menu item using the following example code:

<?php

use WHMCS\View\Menu\Item as MenuItem;

add_hook('ClientAreaPrimarySidebar', 1, function(MenuItem $primarySidebar) {
    if (!is_null($primarySidebar->getChild('My Account')) && !is_null($primarySidebar->getChild('My Account')->getChild('Billing Information'))) {
        $primarySidebar->getChild('My Account')->removeChild('Billing Information');
    }
});

Conditionally Remove a Sidebar Menu Item

You can manipulate a sidebar menu item by name with the ClientAreaSidebars hook point.

The following example code checks which sidebar the element belongs to and then removes it:

<?php

use WHMCS\View\Menu\Item as MenuItem;

add_hook('ClientAreaSidebars', 1, function() {
    $primarySidebar = Menu::primarySidebar();
    $secondarySidebar = Menu::secondarySidebar();

    $id = 'Client Contacts';

    if ($primarySidebar && !is_null($primarySidebar->getChild($id))) {
        $objectToWorkWith = $primarySidebar->removeChild($id);
    } elseif ($secondarySidebar && !is_null($secondarySidebar->getChild($id))) {
        $objectToWorkWith = $secondarySidebar->removeChild($id);
    }

    if ($objectToWorkWith) {
        $objectToWorkWith->removeChild($id);
    }
});

Last modified: October 29, 2024