如何在Odoo 14网站中禁用Newsletter模块的Toast提示
解决方案步骤:
创建自定义模块
新建一个名为website_mass_mailing_custom的模块,目录结构如下:website_mass_mailing_custom/ ├── __init__.py ├── __manifest__.py └── static/ └── src/ └── js/ └── subscribe.js编写继承JS文件
在subscribe.js中写入以下代码,继承原订阅组件并重写成功回调,移除Toast提示逻辑:odoo.define('website_mass_mailing_custom.subscribe', function (require) { "use strict"; // 引入原订阅组件 var Subscribe = require('website_mass_mailing.subscribe'); // 扩展原组件 Subscribe.include({ _onSubscribeSuccess: function () { // 保留原有的"感谢文案显示+隐藏订阅按钮"逻辑 this.$target.find('.o_newsletter_subscribe_btn').addClass('d-none'); this.$target.find('.o_newsletter_thank_you').removeClass('d-none'); // 移除Toast提示的调用,实现禁用效果 }, }); return Subscribe; });配置模块清单
在__manifest__.py中配置模块依赖和资产加载:{ 'name': '禁用Newsletter订阅Toast提示', 'version': '1.0', 'depends': ['website_mass_mailing'], 'data': [], 'assets': { 'web.assets_frontend': [ 'website_mass_mailing_custom/static/src/js/subscribe.js', ], }, 'installable': True, 'auto_install': False, }安装并生效
- 将模块放入Odoo的
addons目录 - 在后台应用列表中找到该模块并安装
- 安装完成后更新网站资产(可通过后台"应用"菜单的"更新应用列表",或执行命令
odoo-bin -u website_mass_mailing_custom)
- 将模块放入Odoo的
这样就能通过继承原JS文件的方式,保留原有订阅逻辑的同时,禁用右上角的Toast提示,无需修改核心模块代码。
内容的提问来源于stack exchange,提问作者george
相关产品推荐
相关产品推荐

