WC_Checkout 挂钩中订单行项目和订单元之间的差异

2023-12-26

我正在创建一个正在使用的插件woocommerce_checkout_update_order_meta用于添加订单项元数据的钩子。

我有一个插件叫WooCommerce TM 额外产品选项安装。
这个插件使用woocommerce_checkout_create_order_line_item用于添加订单项元数据的钩子。

激活插件后,我会在订单接收页面上显示插件的元字段,但我的元信息没有显示。如果插件被停用或当我评论时,我的元数据就会显示woocommerce_checkout_create_order_line_item动作挂钩。


它们实际上并不是为了同样的事情:

  • 钩子woocommerce_checkout_update_order_meta例如,允许添加/更新订单元数据,以便数据库表wp_postmeta.
  • 钩子woocommerce_checkout_create_order_line_item例如,允许在数据库表中的订单中添加/更新行项目类型wp_woocommerce_order_items (for line_item项目类型(产品名称))和wp_woocommerce_order_itemmeta (for line_item物品种类details作为产品变体的数量、行项目总计和属性, 属性…).

对于优先级(实际上没有优先级,因为它们不是为类似的事情而设计的):

  • 动作挂钩woocommerce_checkout_create_order_line_item https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#371位于WC_Chechout create_order_line_items() method https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#342-376.
  • 动作挂钩woocommerce_checkout_update_order_meta https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#329位于WC_Chechout create_order() https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#262-335方法在最后。
  • As create_order_line_items()被执行BEFORE https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#314 in create_order() https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#262-335.
    So woocommerce_checkout_create_order_line_item 之前被调用.

添加订单项目元,你应该更好地使用woocommerce_checkout_create_order_line_item动作钩子而不是优先级之前WooCommerce TM 额外产品选项 plugin.

Example:

add_action( 'woocommerce_checkout_create_order_line_item', 'custom_checkout_create_order_line_item', 20, 4 );  
function custom_checkout_create_order_line_item( $item ) {  
   $item->add_meta_data( 'meta_key', 'meta_value' );  
}

相关:WooCommerce:为订单中的每个项目添加不同的订单项目元 https://wordpress.stackexchange.com/questions/329664/woocommerce-add-different-order-item-meta-for-each-item-in-order

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WC_Checkout 挂钩中订单行项目和订单元之间的差异 的相关文章

  • 通过php将mp3转换为ogg

    我有一个网站 用户可以上传音乐并将其转换为 mp3 但我需要 mp3 和 ogg 文件支持才能以 html5 播放音乐 那么 有没有可以将mp3转换为ogg的php脚本呢 使用 ffmpeg 您可以直接从 php 脚本执行命令
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4
  • 一些基本的 PHP 问题 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是有一些基本的 php 问题来加深我对学习的理解 但我找不到简单的答案 我有一个 php ajax 应用程序 它生成 mysql
  • 如何通过 PDO 使用密码哈希来使我的代码更安全? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的代码实际上可以工作 但它一点也不安全 我不想使用 MD5 因为它不是那么安全 我一直在查找密码哈希 但我不确定如何将其合并到我的代
  • PHP 和 DOM 文档

    我有一个关于 DOMDocument 的使用和创建 XML 的问题 我有一个 PHP 程序 加载到 XML 文件中 处理XML的每个节点 行 将其发送到另一个进程 然后该进程返回一个 XML 元素 我获取节点的字符串表示形式 以便可以创建
  • 如何处理 PHP 中浮点数的奇怪舍入

    众所周知 浮点运算并不总是完全准确 但是如何处理它的不一致之处呢 As an example in PHP 5 2 9 this doesn t happen in 5 3 echo round 14 99225 4 14 9923 ech
  • curl 无法获取网页内容,为什么?

    我正在使用curl 脚本转到链接并获取其内容以进行进一步操作 以下是链接和curl脚本
  • cakephp 1.1 与 php 5.3

    我刚刚从 php 5 1 升级到 5 3 之前在我的服务器上使用 cakephp 1 1 自从升级 或者可能更早 我不确定 以来 我收到以下错误 任何人都可以透露一些信息 Deprecated Assigning the return va
  • PHP语言问题

    我有一个 php 页面 它将邮件发送到特定电子邮件 其中包含此页面表单中的数据 邮件必须以网站的母语 阿拉伯语 发送 但是当我单击表单上的提交按钮时 收到的邮件一半可读 阿拉伯语 另一部分不可读 符号 我想知道如何解决这个问题并且能够发送邮
  • 如何在 Laravel Mix 中将公共路径更改为包含下划线的路径?

    Laravel 5 4 中引入了 Mix 来编译资产并维护资产管道 Mix 默认为您的公共目录被命名public 在许多情况下 包括我的 我的公共目录被称为其他名称 就我而言 是public html 如何更改资源编译到的公共目录 我尝试过
  • Mongodb $push 嵌套数组

    我想向我的嵌套数组添加新数据 我的文档是 username erkin email email protected cdn cgi l email protection password b playlists id 58 name asd
  • MySQL:“您的 SQL 语法错误...靠近键...”? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我发现了一个非常酷的用于丢失密码的脚本 但是这一行给我带来了问题 r mysql query INSERT INTO keys u
  • 如何在PHP中将图像从内存上传到AWS S3?

    所以我目前有一个使用 AWS S3 上传图像的上传系统 这是代码 Upload image to S3 s3 Aws S3 S3Client factory array key gt mykey secret gt myskey try s
  • 返回上一页

    我正在使用表格来 评价 页面 此表单将数据 发布 到其他地方的 php 脚本 我只是想在处理表单后显示一个链接 这将使用户返回到上一页 我可以在 php 脚本中使用 javascript 来执行此操作吗 GF 您可以使用链接来调用histo
  • 计算轮班工作时间并检测

    我有个问题 我的英语很差 我需要用PHP做一个加班计算 已经有一个代码可以实现这一点 但当工作时间超过2天时 计算就会出错 工作开始 2018 09 09 13 43 工作结束 2018 09 11 07 13 结果 07 18 04 00
  • Mandrill 验证错误

    很高兴能在 StackOverflow 上提出我的第一个问题 多年来我一直依靠它自学了很多东西 我的问题是这样的 尝试通过 Mandrill 的 API 发送邮件时出现以下错误 status error code 1 name Valida
  • Apache 2.4.9 在启用 ssl 模块并设置 ssl 证书后失败

    Apache 在尝试设置 ssl 证书后抛出以下错误 ssl emerg pid 30907 AH02572 Failed to configure at least one certificate and key for localhos
  • 准备好的语句需要 0 个参数,给定 1 个参数..,使用 php 手册示例 [重复]

    这个问题在这里已经有答案了 我直接从 php 手册示例中获取了这个 它几乎与我需要的相同 但我仍然收到此错误 有人可以告诉我我错过了什么吗 stmt link gt prepare SELECT obitBody Photo FROM tn
  • __callStatic():从静态上下文实例化对象?

    我对 PHP 中的 静态 和 动态 函数和对象如何协同工作感到困惑 特别是在 callStatic 方面 callStatic 的工作原理 您可以有一个普通的班级 MyClass 在班级内您可以 放置一个名为 callStatic 的静态函
  • MYSQL 的 Google OAuth 2.0 用户 ID 数据类型

    我正在实施 Google OAuth 2 0 并注意到 Google OAuth 返回的唯一用户 ID 是21位数字长的 我想大整数 20 足以满足这种需求 但我现在看到 Google OAuth 返回的用户 ID 的长度感到困惑 关于我应

随机推荐

  • 为什么 Double.NaN 在包装在 Double 实例中时等于自身?

    From 这个问题 https stackoverflow com questions 471296 how can while i i be a non infinite loop我了解到 Double NaN 不等于其自身 我正在为自己
  • 如何将 uint256 变量转换为 int256 变量?

    我试图打印uint timeStamp通过输入return timeStamp 就在下面return price 从这段代码 pragma solidity 0 6 7 import chainlink contracts src v0 6
  • 如何为 Spring Web Flow 定义自定义消息源?

    spring webflow 文档提到 他们将消息添加到流的方法是在流内的文件 messages properties 中定义与该流相关的所有消息 国际化消息在 Spring MessageSource 访问的消息束中定义 要创建特定于流的
  • 在 Java 中确定运行时的 AWS lambda 名称

    我真的很喜欢从 Java 中调用 AWS lambdas 的方法这篇博文 https java awsblog com post Tx2J2LPKTTVU93H Invoking AWS Lambda Functions from Java
  • 字符串操作没有内存泄漏?

    我想进行一系列字符串替换来删除 xml 转义字符 例如 amp 1 是否有现有的 UIKit 函数可以做到这一点 2 如果没有 在不泄漏内存的情况下最好的方法是什么 想法是这样的 NSString unescape NSString str
  • 如何在 contenteditable 元素中使用 ngControl?

    我该如何使用ngControl in contenteditable元素 例如 我想要 td td 通过绑定 将其绑定到模型驱动的 表单 表 我创造了他formBuilder基于模式 从服务器检索 目前我认为这不起作用 因为 td 和其他
  • htmltextwriter 和跨站点脚本

    只是一个简单的问题 我被要求浏览一个 vb 应用程序并修复所有可能发生跨站点脚本的地方 我将 是的 它确实可以保护您在写入 HTML 文档时免受 XSS 侵害 但是HtmlTextWriter WriteEncodedText https
  • C# Func(T) 不接受 ref 类型输入参数

    Can Func lt gt 接受 C 中通过引用传递的参数 static void Main Func
  • Heroku:ModuleNotFoundError:没有名为“请求”的模块

    我正在尝试将 Django 程序部署到 Heroku 该应用程序在我的本地计算机上成功运行 该计算机使用 Anaconda 和 Python 3 5 我无法让它推送到 Heroku 根据命令 gt git push heroku maste
  • 使用多设备混合应用程序构建 Visual Studio Cordova 应用程序时发生错误

    我收到 3 个致命错误 我也安装了android SDK 19 有任何想法吗 An error occurred while listing Android targets C Project AngularJS ToDo Sample f
  • 不是 JAX-WS 中的有效服务异常

    我正在参考http www mkyong com webservices jax ws jax ws hello world example http www mkyong com webservices jax ws jax ws hel
  • 使用 sqlplus 命令行隐藏纯文本密码

    我希望使用 sqlplus 命令 并在视图中隐藏密码 这样它就不会显示在 ps ef 命令中 我知道互联网博客上提供了很多解决方案 但大多数似乎都需要管理员权限 并且我对此服务器的访问受到限制 其余的似乎对我不起作用 我当前使用的命令如下
  • 在附加到 Refit 客户端的 Polly 策略中使用 ILogger

    我一直在尝试遵循以下指示这篇博文 https www stevejgordon co uk passing an ilogger to polly policies将 ILogger 传递到我的重试策略 以便记录有关重试错误的信息 博客中的
  • ember-data 作为 d3 的数据

    我想使用我的 emberdata 作为在 d3 中创建对象的数据 我尝试将控制器模型中的项目转换为新的 javascript 对象 并将这个新数组提供给 d3 数据 这是代码 App GraphicsView Ember View exte
  • smart-table - 如何重置过滤器集合?

    Angular 和智能表新手 此智能表设置可以正常工作并正确过滤 但尝试重置或清除过滤器不会重新过滤表 为什么不 使用 ng model 绑定更新输入是否不会触发 smart table 正在寻找的监视 Plunker 可以在这里找到 ht
  • h1 和跨度

    在我的 html 中使用 h1 h6 标签时 我不断收到 w3c 验证器上的错误消息 我对此很陌生 我已经尝试了很多次来解决这个问题 但我不能 该文本在我的网站上显示得很好 但无法验证 我该如何解决这个问题 错误信息如下 第 34 行 第
  • 如何在CodeIgniter中获取表的最后一条记录?

    如何在Codeigniter中获取表的最后一条记录 我的表名称是 post 我想获取该表中最后一条记录的最后一个 id 或下一个 id recommended don t use from getting rows insted of pl
  • 如何使用 Web API 2 + AspNet Identity 2 扩展 IdentityRole

    我正在尝试扩展最新版本的 Visual Studio 2013 中的 Web API 2 包含个人帐户 模板中提供的 AspNet IdentityRole 类 当我点击 api roles 时 它返回一个空数组 身份模型 namespac
  • python 中不可散列对象的集合

    有没有相当于python的东西set对于不可散列的对象 例如可以相互比较但不能散列的自定义类 如果你的值不可散列 那么就有no point在使用set 只需使用一个list反而 如果您的所有对象所能做的就是测试相等性 那么您必须扫描每个元素
  • WC_Checkout 挂钩中订单行项目和订单元之间的差异

    我正在创建一个正在使用的插件woocommerce checkout update order meta用于添加订单项元数据的钩子 我有一个插件叫WooCommerce TM 额外产品选项安装 这个插件使用woocommerce check