Dành cho: Người dùng nâng cao, Admin, Kỹ thuật viên
🚨 LỖI FRONTEND (app6suser)
1. Trắng màn hình, không load gì
Nguyên nhân: JS lỗi, localStorage hỏng
Cách xử lý:
F12 → Console → Xem lỗi JS gì
F12 → Application → Local Storage → Xóa '6s_user'
F12 → Application → Service Workers → Unregister
F5 refresh
2. "Không tải được vị trí"
Nguyên nhân: API /locations lỗi hoặc user chưa được gán location
Kiểm tra:
# Test API trực tiếp
curl "http://localhost/lean.vn/wp-json/cicc-6s/v1/locations?user_id=1"
# Kiểm tra assigned_locations trong DB
mysql -u leanvn13_lean -p -e "SELECT assigned_locations FROM wp_6s_users WHERE id=1"
Xử lý: Admin gán location trong Phân quyền User
3. Treo thẻ không thành công
Kiểm tra:
F12 → Network → Tìm request POST /tags
Xem response server trả về gì
Thường gặp: thiếu trường bắt buộc, location_id sai
4. "Tài khoản đang chờ Admin kích hoạt"
Xử lý:
-- Nếu có quyền DB
UPDATE wp_6s_users SET status = 'active' WHERE user_login = 'username';
Hoặc qua Admin UI: CiCC 6S → Phân quyền User → Kích hoạt
🖥️ LỖI BACKEND (WordPress Admin)
1. 500 Internal Server Error
Kiểm tra:
# PHP error log
tail -f C:/xampp/php/logs/php_error_log
# WP_DEBUG
# Mở wp-config.php → thêm:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
# Xem wp-content/debug.log
2. "Không có quyền thực hiện hành động này"
Nguyên nhân: Thiếu manage_options capability
Xử lý: Vào Users → chọn user → set role = Administrator
3. Import CSV không hoạt động
Kiểm tra:
File CSV có đúng format không?
- Cột: tenant_code,parent_code,code,name,location_type,description,sort_order,cost_center_code,is_asset_location,status
- UTF-8 encoding (không phải ANSI)
- Không có BOM? (Có BOM vẫn được)
4. Menu CiCC 6S không hiển thị
Nguyên nhân: Plugin chưa kích hoạt hoặc user không đủ quyền
Xử lý:
Vào Plugins → kiểm tra "CiCC 6S Tagging API" đã active?
Vào Users → kiểm tra role có manage_options?
🗄️ LỖI DATABASE
1. "Unknown column 'tenant_id' in 'field list'"
Nguyên nhân: Table wp_6s_tags chưa có column tenant_id
Xử lý:
ALTER TABLE wp_6s_tags ADD COLUMN tenant_id bigint(20) DEFAULT 0;
-- Hoặc chạy lại migration
php wp-content/plugins/cicc-6s-api/migrate_tags_schema.php
2. Tag không hiển thị trong Kanban
Kiểm tra:
-- User có location không?
SELECT assigned_locations FROM wp_6s_users WHERE id = 1;
-- Tag có location_id không?
SELECT tag_no, location_id, status FROM wp_6s_tags LIMIT 10;
-- Location có active không?
SELECT id, name, status FROM wp_6s_locations WHERE id IN (8,9,10);
3. Assessment không submit được
Kiểm tra:
-- Phiên có tồn tại không?
SELECT id, status FROM wp_assessments WHERE id = 1;
-- Items có load được không?
SELECT COUNT(*) FROM wp_assessment_items WHERE group_id IN
(SELECT id FROM wp_assessment_groups WHERE template_id = 1);
🌐 LỖI API
1. Test API với curl
# Login
curl -X POST http://localhost/lean.vn/wp-json/cicc-6s/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"login":"danhgia","password":"123456"}'
# Get locations
curl "http://localhost/lean.vn/wp-json/cicc-6s/v1/locations?tenant_id=1"
# Get tags
curl "http://localhost/lean.vn/wp-json/cicc-6s/v1/tags"
2. API trả về 403 Forbidden
Nguyên nhân: Nonce không hợp lệ, hoặc CORS
Xử lý:
// Thêm vào wp-config.php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: *");
3. API trả về 404
Nguyên nhân: Endpoint chưa đăng ký, permalink chưa save
Xử lý:
Vào Settings → Permalinks → bấm Save Changes (không cần đổi gì)
→ WordPress flush rewrite rules
📱 LỖI SERVICE WORKER
1. Ứng dụng dùng bản cũ (cache)
// Mở DevTools (F12)
// Application → Service Workers → Unregister
// Application → Storage → Clear site data
// Network → Disable cache (checkbox)
// F5
2. Disable SW hoàn toàn khi dev
Trong index.html:
// Mở comment đoạn này
if ("serviceWorker" in navigator) {
navigator.serviceWorker.getRegistrations().then(regs => {
regs.forEach(r => r.unregister());
});
}
⚡ HIỆU NĂNG
1. App chậm khi load danh sách
Nguyên nhân: Nhiều thẻ (>500), không có index
Xử lý:
-- Thêm index cho location_id
ALTER TABLE wp_6s_tags ADD INDEX idx_location_id (location_id);
ALTER TABLE wp_6s_tags ADD INDEX idx_status (status);
ALTER TABLE wp_6s_tags ADD INDEX idx_created_at (created_at);
2. Ảnh chậm tải
Nguyên nhân: Ảnh gốc quá lớn
Xử lý:
Hệ thống đã tự động compress: 1080px, quality 0.7
Nếu cần giảm thêm: sửa trong app.js
quality: 0.5, maxW: 800
📋 CHECKLIST KHẮC PHỤC NHANH
| Triệu chứng | Hành động đầu tiên |
|---|---|
| Trắng màn hình | F12 → Console → reload → F12 → Network |
| Login fail | Kiểm tra user active? → curl test API |
| Không thấy data | F5 → clear cache → kiểm tra filter |
| Chart trống | Resize window → F5 → check console |
| API 404 | Settings → Permalinks → Save |
| CORS | Thêm header vào wp-config |
| SW cũ | Unregister → Clear storage |
| DB lỗi | Chạy migration script |