php - 获取数组中的订单数据以在 Woocommerce 中对其进行 JSON 编码
问题描述
我从 woocommerce 函数 wc_get_order 中获得了很多我需要的信息,下面是其中的一些。
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
$order_data = $order->get_data(); // The Order data
$order_id = $order_data['id'];
$order_parent_id = $order_data['parent_id'];
$order_status = $order_data['status'];
$order_currency = $order_data['currency'];
$order_version = $order_data['version'];
$order_payment_method = $order_data['payment_method'];
$order_payment_method_title = $order_data['payment_method_title'];
$order_payment_method = $order_data['payment_method'];
$order_payment_method = $order_data['payment_method'];
如何将所有内容放入数组中,然后放入 JSON_ENCODE?
我需要分别做每个值吗
$order_array = array("order id: " . $order_id . ", order currency:" . $order_currency . ", order_version: " . $order_version );
或者有没有办法循环遍历每个信息的键:值的放置数组?
解决方案
这取决于您是否要自定义 te 键以及所需的输出是什么:
JSON ENCODE:保持所有数据不变:
// Get an instance of the WC_Order object $order = wc_get_order( $order_id ); // Get the meta data in an unprotected array $order_data = $order->get_data(); // Encoding in json $json_order_data = json_encode($order_data);
JSON ENCODE:自定义数据,只保留一些数据并更改数组键:
// Get an instance of the WC_Order object $order = wc_get_order( $order_id ); $order_data = []; // Initializing // Set the necessary data in an array with custom keys // using WC_Abstract_Order and WC_Order methods $order_data['order_id'] = $order->get_id(); $order_data['parrent_id'] = $order->get_parent_id(); $order_data['status'] = $order->get_status(); $order_data['order_currency'] = $order->get_currency(); $order_data['order_version'] = $order->get_version(); $order_data['order_payment_method'] = $order->get_payment_method(); $order_data['order_payment_method_title'] = $order->payment_method_title(); ## And so on… // Encoding in json $json_order_data = json_encode($order_data);
格式化字符串:自定义数据并仅保留一些数据:
// Get an instance of the WC_Order object $order = wc_get_order( $order_id ); $order_data = []; // Initializing // Set the necessary data in an array using WC_Abstract_Order and WC_Order methods $order_data[] ='order_id: ' . $order->get_id(); $order_data[] ='parrent_id: ' . $order->get_parent_id(); $order_data[] ='status: ' . $order->get_status(); $order_data[] ='order_currency: ' . $order->get_currency(); $order_data[] ='order_version: ' . $order->get_version(); $order_data[] ='order_payment_method: ' . $order->get_payment_method(); $order_data[] ='order_payment_method_title: ' . $order->payment_method_title(); ## And so on… // Convert to coma separated string $str_order_data = implode( ', ' . $order_data );
推荐阅读
- web-component - 在 shadowRoot 中执行脚本
- python - 得到以下消息:没有这样的元素:无法找到元素:{“method”:”xpath”,”selector”:”//span[@id='lblError']/text()”}”
- netsuite - 将子列表添加到自定义记录
- reactjs - 处理 react-youtube 包时,在 React.js 中 setInterval 没有正确清除
- spring-integration - JMS MQ 通道不断增加和耗尽
- sql - 对多个 CTE 表执行一系列计算
- vue.js - 如何在 Vue2 中使用依赖项中的全局组件
- datepicker - Syncfusion 日期选择器不适用于角度反应形式
- python - Typing - 函数返回值类型与表达式类型相同
- c++ - _CrtSetBreakAlloc 使用内存内容而不是分配号