我正在尝试将 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 ) {
}
但这就是我被困住的地方
尝试以下操作,以正确的格式数组获取每个产品的 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 …
}
应该可以。