从 WooCommerce 订单项目中,创建产品 ID 和数量的数组

问题描述 投票:0回答:1

我正在尝试将 woocommerce 订单信息发送到外部 api。我正在使用以下功能:

add_action( 'woocommerce_new_order', 'send_order_to_api', 10, 2 );
function send_order_to_api( $order_id, $order ){
// api code here
}

API 希望以以下格式接收我的数据:

$incoming_order = [
    'spot_id'   => 1,
    'phone'     => '+0000000000',
    'products'  => [
        [
            'product_id' => 1,
            'count'      => 9
        ],
    ],
];

我知道我需要获取我的 woocommerce 产品信息,例如:

$order->get_items();

我知道我需要把它变成这样的循环:

$order_items = $order->get_items();
    foreach( $order_items as $product ) {
}

但这就是我被困住的地方

php wordpress woocommerce product orders
1个回答
0
投票

尝试以下操作,以正确的格式数组获取每个产品的 ID 和数量:

add_action( 'woocommerce_new_order', 'send_order_to_api', 10, 2 );
function send_order_to_api( $order_id, $order ){
    $products = array(); // Initializing

    // Loop through order line items
    foreach( $order->get_items() as $item ) {
        $product = $item->get_product(); // Get the product object

        $products[] = array( 
            'product_id' => $product->get_id(), // product ID
            'count'      => $item->get_quantity(), // product quantity
        );
    }

    $incoming_order = [
        'spot_id'   => 1, // ?
        'phone'     => $order->get_billing_phone(), // The billing phone
        'products'  => $products, // Here we set the correct formatted products array
    ];

    // HERE, your API Code …
}

应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.