Hook action và filter
Danh sách hook của plugin, đọc trực tiếp từ mã nguồn phiên bản 0.1.0, cùng cách ghi đè mẫu in và trang báo giá trong theme. Đủ để đổi quyền xem, ngưỡng duyệt, dữ liệu xuất file, biến trong tin nhắn, nối sang hệ thống khác khi báo giá được gửi hoặc chốt — mà không phải sửa file plugin.
Đặt code ở đâu
Đặt trong functions.php của child theme, hoặc tốt hơn là một plugin nhỏ riêng để đổi giao diện không mất code. Không sửa file trong thư mục plugin — mọi thay đổi sẽ mất khi cập nhật. Mọi hook dưới đây có tiền tố devvn_bg_.
Bật nhật ký gỡ lỗi của plugin: khai define( 'DEVVN_BG_DEBUG', true ); trong wp-config.php (hoặc filter devvn_bg_debug). Nhật ký xem ở WooCommerce → Trạng thái → Nhật ký, nguồn devvn-quote-builder.
Action
| Hook | Tham số | Chạy khi nào |
|---|---|---|
devvn_bg_loaded | không có | Plugin đã nạp xong mọi thành phần. |
devvn_bg_quote_created | $quote_id, $user_id | Một báo giá mới được tạo từ trang lên báo giá ngoài web (khách hoặc đại lý tự lên). Báo giá nhân viên tạo trong admin không bắn hook này. |
devvn_bg_quote_status_changed | $quote_id, $version_id, $from, $to, $args | Mọi lần đổi trạng thái. Mã trạng thái: nhap, cho_duyet, da_duyet, da_gui, da_xem, thuong_luong, da_chot, doi_thanh_toan, da_thanh_toan, huy. |
devvn_bg_quote_sent | $quote_id, $version_id | Báo giá chuyển sang Đã gửi (không bắn khi nhân viên chỉ "đánh dấu đã gửi"). |
devvn_bg_quote_viewed | $quote_id, $version_id | Một lượt xem của khách được tính (không tính nhân viên, bot; một lần mỗi phiên trình duyệt). |
devvn_bg_quote_assigned | $quote_id, $assignee, $old_assignee | Đổi người phụ trách (0 = bỏ gán). |
devvn_bg_approval_requested | $quote_id, $user_id, $reason | Nhân viên trình duyệt giảm giá. |
devvn_bg_approval_decided | $quote_id, $status, $note, $approver_id, $requester_id | Duyệt (approved) hoặc từ chối (rejected). |
devvn_bg_quote_accepted | $quote_id, $version_id, $acceptance_id, $method | Khách đồng ý báo giá. $method là online (khách tự bấm) hoặc offline (nhân viên xác nhận thay). |
devvn_bg_acceptance_frozen | $acceptance_id, $path, $hash | File PDF đóng băng của bản khách đồng ý đã ghi xong. |
devvn_bg_won_changed | $quote_id, $result (changed, old_version, new_version, old_amount, new_amount) | Doanh số chốt của báo giá thay đổi. |
devvn_bg_payment_changed | $quote_id, $action, $payment | Thêm / sửa / xoá một khoản thanh toán. $action: payment_add, payment_update, payment_delete. |
devvn_bg_quote_trashed | $quote_id | Báo giá vào Thùng rác. |
devvn_bg_quote_purged | $quote_id, $summary | Báo giá bị xoá hẳn. |
devvn_bg_quote_linked | $quote_id, $user_id, $method | Báo giá được gắn vào tài khoản khách (login hoặc claim). |
devvn_bg_lead_captured | $quote_id, $format | Khách để lại thông tin để tải file báo giá. |
devvn_bg_consult_requested | $quote_id | Khách gửi yêu cầu tư vấn. |
devvn_bg_change_requested | $quote_id, $message, $contact (name, phone, version) | Khách gửi yêu cầu chỉnh sửa từ trang báo giá. |
devvn_bg_share_link_revoked · devvn_bg_share_link_rotated | $quote_id, $reason, $user_id | Link chia sẻ bị vô hiệu hoá / được thay link mới. |
devvn_bg_customer_erased | $customer_id, $result (quotes, anonymized, kept, purged) | Đã xoá dữ liệu cá nhân của một khách. |
devvn_bg_anon_valve_tripped | $count, $limit | Van chống lạm dụng khoá lưu nháp ẩn danh (quá ngưỡng trong 24 giờ). |
devvn_bg_settings_saved | $store, $new, $old | Sau khi lưu một tab Cài đặt. |
devvn_bg_system_saved · devvn_bg_section_saved · devvn_bg_rule_saved · devvn_bg_combo_saved | $id, $clean, $current | Lưu hệ / hạng mục / quy tắc / combo. |
devvn_bg_system_deleted · devvn_bg_section_deleted · devvn_bg_rule_deleted · devvn_bg_combo_deleted | $id | Xoá hệ / hạng mục / quy tắc / combo. |
devvn_bg_license_changed | $valid (bool) | Kết luận bản quyền đổi giữa hợp lệ và không hợp lệ. |
devvn_bg_xlsx_before_save | $spreadsheet, $data, $args | Ngay trước khi ghi file Excel — chỉnh sổ tính PhpSpreadsheet. |
Action để chèn giao diện
| Hook | Tham số | In ra ở đâu |
|---|---|---|
devvn_bg_editor_sections | $args | Thêm khối vào màn soạn báo giá. |
devvn_bg_share_enqueue | $context | Lúc nạp CSS / JS của trang chia sẻ báo giá. |
devvn_bg_share_status | $context | Dải trạng thái ngay dưới thanh thương hiệu của trang chia sẻ. |
devvn_bg_share_actions | $context | Khối nút quyết định dưới tổng tiền (đồng ý báo giá…). Không in gì thì khối ẩn. |
devvn_bg_share_payment | $context | Khối thông tin thanh toán dưới tổng tiền. |
devvn_bg_share_before_document · devvn_bg_share_after_document | $context | Trước tờ báo giá / sau nhóm nút tải và chia sẻ. |
$context của trang chia sẻ gồm: chain, version, data (dữ liệu xuất file), token, updating, expired, can_accept, acceptance, is_staff.
Việc nền nhắc hằng ngày (Action Scheduler)
| Hook | Tham số | Chạy khi nào |
|---|---|---|
devvn_bg_notify_expiring | không có | Hằng ngày lúc 8 giờ (múi giờ của website): nhắc báo giá sắp hết hiệu lực. |
devvn_bg_notify_followup | không có | Hằng ngày lúc 8 giờ: sự kiện "Đến hạn gọi lại khách" — báo nhân viên phụ trách các khách có ngày nhắc gọi lại đến hạn, mỗi lượt tối đa 200 khách. |
devvn_bg_notify_expiring_more · devvn_bg_notify_followup_more | $after_id | Lượt tiếp của hai việc trên khi một lượt đủ lô — chỉ xét bản ghi có ID lớn hơn $after_id. |
Cả bốn hook thuộc nhóm devvn_bg_notify. Hai việc hằng ngày được đăng ký ở lượt mở trang quản trị (admin_init); bị gỡ thì lần mở trang quản trị sau tự đăng ký lại.
Filter — quyền và ai thấy gì
| Hook | Mặc định / tham số | Dùng để |
|---|---|---|
devvn_bg_sees_unassigned | user_can( $user, 'devvn_bg_edit_all' ), $user | Cho Nhân viên báo giá thấy báo giá "Chưa ai nhận". |
devvn_bg_reports_cap | 'devvn_bg_edit_all' | Quyền vào màn Báo cáo. |
devvn_bg_customers_cap | 'devvn_bg_edit_all' | Quyền thấy mọi khách (người chỉ có devvn_bg_manage thấy khách của mình). |
devvn_bg_agency_cap | 'devvn_bg_edit_all' | Quyền vào màn Đại lý. |
devvn_bg_payment_cap | 'devvn_bg_edit_all' | Quyền vào Sổ thu tiền và ghi thanh toán. |
devvn_bg_visible_tiers | $tiers, $user | Tầng giá người xem được thấy (web, tm, ld, dai_ly). Giá nhập không bao giờ nằm trong danh sách này. |
devvn_bg_admin_pages | $pages (slug → title, cap, callback) | Thêm / bớt / đổi quyền trang con của menu Báo giá. |
devvn_bg_settings_tabs | $tabs | Thêm tab vào trang Cài đặt. |
devvn_bg_admin_ajax_routes | $routes | Thêm tuyến AJAX quản trị (bộ định tuyến chung tự kiểm nonce + quyền). |
Filter — duyệt giảm giá và báo cáo
| Hook | Mặc định / tham số | Dùng để |
|---|---|---|
devvn_bg_approval_thresholds | ngưỡng đã lưu ở tab Phân quyền, $creator | Ngưỡng theo người lập báo giá. Mảng có ba khoá threshold_discount_total, threshold_line_discount, threshold_min_margin, mỗi khoá ['enabled' => bool, 'value' => float]. |
devvn_bg_report_thin_margin | 5.0 | Biên lãi (%) dưới mức này bị đánh dấu "Lãi mỏng" ở thẻ Lời / lỗ. |
Filter — tin nhắn thông báo
| Hook | Mặc định / tham số | Dùng để |
|---|---|---|
devvn_bg_notify_values | $values, $event, $chain, $version, $extra | Đổi giá trị các biến trong mẫu tin: ten_khach, sdt_khach, ma_bao_gia, loai_bao_gia, tong_tien, han_hieu_luc, link_bao_gia, ten_nhan_vien, ten_cong_ty, link_quan_tri, noi_dung, ket_qua, ghi_chu. Biến mới thêm vào mảng sẽ không được thay vào mẫu — chỉ biến có sẵn mới được thay. Không chạy cho sự kiện "Đến hạn gọi lại khách" (dùng filter bên dưới). |
devvn_bg_notify_followup_values | $values, $customer_row (id, name, phone, email, next_followup_at) | Đổi giá trị biến của tin "Đến hạn gọi lại khách", gọi cho từng khách: ten_khach, sdt_khach, ngay_nhac, ghi_chu_gan_nhat, ten_nhan_vien, ten_cong_ty, link_khach. Cũng chỉ biến có sẵn mới được thay. |
devvn_bg_notify_followup_lookback | 7 (kẹp trong 0–30) | Số ngày nhìn lại của nhắc gọi lại: khách có ngày nhắc đã qua tối đa chừng này ngày mà chưa báo vẫn được báo; 0 = chỉ báo đúng ngày hẹn. |
devvn_bg_notify_enabled | trạng thái đã lưu, $event, $channel | Bật / tắt một cặp sự kiện + kênh bằng code. |
devvn_bg_notify_events · devvn_bg_notify_default_templates | danh sách sự kiện / mẫu mặc định | Thêm sự kiện, đổi mẫu tin mặc định. |
devvn_bg_notify_expiring_days | số ngày ở Cài đặt (mặc định 3) | Báo trước bao nhiêu ngày khi báo giá sắp hết hiệu lực; 0 = tắt. |
devvn_bg_accept_mail_enabled | theo cài đặt thông báo khách đồng ý | Bật / tắt email gửi khách khi khách đồng ý báo giá. |
devvn_bg_zalo_send | null, $phone, $message, $context | Tự nối kênh Zalo: trả true (đã gửi), false / WP_Error (lỗi), để null nếu không xử lý. |
devvn_bg_zalo_provider | null | Trả một hàm ( $phone, $message, $context ) dùng để gửi khi không ai xử lý devvn_bg_zalo_send. |
devvn_bg_zalo_available · devvn_bg_zalo_status · devvn_bg_zalo_supports_file | tự tính · $status · false | Kênh Zalo sẵn sàng chưa; trạng thái hiện ở Cài đặt; kênh có gửi được file PDF không. |
devvn_bg_quote_image_ready · devvn_bg_quote_image_pages · devvn_bg_quote_images_pre | null · 2 · null, $pdf, $dir, $base | Ảnh báo giá gửi kèm tin Zalo: ép trạng thái sẵn sàng, số trang tối đa đổi thành ảnh, tự đổi PDF thành ảnh bằng cách khác. |
Filter — xuất file PDF, Excel, mã QR
| Hook | Mặc định / tham số | Dùng để |
|---|---|---|
devvn_bg_export_data | $data, $quote_id, $version_id, $args | Sửa toàn bộ dữ liệu dùng chung cho PDF, Excel, ảnh và trang chia sẻ. |
devvn_bg_export_columns | $columns (khoá → tiêu đề), $tax_enabled | Thêm / bớt / đổi tên cột bảng thiết bị. Khoá có sẵn: sku, unit, qty, unit_price, line_total, tax_rate, warranty, image… |
devvn_bg_export_filename | $name (dạng Bao-gia-{mã}-v{số}.pdf, đã gồm đuôi), $code, $version, $extension | Đổi tên file tải về. Phiếu xuất kho / phiếu lắp đặt cũng đi qua filter này với tiền tố khác. |
devvn_bg_amount_words | chữ đọc số tiền, $grand_total, $quote_id | Đổi dòng "Bằng chữ". |
devvn_bg_export_date_format | 'd/m/Y' | Định dạng ngày in trên file. |
devvn_bg_money_unit | '(VNĐ)' (hoặc mã tiền tệ) | Đơn vị tiền in dưới tiêu đề cột Đơn giá / Thành tiền. |
devvn_bg_system_note_color | '#fff200' | Màu ô mô tả hệ thống trên bản in. |
devvn_bg_preview_watermark | 'BẢN XEM TRƯỚC — CHƯA GỬI KHÁCH' | Chữ chìm trên bản xem trước. |
devvn_bg_export_max_lines | 300 | Số dòng tối đa khi xuất file (người đã đăng nhập). |
devvn_bg_export_public_max_lines | 100 | Số dòng tối đa khi khách chưa đăng nhập tải file. |
devvn_bg_export_public_gate | true, $chain, $version, $format, $user | Cho / chặn khách tải một định dạng file từ link. |
devvn_bg_pdf_config · devvn_bg_pdf_temp_dir | cấu hình mPDF · thư mục tạm devvn-bg-pdf | Chỉnh cấu hình mPDF, đổi thư mục tạm. |
devvn_bg_transfer_content | $text, $chain, $version | Nội dung chuyển khoản trong mã VietQR. |
devvn_bg_vietqr_banks | danh sách ngân hàng | Thêm / sửa ngân hàng cho mã QR. |
devvn_bg_brand | thông tin thương hiệu đã lưu | Đổi tên công ty, hotline… in trên giấy tờ bằng code. |
devvn_bg_terms_templates | mẫu điều khoản đã lưu | Thêm mẫu điều khoản cho màn soạn. |
devvn_bg_xlsx_lib_package · devvn_bg_xlsx_lib_url | '' · địa chỉ gói thư viện của DevVN | Cài thư viện Excel từ file có sẵn trên máy chủ / từ địa chỉ khác. |
Filter — trang lên báo giá và khách
| Hook | Mặc định / tham số | Dùng để |
|---|---|---|
devvn_bg_builder_config | cấu hình JS của trang | Thêm chuỗi dịch / tuỳ chọn cho trang lên báo giá. |
devvn_bg_product_query_args | $args, $filters | Sửa truy vấn sản phẩm của cửa sổ chọn thiết bị. |
devvn_bg_product_filters | $items, $section_id | Bộ lọc hiện trong cửa sổ chọn của từng hạng mục. |
devvn_bg_brand_taxonomy | product_brand, không có thì pa_thuong-hieu | Taxonomy dùng làm "Thương hiệu" trong bộ lọc. |
devvn_bg_free_quote_type | 'tm' | Loại báo giá của tab chọn tự do (tm thương mại / ld lắp đặt). |
devvn_bg_lead_formats | định dạng chọn ở Cài đặt | Định dạng file bắt khách để lại thông tin trước khi tải. |
devvn_bg_lead_min_seconds | 2 | Thời gian tối thiểu (giây) từ lúc mở form tới lúc gửi — chống bot. |
devvn_bg_anon_drafts_per_session · devvn_bg_anon_daily_valve | theo Cài đặt (mặc định 5 · 200) | Số nháp ẩn danh mỗi phiên; ngưỡng van 24 giờ. |
devvn_bg_anon_valve_email | false, $count, $limit | Trả true để gửi email báo quản trị viên khi van khoá. |
devvn_bg_rate_limits | $limits | Hạn mức thao tác của khách. |
devvn_bg_client_ip | $ip — IP lấy theo ô Nguồn IP khách ở tab Khách & chống lạm dụng; header vắng hoặc không có IP hợp lệ thì là REMOTE_ADDR | Đổi IP khách plugin dùng cho giới hạn lượt, khoá đồng thời, nhận diện người xem link và bằng chứng chấp thuận. Chạy sau cùng nên kết quả của filter thắng lựa chọn trong Cài đặt. |
devvn_bg_account_endpoint | 'bao-gia' | Đường dẫn mục "Báo giá của tôi" trong trang Tài khoản WooCommerce. |
devvn_bg_provinces | 34 tỉnh / thành | Danh sách tỉnh trong hồ sơ đại lý. |
devvn_bg_source_labels | nhãn loại nguồn | Tên hiển thị của loại nguồn báo giá. |
Filter — trang chia sẻ báo giá
| Hook | Mặc định / tham số | Dùng để |
|---|---|---|
devvn_bg_rewrite_rules | array() | Thêm đường dẫn riêng dưới /bao-gia/. Mỗi luật: name, regex, query, vars, handler. |
devvn_bg_share_meta | $tags, $args | Thẻ meta khi gửi link qua Zalo / Facebook. |
devvn_bg_share_is_bot | tự nhận theo user agent, $agent | Coi một lượt xem là bot (không tính lượt khách xem). |
Filter — dọn dữ liệu và lưu giữ
| Hook | Mặc định / tham số | Dùng để |
|---|---|---|
devvn_bg_anon_draft_days | theo Cài đặt (mặc định 30) | Số ngày không hoạt động trước khi xoá nháp ẩn danh; 0 = không dọn. |
devvn_bg_retention_months | theo Cài đặt (mặc định 0) | Số tháng giữ dữ liệu hành vi (lượt xem, tin đã gửi, IP, UTM). |
devvn_bg_evidence_retention_months | theo Cài đặt (mặc định 0) | Số tháng giữ bằng chứng chấp thuận; khác 0 thì tối thiểu 12. |
devvn_bg_cleanup_batch · devvn_bg_retention_batch | 100 · 500 | Số dòng xử lý mỗi lượt tác vụ nền. |
Filter — kiểm tra hệ thống, bản quyền, hướng dẫn, gỡ lỗi
| Hook | Mặc định / tham số | Dùng để |
|---|---|---|
devvn_bg_health_checks | $checks | Thêm mục kiểm tra riêng. Mỗi mục: key, group, label, level (ok / warning / error), value, fix, code, action. |
devvn_bg_health_extensions | zip, xml, mbstring, gd → lỗi; intl, exif → cần chú ý | Danh sách phần mở rộng PHP cần kiểm. |
devvn_bg_health_smtp | null | Trả tên dịch vụ gửi mail khi plugin không tự nhận ra SMTP của bạn. |
devvn_bg_health_active_cache · devvn_bg_health_wp_cache · devvn_bg_health_https · devvn_bg_health_writable · devvn_bg_health_tables · devvn_bg_health_db_state · devvn_bg_health_disable_wp_cron | kết quả tự phát hiện | Sửa kết quả phát hiện trên máy chủ đặc biệt. |
devvn_bg_health_secrets | token Telegram, mật khẩu CSDL, số tài khoản, khoá bản quyền | Thêm chuỗi bí mật cần che trong báo cáo chẩn đoán. |
devvn_bg_license_status | null | Tóm tắt trạng thái bản quyền cho trang Kiểm tra hệ thống. |
devvn_bg_docs_url | 'https://levantoan.com/huong-dan-plugin/devvn-quote-builder/' | Địa chỉ gốc của tài liệu mà icon (i) cạnh tiêu đề mỗi màn mở ra. Plugin nối thêm slug bài (ví dụ tab-thong-bao/) và tham số utm_source=plugin, utm_medium=help-icon, utm_campaign=<slug bài> — tài liệu thay thế cần giữ đúng slug bài. |
devvn_bg_debug | hằng DEVVN_BG_DEBUG (không khai = false) | Bật ghi nhật ký gỡ lỗi. |
devvn_bg_migrations | các bước nâng cấp dữ liệu | Thêm bước nâng cấp cơ sở dữ liệu. |
Ghi đè mẫu in và trang báo giá trong theme
Chép file từ wp-content/plugins/devvn-quote-builder/templates/ sang {theme}/devvn-quote-builder/{tên-file}.php rồi sửa. Plugin tìm theo thứ tự: child theme → theme cha → bản gốc của plugin, và không bao giờ sửa file trong theme.
| File | Dùng cho | @version hiện tại | Mốc bắt buộc |
|---|---|---|---|
quote-pdf.php | Mẫu in báo giá (PDF, bản in, ảnh) | 1.15.0 | 1.1.0 |
quote-share.php | Trang chia sẻ báo giá | 1.9.0 | 1.2.0 |
quote-acceptance.php | Trang xem lại báo giá khách đã đồng ý | 1.2.0 | 1.0.0 |
share-accept.php | Khối đồng ý báo giá trên trang chia sẻ | 1.0.0 | 1.0.0 |
share-payment.php | Khối thanh toán trên trang chia sẻ | 1.5.0 | 1.1.0 |
share-status.php | Dải trạng thái đầu trang chia sẻ (đã xác nhận / đã thanh toán) | 1.0.0 | 1.0.0 |
notify-email.php | Khung email thông báo | 1.1.0 | 1.0.0 |
myaccount-quotes.php | Mục "Báo giá của tôi" trong tài khoản | 1.0.0 | 1.0.0 |
delivery-slip.php | Mẫu phiếu xuất kho và phiếu lắp đặt | 1.3.0 | 1.0.0 |
- Giữ dòng
@versiontrong khối chú thích đầu file. Bản ghi đè không có@versionhoặc thấp hơn mốc bắt buộc bị coi là thiếu phần bắt buộc (cảnh báo đỏ); thấp hơn bản hiện tại nhưng không dưới mốc là cập nhật nhỏ (cảnh báo vàng). - Riêng
quote-pdf.php: bản ghi đè dưới mốc thì file gửi khách tự dùng mẫu gốc của plugin để không in sai số tiền. Tắt bằng ô Mẫu PDF trong theme ở tab Thương hiệu & mẫu in hoặc filterdevvn_bg_template_pdf_fallback. - Xem khác biệt giữa bản trong theme và bản gốc: Báo giá → Kiểm tra hệ thống, nhóm Mẫu giao diện, nút Xem khác biệt.
- Filter liên quan:
devvn_bg_locate_template($path,$name) đổi đường dẫn file cuối cùng;devvn_bg_template_theme_file(kết quảlocate_template(),$name) chỉ bản ghi đè ở chỗ khác.
Ví dụ hay dùng
Cho Nhân viên báo giá thấy báo giá chưa ai nhận
add_filter( 'devvn_bg_sees_unassigned', function ( $can, $user ) {
return $can || user_can( $user, 'devvn_bg_manage' );
}, 10, 2 );
Quản lý báo giá lập báo giá thì không cần trình duyệt
add_filter( 'devvn_bg_approval_thresholds', function ( $thresholds, $creator ) {
if ( $creator && user_can( $creator, 'devvn_bg_approve' ) ) {
foreach ( $thresholds as $key => $row ) {
$thresholds[ $key ]['enabled'] = false;
}
}
return $thresholds;
}, 10, 2 );
Coi biên lãi dưới 10% là lãi mỏng
add_filter( 'devvn_bg_report_thin_margin', function () {
return 10.0;
} );
Đặt tên file tải về theo tên công ty
add_filter( 'devvn_bg_export_filename', function ( $name ) {
return str_replace( 'Bao-gia-', 'DHC-Solar-Bao-gia-', $name );
} );
Báo sang hệ thống khác khi khách đồng ý báo giá
add_action( 'devvn_bg_quote_accepted', function ( $quote_id, $version_id, $acceptance_id, $method ) {
wp_remote_post( 'https://crm.example.com/webhook/bao-gia', array(
'timeout' => 10,
'body' => array(
'quote_id' => $quote_id,
'version_id' => $version_id,
'method' => $method,
),
) );
}, 10, 4 );
Nhắc gọi lại chỉ đúng ngày hẹn, không báo bù
add_filter( 'devvn_bg_notify_followup_lookback', function () {
return 0;
} );
Icon (i) mở tài liệu nội bộ của bạn
add_filter( 'devvn_bg_docs_url', function () {
return 'https://tailieu.example.com/bao-gia/';
} );
Icon của màn Tin đã gửi khi đó mở https://tailieu.example.com/bao-gia/tab-thong-bao/?utm_source=plugin… — trang tài liệu của bạn cần có đúng các slug bài như bộ tài liệu này.
Ghi tên nhân viên kèm hotline vào tin nhắn
add_filter( 'devvn_bg_notify_values', function ( $values ) {
$values['ten_nhan_vien'] .= ' (hotline 0900 000 111)';
return $values;
} );
Chỉ đổi được giá trị của biến có sẵn (bảng ở mục tin nhắn thông báo); biến mới tự đặt tên sẽ không được thay vào mẫu.
Các hook quyền (devvn_bg_*_cap, devvn_bg_sees_unassigned) mở thêm dữ liệu cho người khác xem; devvn_bg_approval_thresholds và devvn_bg_export_data tác động thẳng lên số tiền khách nhận. Riêng devvn_bg_reports_cap: màn Báo cáo không chia theo nhân viên, ai vào được là thấy số của cả cửa hàng. Thử trên bản sao (staging) rồi mới đưa lên site thật.
Gỡ plugin có xoá dữ liệu không
Xoá plugin ở màn Plugin mặc định chỉ dọn thứ tạo lại được (tác vụ nền, bộ nhớ tạm, thư viện Excel tải về). Báo giá, bằng chứng chấp thuận, cài đặt, vai trò giữ nguyên. Muốn xoá sạch, khai trước trong wp-config.php:
define( 'DEVVN_BG_REMOVE_ALL_DATA', true );
Khi đó việc xoá plugin xoá thêm 12 bảng dữ liệu, mọi tuỳ chọn devvn_bg_*, dữ liệu giá trong sản phẩm (_devvn_bg_*), ba vai trò và quyền của plugin, và thư mục uploads/devvn-quote-builder/. Tài khoản nhân viên / đại lý vẫn còn (mất vai trò báo giá), kèm các ô hồ sơ đã lưu trên tài khoản.
Còn vướng chỗ nào thì xem Giải đáp thắc mắc.