Hướng dẫn Liberty Travel Quote qua Mautic qua Espo CRM

Liberty Travel Quote – Tài liệu hướng dẫn
v1.4.0 WordPress Plugin Open Source Stack growstep.vn

Liberty Travel Quote
Plugin Documentation

WordPress plugin tạo lead form bảo hiểm du lịch — tự động đẩy data sang Mautic & EspoCRM qua API.

01

Tổng quan & Kiến trúc

Plugin cho phép nhúng form báo phí bảo hiểm du lịch Liberty vào bất kỳ trang/bài viết WordPress nào. Khi khách hàng gửi form, dữ liệu được:

  • Lưu vào database WordPress (bảng wp_liberty_travel_leads)
  • Gửi thông báo qua Telegram Bot
  • Tự động hoặc thủ công đẩy sang Mautic (marketing automation)
  • Tự động hoặc thủ công đẩy sang EspoCRM (CRM)

Luồng dữ liệu

FrontendWordPress Form
REST APIWP REST Endpoint
StorageWP Database
NotifyTelegram
MarketingMautic API
+
CRMEspoCRM API
02

Yêu cầu hệ thống

Thành phầnYêu cầu tối thiểuGhi chú
WordPress5.8+REST API phải được bật
PHP8.0+Dùng typed properties
MySQL5.7+Hỗ trợ dbDelta()
Mautic (tuỳ chọn)4.x / 5.xBật HTTP Basic Auth trong API Settings
EspoCRM (tuỳ chọn)7.x+Tạo API Key trong Admin → API Keys
03

Cài đặt plugin

  1. Upload plugin Giải nén file liberty-travel-quote-v1.4.0.zip, upload thư mục liberty-travel-quote/ vào /wp-content/plugins/
  2. Kích hoạt Vào WP Admin → Plugins, tìm “Liberty Travel Quote” → Activate. Plugin sẽ tự tạo bảng DB khi activate.
  3. Kiểm tra bảng DB Vào phpMyAdmin hoặc công cụ DB, kiểm tra bảng wp_liberty_travel_leads đã tồn tại.
  4. Cấu hình (wp-config.php hoặc Admin Settings) Thêm constants Telegram / Mautic / EspoCRM vào wp-config.php hoặc điền trong trang cài đặt.
Plugin sử dụng jQuery có sẵn trong WordPress, không cần cài thêm thư viện JS nào.
04

Cấu hình Telegram

Bước 1 — Tạo Bot

  1. Mở Telegram, tìm @BotFather
  2. /newbot → đặt tên bot → nhận Bot Token

Bước 2 — Lấy Chat ID

  1. Add bot vào group hoặc nhắn tin trực tiếp với bot
  2. Truy cập URL: https://api.telegram.org/bot<TOKEN>/getUpdates
  3. Tìm trường chat.id trong JSON trả về

Bước 3 — Khai báo vào wp-config.php

// Thêm trước dòng "That's all, stop editing!"
define('TELEGRAM_BOT_TOKEN', '123456789:ABCDEFabcdef...');
define('TELEGRAM_CHAT_ID',   '-1001234567890');PHP
Chat ID của group thường có dấu âm (bắt đầu bằng -100…). Chat ID cá nhân là số dương.
05

Cấu hình Mautic API

Bước 1 — Bật API trong Mautic

  1. Đăng nhập Mautic → Settings (⚙) → Configuration → API Settings
  2. Bật API enabled?Yes
  3. Bật Enable HTTP basic auth?Yes
  4. Nhấn Save & Close

Bước 2 — Chuẩn bị tài khoản API

Sử dụng trực tiếp username + password đăng nhập Mautic (hoặc tạo user riêng với role có quyền API). Không cần tạo OAuth2 credentials.

Bước 3 — Test API

curl -u "admin:matkhau" \
     https://mt.growstep.vn/api/contacts?limit=1BASH

Nếu trả về JSON danh sách contacts → API đã sẵn sàng.

Bước 4 — Khai báo

Chọn một trong hai cách:

Cách A — wp-config.php (ưu tiên cao hơn):

define('LTQ_MAUTIC_BASE_URL',  'https://mt.growstep.vn');
define('LTQ_MAUTIC_USERNAME',  'admin');
define('LTQ_MAUTIC_PASSWORD',  'matkhau');PHP

Cách B — WP Admin Settings: vào Liberty Leads → Cài đặt, điền Mautic Base URL / Username / Password → Lưu.

Plugin map các custom field Mautic với alias: ltq_program, ltq_region, ltq_duration, ltq_price_vnd. Cần tạo các field này trong Mautic → Contacts → Manage Fields trước khi dữ liệu được ghi vào.

Custom fields cần tạo trong Mautic

AliasLabelTypeBắt buộc
ltq_programChương trình BHTextKhông
ltq_regionKhu vựcTextKhông
ltq_durationThời gianTextKhông
ltq_price_vndPhí Liberty (đ)NumberKhông
ltq_sourceNguồnTextKhông
06

Cấu hình EspoCRM API

Bước 1 — Tạo API Key

  1. Đăng nhập EspoCRM → Admin → API Keys
  2. Nhấn Create API Key
  3. Đặt tên (vd: liberty-plugin) → chọn User → Save
  4. Copy chuỗi API Key được tạo ra

Bước 2 — Khai báo

Cách A — wp-config.php:

define('LTQ_ESPO_BASE_URL', 'https://crm.example.com');
define('LTQ_ESPO_API_KEY',  'your_api_key_here');PHP

Cách B — WP Admin Settings: vào Liberty Leads → Cài đặt, điền EspoCRM Base URL / API Key → Lưu.

Plugin tạo Lead với các custom field: cLtqProgram, cLtqRegion, cLtqDuration, cLtqPriceVnd. Cần tạo trong EspoCRM → Admin → Entity Manager → Lead → Fields.

Custom fields cần tạo trong EspoCRM

Field NameLabelType
cLtqProgramChương trình BHVarchar
cLtqRegionKhu vựcVarchar
cLtqDurationThời gianVarchar
cLtqPriceVndPhí Liberty (đ)Integer
07

Sử dụng Shortcode

Sau khi cài đặt và cấu hình xong, chèn shortcode vào trang/bài viết WordPress:


Báo phí bảo hiểm du lịch – Liberty
Phí Liberty
Ngoài Liberty còn có PVI, Hùng Vương, MIC. Để so sánh & chọn gói phù hợp, vui lòng để lại SĐT — mình gọi lại tư vấn nhanh.
* Giá hiển thị là Liberty. Các hãng khác (PVI, Hùng Vương, MIC) sẽ được báo khi gọi lại.

✨ 3 quyền lợi nổi bật của bảo hiểm du lịch:

  • 🏥 Bảo vệ chi phí y tế khi ốm đau, tai nạn ở nước ngoài.
  • ✈️ Hỗ trợ khi trễ, hủy chuyến hoặc hành lý thất lạc.
  • ⚖️ Bồi thường trách nhiệm dân sự khi xảy ra sự cố ngoài ý muốn.
SHORTCODE

Form sẽ hiển thị với các tính năng:

  • Bảng giá Liberty tự tính theo 14 khung thời gian × 3 chương trình × 3 khu vực
  • Input tên (tuỳ chọn) và số điện thoại (bắt buộc)
  • Submit qua jQuery AJAX → WordPress REST API
  • Thông báo thành công/lỗi hiển thị inline
Plugin chỉ load CSS/JS (Bootstrap 5 + ltq-form.js) trên trang có shortcode, không ảnh hưởng toàn site.
08

Quản lý Lead trong Admin

Sau khi kích hoạt plugin, menu Liberty Leads xuất hiện trong WP Admin sidebar.

Trang danh sách Lead

Hiển thị tối đa 300 lead gần nhất với các cột: ID, thời gian, chương trình, khu vực, phí, tên, SĐT, trạng thái Mautic, trạng thái EspoCRM, thao tác, ngày tạo.

Nút Push thủ công

  • → Mautic: hiện khi lead chưa được đẩy lên Mautic. Click để push ngay lập tức.
  • → EspoCRM: hiện khi lead chưa được đẩy lên EspoCRM. Click để push ngay.

Sau khi push thành công, cột Mautic / EspoCRM hiển thị ✔ kèm ID trả về từ hệ thống.

Trang Cài đặt

Vào Liberty Leads → Cài đặt để:

  • Bật/tắt Tự động đẩy Mautic mặc định cho lead mới
  • Bật/tắt Tự động đẩy EspoCRM mặc định cho lead mới
  • Nhập URL / credentials Mautic & EspoCRM (nếu không dùng wp-config.php)
Constants trong wp-config.php luôn được ưu tiên hơn giá trị lưu trong Admin Settings.
09

Cấu trúc file & Tuỳ chỉnh

liberty-travel-quote/
  liberty-travel-quote.php ← Bootstrap, shortcode, price map
  assets/js/
    ltq-form.js ← jQuery: tính giá, AJAX submit
  includes/
    view-shortcode.php ← HTML form front-end
    view-admin-leads.php ← HTML bảng admin
    class-ltq-rest.php ← REST endpoint, nonce, Telegram
    class-ltq-admin.php ← Admin menu, settings, manual push
    class-ltq-mautic.php ← Mautic Basic Auth API
    class-ltq-espocrm.php ← EspoCRM API Key REST

Thay đổi bảng giá

Mở liberty-travel-quote.php, tìm hàm ltq_price_map() và chỉnh sửa mảng PHP. Giá được encode sang JS tự động qua wp_localize_script().

Thêm hãng bảo hiểm khác

Mở includes/view-shortcode.php để chỉnh HTML form. Logic tính giá nằm trong assets/js/ltq-form.js hàm getPrice().

Dev mode (bỏ qua nonce)

// Chỉ dùng khi develop local (LocalWP, Valet...)
define('LTQ_DEV_MODE', true);PHP
10

Xử lý sự cố

Triệu chứngNguyên nhân thường gặpCách khắc phục
Form submit trả về lỗi 403 Nonce hết hạn hoặc cache trang giữ nonce cũ Xóa cache plugin (LiteSpeed, WP Rocket…). Bật LTQ_DEV_MODE khi test local.
Không nhận Telegram Token hoặc Chat ID sai Test thủ công: gọi api.telegram.org/bot{TOKEN}/getUpdates để xác nhận Chat ID.
Push Mautic thất bại Basic Auth chưa bật hoặc sai credentials Kiểm tra Mautic → Configuration → API Settings. Test bằng curl.
Push EspoCRM thất bại API Key sai hoặc user không có quyền tạo Lead Vào EspoCRM → Admin → API Keys, kiểm tra API Key còn hiệu lực và user được gán.
Custom field không ghi vào Mautic Field alias chưa được tạo trong Mautic Vào Mautic → Contacts → Manage Fields, tạo đủ các field với alias đúng như bảng mục 05.
Bảng DB không tồn tại Plugin chưa chạy activation hook Deactivate rồi Activate lại plugin trong WP Admin.
Lỗi từ Mautic / EspoCRM được ghi vào PHP error log với prefix [LTQ Mautic][LTQ EspoCRM]. Kiểm tra wp-content/debug.log (cần bật WP_DEBUG_LOG).