Prestashop:禁用联系表

标签 prestashop prestashop-1.6

我想在我的 prestashop 安装中禁用联系表,但没有插件可以这样做。任何建议如何做到这一点?

最佳答案

取决于您禁用联系表单的意思,但这里有几种可能性。

  • 修改核心联系人 Controller (不推荐,因为更新 Prestashop 时会丢失自定义代码)

  • 打开文件controllers/front/ContactController.php并将此代码添加到 ContactControllerCode 中类(class)。

    public function init()
    {
        Tools::redirect('pagenotfound'); // redirect contact page to 404 page
    }
    
  • 覆盖联系人 Controller

  • 新建文件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/

    相关文章:

    php - 使用 Prestashop 1.6 在模块中获取产品类别名称

    php - Prestashop 从其 id 获取产品属性

    CSS 未在本地环境的 PrestaShop 站点上编译 (theme.css)

    prestashop - 服务器迁移 prestashop 后未显示产品图像

    php - Prestashop - 我的模块的 REST 端点

    php - 执行从 Prestashop 到外部数据库的查询

    seo - 在 prestashop 的类别页面中将页码添加到元标题

    mysql - Prestashop 数据库的相反 SQL 查询 |显示不在仓库中的产品

    php - PHP使用MailHog从Docker容器发送邮件