WC_Report_Sales_By_Product::products_widget() │ public │ WC 1.0
Output products widget.
Метод класса: WC_Report_Sales_By_Product{}
Хуков нет.
Возвращает
null
. Ничего (null).
Использование
$WC_Report_Sales_By_Product = new WC_Report_Sales_By_Product(); $WC_Report_Sales_By_Product->products_widget();
Код WC_Report_Sales_By_Product::products_widget() WC Report Sales By Product::products widget WC 9.4.2
<?php public function products_widget() { ?> <h4 class="section_title"><span><?php esc_html_e( 'Product search', 'woocommerce' ); ?></span></h4> <div class="section"> <form method="GET"> <div> <?php // @codingStandardsIgnoreStart ?> <select class="wc-product-search" style="width:203px;" multiple="multiple" id="product_ids" name="product_ids[]" data-placeholder="<?php esc_attr_e( 'Search for a product…', 'woocommerce' ); ?>" data-action="woocommerce_json_search_products_and_variations"></select> <button type="submit" class="submit button" value="<?php esc_attr_e( 'Show', 'woocommerce' ); ?>"><?php esc_html_e( 'Show', 'woocommerce' ); ?></button> <input type="hidden" name="range" value="<?php echo ( ! empty( $_GET['range'] ) ) ? esc_attr( $_GET['range'] ) : ''; ?>" /> <input type="hidden" name="start_date" value="<?php echo ( ! empty( $_GET['start_date'] ) ) ? esc_attr( $_GET['start_date'] ) : ''; ?>" /> <input type="hidden" name="end_date" value="<?php echo ( ! empty( $_GET['end_date'] ) ) ? esc_attr( $_GET['end_date'] ) : ''; ?>" /> <input type="hidden" name="page" value="<?php echo ( ! empty( $_GET['page'] ) ) ? esc_attr( $_GET['page'] ) : ''; ?>" /> <input type="hidden" name="tab" value="<?php echo ( ! empty( $_GET['tab'] ) ) ? esc_attr( $_GET['tab'] ) : ''; ?>" /> <input type="hidden" name="report" value="<?php echo ( ! empty( $_GET['report'] ) ) ? esc_attr( $_GET['report'] ) : ''; ?>" /> <?php wp_nonce_field( 'custom_range', 'wc_reports_nonce', false ); ?> <?php // @codingStandardsIgnoreEnd ?> </div> </form> </div> <h4 class="section_title"><span><?php esc_html_e( 'Top sellers', 'woocommerce' ); ?></span></h4> <div class="section"> <table cellspacing="0"> <?php $top_sellers = $this->get_order_report_data( array( 'data' => array( '_product_id' => array( 'type' => 'order_item_meta', 'order_item_type' => 'line_item', 'function' => '', 'name' => 'product_id', ), '_qty' => array( 'type' => 'order_item_meta', 'order_item_type' => 'line_item', 'function' => 'SUM', 'name' => 'order_item_qty', ), ), 'order_by' => 'order_item_qty DESC', 'group_by' => 'product_id', 'limit' => 12, 'query_type' => 'get_results', 'filter_range' => true, 'order_status' => array( 'completed', 'processing', 'on-hold', 'refunded' ), ) ); if ( $top_sellers ) { // @codingStandardsIgnoreStart foreach ( $top_sellers as $product ) { echo '<tr class="' . ( in_array( $product->product_id, $this->product_ids ) ? 'active' : '' ) . '"> <td class="count">' . esc_html( $product->order_item_qty ) . '</td> <td class="name"><a href="' . esc_url( add_query_arg( 'product_ids', $product->product_id ) ) . '">' . esc_html( get_the_title( $product->product_id ) ) . '</a></td> <td class="sparkline">' . $this->sales_sparkline( $product->product_id, 7, 'count' ) . '</td> </tr>'; } // @codingStandardsIgnoreEnd } else { echo '<tr><td colspan="3">' . esc_html__( 'No products found in range', 'woocommerce' ) . '</td></tr>'; } ?> </table> </div> <h4 class="section_title"><span><?php esc_html_e( 'Top freebies', 'woocommerce' ); ?></span></h4> <div class="section"> <table cellspacing="0"> <?php $top_freebies = $this->get_order_report_data( array( 'data' => array( '_product_id' => array( 'type' => 'order_item_meta', 'order_item_type' => 'line_item', 'function' => '', 'name' => 'product_id', ), '_qty' => array( 'type' => 'order_item_meta', 'order_item_type' => 'line_item', 'function' => 'SUM', 'name' => 'order_item_qty', ), ), 'where_meta' => array( array( 'type' => 'order_item_meta', 'meta_key' => '_line_subtotal', // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_key 'meta_value' => '0', // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_value 'operator' => '=', ), ), 'order_by' => 'order_item_qty DESC', 'group_by' => 'product_id', 'limit' => 12, 'query_type' => 'get_results', 'filter_range' => true, ) ); if ( $top_freebies ) { // @codingStandardsIgnoreStart foreach ( $top_freebies as $product ) { echo '<tr class="' . ( in_array( $product->product_id, $this->product_ids ) ? 'active' : '' ) . '"> <td class="count">' . esc_html( $product->order_item_qty ) . '</td> <td class="name"><a href="' . esc_url( add_query_arg( 'product_ids', $product->product_id ) ) . '">' . esc_html( get_the_title( $product->product_id ) ) . '</a></td> <td class="sparkline">' . $this->sales_sparkline( $product->product_id, 7, 'count' ) . '</td> </tr>'; } // @codingStandardsIgnoreEnd } else { echo '<tr><td colspan="3">' . esc_html__( 'No products found in range', 'woocommerce' ) . '</td></tr>'; } ?> </table> </div> <h4 class="section_title"><span><?php esc_html_e( 'Top earners', 'woocommerce' ); ?></span></h4> <div class="section"> <table cellspacing="0"> <?php $top_earners = $this->get_order_report_data( array( 'data' => array( '_product_id' => array( 'type' => 'order_item_meta', 'order_item_type' => 'line_item', 'function' => '', 'name' => 'product_id', ), '_line_total' => array( 'type' => 'order_item_meta', 'order_item_type' => 'line_item', 'function' => 'SUM', 'name' => 'order_item_total', ), ), 'order_by' => 'order_item_total DESC', 'group_by' => 'product_id', 'limit' => 12, 'query_type' => 'get_results', 'filter_range' => true, 'order_status' => array( 'completed', 'processing', 'on-hold', 'refunded' ), ) ); if ( $top_earners ) { // @codingStandardsIgnoreStart foreach ( $top_earners as $product ) { echo '<tr class="' . ( in_array( $product->product_id, $this->product_ids ) ? 'active' : '' ) . '"> <td class="count">' . wc_price( $product->order_item_total ) . '</td> <td class="name"><a href="' . esc_url( add_query_arg( 'product_ids', $product->product_id ) ) . '">' . esc_html( get_the_title( $product->product_id ) ) . '</a></td> <td class="sparkline">' . $this->sales_sparkline( $product->product_id, 7, 'sales' ) . '</td> </tr>'; } // @codingStandardsIgnoreEnd } else { echo '<tr><td colspan="3">' . esc_html__( 'No products found in range', 'woocommerce' ) . '</td></tr>'; } ?> </table> </div> <script type="text/javascript"> jQuery( '.section_title' ).on( 'click', function() { var next_section = jQuery( this ).next( '.section' ); if ( jQuery( next_section ).is( ':visible' ) ) { return false; } jQuery( '.section:visible' ).slideUp(); jQuery( '.section_title' ).removeClass( 'open' ); jQuery( this ).addClass( 'open' ).next( '.section' ).slideDown(); return false; } ); jQuery( '.section' ).slideUp( 100, function() { <?php if ( empty( $this->product_ids ) ) : ?> jQuery( '.section_title:eq(1)' ).trigger( 'click' ); <?php endif; ?> } ); </script> <?php }