Code tự động tạo mã giảm giá khi khách đăng ký tài khoản trong WooCommerce
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.
Mục lục nội dung bài viếtHiệ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.

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é.
