我正在为WHMCS使用PayPal结算网关,并使用钩子文件中的以下内容将菜单项添加到ClientAreaPrimaryNavbar和ClientAreaSecondarySidebar:
<?php
use WHMCS\View\Menu\Item as MenuItem;
add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) {
if (!is_null($primaryNavbar->getChild('Billing'))) {
$primaryNavbar->getChild('Billing')->addChild('Manage PayPal Billing', array(
'label' => 'Manage PayPal Billing',
'uri' => 'paypalbilling.php',
'order' => '30'
));
}
});
add_hook('ClientAreaSecondarySidebar', 1, function (MenuItem $secondarySidebar) {
if (!is_null($secondarySidebar->getChild('Billing'))) {
$secondarySidebar->getChild('Billing')->addChild('Manage PayPal Billing', array(
'label' => 'Manage PayPal Billing',
'uri' => 'paypalbilling.php',
'order' => '30'
));
}
});
当有人在paypalbilling.php页面上时,我需要在ClientAreaPrimaryNavbar
中获取“结算”菜单项以获得课程open
,并突出显示“管理PayPal结算”子项目。 “与班级active
一起开帐单。然后,我需要使用班级ClientAreaSecondarySidebar
突出显示active
中的“管理PayPal结算”菜单项。
显然,当这是活动页面时,我只需要添加类。
我有一种感觉可能与核心paypalbilling.php页面没有定义面包屑......但不确定。该自定义页面代码不是开源的,因此我无法看到或编辑它:(
我尝试以各种方式在此挂钩中使用setClass
,但无法找出if( is current page = paypalbilling.php )
的条件。
非常感谢任何帮助!
答案 0 :(得分:0)
我已经找到了如何使用当前页面将类添加到子菜单,仍然无法将类添加到主ClientAreaPrimaryNavbar
结算菜单。
我尝试了$primaryNavbar->getChild('Billing')->setClass('active');
,但似乎没有效果。
以下是检查当前页面并使用“有效”类设置新菜单项的代码:
<?php
use WHMCS\View\Menu\Item as MenuItem;
add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) {
$filename = basename($_SERVER['REQUEST_URI'], ".php");
$parseFile = explode('.', $filename);
if (!is_null($primaryNavbar->getChild('Billing'))) {
$primaryNavbar->getChild('Billing')->addChild('Manage PayPal Billing', array(
'label' => 'Manage PayPal Billing',
'uri' => 'paypalbilling.php',
'order' => '30'
));
if ($parseFile['0']=='paypalbilling'){
$primaryNavbar->getChild('Billing')->setClass('active'); // THIS LINE DOES NOT WORK
$primaryNavbar->getChild('Billing')->getChild('Manage PayPal Billing')->setClass('active');
}
}
});
add_hook('ClientAreaSecondarySidebar', 1, function (MenuItem $secondarySidebar) {
$filename = basename($_SERVER['REQUEST_URI'], ".php");
$parseFile = explode('.', $filename);
if (!is_null($secondarySidebar->getChild('Billing'))) {
$secondarySidebar->getChild('Billing')->addChild('Manage PayPal Billing', array(
'label' => 'Manage PayPal Billing',
'uri' => 'paypalbilling.php',
'order' => '30'
));
if ($parseFile['0']=='paypalbilling'){
$secondarySidebar->getChild('Billing')->getChild('Manage PayPal Billing')->setClass('active');
}
}
});