4

我看到许多扩展程序让您在查看产品等之前登录,但我只想限制对我通过创建新信息页面创建的某个页面的访问。这可能吗?我对 php 也不是很精通,所以请告诉我应该编辑哪些文件以及在哪里编辑。提前致谢。

4

1 回答 1

5

尝试在index()函数声明之后直接将其添加到controller/information/information.php的顶部,并将 {ID} 替换为您要密码保护的页面的 ID(您可以从 URL 获取 ID,或者如果您有来自管理部分的 SEO URL)。

if (isset($this->request->get['information_id']) && $this->request->get['information_id'] == '{ID}') {
    //If the information_id is provided and it matches the ID you wish to protect
    if (!$this->customer->isLogged()) {
        //If the customer is not logged in already, redirect them to the login page
        //Use $this->session->data['redirect'] to redirect them back to this page after logging in
        $this->session->data['redirect'] = $this->url->link('information/information', 'information_id=' . $this->request->get['information_id']);
        //Do the redirect
        $this->redirect($this->url->link('account/login', '', 'SSL'));
    }
}

我假设在上面的例子中信息页面没有使用 SSL,如果是,你需要修改它。

如果您对这应该去哪里感到困惑,请查看controller/account/account.php - 我已经从那里获取了此代码并针对特定信息页面对其进行了修改。

于 2012-11-19T16:30:49.690 回答