Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. function so_27969258_track_orders_per_customer($order_id){
  2.  
  3.  
  4. $order = new WC_Order( $order_id );
  5. $myuser_id = (int)$order->user_id;
  6. $user_info = get_userdata($myuser_id);
  7. $items = $order->get_items();
  8. foreach ($items as $item) {
  9.  
  10. }
  11. return $order_id;
  12.  
  13. }
  14. add_action( 'woocommerce_payment_complete', 'so_27969258_track_orders_per_customer' );
  15.  
  16. $customer_orders = get_posts( apply_filters( 'woocommerce_my_account_my_orders_query', array(
  17. 'numberposts' => $order_count,
  18. 'meta_key' => '_customer_user',
  19. 'meta_value' => get_current_user_id(),
  20. 'post_type' => wc_get_order_types( 'view-orders' ),
  21. 'post_status' => array_keys( wc_get_order_statuses() )
  22. ) ) );
  23.  
  24.  
  25. var_dump($customer_orders);
  26. if ( $customer_orders ) :
  27.  
  28.  
  29. foreach ( $customer_orders as $customer_order ) {
  30. $order = wc_get_order( $customer_order );
  31. $order->populate( $customer_order );
  32. $item_count = $order->get_item_count();
  33.  
  34. echo $order->get_order_number();
  35. echo wc_get_order_status_name( $order->get_status() );
  36. echo sprintf( _n( '%s for %s item', '%s for %s items', $item_count, 'woocommerce' ), $order->get_formatted_order_total(), $item_count );
  37.  
  38. }
  39.  
  40.  
  41.  
  42. endif;
  43.  
  44. public function get_customer_total_order() {
  45. $customer_orders = get_posts( array(
  46. 'numberposts' => - 1,
  47. 'meta_key' => '_customer_user',
  48. 'meta_value' => get_current_user_id(),
  49. 'post_type' => array( 'shop_order' ),
  50. 'post_status' => array( 'wc-completed' )
  51. ) );
  52.  
  53. $total = 0;
  54. foreach ( $customer_orders as $customer_order ) {
  55. $order = wc_get_order( $customer_order );
  56. $total += $order->get_total();
  57. }
  58.  
  59. return $total;
  60. }
  61.  
  62. global $wpdb;
  63. $top_customer_query = "";
  64. $top_customer_query .= "SELECT SUM(wc_postmeta1.meta_value) AS 'Total'
  65. ,wc_postmeta2.meta_value AS 'BillingEmail'
  66. ,CONCAT(wc_postmeta3.meta_value, ' ',wc_postmeta5.meta_value) AS
  67. BillingName
  68. ,Count(wc_postmeta2.meta_value) AS 'OrderCount' FROM ";
  69. $top_customer_query .= "{$wpdb->prefix}posts as wc_posts
  70. LEFT JOIN {$wpdb->prefix}postmeta as wc_postmeta1 ON
  71. wc_postmeta1.post_id=wc_posts.ID
  72. LEFT JOIN {$wpdb->prefix}postmeta as wc_postmeta2 ON
  73. wc_postmeta2.post_id=wc_posts.ID
  74. LEFT JOIN {$wpdb->prefix}postmeta as wc_postmeta3 ON
  75. wc_postmeta3.post_id=wc_posts.ID
  76. LEFT JOIN {$wpdb->prefix}postmeta as wc_postmeta5 ON
  77. wc_postmeta5.post_id=wc_posts.ID";
  78. $top_customer_query .= " WHERE wc_posts.post_type='shop_order'
  79. AND wc_postmeta1.meta_key='_order_total'
  80. AND wc_postmeta2.meta_key='_billing_email'
  81. AND wc_postmeta3.meta_key='_billing_first_name'
  82. AND wc_postmeta5.meta_key='_billing_last_name'";
  83. $top_customer_query .= " AND wc_posts.post_status IN ('wc-completed')";
  84. $top_customer_query .= " GROUP BY wc_postmeta2.meta_value";
  85. $top_customer_query .= " Order By Total DESC";
  86. $top_customer_query .= " LIMIT 0,5";
  87. $top_5_customers = $wpdb->get_results($top_customer_query, OBJECT);
  88. foreach ($top_5_customers as $customer) {
  89. ?>
  90. <tr>
  91. <td>
  92. <?php echo $customer->BillingName; ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement