Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Woocommerce प्रति उत्पाद कुल खुदरा बिक्री को प्रतिध्वनित करता है

WooCommerce 2.2 डैशबोर्ड विजेट पिछले महीने की खुदरा बिक्री की गणना करने के लिए निम्नलिखित कोड का उपयोग कर रहा है:

    // Sales
    $query            = array();
    $query['fields']  = "SELECT SUM( postmeta.meta_value ) FROM {$wpdb->posts} as posts";
    $query['join']    = "INNER JOIN {$wpdb->postmeta} AS postmeta ON posts.ID = postmeta.post_id ";
    $query['where']   = "WHERE posts.post_type IN ( '" . implode( "','", wc_get_order_types( 'reports' ) ) . "' ) ";
    $query['where']  .= "AND posts.post_status IN ( 'wc-" . implode( "','wc-", apply_filters( 'woocommerce_reports_order_statuses', array( 'completed', 'processing', 'on-hold' ) ) ) . "' ) ";
    $query['where']  .= "AND postmeta.meta_key   = '_order_total' ";
    $query['where']  .= "AND posts.post_date >= '" . date( 'Y-m-01', current_time( 'timestamp' ) ) . "' ";
    $query['where']  .= "AND posts.post_date <= '" . date( 'Y-m-d H:i:s', current_time( 'timestamp' ) ) . "' ";

    $sales = $wpdb->get_var( implode( ' ', apply_filters( 'woocommerce_dashboard_status_widget_sales_query', $query ) ) );

फिर बाद में इसे प्रदर्शित करने पर:

wc_price( $sales );

क्योंकि $query['where'] . की आखिरी 2 पंक्तियों में तारीखों को प्रतिबंधित किया जा रहा है स्ट्रिंग, मुझे लगता है कि अगर आप सभी समय की कुल बिक्री प्राप्त करना चाहते हैं तो उन्हें हटाया जा सकता है।

    // All-time Sales for entire store
    $query            = array();
    $query['fields']  = "SELECT SUM( postmeta.meta_value ) FROM {$wpdb->posts} as posts";
    $query['join']    = "INNER JOIN {$wpdb->postmeta} AS postmeta ON posts.ID = postmeta.post_id ";
    $query['where']   = "WHERE posts.post_type IN ( '" . implode( "','", wc_get_order_types( 'reports' ) ) . "' ) ";
    $query['where']  .= "AND posts.post_status IN ( 'wc-" . implode( "','wc-", apply_filters( 'woocommerce_reports_order_statuses', array( 'completed', 'processing', 'on-hold' ) ) ) . "' ) ";
    $query['where']  .= "AND postmeta.meta_key   = '_order_total' ";

    $sales = $wpdb->get_var( implode( ' ', $query ) );

यह मुझे काफी गहन प्रश्न के रूप में प्रभावित करता है, इसलिए यदि इसे हर समय चलाया जा रहा है तो आप क्षणिक जांच करना चाहेंगे।

मैं व्यक्तिगत उत्पाद के लिए इसे संशोधित करने के बारे में कम आश्वस्त हूं क्योंकि मैं एसक्यूएल में कमजोर हूं, लेकिन यहां उत्पाद की आईडी निर्दिष्ट करने के लिए "कहां" स्ट्रिंग प्राप्त करने का प्रयास किया गया है।

    // All-time Sales for specific product, maybe
    $product_id = 10;
    $query            = array();
    $query['fields']  = "SELECT SUM( postmeta.meta_value ) FROM {$wpdb->posts} as posts";
    $query['join']    = "INNER JOIN {$wpdb->postmeta} AS postmeta ON posts.ID = postmeta.post_id ";
    $query['where']   = sprintf( "WHERE posts.ID = %n", $product_id );
    $query['where']  .= "AND posts.post_status IN ( 'wc-" . implode( "','wc-", apply_filters( 'woocommerce_reports_order_statuses', array( 'completed', 'processing', 'on-hold' ) ) ) . "' ) ";
    $query['where']  .= "AND postmeta.meta_key   = '_order_total' ";

    $sales = $wpdb->get_var( implode( ' ', $query ) );



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL प्रति उपयोगकर्ता पोस्ट की कुल राशि का पता लगाएं

  2. mysql:व्हामी?

  3. तालिका A से चयन करें जो तालिका B में मौजूद नहीं है

  4. jQuery php पृष्ठ को रीफ्रेश किए बिना MySQL में डेटा डालें

  5. MySQL में बड़ी .sql फ़ाइल आयात करें