Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Thiết kế web giá rẻ
    • Thiết kế website WordPress
    • Hosting Miễn Phí 100GB
    • Tích hợp thanh toán MoMo, ViettelPay, Vietcombank, MB..
    • Tối ưu Google PageSpeed
    • Sửa lỗi nâng cấp website
    • Viết plugin WordPress
    • Code Tool theo yêu cầu
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Wordpress » Tùy chỉnh giá sản phẩm trên giỏ hàng WooCommerce

Tùy chỉnh giá sản phẩm trên giỏ hàng WooCommerce

Thứ Ba, 28/04/2020 by Hoàng Quách

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

Một tin vui là dữ liệu giỏ hàng (Cart Object) cho phép bạn tùy chỉnh & sửa đổi dữ liệu để bạn có thể thay đổi với bất kỳ điều kiện nào theo ý muốn.

Trong bài viết này mình sẽ chỉ cho bạn thấy một ví dụ rất đơn giản, giả sử chúng ta cần đặt giá tùy chỉnh cho tất cả các sản phẩm trong giỏ hàng.

add_action( 'woocommerce_before_calculate_totals', 'hoangweb_recalc_price' );
 
function hoangweb_recalc_price( $cart_object ) {
	foreach ( $cart_object->get_cart() as $hash => $value ) {
		$value['data']->set_price( 10 );
	}
}

Khi một khách hàng thêm sản phẩm vào giỏ hàng với một số lượng nhất định (vd 3) mà thuộc một danh mục cụ thể (vd product category có ID =25), do đó các sản phẩm này sẽ được giảm giá 50%. Nhưng điều này không áp dụng cho sản phẩm Lambo (có ID 12345). Xem ảnh minh họa dưới đây.

tùy chỉnh giá sản phẩm trên giỏ hàng woocommerce

add_action( 'woocommerce_before_calculate_totals', 'hoangweb_recalculate_price' );
 
function hoangweb_recalculate_price( $cart_object ) {
 
	if ( is_admin() && ! defined( 'DOING_AJAX' ) )
		return;
 
	// you can always print_r() your object and look what's inside
	//print_r( $cart_object ); exit;
 
	// it is our quantity of products in specific product category
	$quantity = 0;
 
	// $hash = cart item unique hash
	// $value = cart item data
	foreach ( $cart_object->get_cart() as $hash => $value ) {
 
 
		// check if the product is in a specific category and check if its ID isn't 12345
		if( in_array( 25, $value['data']->get_category_ids() ) && $value['product_id'] != 12345 ) {
 
			// if yes, count its quantity
			$quantity += $value['quantity'];
 
		}
 
 
	}
 
	// change prices
	if( $quantity > 3 ) {
		foreach ( $cart_object->get_cart() as $hash => $value ) {
 
 
			// I want to make discounts only for products in category with ID 25
			// and I never want to make discount for the product with ID 12345
			if( in_array( 25, $value['data']->get_category_ids() ) && $value['product_id'] != 12345 ) {
 
				$newprice = $value['data']->get_regular_price() / 2;
 
				// in case the product is already on sale and it is much cheeper with its own discount
				if( $value['data']->get_sale_price() > $newprice )
					$value['data']->set_price( $newprice );
 
			}
 
		}
	}
 
}

Chèn đoạn mã trên vào file functions.php của giao diện WordPress bạn đang kích hoạt.

Chú ý, nếu bạn tạo tùy biến trên trang giỏ hàng trong WooCommerce & đoạn snippet trên có thể không hoạt động, lúc này hãy sử dụng WC()->cart->calculate_totals().

Một điều cần lưu ý thêm, trong khi sử dụng hook woocommerce_before_calculate_totals hãy cẩn thận với các plugin có can thiệp đến giá trên giỏ hàng, chẳng hạn plugin YITH Dynamic Pricing and Discounts.

Để 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

Chuyên mục: Wordpress Tìm kiếm: giỏ hàng, Woocommerce

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

HOÀNG WEB

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

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

Email: [email protected]

Website: www.hoangweb.com

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

  • Facebook
  • GitHub
  • YouTube

SẢN PHẨM

  • Plugin Thanh Toán Quét Mã QR Code Tự Động
  • WP2Speed – Tối ưu Google Speed
  • 23WebHost – Hosting Miễn Phí 100GB

LIÊN KẾT

  • Có nên thuê thiết kế website giá rẻ?
  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2023 | 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.