如何从 Woocommerce 中的订单项中获取产品 sku [重复]
Posted
技术标签:
【中文标题】如何从 Woocommerce 中的订单项中获取产品 sku [重复]【英文标题】:How to get the product sku from order items in Woocommerce [duplicate] 【发布时间】:2018-11-19 15:42:48 【问题描述】:对于“woocommerce_thankyou”页面上的 Api,需要获取 sku。 我有:
$order = wc_get_order( $order_id );
foreach ($order->get_items() as $item_key => $item_values):
$product = new WC_Product($item_id);
$item_sku[] = $product->get_sku();
endforeach;
但不起作用。
【问题讨论】:
什么不完全有效?您看到的行为/错误消息是什么? 没有错误,但由于某种原因该变量没有显示在页面上。 【参考方案1】:我认为您在实际的模板页面上摆弄;-) 在 Wordpress 中,我们主要使用action hooks 来完成这样的任务。
试试这个,把它放在(子)主题functions.php
。
注意:仅适用于 WooCommerce 3+
add_action( 'woocommerce_thankyou', 'order_created_get_skus', 10 );
function order_created_get_skus($order_id)
$item_sku = array();
$order = wc_get_order( $order_id );
foreach ($order->get_items() as $item)
$product = wc_get_product($item->get_product_id());
$item_sku[] = $product->get_sku();
// now do something with the sku array
问候,比约恩
【讨论】:
谢谢!看来new WC_Product($item_id)
行已过时。 link。我正在尝试以这种方式检查这个变量的页面 - print_r( $item_sku );
是的,很抱歉,我的代码不正确。我已经用 WOO 3+ 的正确功能更新了我的答案
我检查了代码是否正常工作。非常感谢!
要添加一个注释,如果在创建订单后删除了有问题的产品,这将失败,因为 $product 将返回 false 并且 get_sku 会抛出一个致命错误。更简单的方法:$item->get_product()->get_sku();以上是关于如何从 Woocommerce 中的订单项中获取产品 sku [重复]的主要内容,如果未能解决你的问题,请参考以下文章
带有 WooCommerce 扩展的 WP Webhooks Pro 不发送订单项
如何从functions.php中的简码挂钩中排除产品类别ID - WooCommerce