根据批准状态和特定订单项目更改 WooCommerce 订单状态

2023-12-13

当当前状态为“已批准”且订单包含特定产品 ( id = 10) 时,我尝试将 WooCommerce 订单状态更改为“处理中”。

我尝试了下面的代码,但它不起作用。我对 php 很陌生,希望得到任何指导!

add_action('woocommerce_order_status_changed', 'ts_auto_complete_business_cards');

function ts_auto_complete_business_cards($order_id)
{

    if ( ! $order_id ) {
        return;
    }

    global $product;
    $order = wc_get_order( $order_id );

    if ($order->data['status'] == 'approved') {
        $items=$order->get_items();
        foreach ( $items as $item ) {
            $product_id = $item->get_product_id();
            if ($product_id!="10")
            {
                $order->update_status( 'completed' );
            }

        }

    }
}

  • woocommerce_order_status_changed有4个参数
  • 这一行->if ($product_id!="10")说不等于,您还与字符串进行比较,而不是与数值进行比较

试试这个方法

function action_woocommerce_order_status_changed( $order_id, $old_status, $new_status, $order ) {

    // Compare
    if( $old_status === 'approved' ) {
        // Get items
        $items = $order->get_items();

        foreach ( $items as $item ) {
            // Get product id
            $product_id = $item->get_product_id();

            if ($product_id == 10 ) {
                $order->update_status( 'processing' );
                break;
            }
        }
    }
}
add_action( 'woocommerce_order_status_changed', 'action_woocommerce_order_status_changed', 10, 4 );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据批准状态和特定订单项目更改 WooCommerce 订单状态 的相关文章

  • 禁用 WooCommerce 手动/编辑订单的电子邮件通知

    需要 WooCommerce 专业知识 我需要禁用手动创建的订单的电子邮件通知 我必须使用处理状态 由于处理订单状态的自定义挂钩 我无法创建自定义状态 理想情况下 手动订单页面中可以勾选一个复选框 勾选后 它将禁止在每种状态下向客户发送电子
  • 通过 Sparkpost 发送 iCal 邀请

    我正在尝试使用 SparkPost 通过电子邮件以附件形式发送日历邀请 但收到电子邮件后邀请不会打开 我使用两个文件 calendarinvite php 来创建邀请 使用 Sendemail php 来发送电子邮件 calendarinv
  • 所有 PHP 相等比较都是对称的吗?

    Is a b总是等价于 b a 我认为在 JavaScript 中 由于强制转换 有一些奇怪的情况并非如此 I think ide https stackoverflow com questions 4752579 are all php
  • 更改 Woocommerce 中“我的帐户”页面上的标题

    我见过大量有关如何使用 WooCommerce 我的帐户仪表板重新排序 更改导航和页面的示例 但我一生都无法弄清楚如何更改每个部分的主要标题 我的帐户 订单 下载 地址等 我已经搜索过模板 但没有任何乐趣 我尝试使用条件 php 注释来回显
  • Symfony2:为什么请求传递到受 Symfony2 中 AppCache 影响的 Kernel.Terminate EventListener

    在我的 Symfony2 2 应用程序中 我使用 onKernelTerminate EventListener 以便我可以在渲染响应后进行一些 繁重 处理 以便用户收到更快的响应时间 在我的控制器中 我在请求上设置了一个属性 以便当事件侦
  • Ajax 没有将我重定向到下一页

    我正在尝试将单击的图像的 ID 传递到下一页 当我开发代码时 它没有将我重定向到下一页 当我单击 F12 并检查网络中的 POST 时 它显示变量已正确传递到下一页 如附图所示 但它没有将我重定向到下一页 所以现在我知道变量在下一页中正确传
  • 使用 ImageMagick 和 PHP 将 PNG 转换为 JPG 并将透明背景设置为白色

    将图像从 PNG 转换为 JPEG 时 如何使用 ImageMagick 带有 php 扩展 将透明背景设置为白色 在撰写本文时 您尚未指定正在使用哪个扩展 但如果您使用命令行 则命令将是 convert image png backgro
  • 如何隐藏 URL 中的锚标记

    如何隐藏地址栏中以下链接 href 的哈希值 a href index php dev name 所以它会将我重定向到index php dev name 但我希望地址栏只显示index php 您可以使用 Javascript oncli
  • CodeIgniter 控制器 - JSON - AJAX

    我正在尝试通过 AJAX 使用 CodeIgniter 发送表单构建 并尝试使用 JSON 获取响应 但是 我只在打开开发人员选项卡时看到响应 我什至不确定这是否实际上是响应 因为它显示了两个 json 数据 它所显示的只是加载旋转器 然后
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • 未传递“client_reference_id”参数

    我使用 Stripe Checkout Stripe 版本 2016 07 06 我想通过参数 client reference id 恢复个性化数据 但在 JSON 中 当我有金额或电子邮件时 我找不到它 我是在测试环境中 你能帮我吗 先
  • 编辑 HTACCESS 文件以防止直接访问特定文件夹中的特定文件

    我试图阻止直接访问子文件夹中的特定文件 我意识到这个论坛上有很多描述类似问题的主题 但是 我的似乎有点尴尬 由于我已经存在 HTACCESS 文件 这是文件的文件路径 www example com PRINCIPAL PROJECTS m
  • 如何防止在 PHP 中使用超出“使用”范围的特征方法

    我想知道是否有任何方法可以防止在 PHP 的任何类上下文之外使用特征方法 让我用一个简短的例子来解释我想要什么 这是我当前的代码 File MyFunctions php trait MyFunctions function hello w
  • 检查 PHP 中的字符串长度

    我有一个长度为 141 个字符的字符串 使用下面的代码我有一个if如果字符串大于或小于 140 则语句返回一条消息 libxml use internal errors TRUE dom new DOMDocument dom gt loa
  • 重写 URL,将 ID 替换为查询字符串中的标题

    我对 mod rewrite 很陌生 但我做了一些搜索 但找不到这个问题的答案 我有一个网站 它只有一个 PHP 页面 根据查询字符串中传递给它的 ID 提供数十页内容 我想重写 URL 以便此 ID消失并替换为从数据库中提取的页面标题 例
  • 如何在 phalcon 框架中同时连接多个数据库在模型类中同时使用两个而不仅仅是一个

    在我的代码中我有两个数据库ABC and XYZ 我想在同一模型中使用两个数据库 而不是 phalcon 中的解决方案是什么 如何为此实现多个数据库连接 one
  • 反向引用在 PHP 中不起作用

    最近我一直在研究 更多的是在实践中说实话 正则表达式 我注意到他的力量 我提出的这个要求 link https stackoverflow com questions 30380397 take the text up to a speci
  • PHP递归遍历对象树[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ZF3/2 - 如何捕获 EVENT_DISPATCH 侦听器中引发的异常?

    有什么方法可以在 EVENT DISPATCH 监听器中抛出异常吗 class Module public function onBootstrap EventInterface event application event gt get
  • 如何使用 php 将 *.xlsb 转换为数组或 *.csv

    我正在尝试转换 xlsb文件到php array or csv文件 或至少 xls 我尝试使用PHPExcel 但看起来它无法识别该文件中的内容 我注意到 你可以重命名 xlsb文件到 zip文件 然后使用命令行解压缩unzip zip 之

随机推荐

  • 请求的数组在 1 维之后具有不均匀的形状。检测到的形状为(33,)+不均匀部分

    我陷入将列表转换为 numpy 的困境 转换列表大小为 33 n 428 N是随机差 我不知道数字是如何组成的 这是错误 ValueError Traceback most recent call last C Users HILAB 1
  • 每 24 小时引发一次计时器回调 - DST 处理是否正确?

    我只是想到了解决每 24 小时运行一个任务的服务的方法以及 DST 可能如何损害它 为了每天运行该任务 我使用了一个周期为 24 小时的 System Threading Timer 如下所示 timer new System Thread
  • Power BI 字段参数过滤

    我有一个表 其中包含下面的社会经济切片器中显示的位列 少数族裔企业 小型企业等 我使用 字段参数 功能添加它们以完成下面的切片器 选择兽医拥有的小型企业 当前的行为是左侧的表将显示右侧选择的每一列 相反 我只想显示适用于兽医拥有的小型企业的
  • 将整数转换为其等效字符,其中 0 => a、1 => b 等

    我想根据字母表将整数转换为其等效字符 例如 0 gt a 1 gt b 2 gt c 3 gt d 我可以构建一个数组 然后在需要时查找它 但我想知道是否有一个内置函数可以为我执行此操作 我通过 Google 找到的所有示例都使用 ASCI
  • JAVA - 在 jxl 中写入 Excel 单元格时出现内存不足错误

    我正在使用 JXL 编写一个 50000 行 30 列的 Excel 文件 我的代码如下所示 for int j 0 j myWritableSheet addCell new Label 0 j myResultSet getString
  • Kedro 模板配置不会将 globals.yml 配置加载到 Catalog.yml 中

    我正在使用 Kedro 创建一些数据管道 我有多种文件格式以及自定义文件格式 根据文档 我创建了一个globals yml under config base我在其中创建了一些全局变量以在catalog yml 不幸的是 我似乎无法让它发挥
  • 使用 Windows 身份验证从非域计算机访问 SQL Server 2005

    我有一个 Windows 域 其中一台计算机正在运行 SQL Server 2005 并且配置为仅支持 Windows 身份验证 我想在同一网络上但不在域上的计算机上运行 C 客户端应用程序 并访问 SQL Server 2005 实例上的
  • 如何通过仅输入同一个小部件来将文本输入到两个文本小部件中

    我想要一种方法 通过将文本输入到单个文本小部件中 可以将文本插入到两个小部件中 简单来说 在编程中 我想将文本小部件的所有功能和事件绑定到另一个文本小部件 我试过了 txt Text root height 300 width 300 tx
  • 单击按钮时如何将 Paypal 集成到付款用户?

    这可能听起来有点奇怪 但我正处于完成向用户付费的应用程序的最后阶段 该应用程序中有一项活动 当用户使用该应用程序时 金钱就会不断累积 我在该活动中有一个名为 兑现 的按钮 当用户达到一定金额时可以单击该按钮 并且应该让用户提取从应用程序中累
  • 从 Google 网站运行 Webapp 中发布的函数

    我想在谷歌网站的网络应用程序中运行一个函数onload功能 code gs function doGet e return HtmlService createHtmlOutputFromFile page function myfunc
  • 跨时间段的值的扁平分配

    对于不同的值id我有一个start and end具有相对数量的日期 var 对于每条记录 对于相同的id start日期与前一个日期相同end日期 来了roll 这些时期跨越数月甚至数年 我的需要是将数量分成var与每个月的实际天数相关的
  • Angular指令如何向元素添加属性?

    我想知道这个片段的工作方式是什么 html div div a user name a div div js var app angular module app app controller AppCtrl function scope
  • JavaScript 数组中对象的分组、不同计数、求和

    这可能是补救措施 但我无法弄清楚 我尝试过使用 d3 并使用 lodash 来获得有效的解决方案 但没有得到任何接近的结果 我有一个 JavaScript 对象数组 如果 Selected 值为 true 我想创建一个按 Version N
  • Access 中 Left() 和 Left$() 函数的区别

    我正在尝试调试损坏的查询 查询使用 Left blahblah 4 而不是 Left blahblah 4 Left 和 Left 函数有什么区别 微软访问 结尾的 是 String 数据类型的类型声明字符 VBA Left 返回的结果是一
  • cakephp-file-storage 快速入门指南

    https github com burzum cakephp file storage blob 3 0 docs Tutorials Quick Start md 按照教程 一切都搞砸了 或者我都搞砸了 三个表 产品图像 和 产品图像
  • 将 Django 项目移植到 Python 3 和 Django 2 时的迁移问题

    我一直在将 Django 项目移植到 Python 3 和 Django 2 我必须按照 Django 2 中的要求 将 on delete 添加到带有外键的所有模型中 现在我尝试对这些更改进行迁移TypeError init missin
  • 使用 cout << 运算符时如何用前导零填充浮点数

    将这些问题放在一起 使用 cout 使用 cout 打印正确的小数位数 我如何流式传输到 std cout 例如这个变量 double x 7 1224 并让它看起来像这样 07 12 Combine std setw std setfil
  • 限制 UITextField 中的字符数[重复]

    这个问题在这里已经有答案了 我看过很多答案 但似乎没有一个起作用 我有一个以编程方式创建的 UIAlertView 其中包含两个 UITextFields 我想限制字符数 第一个字段有 12 个字符 第二个字段中有 1 个字符 第一个字段代
  • 在 iOS 5 中预填充核心数据

    貌似有一些修改NSPersistentStoreCoordinator方法是iOS 5 我正在尝试获取预填充的数据库 它似乎不起作用 没有崩溃 但似乎没有数据存在 有什么建议吗 NSPersistentStoreCoordinator pe
  • 根据批准状态和特定订单项目更改 WooCommerce 订单状态

    当当前状态为 已批准 且订单包含特定产品 id 10 时 我尝试将 WooCommerce 订单状态更改为 处理中 我尝试了下面的代码 但它不起作用 我对 php 很陌生 希望得到任何指导 add action woocommerce or