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.

Nâng cao Dành cho lập trình viên Cập nhật 06.10.2026

Đặ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

HookTham sốChạy khi nào
devvn_bg_loadedkhông cóPlugin đã nạp xong mọi thành phần.
devvn_bg_quote_created$quote_id, $user_idMộ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, $argsMọ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_idBá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_idMộ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, $reasonNhân viên trình duyệt giảm giá.
devvn_bg_approval_decided$quote_id, $status, $note, $approver_id, $requester_idDuyệt (approved) hoặc từ chối (rejected).
devvn_bg_quote_accepted$quote_id, $version_id, $acceptance_id, $methodKhá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, $hashFile 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, $paymentThêm / sửa / xoá một khoản thanh toán. $action: payment_add, payment_update, payment_delete.
devvn_bg_quote_trashed$quote_idBáo giá vào Thùng rác.
devvn_bg_quote_purged$quote_id, $summaryBáo giá bị xoá hẳn.
devvn_bg_quote_linked$quote_id, $user_id, $methodBáo giá được gắn vào tài khoản khách (login hoặc claim).
devvn_bg_lead_captured$quote_id, $formatKhách để lại thông tin để tải file báo giá.
devvn_bg_consult_requested$quote_idKhá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_idLink 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, $limitVan 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, $oldSau 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, $currentLư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$idXoá 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, $argsNgay trước khi ghi file Excel — chỉnh sổ tính PhpSpreadsheet.

Action để chèn giao diện

HookTham sốIn ra ở đâu
devvn_bg_editor_sections$argsThêm khối vào màn soạn báo giá.
devvn_bg_share_enqueue$contextLúc nạp CSS / JS của trang chia sẻ báo giá.
devvn_bg_share_status$contextDải trạng thái ngay dưới thanh thương hiệu của trang chia sẻ.
devvn_bg_share_actions$contextKhố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$contextKhối thông tin thanh toán dưới tổng tiền.
devvn_bg_share_before_document · devvn_bg_share_after_document$contextTrướ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)

HookTham sốChạy khi nào
devvn_bg_notify_expiringkhô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_followupkhô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_idLượ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ì

HookMặc định / tham sốDùng để
devvn_bg_sees_unassigneduser_can( $user, 'devvn_bg_edit_all' ), $userCho 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, $userTầ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$tabsThêm tab vào trang Cài đặt.
devvn_bg_admin_ajax_routes$routesThê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

HookMặc định / tham sốDùng để
devvn_bg_approval_thresholdsngưỡng đã lưu ở tab Phân quyền, $creatorNgưỡ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_margin5.0Biê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

HookMặ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_lookback7 (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_enabledtrạng thái đã lưu, $event, $channelBật / tắt một cặp sự kiện + kênh bằng code.
devvn_bg_notify_events · devvn_bg_notify_default_templatesdanh sách sự kiện / mẫu mặc địnhThêm sự kiện, đổi mẫu tin mặc định.
devvn_bg_notify_expiring_dayssố 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_enabledtheo 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_sendnull, $phone, $message, $contextTự nối kênh Zalo: trả true (đã gửi), false / WP_Error (lỗi), để null nếu không xử lý.
devvn_bg_zalo_providernullTrả 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_filetự tính · $status · falseKê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_prenull · 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

HookMặc định / tham sốDùng để
devvn_bg_export_data$data, $quote_id, $version_id, $argsSử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_enabledThê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_wordschữ đọ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_lines300Số dòng tối đa khi xuất file (người đã đăng nhập).
devvn_bg_export_public_max_lines100Số dòng tối đa khi khách chưa đăng nhập tải file.
devvn_bg_export_public_gatetrue, $chain, $version, $format, $userCho / chặn khách tải một định dạng file từ link.
devvn_bg_pdf_config · devvn_bg_pdf_temp_dircấu hình mPDF · thư mục tạm devvn-bg-pdfChỉnh cấu hình mPDF, đổi thư mục tạm.
devvn_bg_transfer_content$text, $chain, $versionNội dung chuyển khoản trong mã VietQR.
devvn_bg_vietqr_banksdanh sách ngân hàngThêm / sửa ngân hàng cho mã QR.
devvn_bg_brandthô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_templatesmẫu điều khoản đã lưuThê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 DevVNCà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

HookMặc định / tham sốDùng để
devvn_bg_builder_configcấu hình JS của trangThêm chuỗi dịch / tuỳ chọn cho trang lên báo giá.
devvn_bg_product_query_args$args, $filtersSửa truy vấn sản phẩm của cửa sổ chọn thiết bị.
devvn_bg_product_filters$items, $section_idBộ lọc hiện trong cửa sổ chọn của từng hạng mục.
devvn_bg_brand_taxonomyproduct_brand, không có thì pa_thuong-hieuTaxonomy 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_seconds2Thờ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_valvetheo 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_emailfalse, $count, $limitTrả true để gửi email báo quản trị viên khi van khoá.
devvn_bg_rate_limits$limitsHạ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_provinces34 tỉnh / thànhDanh sách tỉnh trong hồ sơ đại lý.
devvn_bg_source_labelsnhãn loại nguồnTên hiển thị của loại nguồn báo giá.

Filter — trang chia sẻ báo giá

HookMặc định / tham sốDùng để
devvn_bg_rewrite_rulesarray()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, $argsThẻ meta khi gửi link qua Zalo / Facebook.
devvn_bg_share_is_bottự nhận theo user agent, $agentCoi 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ữ

HookMặc định / tham sốDùng để
devvn_bg_anon_draft_daystheo 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_monthstheo 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_monthstheo 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_batch100 · 500Số 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

HookMặc định / tham sốDùng để
devvn_bg_health_checks$checksThê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_extensionszip, 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_smtpnullTrả 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_cronkết quả tự phát hiệnSửa kết quả phát hiện trên máy chủ đặc biệt.
devvn_bg_health_secretstoken Telegram, mật khẩu CSDL, số tài khoản, khoá bản quyềnThêm chuỗi bí mật cần che trong báo cáo chẩn đoán.
devvn_bg_license_statusnullTó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_debughằng DEVVN_BG_DEBUG (không khai = false)Bật ghi nhật ký gỡ lỗi.
devvn_bg_migrationscác bước nâng cấp dữ liệuThê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.

FileDùng cho@version hiện tạiMốc bắt buộc
quote-pdf.phpMẫu in báo giá (PDF, bản in, ảnh)1.15.01.1.0
quote-share.phpTrang chia sẻ báo giá1.9.01.2.0
quote-acceptance.phpTrang xem lại báo giá khách đã đồng ý1.2.01.0.0
share-accept.phpKhối đồng ý báo giá trên trang chia sẻ1.0.01.0.0
share-payment.phpKhối thanh toán trên trang chia sẻ1.5.01.1.0
share-status.phpDải trạng thái đầu trang chia sẻ (đã xác nhận / đã thanh toán)1.0.01.0.0
notify-email.phpKhung email thông báo1.1.01.0.0
myaccount-quotes.phpMục "Báo giá của tôi" trong tài khoản1.0.01.0.0
delivery-slip.phpMẫu phiếu xuất kho và phiếu lắp đặt1.3.01.0.0
  • Giữ dòng @version trong khối chú thích đầu file. Bản ghi đè không có @version hoặ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 filter devvn_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

PHP
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

PHP
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

PHP
add_filter( 'devvn_bg_report_thin_margin', function () {
    return 10.0;
} );

Đặt tên file tải về theo tên công ty

PHP
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á

PHP
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ù

PHP
add_filter( 'devvn_bg_notify_followup_lookback', function () {
    return 0;
} );

Icon (i) mở tài liệu nội bộ của bạn

PHP
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

PHP
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.

Thử trên bản sao của website trước

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:

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.

Hỗ trợ Zalo