Plugin WordPress Hạ Tầng Chat
Plugin Hạ Tầng Chat thêm widget chat Hạ Tầng vào mọi trang của website WordPress, để đội của bạn trả lời khách trên website trong cùng hộp thư với Zalo, Messenger, Instagram, TikTok, WhatsApp, Telegram và email. Plugin nạp đúng widget web qua wp_enqueue_script và thêm cài đặt vị trí, ngôn ngữ và người dùng đã đăng nhập.
Plugin 0.2.1 · WordPress 6.0+ · PHP 7.4+ · GPLv2 trở lên · wordpress.org · Changelog
Trước khi bắt đầu
- Một tài khoản Hạ Tầng có kênh website. Bạn cần Site ID (
site_...) của nó: trong dashboard, mở Hỗ trợ → Kênh, chọn website và chép id trong đoạn mã cài đặt. - Một tài khoản WordPress quản lý được plugin và cài đặt (quản trị viên).
Cài plugin
- Trong WordPress, vào Plugins → Add New, tìm "Hạ Tầng Chat", cài rồi kích hoạt. Bạn cũng có thể tải tệp zip của plugin lên qua Plugins → Add New → Upload Plugin.
- Vào Settings → Hạ Tầng Chat, dán Site ID rồi bấm Save Changes.
- Mở một trang bất kỳ của website. Bong bóng chat xuất hiện, và website trong dashboard Hạ Tầng hiện trạng thái đã cài.
Widget chỉ tải ở phía công khai của website, không bao giờ trong wp-admin. Khi Site ID còn trống, plugin không tải gì.
Cài đặt
Mọi cài đặt nằm ở Settings → Hạ Tầng Chat và được lưu trong một option là hatang_chat. Bảng dưới dùng nhãn tiếng Việt mà trang cài đặt hiện khi ngôn ngữ quản trị là tiếng Việt.
| Cài đặt | Giá trị | Mặc định |
|---|---|---|
| Site ID | Id của website trong dashboard Hạ Tầng | trống (tắt widget) |
| Máy chủ widget | Nơi tải widget.js | https://chat.hatang.dev |
| Vị trí | Góc dưới bên phải, Góc dưới bên trái | Góc dưới bên phải |
| Ngôn ngữ | Theo ngôn ngữ WordPress (từng trang), Theo ngôn ngữ trình duyệt của khách, Tiếng Việt, English | Theo ngôn ngữ WordPress (website cài từ trước 0.2.0 giữ ngôn ngữ trình duyệt) |
| Người dùng đã đăng nhập | "Gửi tên và email của người dùng vào hộp thư" | Bật |
- Theo ngôn ngữ WordPress đọc ngôn ngữ của trang đang được phục vụ (
determine_locale()), nên chạy đúng từng trang với Polylang và WPML. Locale bắt đầu bằngvicho tiếng Việt; mọi locale khác cho tiếng Anh. - Theo ngôn ngữ trình duyệt để widget tự chọn: theo trình duyệt của khách, hoặc ngôn ngữ mặc định đặt cho site trong dashboard Hạ Tầng.
- Mọi thứ khác (màu, giờ làm việc, lời chào, form offline) lấy từ cài đặt website trong dashboard Hạ Tầng. Với tuỳ chọn mà plugin không có, như
offsethayhideLauncher, tự thêmwindow.HATANG_CONFIGtrước script widget, hoặc dùng JS API trong theme.
Người dùng đã đăng nhập
Khi bật Người dùng đã đăng nhập, plugin gọi identify cho khách đã đăng nhập với tên hiển thị và email WordPress. Hộp thư coi đó là thông tin khách tự khai, không phải danh tính đã xác minh.
Để hộp thư đánh dấu người dùng là đã xác minh và gộp hội thoại với các phiên trước của cùng người (kể cả trong ứng dụng di động), trả về chữ ký từ filter hatang_chat_identity_hash. Chữ ký là HMAC-SHA256 của user id WordPress với identity secret của site. Lấy secret trong dashboard Hạ Tầng: Hỗ trợ → Kênh → chọn website → Mã bí mật định danh → Tạo mới & hiển thị. Giữ nó trong wp-config.php, đừng để trong tệp theme mà người khác đọc được.
define( 'HATANG_IDENTITY_SECRET', 'identity-secret-cua-ban' );
add_filter( 'hatang_chat_identity_hash', function ( $hash, $user ) {
return hash_hmac( 'sha256', (string) $user->ID, HATANG_IDENTITY_SECRET );
}, 10, 2 );
Khi filter trả về giá trị, plugin thêm userId (user id WordPress dạng chuỗi) và hash vào lệnh identify. Ý nghĩa của chữ ký, cách gộp phiên và lưu ý riêng tư ở Nhận diện khách.
Filter cho lập trình viên
| Filter | Tham số | Giá trị trả về |
|---|---|---|
hatang_chat_locale | $locale ("vi", "en" hoặc null), $setting ("wp", "", "vi" hoặc "en") | "vi", "en", hoặc null để widget tự chọn |
hatang_chat_identity_hash | $hash (null), $user (WP_User) | Chuỗi hex HMAC-SHA256, hoặc null cho danh tính chưa xác minh |
Ép tiếng Anh trên một trang, bất kể cài đặt:
add_filter( 'hatang_chat_locale', function ( $locale, $setting ) {
return is_page( 'en' ) ? 'en' : $locale;
}, 10, 2 );
Plugin gửi gì tới Hạ Tầng
Script widget được tải từ chat.hatang.dev trên các trang công khai của website. Khi khách mở một trang, nó gửi URL và tiêu đề trang, ngôn ngữ trình duyệt của khách và, nếu bạn bật, tên và email của người dùng đã đăng nhập. Xem Điều khoản và Chính sách quyền riêng tư.
Bản dịch trang quản trị
Trang cài đặt có bản tiếng Việt (languages/hatang-chat-vi.po). WordPress tự chọn bản dịch theo ngôn ngữ quản trị.
Gỡ bỏ
Huỷ kích hoạt rồi xoá plugin trong Plugins. Plugin không có bước dọn dẹp khi gỡ, nên cài đặt vẫn nằm trong option hatang_chat; xoá bằng wp option delete hatang_chat nếu muốn cơ sở dữ liệu sạch. Hội thoại vẫn nằm trong tài khoản Hạ Tầng cho đến khi bạn xoá ở đó.
Changelog
- 0.2.3: link tác giả trỏ về hatang.dev; readme dẫn tới hướng dẫn cài đặt và hướng dẫn cho lập trình viên này, và trả lời những hội thoại nào dùng chung hộp thư.
- 0.2.2: plugin đổi tên thành Ha Tang Chat (Hạ Tầng trong tiếng Việt); trang chủ plugin là bài trợ giúp hatang.dev/vi/help/integrations/wordpress; trang cài đặt và readme gọi đúng Hỗ trợ khách hàng → Kênh.
- 0.2.1: trang cài đặt và readme trỏ tới Hỗ trợ → Kênh, nơi dashboard Hạ Tầng giờ liệt kê các website; readme liệt kê mọi kênh dùng chung hộp thư.
- 0.2.0: ngôn ngữ có thể theo ngôn ngữ WordPress của từng trang (chạy với Polylang và WPML); filter mới
hatang_chat_locale; trang cài đặt có bản tiếng Việt. - 0.1.1: nạp widget qua
wp_enqueue_script. - 0.1.0: bản đầu tiên: đoạn mã widget, cài đặt vị trí và ngôn ngữ, nhận diện người dùng đã đăng nhập.
Bước tiếp theo
- Widget web và JS API: lệnh, sự kiện và
HATANG_CONFIG. - Nhận diện khách: danh tính có chữ ký và gộp phiên.
- Cài widget: nền tảng khác, hoặc WordPress không dùng plugin.