Đây là đoạn code PHP được thiết kế để kiểm tra tính hợp lệ và độ tin cậy của số điện thoại trong quy trình thanh toán của một trang web thương mại điện tử (có thể là WooCommerce do sử dụng hàm wc_add_notice
).
1 |
|
Giải thích code
Dưới đây là giải thích chi tiết từng phần:
1. Hàm is_phone_in_blocked_list($phone_number)
:
- Mục đích: Kiểm tra xem một số điện thoại có nằm trong danh sách các số điện thoại bị chặn (ví dụ: những số điện thoại có hành vi lừa đảo, spam, v.v.).
- Cách hoạt động:
- Nhận một số điện thoại làm tham số đầu vào.
- Duy trì một mảng
$blocked_phone_numbers
chứa các số điện thoại bị chặn. - Sử dụng hàm
in_array
để kiểm tra xem số điện thoại có tồn tại trong mảng này không. - Trả về
true
nếu số điện thoại nằm trong danh sách, ngược lại trả vềfalse
.
2. Hàm is_valid_vietnam_phone_number($phone_number)
:
- Mục đích: Xác minh xem một số điện thoại có tuân thủ định dạng số điện thoại hợp lệ tại Việt Nam hay không.
- Cách hoạt động:
- Nhận một số điện thoại làm tham số đầu vào.
- Sử dụng biểu thức chính quy (regular expression)
'/^(05|03|07|08|09)[0-9]{8}$/'
để kiểm tra định dạng. Biểu thức này khớp với các số điện thoại bắt đầu bằng 05, 03, 07, 08 hoặc 09, tiếp theo là 8 chữ số. - Trả về
true
nếu số điện thoại hợp lệ, ngược lại trả vềfalse
.
3. Hàm check_billing_phone_before_checkout()
:
- Mục đích: Thực hiện kiểm tra số điện thoại thanh toán trước khi khách hàng hoàn tất đơn hàng.
- Cách hoạt động:
- Lấy số điện thoại từ trường nhập liệu
billing_phone
trong biểu mẫu đặt hàng. - Gọi hàm
sanitize_phone_number
để làm sạch số điện thoại, loại bỏ các ký tự không phải số. - Gọi hàm
is_phone_in_blocked_list
để kiểm tra xem số điện thoại có bị chặn không. Nếu có, hiển thị thông báo lỗi cho khách hàng. - Gọi hàm
is_valid_vietnam_phone_number
để kiểm tra định dạng số điện thoại. Nếu không hợp lệ, hiển thị thông báo lỗi khác.
- Lấy số điện thoại từ trường nhập liệu
4. Hàm sanitize_phone_number($phone_number)
:
- Mục đích: Loại bỏ các ký tự không phải số khỏi số điện thoại.
- Cách hoạt động:
- Nhận một số điện thoại làm tham số đầu vào.
- Sử dụng
preg_replace
với biểu thức chính quy'/\D/'
để thay thế tất cả các ký tự không phải số bằng một chuỗi rỗng. - Trả về số điện thoại đã được làm sạch.
Tổng quan:
Đoạn mã này cung cấp một cơ chế để đảm bảo rằng số điện thoại được cung cấp bởi khách hàng trong quá trình thanh toán là hợp lệ (theo định dạng Việt Nam) và không nằm trong danh sách các số điện thoại bị chặn. Điều này giúp ngăn chặn các hành vi lừa đảo và đảm bảo rằng thông tin liên lạc với khách hàng là chính xác.