Code tự động áp dụng mã giảm giá khi khách vào link trong WooCommerce
Bài viết này mình sẽ hướng dẫn bạn cách tự động áp dụng mã giảm giá khi khách vào link trong WooCommerce nhé.
Bình thường khách phải tự nhớ rồi gõ mã giảm giá ở trang giỏ hàng hoặc thanh toán, rất nhiều khách tới bước này là bỏ ngang. Khi chạy quảng cáo, đăng bài Facebook hay gửi tin nhắn Zalo, bạn sẽ muốn gửi 1 đường link mà khách bấm vào mua hàng là mã giảm giá tự áp dụng luôn, khỏi cần nhập tay. WooCommerce mặc định không có tính năng này, muốn có thì bạn phải code thêm nhé.
Mục lục nội dung bài viếtHiện
Thêm code tự động áp dụng mã giảm giá qua link
Đầu tiên bạn chỉ cần thêm code dưới vào file functions.php của child theme nhé. Nhớ sao lưu file trước khi sửa, và đừng chèn trực tiếp vào theme cha vì khi theme cập nhật sẽ mất code.
// Tự động áp dụng mã giảm giá khi khách vào link chứa mã - Ngoc Nguyen
// Bước 1: khi thấy ?coupon=MA trên link thì lưu mã vào session
add_action('wp_loaded', 'nn_save_coupon_from_url', 99);
function nn_save_coupon_from_url() {
if (empty($_GET['coupon'])) return;
if (!function_exists('WC') || !WC()->session) return;
$code = sanitize_text_field(wp_unslash($_GET['coupon']));
WC()->session->set('nn_auto_coupon', $code);
}
// Bước 2: khi khách mở giỏ hàng hoặc trang thanh toán thì tự áp dụng mã đã lưu
add_action('woocommerce_before_cart', 'nn_apply_saved_coupon');
add_action('woocommerce_before_checkout_form', 'nn_apply_saved_coupon');
function nn_apply_saved_coupon() {
if (!WC()->session || !WC()->cart) return;
$code = WC()->session->get('nn_auto_coupon');
if ($code && !WC()->cart->has_discount($code)) {
WC()->cart->apply_coupon($code);
}
}
Đoạn code này hoạt động theo 2 bước: khi khách vào bất kỳ trang nào có đuôi ?coupon=MÃ trên link, mã sẽ được lưu tạm vào session của khách. Sau đó khi khách mở trang giỏ hàng hoặc trang thanh toán, code tự áp dụng mã đó vào giỏ và WooCommerce sẽ hiện thông báo áp dụng thành công như khi khách nhập tay.
Cách tạo link gửi cho khách
Sau khi thêm code, bạn chỉ cần gắn thêm ?coupon=MÃ vào sau bất kỳ link nào của shop là dùng được. Ví dụ shop của bạn có mã GIAM10 thì link gửi khách sẽ là:
https://shopcuaban.com/?coupon=GIAM10
https://shopcuaban.com/gio-hang/?coupon=GIAM10
Khách bấm link, đi mua hàng như bình thường, tới giỏ hàng là thấy mã đã được áp sẵn như hình bên dưới. Bạn gắn link này vào bài quảng cáo, bài đăng Facebook hoặc tin nhắn Zalo đều được.

Lưu ý khi dùng
Mã giảm giá vẫn phải được tạo trước trong WooCommerce → Marketing → Mã giảm giá, code này chỉ tự điền và áp dụng giúp khách chứ không tự sinh mã. Nếu mã hết hạn hoặc không tồn tại, WooCommerce sẽ báo lỗi như khi khách nhập sai mã bằng tay. Mỗi link chỉ chứa 1 mã, và nếu khách bấm tiếp 1 link chứa mã khác thì mã mới sẽ là mã được lưu sau cùng.
Kết luận
Vậy là với đoạn code trên bạn có thể dễ dàng tự động áp dụng mã giảm giá qua link trong WooCommerce rồi nhé. Bớt được 1 thao tác nhập mã cho khách là tỉ lệ hoàn tất đơn hàng cải thiện rõ rệt, nhất là với khách mua qua điện thoại từ quảng cáo.
Nếu cần mình kèm 1-1 về WooCommerce hoặc hỗ trợ custom tính năng cho website thì cứ liên hệ mình nhé.
