哪个 Hook 可以更改 WooCommerce 购物车页面中的数量更新?

2024-02-18

当购物车中的产品数量发生变化时,我试图触发一个功能。 更具体地说,我想在客户修改购物车中的金额时运行此功能。

我正在寻找购物车中剩余的金额,然后拦截更新购物车事件

目前我正在使用:

add_action( 'woocommerce_remove_cart_item', 'my function');

当我按“update_cart”时,它似乎不起作用。 有什么建议吗? 谢谢你!


你应该使用woocommerce_after_cart_item_quantity_update动作挂钩 https://docs.woocommerce.com/wc-apidocs/source-class-WC_Cart.html#1192具有4 个参数。但当数量变为零时,woocommerce_before_cart_item_quantity_zero动作挂钩 https://docs.woocommerce.com/wc-apidocs/source-class-WC_Cart.html#1187需要改用(并且有 2 个参数).

下面是一个工作示例,它将更新数量限制为一定数量并显示自定义通知:

add_action( 'woocommerce_after_cart_item_quantity_update', 'limit_cart_item_quantity', 20, 4 );
function limit_cart_item_quantity( $cart_item_key, $quantity, $old_quantity, $cart ){
    if( ! is_cart() ) return; // Only on cart page

    // Here the quantity limit
    $limit = 5;

    if( $quantity > $limit ){
        // Change the quantity to the limit allowed
        $cart->cart_contents[ $cart_item_key ]['quantity'] = $limit;
        // Add a custom notice
        wc_add_notice( __('Quantity limit reached for this item'), 'notice' );
    }
}

此代码位于活动子主题(或主题)的 function.php 文件中。经过测试并有效。

由于该钩子位于WC_Cart set_quantity() method https://docs.woocommerce.com/wc-apidocs/source-class-WC_Cart.html#1177-1200, 不可能在钩子内使用该方法,因为它会抛出错误.


要在数量设置为零时触发某些操作,请使用:

add_action( 'woocommerce_before_cart_item_quantity_zero', 'action_before_cart_item_quantity_zero', 20, 4 );
function action_before_cart_item_quantity_zero( $cart_item_key, $cart ){
    // Your code goes here
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

哪个 Hook 可以更改 WooCommerce 购物车页面中的数量更新? 的相关文章

  • 如何在 HTML / Javascript 页面中插入 PHP 下拉列表

    好吧 这是我的第二篇文章 请接受我是一个完全的新手 愿意学习 花了很多时间在各个网站上寻找答案 而且我几乎已经到达了我需要到达的地方 至少在这一点上 我有一个网页 其中有许多 javascript 函数 这些函数一起使用 google 地图
  • 通过JS Laravel访问存储目录

    有没有办法访问storage目录 该目录已经链接到publicJS 中的目录 我正在尝试制作一个上传图片的表单 验证脚本 if request gt hasFile photos marker gt photos request gt ph
  • 如何在没有引用的情况下复制对象?

    PHP5 OOP 有据可查对象通过引用传递 http php net manual en language oop5 references php默认情况下 如果这是默认的 在我看来 有一种非默认的方式可以在没有参考的情况下进行复制 如何
  • 如何在php中使用preg添加html属性

    我正在寻找在 php 中编写一个脚本来扫描 html 文档并根据它找到的内容向元素添加新标记 更具体地说 我是扫描文档并为每个元素搜索CSS标记 float right left 如果找到它 它会添加align right left 基于它
  • PHP文件上传

    如果我想在文件名转到服务器的永久位置 而不是临时位置 之前更改文件名 我该如何执行此操作 代码如下
  • php下拉菜单人口

    我正在尝试编写一个 php 脚本 该脚本将根据主下拉菜单的选择填充第二个下拉菜单 我想使用 jquery 来完成所有非页面刷新的事情 但我发现现有的所有东西都很难理解和修改 你知道有什么写得很好且易于理解的东西吗 或者可能是现有的教程 下面
  • 在 Laravel 中动态设置数据库连接和语言

    我有 3 个域指向同一个Laravel应用 我想要的是每个人都连接到自己的数据库并根据 TLD 加载自己的语言文件 我可以在哪个文件中设置这些设置 我可以直接在配置文件中执行此操作 或者可以在加载配置之前执行某些事件 我拥有的是一个简短的函
  • 创建 Facebook 测试用户时访问令牌出现问题

    我正在尝试为我的 Facebook 应用程序创建测试用户 他们在 11 月份的博客文章 http developers facebook com blog post 429 中宣布了此功能 并在此处记录了该功能 http developer
  • 具有更改用户代理上下文的 file_get_contents 不起作用

    我正在尝试获取页面的阅读数和点赞数 网址是 https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg 您必
  • 如何解决 Laravel 8 UI 分页问题?

    我在尝试最近发布的 laravel 8 时遇到了问题 我试图找出变化是什么以及它是如何工作的 当我这样做时 我遇到了分页 laravel 8 UI 变得混乱的问题 不知何故它发生了 有人可以帮助我吗 或者经历过同样的事情 像这样我在 lar
  • Windows iis 7.0 上的 APC 不稳定

    我的 IIS 非常不稳定 因为它总是由于某种与 APC 相关的原因而重新启动 服务器的规格如下 Intel R Xeon CPU 3GHZ 3GHZ 2GB RAM 64bit APC 和服务器规格 3 1 7 dev PHP Versio
  • 我怎样才能让这个脚本在 WordPress 上运行?

    我有这个脚本 document ready function text1 click function this hide 代码html div class div1 p class text1 text to appear when th
  • PHP:在脚本完成之前获取输出

    我有一个名为 data php 的脚本 如下所示 do some stuff echo result do some other stuff eg database operations 我需要在另一个脚本中使用 data php 的输出
  • 简单的dom php解析获取自定义数据属性值

    HTML div class something ddsf PHP foreach dom gt find something data rel as this var dump this gt attr 我尝试了这个但错误 在其文档中找不
  • wordpress - 像 stackoverflow 中那样内嵌 ajax 注释

    我有一个 WordPress 博客 希望为人们提供与 stackoverflow 中添加评论相同的用户体验 有很多评论 ajax 插件 但我找不到一个可以使用的插件 它允许您在主页上内联 进入并添加评论 而无需先深入到单独的单个帖子页面 任
  • 使用 fopen() 包装器创建 ZIP 文件

    如何使用以下命令创建 ZIP 文件fopen 包装器 http es php net manual en wrappers compression php 这显然是not道路
  • HTML 代码中的 PHP [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我用 HTML 代码编写了 PHP div div 但这出现在输出页面中 else print 我怎样才能让PHP执行 你的文件有一个 p
  • 合并 url 中的 2 个输入值

    我有这样的形式
  • 如何在 PHP 中从字符串类名实例化? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何创建返回方法名称的新实例 不幸的是我收到这个错误 错误 类名必须是有效的对象或字符串 这是我的代码 class Foo public f
  • 如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装 PHP IMAP 扩展?

    有谁知道如何使用配置文件 ebextensions 在 AWS Elastic Beanstalk 上安装和启用 PHP IMAP 扩展 我使用的是 64 位 Amazon Linux 2017 03 v2 4 0 运行 PHP 7 0 1

随机推荐

  • 从 Javascript 读取 web.config 值

    我想通过 java 脚本从 web config 文件读取应用程序密钥 要读取的 web config 密钥
  • hibernate 可选连接 - 需要以任何方式返回连接列值

    作为后续休眠可选连接 http stackoverflow com questions 5231579 hibernate optional join 系统中的许多现有查询依赖于 EntityOne 和 EntityTwo 之间的映射关系
  • docker 构建 Dockerfile 时允许更多内存

    我尝试构建一个 Dockerfile 并得到以下结果 Linking CXX executable bin clang collect2 error ld terminated with signal 9 Killed make 2 bin
  • QT 5.5.1 .so 库与 android

    我已经下载了用于 armeabi 和 x86 android 平台的 openssl 编译库here https github com emileb OpenSSL for Android Prebuilt并尝试将其加载到 pro 文件中
  • 查找 PHP 依赖项

    有没有可以列出 PHP 文件使用的类名称的工具 例如 如果我在此文件上运行它 它将报告 Obj1 和 Obj2 如果它真的很聪明 它也可能会报告 Obj3 但这不是必需的 我正在尝试打包一些代码 并且需要一些帮助以确保我没有错过任何依赖项
  • 从 Visual Studio 2017 部署 Angular 2 应用程序

    我使用 Visual Studio 2017 并开发了两个 Angular 2 应用程序 第一个是纯 Angular 2 没有后端代码 数据来自 wcf 服务 第二个是托管在 MVC 应用程序 net 4 6 中的 Angular 2 SP
  • 创建具有两行文本的自定义按钮,每行文本具有不同的字体

    我有点被困在这里 真的需要一些帮助 在我看来 向按钮添加两行单独的文本应该很容易 但事实并非如此 有一种方法可以使用 html 标签来做到这一点 但它不允许您指定 大 和 小 之外的字体或文本大小 这是我的按钮 它被称为 clicky
  • Spring Data Redis Lettuce 连接问题

    我有带有 MYSQL DB 的 Spring Boot 应用程序 并且我使用 Cacheable Annotation 将数据缓存在服务器层的 Redis 中 Cacheable value employeeCache key custom
  • 遗传算法 - 路径的交叉和变异算子

    我想知道是否有人知道图中路径的直观交叉和变异运算符 谢谢 问题有点老了 但问题似乎没有过时或解决 所以我认为我的研究仍然可能对某人有帮助 就 TSP 问题而言 突变和交叉是相当微不足道的 在最短路径或最优的情况下 每个突变都是有效的 即因为
  • Matplotlib 将文件保存为 JPEG 编码器错误

    我试图将 matplotlib 图保存为 JPEG 文件 但出现以下错误 我不确定这是否与我的安装或我的代码有关 因此我还附加了一个示例程序来执行该程序 该程序会产生以下错误 我将图形保存为 png 或 pdf 没有问题 只有 jpg 存在
  • 在 php 中访问 joomla 会话 - codeigniter

    我需要检查用户是否已登录 CodeIgniter 登录发生在 Joomla 网站上 我尝试了以下方法来初始化 joomla define JEXEC 1 define DS DIRECTORY SEPARATOR define JPATH
  • ... 操作员的名字是什么?

    Is the 运算符 扩展 运算符 根据其词法位置 参数位置与解构赋值 数组 参数位置等 具有两种不同的语义 或者它有两个名字 传播 和 休息 吗 这是同一个运算符 根据用途不同 名称也不同 其余属性 其余属性收集尚未被解构模式拾取的剩余自
  • React 中的 TextField 内无法识别新行 '\n'

    Context 我正在使用 Material UI TextField 并映射从数据库 MongoDB 获取的对象数组 就像是 state map item gt
  • 当模块导入 Angular 时,如何自动运行模块中的服务?

    我想知道在导入模块时如何从模块运行服务而无需任何手动服务注入并运行 就像RouterModule does NgModule imports BroserModule MyModuleWithServicesThatShouldAutoRu
  • .NET 正则表达式 - 创建字符串?

    我有一个正则表达式 用于提取文件夹名称的两个部分 0 9 8 0 9A Ba c BLAH 没问题 这将匹配 12345678 abc BLAH 我有 12345678 和 abc 分为两组 是否可以通过提供带有两个字符串的方法并将它们插入
  • Artifactory 失去了对当地文物的追踪

    我正在使用 Artifactory OSS 4 1 0 和 Java 1 8 0 51 当我尝试从 Artifactory Web 界面下载本地工件之一时 我得到以下信息 errors status 500 message Could no
  • Easy_install 没有安装 Mechanize?

    我正在从旧的 Win2K 机器迁移到新的 功能更强大的 Vista 64 位 PC 大部分迁移都进行得相当顺利 但我确实发现我需要重新安装所有与 Python 相关的工具 我已经下载了 mechanize 0 1 11 tar gz 文件并
  • 在 Matlab 中使用 svmtrain 内存不足

    我有一组数据正在尝试使用 SVM 来学习 对于上下文 数据的维数为 35 包含大约 30 000 个数据点 我之前用这个数据集在 Matlab 中训练过决策树 大约花了 20 秒 由于对错误率不太满意 我决定尝试 SVM 我第一次尝试svm
  • MySql 中的 EntityFunctions 支持

    我在 MySQL 中使用 EntityFunctions DiffMinutes 时遇到错误 下面是我的代码 return db DiscoveredDevices Where m gt EntityFunctions DiffMinute
  • 哪个 Hook 可以更改 WooCommerce 购物车页面中的数量更新?

    当购物车中的产品数量发生变化时 我试图触发一个功能 更具体地说 我想在客户修改购物车中的金额时运行此功能 我正在寻找购物车中剩余的金额 然后拦截更新购物车事件 目前我正在使用 add action woocommerce remove ca