我想在我的 prestashop 安装中禁用联系表,但没有插件可以这样做。任何建议如何做到这一点?
最佳答案
取决于您禁用联系表单的意思,但这里有几种可能性。
打开文件
controllers/front/ContactController.php
并将此代码添加到 ContactControllerCode
中类(class)。public function init()
{
Tools::redirect('pagenotfound'); // redirect contact page to 404 page
}
新建文件
ContactController.php
并将其放入文件夹 overrides/controllers/front/
并添加以下代码class ContactController extends ContactControllerCore {
public function init()
{
Tools::redirect('pagenotfound'); // redirect contact page to 404 page
}
}
新建目录
contactpagedisabler
在文件夹 modules
并在里面创建一个文件contactpagedisabler.php
并将此代码放入class ContactPageDisabler extends Module
{
public function __construct()
{
$this->name = 'contactpagedisabler';
$this->tab = 'front_office_features';
$this->version = '1.0';
$this->author = 'whatever';
parent::__construct();
$this->displayName = $this->l('Contact page disabler');
$this->description = $this->l('Disables contact page.');
}
public function install()
{
return parent::install() && $this->registerHook('actionDispatcher');
}
// hook runs just after controller has been instantiated
public function hookActionDispatcher($params)
{
if ($params['controller_type'] === 1 && $params['controller_class'] === 'ContactController') {
Tools::redirect('pagenotfound'); // redirect contact page to 404 page
}
}
}
然后从后台安装这个模块。
第二个选项最简单,它不会干扰核心文件。
对于这么小的事情,第三个选项可能是矫枉过正,但它不需要覆盖,如果您或商店经理需要返回联系页面,他可以从后台禁用模块。
该模块还可以使用配置页面进行扩展/修改,例如,您可以在其中获取商店中所有页面的列表,并让用户决定启用/禁用哪些页面等。
2018 年 4 月更新
忘记前两个选项并使用第三个。修改商店时始终使用模块(如果可能)。
关于Prestashop:禁用联系表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38916902/