Итак, я пытаюсь отправить данные на конечную точку веб-перехватчика. Кажется, я не могу поместить все элементы в foreach l oop в файл json. В моем примере ниже product_name показывает только последнюю итерацию l oop.
Как мне включить все итерации в $ body, отправляемое через wp_remote_post?
add_action( 'woocommerce_payment_complete', 'so_payment_complete' );
function so_payment_complete( $order_id ){
$order = wc_get_order( $order_id );
$user = $order->get_user();
$order_data = $order->get_data();
$order_id = $order_data['id'];
$order_shipping_first_name = $order_data['shipping']['first_name'];
//$products = wc_order_item_product( $order_id );
$products = $order->get_items();
$customer_id = $order->get_shipping_first_name();
$testTotal = $order_data['shipping']['total'];
// Iterating through each "line" items in the order
foreach ($order->get_items() as $item_id => $item_data) {
// Get an instance of corresponding the WC_Product object
$product = $item_data->get_product();
$product_name = $product->get_name(); // Get the product name
$item_quantity = $item_data->get_quantity(); // Get the item quantity
$item_total = $item_data->get_total(); // Get the item line total
// Displaying this data (to check)
//echo 'Product name: '.$product_name.' | Quantity: '.$item_quantity.' | Item total: '. number_format( $item_total, 2 );
}
$url = 'https://example.com'; // post to the request somehow
//$url = 'https://example.com/; // post to the request somehow
$body = [
'order_shipping_first_name' => $order_shipping_first_name,
'order_shipping_last_name' => $order_data['shipping']['last_name'],
'order_shipping_company_name' => $order_data['shipping']['company'],
'order_shipping_address1' => $order_data['shipping']['address_1'],
'order_shipping_address2' => $order_data['shipping']['address_2'],
'order_shipping_city' => $order_data['shipping']['city'],
'order_shipping_state' => $order_data['shipping']['state'],
'order_shipping_postcode' => $order_data['shipping']['postcode'],
'order_address' => $order_address = $order->get_address(),
'order_note' => $order_note = $order->get_customer_note(),
'product_name' => $product_name
/**'order_items' => $order_items,
'order_items1' => $item_data,
'order_items2' => $item_id,
**/
];
wp_remote_post( $url, array(
'method' => 'POST',
'timeout' => 45,
'redirection' => 5,
'httpversion' => '1.0',
'blocking' => true,
'headers' => array('Content-Type' => 'application/json; charset=utf-8'),
//'body' => array( 'order' => $order, 'user' => $user, 'order_data' => $order_data, 'order_id' => $order_id, 'order_shipping_first_name' => $order_shipping_first_name),
'body' => json_encode($body),
'method' => 'POST', //added ****
'cookies' => array()
)
);
}
Любая помощь будет очень признательна. Я правда не программист, но, так сказать, ныряю в воду.