Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Tăng tốc độ WordPress
    • Tối ưu website WordPress
    • Thiết kế website WordPress
    • Viết plugin WordPress
    • Sửa lỗi nâng cấp website
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Tài nguyên » WooCommerce: Thống kê tổng doanh số bán & Đơn đặt hàng của tất cả các sản phẩm

WooCommerce: Thống kê tổng doanh số bán & Đơn đặt hàng của tất cả các sản phẩm

Chủ Nhật, 22/03/2020 by Hoàng Quách

Nội dung

  • 1 Thống kê tổng doanh số bán hàng
  • 2 Thống kê tổng chi phí vận chuyển
  • 3 Tổng số tiền bạn giảm giá (được sử dụng) cho các khách hàng
  • 4 Tổng số tất cả các mặt hàng đã đặt hàng
  • 5 Tổng doanh số trên mỗi mặt hàng
  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Bạn muốn hiển thị một số thống kê trên website và cần số liệu về tổng doanh số bán hàng để tính toán lợi nhuận. Dưới đây là giải pháp mình có sử dụng để tùy chỉnh woocommerce , với dữ liệu được cung cấp bởi tính năng báo cáo của WooCommerce.

Bài này chúng ta sẽ học cách truy xuất dữ liệu cho:

  1. Tổng doanh số bán
  2. Tổng số đơn đặt hàng
  3. Tổng chi phí vận chuyển
  4. Tổng số tiền giảm giá được sử dụng
  5. Tổng số lượng SP đã đặt hàng
  6. Tổng Sales cho mỗi hạng mục

WooCommerce đi kèm với tính năng báo cáo trong bảng điều khiển WordPress. Các đoạn mã sử dụng để tạo báo cáo có thể được tìm thấy trong file  woocommerce/admin/woocommerce-admin-reports.php. Nếu bạn có xây dựng trang web bán hàng sử dụng WooCommerce, bạn khá thân thuộc với màn hình báo cáo kiểu như thế này:

Thống kê tổng doanh số bán hàng

Đoạn mã sau đây sẽ truy vấn cơ sở dữ liệu WordPress của bạn và xuất ra tổng doanh thu mà khách hàng đã mua hàng trên trang web của bạn.

function my1234_get_total_sales() {
 
global $wpdb;
 
$order_totals = apply_filters( 'woocommerce_reports_sales_overview_order_totals', $wpdb->get_row( "
 
SELECT SUM(meta.meta_value) AS total_sales, COUNT(posts.ID) AS total_orders FROM {$wpdb->posts} AS posts
 
LEFT JOIN {$wpdb->postmeta} AS meta ON posts.ID = meta.post_id
 
WHERE meta.meta_key = '_order_total'
 
AND posts.post_type = 'shop_order'
 
AND posts.post_status IN ( '" . implode( "','", array( 'wc-completed', 'wc-processing', 'wc-on-hold' ) ) . "' )
 
" ) );
 
return absint( $order_totals->total_sales);
 
}

Bạn có thể dán đoạn mã trên vào file functions.php của giao diện WordPress đang kích hoạt hoặc viết vào plugin tùy chỉnh. Và chỉ cần in nó ra ngay bên trong file template của bạn hoặc bất cứ nơi nào bạn muốn hiển thị.

Thống kê tổng chi phí vận chuyển

$shipping_total = apply_filters( 'woocommerce_reports_sales_overview_shipping_total', $wpdb->get_var( "
	SELECT SUM(meta.meta_value) AS total_sales FROM {$wpdb->posts} AS posts
 
	LEFT JOIN {$wpdb->postmeta} AS meta ON posts.ID = meta.post_id
	LEFT JOIN {$wpdb->term_relationships} AS rel ON posts.ID=rel.object_ID
	LEFT JOIN {$wpdb->term_taxonomy} AS tax USING( term_taxonomy_id )
	LEFT JOIN {$wpdb->terms} AS term USING( term_id )
 
	WHERE 	meta.meta_key 		= '_order_shipping'
	AND 	posts.post_type 	= 'shop_order'
	AND 	posts.post_status 	= 'publish'
	AND 	tax.taxonomy		= 'shop_order_status'
	AND		term.slug			IN ('" . implode( "','", apply_filters( 'woocommerce_reports_order_statuses', array( 'completed', 'processing', 'on-hold' ) ) ) . "')
" ) );

Tổng số tiền bạn giảm giá (được sử dụng) cho các khách hàng

$discount_total = apply_filters( 'woocommerce_reports_sales_overview_discount_total', $wpdb->get_var( "
	SELECT SUM(meta.meta_value) AS total_sales FROM {$wpdb->posts} AS posts
 
	LEFT JOIN {$wpdb->postmeta} AS meta ON posts.ID = meta.post_id
	LEFT JOIN {$wpdb->term_relationships} AS rel ON posts.ID=rel.object_ID
	LEFT JOIN {$wpdb->term_taxonomy} AS tax USING( term_taxonomy_id )
	LEFT JOIN {$wpdb->terms} AS term USING( term_id )
 
	WHERE 	meta.meta_key 		IN ('_order_discount', '_cart_discount')
	AND 	posts.post_type 	= 'shop_order'
	AND 	posts.post_status 	= 'publish'
	AND 	tax.taxonomy		= 'shop_order_status'
	AND		term.slug			IN ('" . implode( "','", apply_filters( 'woocommerce_reports_order_statuses', array( 'completed', 'processing', 'on-hold' ) ) ) . "')
" ) );

Tổng số tất cả các mặt hàng đã đặt hàng

$order_items = apply_filters( 'woocommerce_reports_sales_overview_order_items', absint( $wpdb->get_var( "
	SELECT SUM( order_item_meta.meta_value )
	FROM {$wpdb->prefix}woocommerce_order_items as order_items
	LEFT JOIN {$wpdb->prefix}woocommerce_order_itemmeta as order_item_meta ON order_items.order_item_id = order_item_meta.order_item_id
	LEFT JOIN {$wpdb->posts} AS posts ON order_items.order_id = posts.ID
	LEFT JOIN {$wpdb->term_relationships} AS rel ON posts.ID = rel.object_ID
	LEFT JOIN {$wpdb->term_taxonomy} AS tax USING( term_taxonomy_id )
	LEFT JOIN {$wpdb->terms} AS term USING( term_id )
	WHERE 	term.slug IN ('" . implode( "','", apply_filters( 'woocommerce_reports_order_statuses', array( 'completed', 'processing', 'on-hold' ) ) ) . "')
	AND 	posts.post_status 	= 'publish'
	AND 	tax.taxonomy		= 'shop_order_status'
	AND 	order_items.order_item_type = 'line_item'
	AND 	order_item_meta.meta_key = '_qty'
" ) ) );

Tổng doanh số trên mỗi mặt hàng

Đoạn mã sau đây sẽ trả về mảng các đối tượng chứa id sản phẩm và tổng doanh thu tương ứng.

$order_items = apply_filters( 'woocommerce_reports_top_earners_order_items', $wpdb->get_results( "
		SELECT order_item_meta_2.meta_value as product_id, SUM( order_item_meta.meta_value ) as line_total FROM {$wpdb->prefix}woocommerce_order_items as order_items
 
		LEFT JOIN {$wpdb->prefix}woocommerce_order_itemmeta as order_item_meta ON order_items.order_item_id = order_item_meta.order_item_id
		LEFT JOIN {$wpdb->prefix}woocommerce_order_itemmeta as order_item_meta_2 ON order_items.order_item_id = order_item_meta_2.order_item_id
		LEFT JOIN {$wpdb->posts} AS posts ON order_items.order_id = posts.ID
		LEFT JOIN {$wpdb->term_relationships} AS rel ON posts.ID = rel.object_ID
		LEFT JOIN {$wpdb->term_taxonomy} AS tax USING( term_taxonomy_id )
		LEFT JOIN {$wpdb->terms} AS term USING( term_id )
 
		WHERE 	posts.post_type 	= 'shop_order'
		AND 	posts.post_status 	= 'publish'
		AND 	tax.taxonomy		= 'shop_order_status'
		AND		term.slug			IN ('" . implode( "','", apply_filters( 'woocommerce_reports_order_statuses', array( 'completed', 'processing', 'on-hold' ) ) ) . "')
		AND 	order_items.order_item_type = 'line_item'
		AND 	order_item_meta.meta_key = '_line_total'
		AND 	order_item_meta_2.meta_key = '_product_id'
		GROUP BY order_item_meta_2.meta_value
	" ));

Sau đó từ kết quả trả về ở trên và sử dụng phép toán cơ bản bạn sẽ tính ra tổng doanh số của bạn:

$totalFoodDonations = 0;
$foodProducts = array(48, 61, 103);
//Gather Total for Food Items
foreach ($order_items as $item) {
 
    if (in_array($item->product_id, $foodProducts)) {
 
        $totalFoodDonations = $item->line_total + $totalFoodDonations;
 
    }
}

Nếu bạn có một cách tốt hơn để làm điều này, Hãy chia sẻ với chúng tôi qua phần bình luận bên ​​dưới.

Để nhận được bài viết mới vui lòng đăng ký kênh kiến thức WordPress từ A-Z ở Form bên dưới. Bạn cũng có thể nhận được sự trợ giúp trên Twitter và Facebook

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Bài viết liên quan:

  1. Thêm sản phẩm WooCommerce sử dụng REST API
  2. Thêm thanh toán Stripe cho WooCommerce
  3. [WooCommerce] Giới hạn một lần mua duy nhất
  4. Thay nút liên hệ cho sản phẩm hết hàng – WooCommerce
  5. Chèn nội dung vào trước sau nút giỏ hàng trong WooCommerce
  6. Top 10 website dành cho dân lập trình
  7. Tùy biến search form với WooCommerce
  8. Part 2 – Thêm custom fields cho product sử dụng advanced custom fields [woocommerce]
  9. Redirect URL sau khi nhấn add to cart [WooCommerce]
  10. Hiển thị hình ảnh đại diện cho danh mục sản phẩm – woocommerce

Chuyên mục: Tài nguyên Tìm kiếm: Woocommerce

Đăng ký nhận bài viết mới

Vui lòng điền chính xác email ở bên dưới để nhận thông báo bài viết mới.

Bạn đã đăng ký thành công!

Lỗi! hãy làm lại.

thông tin của bạn được 100% bảo mật...

Tôi giúp gì cho bạn?

Nhận bài viết mới

Vui lòng điền chính xác email ở bên dưới để nhận thông báo bài viết mới.

Cám ơn bạn đã đăng ký.

Lỗi, hãy làm lại

thông tin của bạn được 100% bảo mật...

HOÀNG WEB

Địa chỉ: Tây Sơn, Phường Quang Trung, Quận Đống Đa, Hà Nội

Hotline: 0987 342 124 (8h:00 – 21h:00)

Email: [email protected]

Website: www.hoangweb.com

KẾT NỐI VỚI TÔI

  • Facebook
  • Snapchat

SẢN PHẨM

  • Plugin Auto-Sync Google Shopping cho WooCommerce
  • Phần mềm chặn click ảo
  • WP2Speed.com – Tăng tốc WordPress

LIÊN KẾT

  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2021 | All rights reserved | HOANG WEB
Mọi hình thức sao chép nội dung trên website này mà chưa được sự đồng ý đều là trái phép.