Export orders from Woocommerce in JSON FORMAT
json, orders, woocommerce, wordpress
Solution
Assuming this is your items loop
// Getting names of categories and quantity
foreach($order->get_items() as $item)
{
$json['items'][] = array (
'name' => $item['name'],
'quantity' => $item['qty']
}
Try above code just before `while ( $loop->have_posts() )`
Problem
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 }, ... ] }, ... ] } ```