我需要从前台管理员 URL 发送:https://www.example.com/index.php?controller=AdminKbProductApprovalList。
我找到的解决方案是使用,它生成正确的 URL,但没有管理文件夹并产生错误。
$this->context->link->getLegacyAdminLink('AdminKbProductApprovalList', false);
警告:在 /home/name/projects/asd.local/classes/Link.php 第 906 行中使用未定义的常量 PS_ADMIN_DIR - 假设为“PS_ADMIN_DIR”(这将在未来版本的 PHP 中引发错误)。
我该如何解决这个问题?
什么对我有用:
/* Getting controller URL */
$url = parse_url($this->context->link->getPageLink('Controller'));
/* Checking if the admin folder is set */
if (isset(glob(_PS_ROOT_DIR_ . '/admin*')[0])) {
/* Changing the URL path to the admin folder name */
$url['path'] = basename(glob(_PS_ROOT_DIR_ . '/admin*')[0]) . $url['path'];
}
/* Adding the modified URL to the email template variables using http_build_url */
$template_vars['{{redirect_url}}'] = http_build_url($url);