如何在functions.php中获取woocommerce订单的product_id

时间:2019-12-17 16:35:22

标签: woocommerce

我正在尝试通过下订单时从order_id获取product_id来创建IF条件。 我尝试过:

add_action('woocommerce_new_order', 'wc_send_order_to_mypage');
function wc_send_order_to_mypage($order_id)
{
$order = wc_get_order( $order_id );

foreach ($order->get_items() as $item_key => $item )
    {
    $product_id   = $item->get_product_id(); 

    if ( $product_id == 29 ) {
                             $url = "https://www.abc.de";
                             }

    }
//do something with $url
}

但是每次我要下订单时,woocommerce都会给我错误消息“内部服务器错误”。

我尝试使用此答案中的代码,但以某种方式无法使用:How to get WooCommerce order details

这里什么不起作用?非常感谢您的帮助。

最诚挚的问候

托马斯

1 个答案:

答案 0 :(得分:0)

// Get $product object from $order / $order_id

$order = new WC_Order( $order_id );
$items = $order->get_items();

foreach ( $items as $item ) {

    $product = wc_get_product( $item['product_id'] );

    $product->get_type();
    $product->get_name();
    $product->get_id();
    // etc.
    // etc.

}