Init Chat Engine – Plugin tích hợp chatbox nhanh gọn cho trang chủ WordPress

Phiên bản: 1.2.8 English version

Init Chat Engine – Plugin tích hợp chatbox nhanh gọn cho trang chủ WordPress
Init Chat Engine là plugin chatbox tối giản dành cho WordPress, giúp bạn nhanh chóng thêm khung trò chuyện cộng đồng vào trang chủ hoặc bất kỳ vị trí nào chỉ với một shortcode duy nhất. Hỗ trợ gửi tin nhắn ẩn danh, cập nhật realtime qua polling, không dùng jQuery, không cần cấu hình phức tạp. Giao diện có thể override dễ dàng từ theme, hoạt động mượt trên mọi hosting mà không cần WebSocket.

Tính năng chính

  • Shortcode [init_chatbox] đơn giản – chèn được ở mọi nơi
  • Cho phép khách gửi tin nhắn (có thể bật/tắt trong cài đặt)
  • Không dùng jQuery, không reload – cập nhật qua polling mỗi 3 giây
  • Có thể override template từ theme để tự tùy biến giao diện
  • CSS tối giản – có thể tắt và dùng CSS của theme (hoặc UIkit, Tailwind…)

Hiển thị chatbox với shortcode

Sử dụng shortcode trong bài viết, page builder hoặc file template:

[init_chatbox]

Không có tham số phức tạp – chỉ cần chèn là hiển thị. Nếu bạn muốn tùy biến thêm, hãy override template như hướng dẫn bên dưới.

Override template dễ dàng

Bạn có thể thay đổi hoàn toàn giao diện chatbox bằng cách copy template mặc định vào theme:

your-theme/init-chat-engine/
└── chatbox.php

Sau đó sửa HTML, thêm class UIkit/Tailwind hoặc đổi thứ tự phần tử tùy ý. Không cần hook, không cần action.

Cài đặt nhanh

  1. Tải plugin và giải nén vào thư mục /wp-content/plugins/init-chat-engine/
  2. Kích hoạt plugin từ menu Plugins trong admin
  3. Thêm shortcode [init_chatbox] vào trang chủ hoặc nơi cần hiển thị chatbox
  4. Tùy chọn: vào Settings → Init Chat Engine để bật/tắt cho phép khách, chỉnh giới hạn tin nhắn, v.v.

Tương thích và hiệu suất

  • Tương thích WordPress 5.5 trở lên
  • Yêu cầu PHP từ 7.4+
  • Không dùng WebSocket – hoạt động tốt trên mọi hosting
  • Không dùng jQuery – viết bằng JavaScript thuần

Bắt đầu ngay

Bạn đang tìm một chatbox đơn giản, nhanh, nhẹ, dễ nhúng và dễ chỉnh sửa giao diện? Init Chat Engine là lựa chọn hoàn hảo cho trang chủ hoặc bất kỳ nơi nào cần tạo không gian trò chuyện realtime cho cộng đồng!

Đánh giá

4.5/5 (77)

Changelog

  • 1.2.8 – Sửa phân trang tin nhắn không đúng thứ tự
    • Hotfix: sửa lỗi tin nhắn bị đảo thứ tự khi tải thêm lịch sử (Load more).
    • API /messages (tham số before_id) đổi ORDER BY id từ ASC → DESC để giữ dữ liệu đúng theo thời gian.
    • Frontend bỏ .reverse() ở Load More và dùng prepend() trực tiếp theo thứ tự server trả về.
    • Luồng hiển thị tin nhắn luôn đảm bảo cũ → mới mượt mà, không bị lộn xộn khi tải nhiều batch.
    • Thay đổi nội bộ, không ảnh hưởng UI hoặc DB schema.
  • 1.2.7 – Sửa thứ tự tin nhắn khi tải lịch sử (Load More)
    • Fix lỗi tin nhắn bị đảo ngược thứ tự khi người dùng bấm Load more.
    • API /messages giờ trả dữ liệu theo thứ tự thời gian tăng dần (ASC) cho cả 3 trường hợp:
      • Load lần đầu
      • Load tin nhắn cũ (before_id)
      • Realtime polling (after_id)
    • Frontend không còn phải tự đảo mảng nữa — chỉ cần prepend hoặc append theo mode là đủ.
    • Cải thiện độ mượt của timeline khi tải lịch sử: không còn nhảy vị trí hay nhảy scroll.
    • Thay đổi nội bộ, không ảnh hưởng UI, DB schema hoặc logic lưu trữ.
  • 1.2.6 – Tăng cường Word Filter Engine & bổ sung hooks mở rộng
    • Tái thiết kế Word Filter Engine với cơ chế substring detection hung hãn (chặn https://, domain, text mã hoá, spam link).
    • Tôn trọng đầy đủ cài đặt hiện có: Enable Word Filtering, Blocked Words, Word Filter Exceptions.
    • Chuẩn hoá xử lý Unicode (NFC) và loại bỏ các dòng trống / dòng comment (#comment) trong danh sách từ cấm.
    • Giữ cơ chế bypass role và quyền Administrator luôn được whitelist.
    • Không thêm tuỳ chọn UI mới — chỉ mở rộng qua Filters/Actions dành cho developer.
    • Thêm hook mở rộng:
      init_plugin_suite_chat_engine_word_filter_strategy,
      init_plugin_suite_chat_engine_blocked_words,
      init_plugin_suite_chat_engine_bypass_filter,
      init_plugin_suite_chat_engine_word_block_hit.
    • Hoàn toàn tương thích ngược (backward-compatible), không phá vỡ cấu hình cũ.
  • 1.2.5 – Bổ sung nút Xóa tất cả tin nhắn & vá bảo mật hiển thị nội dung
    • Thêm nút quản trị mới “Xóa tất cả tin nhắn” trong khu vực Hành động nhanh trên trang quản lý chat.
    • Chức năng chỉ khả dụng cho Administrator, có kiểm tra quyền đầy đủ (manage_options).
    • Sử dụng TRUNCATE trong transaction để xóa toàn bộ dữ liệu nhanh, an toàn và đảm bảo toàn vẹn bảng.
    • Tự động đặt lại các thống kê liên quan: total_messages, messages_today, active_users_today.
    • Ghi log hành động (chỉ khi WP_DEBUG bật) để hỗ trợ truy vết và kiểm tra nội bộ.
    • Đảm bảo tuân thủ chuẩn WPCS – thêm chỉ thị // phpcs:ignore đúng vị trí để loại bỏ cảnh báo hợp lệ.
    • Tăng cường lớp bảo mật cho quá trình hiển thị nội dung chat nhằm ngăn chèn hình ảnh hoặc HTML không hợp lệ.
    • Cải thiện độ ổn định tổng thể và bảo mật trong môi trường chat công cộng.
  • 1.2.4 – Tái cấu trúc FX Keyword Engine cho từng tin nhắn
    • Tái thiết kế hoàn toàn FX Keyword Engine để xử lý theo từng tin nhắn thay vì quét toàn bộ DOM.
    • Loại bỏ cơ chế TreeWalker quét toàn bộ, thay bằng xử lý nội tuyến ngay khi message được render.
    • Giới thiệu hai helper mới: getCompiledFXRules()applyFXInMessageContainer() – biên dịch và áp dụng từ khóa nhanh gọn.
    • Hệ thống từ khóa FX giờ chỉ biên dịch một lần duy nhất và tái sử dụng cho tất cả tin nhắn.
    • Xóa bỏ các hàm dư thừa: initChatboxReplaceFXKeywords(), safeReplaceFXKeywordsInDOM(), runFXIfHasMessages().
    • Tăng độ chính xác khi phát hiện từ khóa bằng cách gộp toàn bộ pattern vào một biểu thức regex với named group.
    • Đảm bảo tương thích đầy đủ với FX_KEYWORDS và hàm runEffect() hiện có.
    • Giảm triệt để tải DOM khi render hàng loạt tin nhắn hoặc tải lịch sử, không còn quét lại toàn trang.
    • Cải thiện tốc độ xử lý đáng kể – hiệu ứng FX hiển thị ngay lập tức khi tin nhắn được tạo.
    • Thay đổi nội bộ, không ảnh hưởng giao diện người dùng; tập trung tối ưu hiệu năng và độ ổn định.
  • 1.2.3 – Tích hợp an toàn Init FX Engine & tối ưu hiệu năng DOM
    • Thêm hook tích hợp an toàn với plugin Init FX Engine để đồng bộ xử lý hiệu ứng từ khóa.
    • Hệ thống chat tự động gọi hàm replaceFXKeywordsInDOM() chỉ khi có tin nhắn mới được tải.
    • Bổ sung kiểm tra an toàn typeof trước khi gọi plugin ngoài nhằm tránh lỗi khi plugin chưa kích hoạt.
    • Giới thiệu helper mới safeRunFX() – chạy bất đồng bộ qua requestIdleCallback hoặc requestAnimationFrame, tránh nghẽn UI.
    • Thêm hàm nội bộ initChatboxReplaceFXKeywords() – chỉ quét trong vùng .init-chatbox-text để giảm tải DOM.
    • Tái cấu trúc bộ parser FX từ khóa, sử dụng TreeWalker giúp duyệt sâu, ổn định và chính xác hơn.
    • Ngăn tình trạng tạo link trùng lặp và đảm bảo hành vi idempotent (quét nhiều lần vẫn cho kết quả duy nhất).
    • Cải thiện rõ rệt hiệu năng khi render hàng loạt tin nhắn hoặc load lịch sử.
    • Thay đổi nội bộ, không ảnh hưởng giao diện người dùng; tăng tính tương thích và ổn định khi chạy song song với các plugin khác.
  • 1.2.2 – Gỡ kiểm tra ban trùng trong shortcode
    • Hotfix: Gỡ bỏ đoạn kiểm tra init_plugin_suite_chat_engine_check_user_banned() trùng lặp trong shortcode [init_chatbox].
    • Ngăn lỗi hiển thị thông báo cấm (banned message) hai lần khi người dùng bị ban.
    • Giảm khả năng sai lệch múi giờ trong thông báo hết hạn ban.
    • Tối giản luồng render shortcode, đồng bộ hoàn toàn với ban middleware ở controller.
    • Chỉ thay đổi nội bộ, không ảnh hưởng tới hành vi hiển thị của người dùng cuối.
  • 1.2.1 – Quyền miễn lọc từ cấm theo vai trò
    • Thêm tuỳ chọn mới “Word Filter Exceptions” trong tab Bảo mật (Security).
    • Cho phép chọn các vai trò người dùng được bỏ qua bộ lọc từ cấm (mặc định: Administrator).
    • Cập nhật hệ thống sanitize và validate để đảm bảo chỉ vai trò hợp lệ được lưu.
    • Nâng cấp hàm kiểm tra tin nhắn, cho phép người dùng thuộc vai trò miễn lọc gửi tin chứa từ bị cấm.
    • Giữ nguyên cơ chế bảo mật cho khách và các vai trò khác — vẫn áp dụng lọc từ bình thường.
    • Bổ sung bản dịch tiếng Việt đầy đủ cho tất cả chuỗi UI mới.
  • 1.2.0 – Bộ lọc mở rộng metadata user
    • Thêm filter mới init_plugin_suite_chat_engine_enrich_message_row để mở rộng dữ liệu user trong mỗi tin nhắn.
    • Cho phép theme/plugin bổ sung metadata tuỳ biến (ví dụ: vai trò, VIP, quyền moderator) mà không cần chỉnh core.
    • Cải thiện tính linh hoạt và khả năng mở rộng API chat, sẵn sàng cho tích hợp UI nâng cao trong tương lai.
  • 1.1.9 – Tuỳ chọn gắn link hồ sơ người dùng
    • Thêm hỗ trợ tuỳ chọn gắn link hồ sơ trong tên hiển thị của tin nhắn chat.
    • Giới thiệu trường mới profile_url trong API response cho user đã đăng ký.
    • Cung cấp hook frontend initChatEngineMessageElementHook để tự động linkify tên hiển thị khi cần.
    • Tính năng mặc định tắt (opt-in), đảm bảo tương thích ngược – tên hiển thị vẫn ở dạng plain text nếu không bật.
  • 1.1.8 – Vá bảo mật endpoint /send
    • Tăng cường bảo mật cho endpoint /send khi user đã đăng nhập: bắt buộc kiểm tra X-WP-Nonce nghiêm ngặt.
    • Làm sạch dữ liệu đầu vào bằng wp_strip_all_tags() cho cả messagedisplay_name trước khi lưu.
    • Từ chối các tin nhắn rỗng hoặc chỉ chứa ký tự vô hình/khoảng trắng, ngăn chặn spam “trắng”.
    • Giới hạn độ dài tin nhắn ngay trên server trước khi insert, đồng bộ với giới hạn hiển thị UI.
    • Đảm bảo an toàn đầu ra: tất cả message khi trả về vẫn được lọc qua wp_kses_post().
    • Giữ kiểm tra rate-limit và banned-user ngay trong permission_callback để chống abuse.
  • 1.1.7 – Chặn auto-link ngoài domain
    • Cập nhật logic auto-link URL – chỉ tự động gắn link khi domain trùng với site hiện tại.
    • Ngăn chặn việc chuyển đổi link ngoài domain thành thẻ <a>, giảm nguy cơ spam link.
    • Giữ nguyên hỗ trợ toàn bộ cú pháp định dạng văn bản khác (*đậm*, `nghiêng`, ~gạch~, …).
    • Tăng cường tính an toàn nội dung và độ tin cậy khi hiển thị tin nhắn.
  • 1.1.6 – Chuẩn hoá mã nguồn theo WPCS
    • Cập nhật toàn bộ codebase để tuân thủ WordPress Coding Standards (WPCS).
    • Refactor lại chú thích nội tuyến và định dạng code để dễ đọc và dễ bảo trì hơn.
    • Đảm bảo tính nhất quán code, đồng bộ với best practices của WordPress.
    • Dọn dẹp nội bộ, loại bỏ đoạn code thừa nhằm tăng độ ổn định lâu dài.
  • 1.1.5 – Cải tiến định dạng văn bản thông minh
    • Cải tiến logic định dạng văn bản với khả năng nhận diện ranh giới thông minh cho cú pháp kiểu markdown.
    • Quy tắc định dạng mới yêu cầu có dấu cách ở đầu hoặc cuối (hoặc vị trí bắt đầu/kết thúc chuỗi) để áp dụng định dạng.
    • Fix lỗi định dạng sai trong tên hàm/code – ví dụ: init_live_search không còn bôi đậm chữ live.
    • Fix lỗi định dạng sai trong biểu thức toán học – ví dụ: 1*2*3 = 6 không còn bôi đậm số 2.
    • Cập nhật regex sử dụng OR logic: chỉ cần 1 phía có dấu cách là áp dụng định dạng.
    • Hỗ trợ tốt hơn cho các trường hợp đặc biệt như *start**end* – cả hai đều được định dạng chính xác.
    • Vẫn giữ nguyên kiểm tra nội dung nghiêm ngặt: không có dấu cách ngay sau ký tự mở hoặc trước ký tự đóng.
    • Thêm xử lý nhóm bắt (capture group) toàn diện cho nhiều pattern regex khác nhau.
    • Tăng độ chính xác định dạng, đồng thời vẫn đảm bảo tương thích ngược với nội dung cũ.
    • Cải thiện trải nghiệm người dùng: định dạng văn bản nay trực quan và dễ dự đoán hơn.
  • 1.1.4 – Hệ thống hook tuỳ biến định dạng tin nhắn
    • Thêm hệ thống hook mở rộng để tuỳ biến định dạng và hiển thị nội dung tin nhắn.
    • Giới thiệu window.initChatEngineFormatHook cho phép xử lý định dạng văn bản, sticker, v.v.
    • Thêm window.initChatEngineMessageElementHook hỗ trợ hậu xử lý phần tử tin nhắn sau khi tạo.
    • Nâng cấp pipeline hiển thị tin nhắn để hỗ trợ plugin ngoài và theme mở rộng.
    • Cải thiện khả năng tích hợp với hệ thống sticker của Init Manga và các tính năng giao diện khác.
    • Duy trì tương thích ngược với các phiên bản cũ trong khi mở ra điểm mở rộng cho developer.
    • Tối ưu tốc độ thực thi hook và xử lý lỗi hợp lý để tránh gián đoạn khi hiển thị tin nhắn.
  • 1.1.3 – Cải tiến kết nối mạng và cập nhật thời gian thực
    • Hệ thống quản lý request nâng cao với AbortController ngăn chặn API call trùng lặp
    • Cập nhật timestamp thời gian thực: thời gian tin nhắn tự động làm mới (VD: “5 phút” → “6 phút”)
    • Nâng cấp xử lý lỗi mạng với exponential backoff và cơ chế retry thông minh
    • Cải thiện ổn định kết nối cho mạng chậm/không ổn định với polling intervals thích ứng
    • Hệ thống loại bỏ request trùng lặp ngăn xung đột loading tin nhắn và lỗi giao diện
    • Theo dõi trạng thái mạng với tự động kết nối lại khi mạng phục hồi
    • Khôi phục lỗi tốt hơn với đếm lỗi liên tiếp và điều chỉnh tần suất polling thích ứng
    • Tối ưu hiệu năng: giảm API call không cần thiết và cải thiện quản lý bộ nhớ
    • Nâng cao trải nghiệm người dùng với trạng thái loading rõ ràng và chỉ báo kết nối
    • Xử lý offline/online robust với fallback handling cho gián đoạn mạng
  • 1.1.2 – Nâng cấp dark mode
    • Cải tổ toàn diện hệ thống dark mode, hỗ trợ đầy đủ giao diện
    • Nâng cấp hệ thống biến CSS với bộ biến riêng cho chế độ sáng/tối
    • Dark mode áp dụng cho toàn bộ thành phần: tin nhắn, ô nhập, nút bấm, thanh cuộn, hộp thoại
    • Phát hiện chế độ tối hệ thống qua @media (prefers-color-scheme: dark)
    • Cải thiện độ tương phản màu sắc, đảm bảo khả năng truy cập và đọc tốt trong nền tối
    • Chuyển đổi giao diện mượt mà với hiệu ứng chuyển 0.3 giây
  • 1.1.1 – Sửa lỗi quan trọng và cải tiến trải nghiệm người dùng
    • SỬA LỖI NGHIÊM TRỌNG: Giải quyết lỗi vòng lặp vô tận khi cuộn trong chat gây crash giao diện.
    • Khắc phục xung đột nút “Load more” ở vị trí cuộn giữa (50-200px từ đầu).
    • Triển khai hệ thống xử lý cuộn có độ trễ (debounced) với timer ổn định 100ms.
    • Thêm theo dõi hướng cuộn để ngăn kích hoạt tự động load không cần thiết.
    • Cải tiến ranh giới vùng cuộn: tự động tải (<30px), nút thủ công (30-200px), ẩn (>300px).
    • Nâng cấp quản lý trạng thái để ngăn cập nhật UI dư thừa và giảm layout thrashing.
    • Bổ sung dọn dẹp timer khi rời trang để tránh rò rỉ bộ nhớ.
    • Tối ưu hiệu năng cuộn với passive event listeners và giảm truy vấn DOM.
    • Sửa lỗi hiển thị nút cuộn để ngăn chớp nháy khi cuộn nhanh.
    • Tăng cường xử lý lỗi cho các trường hợp đặc biệt trong tính toán vị trí cuộn.
    • LOẠI BỎ INLINE STYLES: Hỗ trợ utility classes (uk-hidden, hidden, .ice-hidden).
    • Tự động phát hiện framework CSS và sử dụng class ẩn/hiện phù hợp.
    • Sửa lỗi character counter không hoạt động cho guest users do trùng tên ID.
    • Cải tiến logic hiển thị nút “Load more” thoáng hơn nhưng vẫn an toàn (zone mở rộng lên 400px).
    • Tăng tốc độ phản hồi UI: giảm debounce xuống 80ms, auto-load delay 150ms.
  • 1.1.0 – Cập nhật lớn giao diện quản trị và tính năng bảo mật
    • Nâng cấp toàn diện giao diện quản trị với bố cục dạng tab (Cơ bản, Bảo mật, Nâng cao).
    • Thêm trình quản lý tin nhắn với tìm kiếm và phân trang hiệu quả.
    • Hệ thống chặn người dùng/IP kèm thời hạn và gỡ chặn dễ dàng.
    • Bổ sung trang thống kê gồm biểu đồ hoạt động và số liệu tương tác.
    • Tính năng giới hạn tốc độ gửi tin nhắn theo phút, tùy chỉnh được trong cài đặt.
    • Hệ thống lọc từ ngữ với danh sách từ cấm do admin thiết lập.
    • Công cụ dọn dẹp tin nhắn cũ, cho phép tự động hoặc thủ công.
    • Giao diện quản trị được thiết kế lại chuyên nghiệp, hỗ trợ hiển thị trạng thái kết nối.
    • Nâng cấp trải nghiệm người dùng: thông báo lỗi rõ ràng, tối ưu cho di động.
    • Thêm các REST API endpoint cho thao tác quản trị từ xa.
    • Hỗ trợ caching và kiểm tra nonce cho tất cả hành động admin.
    • Toàn bộ form cài đặt được kiểm tra và làm sạch dữ liệu đầu vào.
    • Hỗ trợ đa ngôn ngữ hoàn chỉnh: tệp .pot đầy đủ, kèm bản dịch tiếng Việt.
  • 1.0.3 – Hỗ trợ định dạng văn bản trong tin nhắn
    • Thêm tính năng định dạng nội dung tin nhắn với cú pháp đơn giản:
      *đậm*, `nghiêng`, ~gạch~, ^highlight^, _tô màu_.
    • Hàm xử lý định dạng hoạt động cục bộ trên từng tin nhắn, không ảnh hưởng các phần khác của trang.
    • Sử dụng lại class .init-fx-highlight-text của Init FX Engine để tránh in trùng CSS.
    • Loại bỏ escapeHTML cho phần nội dung chính nhằm cho phép chèn HTML đã xử lý định dạng.
    • Refactor nội bộ hàm render message để hỗ trợ định dạng một cách an toàn và hiệu quả.
  • 1.0.2 – Tối ưu UI/UX và bổ sung avatar
    • Thêm hỗ trợ avatar người dùng (khi đã đăng nhập), kèm fallback nếu không có ảnh.
    • Hiệu ứng nhấp nháy tiêu đề khi có tin nhắn mới và tab không được focus.
    • Chặn spam gửi tin nhắn liên tục bằng cơ chế cooldown và khóa nút gửi.
    • Cải tiến luồng đặt tên khách: hiển thị rõ tên hiện tại, cho phép đổi tên mượt mà.
    • Thiết kế lại cấu trúc HTML tin nhắn để dễ dàng mở rộng, gắn kèm avatar rõ ràng hơn.
    • Dọn dẹp và tái cấu trúc mã JavaScript cho gọn, dễ bảo trì hơn.
  • 1.0.1 – Cập nhật hệ thống polling thông minh
    • Thêm hệ thống polling động, tự điều chỉnh tốc độ fetch theo mức độ hoạt động của người dùng và trạng thái tab (3.5–10s).
    • Hỗ trợ Notification API – gửi thông báo khi có tin nhắn mới và tab không được focus.
    • Tối ưu scroll: tự động cuộn khi có tin mới, có nút “↓ Tin nhắn mới” khi người dùng đang cuộn ngược.
    • Phát hiện người dùng đang nhập và hoạt động bàn phím, chuột để cập nhật polling chính xác hơn.
    • Quản lý tên khách (guest name) bằng localStorage, cho phép đổi tên ngay trong giao diện.
    • Cải tiến cơ chế load tin nhắn cũ khi cuộn lên – giữ nguyên vị trí cuộn không bị jump.
    • Refactor toàn bộ JS: rõ ràng, tối ưu hiệu năng, dễ mở rộng.
  • 1.0.0 – Phiên bản đầu tiên của Init Chat Engine
    • Ra mắt plugin chat cộng đồng sử dụng REST API.
    • Hỗ trợ gửi tin nhắn ở chế độ khách (guest), không cần đăng nhập.
    • Trang cài đặt cho phép giới hạn số ký tự mỗi tin nhắn và bật/tắt quyền chat của khách.
    • Shortcode chính hiển thị khung chat, hỗ trợ override template từ theme.
    • Lưu trữ lịch sử chat và scroll mượt khi load thêm tin nhắn cũ.
    • Gửi tin nhắn theo kiểu “lạc quan” (hiển thị trước, xác nhận sau) với cơ chế fallback khi lỗi.
Made with in HCMC.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...