I’m trying to export orders item from the plugin of wordpress Woocommerce and I create a template in wordpress with my querys for get the data of orders inside of array
<?php
//query
global $woocommerce;
global $wpdb;
global $product;
$args = array(
'post_type' => 'shop_order',
'orderby' => 'ID',
'post_status' => 'publish',
'posts_per_page' => -1,
'tax_query' => array(array(
'taxonomy' => 'shop_order_status',
'field' => 'slug',
'terms' => array('processing'))));
$loop = new WP_Query( $args );
$order_id = $loop->post->ID;
$order = new WC_Order($order_id);
$product = new WC_Product($order_id);
//Email verificacion if is suscribed or not
$sql = "SELECT * FROM dsr_wysija_user WHERE email='". $order->order_custom_fields['_billing_email'][0] ."'" ;
$res = mysql_query($sql);
if (mysql_num_rows($res)== 1){
$email = 'true';
}else{
$email = 'false';
}
// Getting names of categories and quantity
foreach($order->get_items() as $item)
{
$item['name'];
$item['qty'];
}
//Collecting data in ARRAY
$json[]= array(
"salutation"=>''. $order->order_custom_fields['_billing_titel'][0] .'' ,
"title"=>''. $order->order_custom_fields['_billing_anrede'][0] .'',
"first_name"=>''. $order->order_custom_fields['_billing_first_name'][0] .'',
"last_name"=>''. $order->order_custom_fields['_billing_last_name'][0] .'',
"street"=>''. $order->order_custom_fields['_billing_address_1'][0] .'',
"street_number"=>''.$order->order_custom_fields['_billing_address_2'][0] .'',
"address_supplement"=>''. $order->order_custom_fields['_billing_company'][0] .'',
"zipcode"=>''. $order->order_custom_fields['_billing_postcode'][0] .'',
"city"=>''. $order->order_custom_fields['_billing_city'][0] .'',
"country"=>''. $order->order_custom_fields['_billing_country'][0] .'',
"terms_accepted"=>'true',
"receiving_mails_accepted"=>''.$email.'',
"email"=>''. $order->order_custom_fields['_billing_email'][0] .'',
"original_created_at"=>''.$order->order_date.'', );
//Starting While
while ( $loop->have_posts() ) : $loop->the_post();
//Printing Output array
// echo (json_format($json))
?>
<?php endwhile; ?>
The ouput is like that
{
"salutation": "Arq.",
"title": "herr",
"first_name": "Ted",
"last_name": "Mosby",
"street": "Manhattan",
"street_number": "20",
"address_supplement": "How I met your mother",
"zipcode": "MANHATTAN",
"city": "New York",
"country": "ES",
"terms_accepted": "true",
"receiving_mails_accepted": "true",
"email": "ted@mosby.com",
"original_created_at": "2014-01-07 03:34:31"
}
But that i need is
{
"salutation": "Arq.",
"title": "herr",
"first_name": "Ted",
"last_name": "Mosby",
"street": "Manhattan",
"street_number": "20",
"address_supplement": "How I met your mother",
"zipcode": "MANHATTAN",
"city": "New York",
"country": "ES",
"terms_accepted": "true",
"receiving_mails_accepted": "true",
"email": "ted@mosby.com",
"original_created_at": "2014-01-07 03:34:31"
"items": [
{
"campaign_number": 301,
"item_number": 1
},
{
"campaign_number": 301,
"item_number": 2
},
...
]
},
...
]
}
Assuming this is your items loop
Try above code just before
while ( $loop->have_posts() )
This is what I use in order to get the exact same structure as WooCommerce Orders REST API:
Example output: