<?php /** * FetchOrdersByDate * Fetches orders placed on woocommerce by date * output is in JSON format */ function fetchOrdersByDate($date){ $args = array( // Arguments for query. 'post_type' => 'shop_order', 'post_status' => 'publish', 'orderby' => 'modified', 'meta_key' => '_customer_user', 'date_query' => array( array( 'after' => $date, 'inclusive' => true, ), ), 'posts_per_page' => -1 ); // Custom query. $query = new WP_Query($args); $result = array(); if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); $order_id = $query->post->ID; $orderObj = new WC_Order($order_id); $items = $orderObj->get_items(); $user_id = $orderObj->get_user_id(); // get user id of the order foreach ( $items as $item ) { $jsonformat = array( "order"=> array ( "item_name"=>$item['name'], "product_id"=>$item['product_id'], "variation_id"=>$item['variation_id'], "type"=>$item['type'], "order_number"=> $orderObj->id, "created_at"=> $orderObj->order_date, "updated_at"=> $orderObj->modified_date, "status"=> $orderObj->get_status(), "currency"=> $orderObj->get_order_currency(), "tax_class" =>$item['tax_class'], "line_subtotal_tax"=>$item['line_subtotal_tax'], "total"=> $orderObj->get_total(), "subtotal"=> $orderObj->get_subtotal(), "total_line_items_quantity"=> $item['qty'], "total_tax"=> $orderObj->get_tax_totals(), "total_shipping"=> $orderObj->get_total_shipping(), "cart_tax"=> $orderObj->get_cart_tax(), "shipping_tax"=> $orderObj->get_shipping_tax(), "shipping_methods"=> $orderObj->get_shipping_methods(), "payment_details"=>array( "method_id"=> $orderObj->payment_method, "method_title"=> $orderObj->payment_method_title, "paid"=> $orderObj->needs_payment() ), "shipping_address"=>array( "first_name"=> get_user_meta( $user_id, 'shipping_first_name', true ), "last_name"=> get_user_meta( $user_id, 'shipping_last_name', true ), "company"=> get_user_meta( $user_id, 'shipping_company', true ), "address_1"=> get_user_meta( $user_id, 'shipping_address_1', true ), "address_2"=> get_user_meta( $user_id, 'shipping_address_2', true ), "city"=> get_user_meta( $user_id, 'shipping_city', true ), "state"=> get_user_meta( $user_id, 'shipping_state', true ), "postcode"=> get_user_meta( $user_id, 'shipping_postcode', true ), "country"=> get_user_meta( $user_id, 'shipping_country', true ) ), "billing_address"=>array( "first_name" => get_user_meta( $user_id, 'billing_first_name', true ), "last_name" => get_user_meta( $user_id, 'billing_last_name', true ), "company" => get_user_meta( $user_id, 'billing_company', true ), "address_1" => get_user_meta( $user_id, 'billing_address_1', true ), "address_2" => get_user_meta( $user_id, 'billing_address_2', true ), "city" => get_user_meta( $user_id, 'billing_city', true ), "state" => get_user_meta( $user_id, 'billing_state', true ), "postcode" => get_user_meta( $user_id, 'billing_postcode', true ), "country" => get_user_meta( $user_id, 'billing_country', true ) ) ) ); array_push($result,$jsonformat); } // end of the foreach endwhile; wp_reset_postdata(); endif; if(sizeof($result)>0){ return json_encode($result); }else { return; } } ?>
And $date should be in the format like $date=2013-02-28 23:59:59
Leave a Reply