Active License Elementor Pro chỉ với 300k/năm/domain Shop Now
Mới Dịch vụ thiết kế website, xử lý mã độc & tối ưu tốc độ chuyên sâu

Code tự động tạo mã giảm giá khi khách đăng ký tài khoản trong WooCommerce

Danh sách mã giảm giá trong trang quản trị WooCommerce, dòng đầu là mã CHAOMUNG123 giảm 10%, giới hạn 1 lần dùng, chưa dùng lần nào

Bài viết này mình sẽ hướng dẫn bạn cách tự động tạo mã giảm giá khi khách đăng ký tài khoản trong WooCommerce nhé.

Khách vừa đăng ký tài khoản là lúc họ sẵn sàng mua nhất, tặng ngay một mã giảm giá cho đơn đầu tiên thì tỉ lệ chốt đơn cao hơn hẳn so với để họ tự mò mã ở đâu đó. Vấn đề là WooCommerce mặc định không tự tạo mã khi có khách đăng ký, bạn phải tạo tay từng mã rồi gửi tay từng email, khách đông lên là không xuể. Đoạn code dưới đây tự làm hết cả hai việc đó cho bạn.

Thêm code tự tạo mã giảm giá

Bạn chỉ cần thêm code dưới vào cuối file functions.php của child theme nhé. Nhớ sao lưu file trước khi sửa, và đừng chèn vào theme cha vì khi theme cập nhật sẽ mất code.

<?php
// Tự động tạo mã giảm giá chào mừng khi khách đăng ký tài khoản trong WooCommerce
// Cách dùng: dán code này vào cuối file functions.php của child theme.
// Mỗi khách mới đăng ký qua trang Tài khoản hoặc lúc thanh toán sẽ tự nhận
// một mã giảm 10% cho đơn đầu tiên, dùng 1 lần, hết hạn sau 30 ngày.
// Mã chỉ dùng được với đúng email đã đăng ký nên khách khác không xài ké được.
add_action( 'woocommerce_created_customer', 'nn_tao_ma_giam_gia_chao_mung', 10, 3 );
function nn_tao_ma_giam_gia_chao_mung( $customer_id, $new_customer_data, $password_generated ) {
    $email = isset( $new_customer_data['user_email'] ) ? $new_customer_data['user_email'] : '';
    if ( ! $email ) {
        return;
    }
    $ma = 'CHAOMUNG' . $customer_id;
    if ( wc_get_coupon_id_by_code( $ma ) ) {
        return;
    }
    $coupon = new WC_Coupon();
    $coupon->set_code( $ma );
    $coupon->set_discount_type( 'percent' );
    $coupon->set_amount( 10 );
    $coupon->set_usage_limit( 1 );
    $coupon->set_usage_limit_per_user( 1 );
    $coupon->set_email_restrictions( array( $email ) );
    $coupon->set_date_expires( time() + 30 * DAY_IN_SECONDS );
    $coupon->set_description( 'Mã chào mừng khách đăng ký tài khoản mới.' );
    $coupon->save();
    $tieu_de  = 'Mã giảm giá 10% chào mừng bạn đến với ' . get_bloginfo( 'name' );
    $noi_dung = 'Chào bạn,' . "\n\n";
    $noi_dung .= 'Cảm ơn bạn đã tạo tài khoản. Mã giảm giá của bạn là: ' . $ma . "\n";
    $noi_dung .= 'Mã giảm 10% cho đơn hàng đầu tiên, dùng 1 lần và hết hạn sau 30 ngày.' . "\n\n";
    $noi_dung .= 'Chúc bạn mua sắm vui vẻ!';
    wp_mail( $email, $tieu_de, $noi_dung );
}

Code trên móc vào hook woocommerce_created_customer, hook này chạy ngay sau khi tài khoản khách được tạo thành công, cả khi khách đăng ký ở trang Tài khoản lẫn khi tạo tài khoản lúc thanh toán. Mã giảm giá được đặt tên là CHAOMUNG cộng với ID của khách, ví dụ CHAOMUNG123, nên mỗi khách có một mã riêng không bao giờ trùng nhau. Hàm tạo mã bằng đối tượng WC_Coupon: giảm 10%, dùng 1 lần, chỉ áp được với đúng email đã đăng ký nhờ set_email_restrictions nên khách khác không xài ké được, và tự hết hạn sau 30 ngày nhờ set_date_expires. Cuối cùng code gửi email cho khách bằng wp_mail để báo mã, khách không cần chờ shop gửi tay.

Kiểm tra mã giảm giá tự tạo

Trước hết bạn bật đăng ký tài khoản ở WooCommerce → Cài đặt → Tài khoản & Bảo mật, tích chọn cho phép khách tạo tài khoản ở trang Tài khoản hoặc trong lúc thanh toán. Sau đó bạn đăng ký thử một tài khoản mới, rồi vào WooCommerce → Tiếp thị → Mã giảm giá sẽ thấy mã CHAOMUNG kèm ID tài khoản vừa tạo, mở ra xem sẽ thấy đúng mức giảm 10%, giới hạn 1 lần dùng và ngày hết hạn sau 30 ngày. Hộp thư của tài khoản test cũng nhận được email báo mã. Thử áp mã ở trang thanh toán thì đơn được giảm 10%, dùng lần thứ hai sẽ báo mã đã hết lượt dùng.

Danh sách mã giảm giá trong trang quản trị WooCommerce, dòng đầu là mã CHAOMUNG123 giảm 10%, giới hạn 1 lần dùng, chưa dùng lần nào
Kết quả: mã CHAOMUNG123 tự tạo xong nằm trong danh sách mã giảm giá, giảm 10% cho đơn đầu tiên, giới hạn 1 lần dùng và chỉ dùng được với đúng email đã đăng ký.

Lưu ý khi dùng

Con số 10 trong code là mức giảm 10%, bạn đổi thành 15 hay 20 tùy chương trình của shop, và số 30 là số ngày mã còn hiệu lực. Nếu shop dùng plugin đăng nhập bằng mạng xã hội tạo tài khoản ngoài luồng WooCommerce thì hook này có thể không chạy, bạn kiểm tra lại bằng một tài khoản test trước khi chạy chương trình thật. Bài này khác với bài code tự động áp dụng mã giảm giá khi khách vào link trong WooCommerce: bài đó áp sẵn một mã có sẵn khi khách bấm link, còn bài này tạo mã mới riêng cho từng khách vừa đăng ký. Tính năng này đi chung với bài code giới hạn mỗi khách chỉ mua 1 sản phẩm khuyến mãi trong WooCommerce là thành combo khuyến mãi kiểm soát được cho shop.

Kết luận

Vậy là chỉ với 1 đoạn code ngắn bạn đã tự động tạo mã giảm giá khi khách đăng ký tài khoản trong WooCommerce mà không cần cài thêm plugin rồi nhé. Tính năng này đi chung với bài code tự động áp dụng mã giảm giá khi khách vào link trong WooCommerce và bài code giới hạn mỗi khách chỉ mua 1 sản phẩm khuyến mãi trong WooCommerce là thành bộ công cụ mã giảm giá tự động cho shop WooCommerce.

Nếu cần mình kèm 1-1 về WooCommerce thì cứ liên hệ mình nhé.

Nhân Viên

Nhân Viên

Web Developer & WordPress Expert

Ngọc Nguyễn - Chuyên gia thiết kế Website WordPress, tối ưu tốc độ 90+ và xử lý dứt điểm mã độc. Đam mê chia sẻ kiến thức hữu ích đến cộng đồng lập trình & webmaster.

Để lại bình luận hoặc thắc mắc

Email của bạn sẽ không được hiển thị công khai.

Ngọc Nguyễn
Ngọc Nguyễn
| Thiết kế Website | Hosting tốc độ cao | Giải pháp hạ tầng | Fix lỗi WordPress, mã độc | Tối ưu tốc độ | Thiết kế Website | Hosting tốc độ cao | Giải pháp hạ tầng | Fix lỗi WordPress, mã độc | Tối ưu tốc độ
Tư vấn miễn phí