我正在使用WooComerce插件版本2.6.11, 而WordPress版本是4.7.2。我正在尝试使用订单的商品元数据获取所有商品(order_id = 273)。我尝试如下。但是$ item [‘
product_id’
]返回空。什么也不会返回。
function custom_get_order_details($order_id){
global $woocommerce;
// for test im using $order_id = 273
$order = new WC_Order( $order_id );
foreach ( $order->
get_items() as $item_id =>
$item ){print_r($item_id);
echo $product_id = wc_get_order_item_meta($item_id, '_product_id', true);
echo "<
br>
test_30<
br>
";
echo $variation_id = wc_get_order_item_meta($item_id, '_variation_id', true);
echo $quantity = wc_get_order_item_meta($item_id, '_qty', true);
}
//$curl = curl_init();
//curl post here
}
add_action( 'woocommerce_payment_complete', 'custom_get_order_details', 10, 1 );
如果我在循环中打印$ item。它打印
array(4) { ["name"]=>
string(4) "Test" ["type"]=>
string(9) "line_item" ["item_meta"]=>
NULL ["item_meta_array"]=>
array(9) { [1]=>
object(stdClass)#823 (2) { ["key"]=>
string(4) "_qty" ["value"]=>
string(1) "1" } [2]=>
object(stdClass)#822 (2) { ["key"]=>
string(10) "_tax_class" ["value"]=>
string(0) "" } [3]=>
object(stdClass)#821 (2) { ["key"]=>
string(11) "_product_id" ["value"]=>
string(4) "2856" } [4]=>
object(stdClass)#820 (2) { ["key"]=>
string(13) "_variation_id" ["value"]=>
string(1) "0" } [5]=>
object(stdClass)#819 (2) { ["key"]=>
string(14) "_line_subtotal" ["value"]=>
string(3) "100" } [6]=>
object(stdClass)#818 (2) { ["key"]=>
string(11) "_line_total" ["value"]=>
string(3) "100" } [7]=>
object(stdClass)#817 (2) { ["key"]=>
string(18) "_line_subtotal_tax" ["value"]=>
string(1) "0" } [8]=>
object(stdClass)#816 (2) { ["key"]=>
string(9) "_line_tax" ["value"]=>
string(1) "0" } [9]=>
object(stdClass)#815 (2) { ["key"]=>
string(14) "_line_tax_data" ["value"]=>
string(45) "a:2:{s:5:"total";
a:0:{}s:8:"subtotal";
a:0:{}}" } } }
它也返回空-$ order-> get_item_meta($ item_id, ‘ _qty’ , true)
【产品ID在WC_Order中返回空-WooComerce】我不知道这是我的错。
文章图片
文章图片
文章图片
#1 你可以通过以下方式获取订单的订单商品详细信息
// Getting an instance of the order object$order = new WC_Order( $order_id );
$items = $order->
get_items();
//Loop through them, you can get all the relevant data:foreach ( $items as $item ) {
$product_name = $item['name'];
$product_id = $item['product_id'];
$product_variation_id = $item['variation_id'];
}
#2
这将是$ item_data而不是$ item, 这是拼写错误。
echo '$item["product_id"] <
i>
(product ID)<
/i>
: ' . $item_data['product_id'] . '<
br>
';
//<
--- notice $item_data
echo '$item["name"] <
i>
(product Name)<
/i>
: ' . $item_data['name'] . '<
br>
';
//<
--- notice $item_data
更新v2
你也可以像这样从item_meta键获取product_id
foreach ($items as $item_id =>
$item) {
//..
echo $item['item_meta']['_product_id'][0];
echo $item['item_meta']['_qty'][0];
//...
}
希望这可以帮助!
推荐阅读
- Qode主题-加载太大的图像。我该如何预防()
- purgecss无法识别条件类
- 如何从WordPress博客文章页面删除评论和作者图标
- 在URL上设置子类别名称时出现问题
- Linux From Scratch(LFS11.0)构建 LFS 系统 - Util-linux-2.37.2
- Linux 一键配置 Oracle 主机 /dev/shm
- MAC环境变量的配置小笔记
- Linux From Scratch(LFS11.0)构建 LFS 系统 - Man-DB-2.9.4
- Linux From Scratch(LFS11.0)构建 LFS 系统 - Procps-ng-3.3.17