在 Magento 中停止事件观察者结帐的正确方法是什么?

2023-12-01

我正在 checkout_controller_onepage_save_shipping_method 活动期间验证运输报价,如果验证失败,我想将用户发送回运输方式选择,但我还想显示一条消息,说明失败的原因。 Magento 有内置的方法吗?

我已经在验证数据,只是缺少重定向到运输方式和显示消息的方式。


艾伦·斯托姆的回答一如既往地内容丰富且富有启发性。但在这种情况下,单页结帐主要是 AJAX,它会忽略会话错误消息,直到离开结帐页面时您才会看到它。

In saveShippingMethodAction有以下行:

$result = $this->getOnepage()->saveShippingMethod($data);

...然后 $result 是 JSON 编码的。如果你覆盖Mage_Checkout_Model_Type_Onepage::saveShippingMethod要执行检查然后控制返回的内容,您可以插入一条错误消息,该消息将返回到浏览器并在弹出窗口中显示给用户。

您的覆盖可能看起来像这样:

public function saveShippingMethod($shippingMethod)
{
    if ($this->doesntApplyHere()) {
        return array('error' => -1, 'message' => $this->_helper->__('Explain the problem here.'));
    }
    return parent::saveShippingMethod($shippingMethod);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Magento 中停止事件观察者结帐的正确方法是什么? 的相关文章

  • 是否必须配置 PHP 才能通过 PHP 扫描每个目录的配置 INI 文件(即我的情况下的 .htaccess 文件)?

    我在用着Windows 10 家庭单语言 64 位操作系统在我的机器上 我已经安装了最新的副本XAMPP服务器在我的机器上附带PHP 7 2 7 我从 PHP 手册中阅读了以下页面 扫描目录 https secure php net man
  • 自定义 WP 主题时,我应该将导航栏放在“”标签之前还是之后?

    我正在通过制作子主题来自定义 WP 主题 我将 Bootstrap 中的导航栏放入子主题目录中的 header php 文件中 但是 我不确定在哪里放置导航栏代码 我可以把它都放在前面and之后标记成功 例如 无论我选择哪一个 导航栏都显示
  • Smarty输出空白页

    已解决 模板文件错误 我有这样的 Smarty 设置 require once smarty Smarty class php smarty new Smarty smarty gt compile dir compile dir smar
  • WooCommerce 使用 AJAX 设置购物车数量?

    我已经为此绞尽脑汁好几天了 需要一些指导 我正在为 WooCommerce 网站完全从头开始制作自定义主题 现在我正在尝试让购物车功能正常工作 我一直试图使用按钮 来更新购物车中产品的数量 对我来说问题似乎是WC 我在functions p
  • 使用 php 获取当前月份的最后 3 个月

    我想获取当前月份最近 3 个月的名称 例如当前月份是八月 所以 我想要六月 七月 八月这样的数据 我已经尝试过这段代码echo date F strtotime 3 months 它只返回六月 如何使用 php 获取当前月份的最后 3 个月
  • PHP - 获取base64图像字符串解码并保存为jpg(生成空图像)

    嗨 我实际上是通过 ajax 发送一个 base64 图像字符串到一个 php 脚本 该脚本只是解码字符串并将内容保存为 jpg 文件 但结果是一张空图像 这怎么可能 PHP脚本 uploadedPhotos array photo 1 p
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • 如何使用 Facebook SDK API 为页面/网址“点赞”?

    我正在使用这段代码 facebook gt api me likes post array url gt http www google com 我收到以下错误 Fatal error Uncaught OAuthException 200
  • 使用 php 在多维数组中按键排序[重复]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中对多维数组进行排序 https stackoverflow com questions 2059255 sorting multidimensional array in php 如何在
  • 为什么验证不起作用并跳转到另一个页面?

    我写了一个customer display php来验证数据 到目前为止只有名字 但无论名字字段是否为空 网页都会跳转到customer search php并且没有更改数据库中的信息 为什么
  • 如何使用模块在magento admin中创建子菜单

    我正在开发 magento 模块 我想在管理部分添加菜单 like 管理 gt 目录 gt 属性 gt 管理属性 gt 这里是我的菜单 Magento 版本 1 5 1 0 我怎样才能做到这一点 在你的模块中adminhtml xml输入以
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • 从数据库填充复选框

    我有两个表 第一个由与名称关联的 id 组成 1 汽车 2 火车 3 普通 ETC 第二个表由两个字段 user id 和第一个表中的 id 组成 例如 1 1 2 1 3 当用户转到该页面时 我试图重新填充选定的复选框 首先 您查询数据库
  • 如何使用 PHP 对字符串进行 rot13 处理?

    我有一个很大的 php 代码 我想手动对其进行编码和解码 我的问题是 php 代码里面有很多单引号和双引号 因此我在使用时出现错误str rot13 功能如下 那么正确的语法是什么以及如何使用下面的函数进行编码 str rot13 That
  • 检查 $_POST 数据

    我正在对表单进行一些垃圾邮件检查 下面的代码在我的本地主机上正常工作 如果为 true 则重定向到 google com 但是 当它在生产服务器上时却不起作用 执行脚本的其余部分并且不重定向到 Google com if POST SERV
  • php curl 使用 GET 发送变量 奇怪的结果

    我正在尝试调用远程站点上页面中的网址 决定使用curl 在远程站点上 url 变量显示为 REQUEST Array var1 gt val1 amp var2 gt val2 amp var3 gt val3 被调用的url是 http
  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • 使用 php-ews(Exchange Web 服务)在特定日期后获取电子邮件

    在我的 PHP 脚本中 我需要弄清楚如何检索指定消息 ID 之后或特定日期之后的所有电子邮件 两者都可以 我只需要检索自上次抓取收件箱以来的新电子邮件 这个收件箱每天收到数千封电子邮件 而且我在 30 天内无法删除任何电子邮件 对于初始导入
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2

随机推荐

  • Curl 错误:无法解析主机:www.localhost

    我收到无法解决的错误host www localhost 我不知道它为什么会来 url http www localhost 81 dbWIP selectApi php name name client curl init echo cl
  • 使用 rake db:create 创建 Rails DB 时出错

    我正在尝试使用 Rails 来实现我的第一个 hello world rails 示例入门指南在我的 OSX 10 6 3 机器上 当我去执行第一个时rake db create命令 我正在使用 mysql 我得到 simon Users
  • 切换选项卡后 WPF ComboBox 选择发生变化

    我做了一个基于嵌套选项卡的项目 嵌套选项卡是同一 viemModel 和同一 UI 的不同实例 当我在选项卡之间切换时 选项卡中存在的组合框会根据失去焦点的选项卡进行选择 我添加了测试项目的视图模型和视图 预先感谢您的帮助 主窗口
  • Hikari 池禁用调试模式

    大家好 我必须禁用日志信息com zaxxer hikari pool HikariPool 我尝试过 Logger getLogger com zaxxer hikari pool HikariPool setLevel Level OF
  • MS Word 宏 - 删除段落

    有人可以帮我使用 MS Word 宏吗 它可以在整个文档的每个段落中搜索特定符号 并删除不包含该符号的段落 我对 VBA 几乎一无所知 但刚刚收到一份巨大且笨重的文档 我需要快速编辑 这是一个快速宏 应该可以完成您想要的操作 谨慎使用 并且
  • 编辑框提示 - 始终显示提示

    我有一个带有提示的文本框 但我希望始终显示提示 即使 TB 中有输入也是如此 示例是 Gmail 应用程序中的 收件人 字段 您可以使用 3 种方法 剧透 使用数字 3 因为正如我的评论中提到的 在 Gmail 示例中 它不是实际的提示 在
  • Observable Angular2

    我的 Angular2 应用程序中有对象数组 当新对象到达时 我使用 SignalR 填充数组 现在的重点是当新对象到达时我遇到了错误 无法读取未定义的属性 我认为这可能是错误的 因为它的工作是异步的 并且在 html 中我曾经在对象内部获
  • WIF - FederatedSignOut 未将用户注销所有站点

    我正在使用 Windows 身份基础 对于一些 MVC 2 0 站点 我在将某人从所有受 WIF 保护的网站中注销时遇到了真正的问题 看起来我的注销只是将当前站点上的人员注销 这是我的代码 public void FederatedSign
  • Rails:从另一个模型调用一个模型。为什么这是不可能的?

    我有以下型号 class Room lt ActiveRecord Base belongs to hotel belongs to layout has many visits validates number presence true
  • 调用fopen时的内存分配不清楚

    1 File fp 2 fp fopen etc myfile txt w 3 fclose fp Now 我读了这个 在语句 1 中 在堆栈上为指针创建了一个 FILE 类型的 4 字节内存 在语句2中 在堆上分配了一块内存 sizeof
  • Firebase 实时数据库 CORS 问题

    我在网站上使用 Firebase 实时数据库 一切正常 但是 当我想使用自定义 json 令牌进行身份验证时 我收到如下 CORS 问题 来自另一个被阻止的源的请求 相同的源策略阻止读取远程资源位于https www googleapis
  • 设置自定义锚点

    有没有办法在实际 HTML 标记之外的位置自定义设置锚点 我正在使用这个简单的视差滚动脚本 名为 smoothscroll js at http www kryogenix org code browser smoothscroll smo
  • 执行中的Python sqlite3字符串变量

    我尝试在 Python 中执行这个 sqlite3 查询 我将代码减少到最少 sqlite connect 等有效 column Pron 1 Pers Sg goal gender constrain Mann with con cur
  • 为什么BroadcastReceiver没有在后台运行?

    在一个应用程序 App1 中 我正在广播一条消息 下面的代码是正确的 gt 如果我尝试在同一项目中获取广播 则会检测到广播 sendBroadcast new Intent com example MESSAGE INTENT putExt
  • 为什么[对象释放]后retainCount还是1?

    NSLog first u object retainCount object release NSLog second u object retainCount Output first 1 second 1 为什么对象没有被释放 引自
  • 删除或替换零宽度非连接字符

    我想删除零宽度非连接器字符串中的字符但使用str replace没用 只要您小心替换的内容 str replace 应该可以解决这个问题 xE2 x80 x8C is ZERO WIDTH NON JOINER foo foo xE2 x8
  • 找不到类 javax.naming.directory.InitialDirContext

    我正在使用此链接中的示例http www rgagnon com javadetails java 0452 html但我收到错误 Could not find class javax naming directory InitialDir
  • 如何在 src/main/resources 中创建文件

    如果我这样做 fis new FileInputStream new File getAbsolutePath sudoinput txt 它尝试写入服务器上的此位置 我不确定这是否可写 地方 FILE NAME fos opt tomca
  • 为什么我的 urls.py 不能与 Django 一起使用

    今天 当我用 Building a blog in 30 mins with Django Screencast 编写我的博客时 我遇到了一些问题 当我点击文章标题时 它无法出现正确的页面 Page not found 404 Reques
  • 在 Magento 中停止事件观察者结帐的正确方法是什么?

    我正在 checkout controller onepage save shipping method 活动期间验证运输报价 如果验证失败 我想将用户发送回运输方式选择 但我还想显示一条消息 说明失败的原因 Magento 有内置的方法吗