Hiện tại, để đăng ký tên miền quốc tế, chúng ta sẽ liên kết với 1 hoặc vài nhà cung cấp tên miền (registrar) như namesilo, namecheap, resellerclub,…
Nhưng khi đăng ký, thông tin khách hàng có dấu sẽ bị thông báo lỗi không đăng ký được.
Hôm nay mình xin chia sẽ 1 đoạn code, nhúng vào hook của whmcs để cắt dấu profile khách hàng khi đăng ký tên miền quốc tế.
Chúng ta vào thư mục includes -> hooks, tạo file tên là fix_utf8_name.php
Sau đó edit file và thêm đoạn code sau vào rồi save lại
<?php function hook_transliterate($string) { $string = preg_replace("/(à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ)/", 'a', $string); $string = preg_replace("/(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)/", 'e', $string); $string = preg_replace("/(ì|í|ị|ỉ|ĩ)/", 'i', $string); $string = preg_replace("/(ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ)/", 'o', $string); $string = preg_replace("/(ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)/", 'u', $string); $string = preg_replace("/(ỳ|ý|ỵ|ỷ|ỹ)/", 'y', $string); $string = preg_replace("/(đ)/", 'd', $string); $string = preg_replace("/(À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|Ắ|Ặ|Ẳ|Ẵ)/", 'A', $string); $string = preg_replace("/(È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ)/", 'E', $string); $string = preg_replace("/(Ì|Í|Ị|Ỉ|Ĩ)/", 'I', $string); $string = preg_replace("/(Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|Ớ|Ợ|Ở|Ỡ)/", 'O', $string); $string = preg_replace("/(Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ)/", 'U', $string); $string = preg_replace("/(Ỳ|Ý|Ỵ|Ỷ|Ỹ)/", 'Y', $string); $string = preg_replace("/(Đ)/", 'D', $string); return $string; } ?>