Tại sao chúng ta nên áp dụng ưu đãi giảm giá với khách hàng đăng nhập?
Ưu đãi giảm giá khi khách hàng là thành viên trên website là một chiến lược tiếp thị thông minh. Đây không chỉ là cách để khuyến khích khách hàng trở lại mua sắm thêm mà còn giúp xây dựng mối quan hệ chặt chẽ hơn với họ. Khi khách hàng đăng nhập, bạn có thể thu thập thông tin về họ để tùy chỉnh trải nghiệm mua sắm và gửi các ưu đãi cá nhân hóa, tạo ra sự tiện lợi và hấp dẫn hơn.
Điều quan trọng là đảm bảo rằng ưu đãi đó là hấp dẫn và giá trị đối với khách hàng. Bạn cũng cần xem xét về cách triển khai ưu đãi này một cách công bằng và minh bạch để tránh gây ra sự không hài lòng cho những khách hàng không đăng nhập hoặc mới.
Hơn nữa, việc xác định và theo dõi hiệu suất của chiến lược này thông qua các phần mềm phân tích và đánh giá phản hồi của khách hàng sẽ giúp bạn điều chỉnh và tối ưu hóa chương trình ưu đãi để mang lại kết quả tốt nhất.
Bạn củng có thể tạo các phiều giảm giá, mã giảm giá áp dụng trên website của mình bằng plugin WooCommerce Smart Coupons

Hướng dẫn sử dụng code
Chèn đoạn code sau đây vào file functions.php của theme hoặc child theme mà bạn đang sử dụng rồi lưu lại. Các bạn cũng có thể sử dụng plugin Code Snippets để chèn nếu không muốn can thiệp trực tiếp vào file theme.
Chỉnh hiển thị giá sản phẩm trên toàn bộ trang website
Bạn nên thay thế 0.50 thành số % giảm giá mà bạn mong muốn khách hàng mình nhận được sau khi đăng nhập
// Thêm bộ lọc để điều chỉnh hiển thị giá sản phẩm
add_filter( 'woocommerce_get_price_html', 'tlw_alter_price_display', 9999, 2 );
// Hàm điều chỉnh hiển thị giá sản phẩm
function tlw_alter_price_display( $price, $product ) {
// Nếu đang ở trang quản trị, không thay đổi giá
if ( is_admin() ) return $price;
// Nếu giá sản phẩm là rỗng, không thay đổi giá
if ( '' === $product->get_price() ) return $price;
// Nếu khách hàng đã đăng nhập, áp dụng chiết khấu 50%
if ( wc_current_user_has_role( 'customer' ) ) {
if ( $product->is_type( 'simple' ) || $product->is_type( 'variation' ) ) {
// Nếu sản phẩm đang được giảm giá, giảm giá 50%
if ( $product->is_on_sale() ) {
$price = wc_format_sale_price( wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) ) * 0.80, wc_get_price_to_display( $product ) * 0.50 ) . $product->get_price_suffix();
} else {
// Nếu không, giảm giá 50%
$price = wc_price( wc_get_price_to_display( $product ) * 0.50 ) . $product->get_price_suffix();
}
} elseif ( $product->is_type( 'variable' ) ) {
// Nếu là sản phẩm biến thể
$prices = $product->get_variation_prices( true );
if ( empty( $prices['price'] ) ) {
// Nếu không có giá biến thể, hiển thị thông báo rỗng
$price = apply_filters( 'woocommerce_variable_empty_price_html', '', $product );
} else {
$min_price = current( $prices['price'] );
$max_price = end( $prices['price'] );
$min_reg_price = current( $prices['regular_price'] );
$max_reg_price = end( $prices['regular_price'] );
// Nếu có nhiều mức giá biến thể, giảm giá cho mỗi mức
if ( $min_price !== $max_price ) {
$price = wc_format_price_range( $min_price * 0.50, $max_price * 0.50 );
} elseif ( $product->is_on_sale() && $min_reg_price === $max_reg_price ) {
// Nếu có giá bán và giá thường bằng nhau, giảm giá 50%
$price = wc_format_sale_price( wc_price( $max_reg_price * 0.50 ), wc_price( $min_price * 0.50 ) );
} else {
// Nếu không, giảm giá 50%
$price = wc_price( $min_price * 0.50 );
}
$price = apply_filters( 'woocommerce_variable_price_html', $price . $product->get_price_suffix(), $product );
}
}
}
return $price;
}
Chỉnh hiển thị giá sản phẩm trong giỏ hàng và tổng tiền
Bạn nên thay thế 0.50 thành số % giảm giá mà bạn mong muốn khách hàng mình nhận được
// Thêm hành động trước khi tính tổng số tiền trong giỏ hàng
add_action( 'woocommerce_before_calculate_totals', 'tlw_alter_price_cart', 9999 );
// Hàm điều chỉnh giá trong giỏ hàng
function tlw_alter_price_cart( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
// Nếu đã thực hiện hành động tính tổng số tiền trong giỏ hàng ít nhất 2 lần, không thay đổi giá
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) return;
// Nếu khách hàng chưa đăng nhập, không thay đổi giá
if ( ! wc_current_user_has_role( 'customer' ) ) return;
// Lặp qua từng mục trong giỏ hàng và giảm giá 50%
foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
$price = $product->get_price();
$cart_item['data']->set_price( $price * 0.50 );
}
}
Lưu ý: tính năng này hiện tương thích với các sản phẩm Đơn giản và Biến đổi.
Plugin bạn tham khảo thêm:

