Woocommerce REST API 扩展订单响应

2024-06-23

我正在寻找一种扩展 wc-api/vX/orders/ 响应的方法。我在结帐中添加了多个自定义字段(例如:关系编号、交货日期等)。这些元数据保存在订单中(wp_postmeta 表)。但为什么他们不随 api 返回呢?

通常,您可以使用以下代码扩展 api 响应:

add_action( 'rest_api_init', 'custom_register_api_fields' );

function custom_register_api_fields() {
    register_rest_field( 'shop_order','relation_number',
    array(
        'get_callback'    => 'custom_api_meta_callback',
        'update_callback' => null,
        'schema'          => null,
    )
    );
}

/**
*
* @param array $object Details of current post.
* @param string $field_name Name of field.
* @param WP_REST_Request $request Current request
*
* @return mixed
*/

function custom_api_meta_callback( $object, $field_name, $request ) {
 return get_post_meta( $object[ 'id' ], $field_name, true );
}

但是当我测试响应时(使用 Postman 和 php 库),my-website.co/wc-api/v2/orders 自定义元不可见。

有没有办法为 wc-api 注册 api 字段?

Tnx!


我有相同的要求,为“line_items”添加新值以响应

我正在使用 wc api v2

https://website.com/wp-json/wc/v2/orders https://website.com/wp-json/wc/v2/orders

function get_product_order_image( $response, $object, $request ) {
 
    if( empty( $response->data ) )
        return $response;
    $order_pid= $response->data['line_items'][0]['product_id'];
     $l_w_product_meta = get_post_meta($response->data['line_items'][0]['product_id']);
    $order_imgUrl= wp_get_attachment_url( $l_w_product_meta['_thumbnail_id'][0], 'full' );

    $response->data['line_items'][0]['cover_image'] = $order_imgUrl;
 
    return $response;
} 

add_filter( "woocommerce_rest_prepare_shop_order_object", array( $this, "get_product_order_image"), 10, 3 );

Result 封面图片已添加到订单项结果 https://i.stack.imgur.com/IRSop.png

我希望这对将来的人有帮助。

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

Woocommerce REST API 扩展订单响应 的相关文章

随机推荐

  • 我在绘制球体及其曲线时遇到问题

    我正在尝试在球体上绘制一条曲线 但无法同时绘制它们 我确定了一些要点欧几里得范数10对于我的曲线 以及绘制球体的其他一些点半径10 分别如下 曲线点 random numbers basevalues np linspace 0 9 0 9
  • 快速成功退出 C++,分配大量对象

    我正在寻找一种方法来快速退出已使用 C 类在内存中分配大量结构的 C 程序正确完成 但在程序中最后 返回 后 所有自动析构函数都会启动 问题是程序通过大量 C 类结构分配了大约 15GB 内存 并且此自动析构过程需要大约还需要 1 个小时才
  • 了解截断二十面体的几何形状,以进行渲染

    我正在尝试使用可点击区域来渲染像上面这样的截断二十面体Three js http stemkoski github io Three js js Three js 我找到了正二十面体的代码 var t 1 Math sqrt 5 2 var
  • 指定 Xaml 中开始标记和结束标记之间的属性

    考虑以下 Xaml
  • 逻辑应用 blob 触发器未在子文件夹上触发

    我指的是这个反馈 在子文件夹中添加文件时触发 Azure 存储 Blob 触发器 https feedback azure com forums 287593 logic apps suggestions 20164843 azure st
  • 使用cleartool findmerge 命令在clearcase 中自动合并

    我正在编写一个脚本来自动执行一些合并操作 我想使用以下命令来执行此操作 cleartool findmerge file name fver main branch name LATEST merge log NUL c Automatic
  • AttributeError:“SQLAlchemy”对象没有属性“模型”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 AttributeError sqlalchemy 对象没有属性 模型 有时会出现 ModuleNotFoundError 没有名
  • 将数据传递给 vue.js 中的组件

    我正在努力理解如何在 vue js 中的组件之间传递数据 我已经通读了几遍文档并查看了许多 vue 相关问题和教程 但我仍然不明白 为了解决这个问题 我希望能帮助完成一个非常简单的例子 在一个组件中显示用户列表 完成 单击链接 完成 时将用
  • 可变字体和常规字体有什么区别

    我正在阅读有关可变字体的内容 但我不明白这个概念 有 5 个注册轴 wght wdth ital slnt opsz 字体粗细已经预先存在 我们每天都会在 CSS 中使用它 那么可变字体和常规字体有什么区别呢 另外 如果我输入一系列font
  • 从哪个 Linux 内核/libc 版本开始,Java Runtime.exec() 在内存方面是安全的?

    在工作中 我们的目标平台之一是运行 Linux 的资源受限的迷你服务器 内核 2 6 13 基于旧 Fedora Core 的自定义发行版 该应用程序是用 Java Sun JDK 1 6 04 编写的 Linux OOM Killer 配
  • 如何改变TDateTimePicker的颜色?

    如何更改 a 的颜色TDateTimePicker A 日期和时间选择器可以有一种颜色 通常这是通过设置来完成的Color procedure TForm1 FormCreate Sender TObject begin DateTimeP
  • 将文档的文档 ID 添加到其自己的 Firestore 文档 - Swift 4

    如何将我刚刚添加到 firestore 数据库的文档的文档 ID 添加到该文档 我想这样做 以便当用户检索 乘车 对象并选择预订它时 我可以知道他们预订了哪些特定乘车 我面临的问题是 在创建文档 ID 之前 您无法获取文档 ID 因此将其添
  • Spring MVC 静态资源部分工作

    我有一个基本的目录应用程序 运行良好 只是它似乎有时只能找到我使用 mvc resources 标签配置的静态资源 我对主板的搜索发现了与处理程序映射相关的问题 但我的问题似乎有所不同 具体来说 当通过映射到 person 的方法调用 Pe
  • React Native 动画 setValue() 问题?

    实际上我正在尝试设置动画的值设定值 after 动画 timing 已完成并希望在循环动画中使用此更新的动画值 Initialising animation value 50 const leftAnim useRef new Animat
  • 获取在参数中解构的对象[重复]

    这个问题在这里已经有答案了 假设我有一个函数 它将解构对象作为箭头函数中的参数 const myFunc a b c gt 是否有任何语法或语法可以让我将整个对象作为单个值获取 由于箭头函数没有绑定arguments 我不能用那个 是否可以
  • 单个存储库的 Azure DevOps 权限

    假设我在 ADO 上创建了一个新项目 MyProject 其中 我有 2 个存储库 MyRepo1 和 MyRepo2 我想邀请其他用户向 MyRepo1 贡献代码 但不希望他们看到 MyRepo2 如何才能做到这一点 我尝试为 MyRep
  • NodeJS、Mongoose:如何使用 mongoose 获取相关数据

    我有 2 个集合 它们是一对多的关系 如何使用猫鼬获取相关数据作为嵌套文档 我有 2 个模式 它们是这样相关的 var userSchema mongoose Schema name String age Number var postSc
  • 在 Bootstrap 3 的折叠导航栏中显示图标

    我想构建一个像 facebook 应用程序一样的 bootstrap 3 导航栏 带有一些图标 问题是 当栏折叠时 所有图标都会隐藏 如果我把图标放在外面 div class collapse navbar collapse 图标出来了并且
  • 我的 tomcat 启动时出现 C3P0 明显死锁

    当我通过tomcat或resin启动我的项目时 我的项目将抛出错误 APPARENT DEADLOCK 我认为c3p0引起的错误无法连接我的数据库 我更改了我的xml并将域名替换为我数据库的ip 然后项目启动了 我在c3p0工作之前使用了监
  • Woocommerce REST API 扩展订单响应

    我正在寻找一种扩展 wc api vX orders 响应的方法 我在结帐中添加了多个自定义字段 例如 关系编号 交货日期等 这些元数据保存在订单中 wp postmeta 表 但为什么他们不随 api 返回呢 通常 您可以使用以下代码扩展