Description
OrderCRM for WooCommerce transforms your store’s order management into a powerful, standalone frontend dashboard. Sales managers can filter orders by status, date, or customer, perform quick searches, and view detailed sales reports with interactive charts — all without accessing the WordPress admin area. Perfect for medium-sized businesses handling up to 1,000 orders per month.
Why OrderCRM?
- 🚀 Frontend Dashboard — No admin access required. Your sales team works from a secure, custom interface.
- 🔍 Advanced Filters — Filter orders by status, date range, customer name, or order ID in seconds.
- ⚡ Quick Search — Find orders and clients instantly with our fast search engine.
- 📊 Sales Reports — Visualize revenue trends with beautiful charts and period-based reports.
- 🔒 Secure by Design — Sales managers get only the tools they need — no accidental site breakage.
Recommended Plugins
For full functionality, we recommend installing these additional plugins:
* Advanced Shipment Tracking (Free) – For tracking number management
* WooCommerce PDF Invoices & Packing Slips – For invoice generation
Support
For support and feature requests, please use the WordPress.org support forum for this plugin.
Credits
Developed by Dima Dumchikov
License
This plugin is licensed under the GPL v2 or later.
Installation
- Upload the plugin files to the
/wp-content/plugins/ordercrm-for-woocommercedirectory, or install through WordPress admin panel (the package includes Composer dependencies undervendor/for PDF export — no server-sidecomposer installis required for typical ZIP installs) - Activate the plugin through the ‘Plugins’ menu in WordPress (PHP GD and mbstring extensions are required — activation will stop with a clear message if they are missing)
- Configure the plugin settings under OrderCRM in your admin panel
- Set up order status groups in the ‘Statuses’ tab
FAQ
-
Does this plugin work with custom order statuses?
-
Yes! The plugin is designed to work with any custom order statuses, including those created by other plugins like Advanced Shipment Tracking.
-
How do I configure order status groups?
-
Go to OrderCRM Settings Statuses in your admin panel. You can organize statuses into three groups: “In Progress”, “Completed”, and “Cancelled”.
-
Will updating the plugin affect my existing orders?
-
No. The plugin includes an automatic update system that safely migrates order statuses without data loss.
-
Is this plugin compatible with other WooCommerce plugins?
-
Yes, the plugin is designed to work alongside other WooCommerce plugins without conflicts.
-
What are the system requirements?
-
- WordPress 5.6 or higher
- WooCommerce 5.0 or higher
- PHP 8.0 or higher
- PHP extensions GD and mbstring (required for sales report PDF export via mPDF)
-
Is report PDF stored on the server in uploads?
-
No. The PDF is generated on demand and sent in the AJAX response only; it is not saved as a public file in the media library or uploads folder, to reduce exposure of commercial data.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“OrderCRM for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “OrderCRM for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
3.3.4
- WordPress.org slug: folder, main file, text domain, and wp-admin menu slug
ordercrm-for-woocommerce([unique]-for-woocommercepattern); display name OrderCRM for WooCommerce unchanged. - Plugin Check: readme short description (≤150 chars), 5 tags, Upgrade Notice (≤300 chars), Tested up to 7.0 — zero warnings on local check.
- CRM logs: login via
/crm-login/writes CRM login activity (explicit log afterwp_signon, symmetric with REST logout). - Transactional emails: customer notification when CRM changes order status across transitions without WooCommerce core email hook (e.g. custom statuses).
- Stability: output buffering in
OrderCRM_Routes::load_template(); Chart.js 4.5.1; wp-admin Roles/Users tab fixes (role slug normalization, readable role names).
3.3.3
- wp-admin — Reports tab: new settings tab (before HPOS Test) to select
product_brandterms in three columns (A–Z); saved toreports_selected_product_brands; Post/Redirect/Get save flow. - CRM Reports — selected brands block: after non-completed orders table, shows TOP-5 products and TOP-5 categories pie for selected brands only (Completed + Processing statuses); Selected brands: label lists chosen names; block is hidden on screen and in PDF when no brands are selected.
- CRM Reports PDF: includes selected-brands section and
brands_categories_chart_imagesnapshot (#salesBrandsCategoriesChart) with SVG fallback. - UI: selected-brands block background
#B2BEB5(distinct from all-products statistics#DBDBDB).
3.3.2
- Security hardening (Release E, staged): Stage 5.1 strict nonce mode for CRM REST reads added behind feature-flag
SALES_CRM_STRICT_REST_NONCE(default OFF), with staged rollout/rollback controls and staging smoke validation. - Post-smoke hotfixes: customer lookup schema compatibility for environments without
wc_customer_lookup.num_orders; CRM login asset isolation fix to avoid plugin-induced root-relative static requests; logs UI refresh delay reduced to 10 seconds (sales_crm_logs_cache_invalidate_delaydefault).
3.3.1
- Security hardening (Release D completed): legacy invoice storage migration (Stage 4.1) finalized with protected storage, lazy + background migration, and reversible metadata rollback flow.
- Security hardening: CRM REST same-origin policy (Stage 4.2) enabled for routes
/sales-crm/v1/*withOriginvalidation and explicit cross-origin403blocking, without frontend/report regressions on staging.
3.3.0
- Security hardening (Release B completed): invoice storage directory is protected (
sales-crm-invoices, deny direct access) and invoice filenames are now unpredictable ({order}-{random}.{ext}) while user download name remains unchanged. - Security hardening: staged verifications passed for Stage 1.1, 1.2, 1.3, 2.1 and 2.2 on test environment without CRM UI regressions.
3.2.9
- wp-admin — General tab: logo settings are now on the General settings tab (single form, one Save button). The separate Logo tab was removed; legacy
?tab=logoredirects to General. - i18n (ru_RU): success notice after saving General settings — «Общие настройки сохранены.»
3.2.8
- WordPress.org Plugin Check: full compliance (0 errors, 0 warnings) on release ZIP — directory submission readiness.
- Compatibility: Tested up to WordPress 7.0 (
readme.txtand plugin header synchronized). - i18n: translators comments for placeholder strings in order status labels and frontend messages.
- Verification: Plugin Check and staging smoke §19 2026-07-07 — no CRM UI or workflow changes.
3.2.7
- Create order — view-model (T-TPL-4d):
handle_add_order_page_post()andget_add_order_view()centralize POST dispatch and display data (totals, customer, country options);add-order.phptemplate is display-focused. No CRM UI changes. - Verification: staging smoke 2026-07-06 — add-order (#2234, #2237), cross-smoke §19 (order card, products, reports, logout/login); phase-g runner
all_checks_passed: true.
3.2.6
- Create order — customer & discount POST (T-TPL-4c-i): search/select customer, apply discount %, and clear draft handled in
Sales_CRM_Order_Service::handle_add_order_draft_mutations_post(); template dispatches a single service call; REST customer selection unchanged. - Create order — create POST (T-TPL-4c-ii): order creation and new customer creation moved to
handle_create_order_post()andhandle_create_new_customer_post()(redirect to order card, JS fallback when headers already sent). - Verification: staging smoke 2026-07-06 — 4c-i (search/select, discount, clear); 4c-ii (create with existing customer, create with new customer + phone, order #2223, transactional email); HPOS on.
3.2.5
- Create order — draft session (T-TPL-4a): temporary cart and customer data use
Sales_CRM_Order_Draft_Session(WC session with user-meta fallback); template no longer defines global session helpers. - Create order — cart POST (T-TPL-4b): add / remove / edit quantity handled in
Sales_CRM_Order_Service::handle_temp_cart_post(); correct message when adding the same simple SKU again (Product quantity increased.). - Create order — totals: draft order footer totals (subtotal, VAT, discount) recalculate correctly for simple and variation lines; CRM discount % is kept after Create customer.
- CRM products catalog (T-TPL-3): product list filters and POST update logic moved to
Sales_CRM_Products_List_Service; template is display-focused. - CRM Reports pie chart: improved category label layout (less overlap; HTML legend).
- Verification: staging smoke 2026-07-06 — add-order cart, totals, discount + new customer; products catalog.
3.2.4
- CRM Reports — category pie chart: on
/crm-dashboard/reports/, Statistics among all products shows TOP-5 products (table) and TOP-5 categories (Chart.js pie, integer % to 100, Other for the rest); cached per report period. - CRM Reports PDF: category pie chart above the sold-products table; sync and async export paths; SVG fallback when chart PNG is unavailable.
- CRM Reports layout: section heading styled like other CRM table blocks (
sales-crm-table-container). - wp-admin — Statuses tab (T-TPL-1): saving status groups uses Post/Redirect/Get — after Save, page refresh (F5) no longer shows browser resubmit warning; standard green success notice; checkbox selections persist correctly. Template is display-only; logic in
Sales_CRM_Admin_Settings. - Verification: staging smoke 2026-07-03 — reports pie on screen + PDF; Statuses tab Save, PRG, notice.
3.2.3
- CRM logs filter: user dropdown on
/crm-dashboard/logs/shows names as Last name First name, sorted A–Z by last name (same display rules as customer/order profiles). - CRM products filter: Brand select on
/crm-dashboard/products/built from WooCommerceproduct_brandtaxonomy (A–Z); combines with search, category, and stock filters; RESTGET /productsacceptsbrandquery param. Select is hidden when the taxonomy is not registered. - Report PDF: visible preparation animation on export; optional async generation path (filter
sales_crm_pdf_export_async_enabled, default off — sync download unchanged). - Performance: activity log cache invalidation debounced via Action Scheduler (T-11.4) — faster order/log writes on busy stores; new log rows appear within ~20 s.
- Verification: staging smoke 2026-07-02 (phase-g
wave682_*,wave683_*,wave684_*).
3.2.2
- Report cache (performance): after order status changes and new orders, CRM report transients clear via WooCommerce Action Scheduler (debounced, typically within 30–60 seconds) instead of heavy synchronous SQL on every mutation — faster order card REST responses. Report numbers stay the same; brief delay before refreshed totals is expected. Filters:
sales_crm_deferred_report_cache_invalidation_enabled,sales_crm_report_cache_invalidate_delay. - Fixes: WooCommerce refunded-order email shim (theme template recursion); admin settings tab labels on WP 6.7+; CRM frontend asset dequeue when
wp_enqueue_scriptsalready ran. - Verification: staging smoke 2026-07-01 (phase-g
wave682_*, report invalidation after debounce). No CRM UI changes.
3.2.1
- Transactional emails from CRM: WooCommerce customer and admin notifications on create order, customer notes, status changes, and AST tracking — reliable delivery via synchronous sending by default (no theme
functions.phpdefer filters required). - Create order: status remains
pendingin the database; client receives the standard WooCommerce notification (customer_on_hold_order); managers receive New order;billing_emailrequired with user-email fallback. - Optional defer: filters
sales_crm_enable_wc_deferred_transactional_emailsandsales_crm_defer_transactional_emails_on_order_mutationdefault to false; set totruefor faster REST TTFB with queue flush on REST/shutdown. - Compatibility: verified with Advanced Shipment Tracking and WooCommerce PDF Invoices & Packing Slips (staging orders #2155, #2159, 2026-07-01). No CRM UI changes.
3.2.0
- Background jobs (T-11.0): WooCommerce Action Scheduler integration via
Sales_CRM_Background_Jobs(groupsales-crm); runtime runnerwave68_*checks. - Login/logout log cleanup (T-11.1): daily housekeeping moved from WP-Cron to Action Scheduler (
sales_crm_delete_old_login_logout_logs); legacy WP-Cron removed on migrate; filtersales_crm_login_logout_log_retention_days(default 62 days). No UX change. - WP 6.7+ i18n: translations load on
init; lazy admin settings tabs; capability slugs without early__()onplugins_loaded; early custom order status registration without textdomain beforeinit. - WooCommerce email compat: plugin shim when the active theme overrides
customer-refunded-order.phpwithout$user_login. - Verification: staging smoke runner 2026-06-30 (
all_checks_passed: true,wave68_login_logout_cleanup_*).
3.1.9
- Templates (T-03): orders list table (
orders-table.php) — all display logic moved toSales_CRM_Order_Service::build_orders_table_rows(); customer card sidebar totals use pre-formatted HTML fromget_customer_profile_for_view(). No UX changes; staging smoke passed. - Ops (T-14): production HTTPS/TLS and cookie-auth verification documented (
PRODUCTION_HTTPS_CHECKLIST.md); runtime runner checkswave67_*(cookie pattern, login nocache, URL scheme on HTTPS). - Diagnostics: phase-g runner prefers sample order ID from REST orders list (
shop_order) for reliable wave4/wave64 checks.
3.1.8
- Hotfix — CRM logout: sidebar “Logout” uses REST
POST /auth/logout(classsales-crm-logout) instead ofwp_logout_url()— no WordPress “confirm logout” page; redirect straight to/crm-login/.
3.1.7
- Hotfix — CRM login (critical): removed post-login
has_crm_access()check that logged out valid users with falseno_access(regression from 3.1.5–3.1.6). Access is enforced on CRM pages after redirect — same as before 3.1.5. - wp_signon(): restored
wp_signon( $creds, false )as in 3.1.4 for production HTTPS cookie compatibility. - Login page:
data-sales-crm-versionon<body>for deploy verification when HTML comments are stripped.
3.1.6
- Hotfix — CRM login (root cause): stop reading WordPress core
errorquery var on/crm-login/(collision caused false “An error occurred during login” banner on HTTPS production). CRM errors now usecrm_login_erroronly. - Login: fallback route detection by URI when rewrite query var is missing; fix theme stylesheet MIME error on login page.
3.1.5
- Hotfix — CRM login: fixed false error banner “An error occurred during login” on
/crm-login/when the form was not submitted (stale nonce redirect, unknownerrorquery codes, or cached login HTML). - Login: explicit message for expired form session (
invalid_nonce); show errors only for known codes;wp_signon()uses secure cookies on HTTPS; check CRM access after sign-in;nocache_headers()on the login page.
3.1.4
- Reports cache (wave 6.3, T-09): transient caching for heavy CRM reports (sales stats, TOP-5 line items, year list); faster
/crm-reports/and PDF export on repeat views; cache invalidates on order status change and new orders. No UX changes. - Deferred transactional emails (T-10): WooCommerce emails deferred on all CRM order mutations (status, line items, discount, invoice, AST tracking); faster order card REST responses. Enable Deferred transactional emails in WooCommerce Settings Advanced Features for best results.
- Verification: staging smoke + runtime runners
wave64_*andwave65_*.
3.1.3
- List performance (wave 6.2, T-08): batch prefetch for customers, orders, and products lists; reduced N+1 without UX changes to tables or REST contracts.
- Activity logs (T-12 / phase F): bounded merge total in
get_logs()— removes unbounded PHP merge for pagination count; faster logs screen on large datasets. - Verification: staging smoke + runtime runners
wave62_*andwave63_*; phase-f scenarios S1–S6 passed.
3.1.2
- RBAC (wave 6.1, T-07): centralized CRM capability checks via
sales_crm_user_can()andSales_CRM_Capabilities; aligned UI menus, REST permission callbacks, and CRM role settings sync. - Order notes: permission uses
add_order_notes(with legacyedit_sales_crmfallback) consistently in templates and REST. - Reports PDF: export allowed for CRM admin UI or users with
view_reportscapability. - Verification: staging role smoke and runtime runner
wave61_rbac_*passed.
3.1.1
- Architecture (wave 5): domain classes moved under
includes/modules/—orders/,customers/,logs/,products/with module loaders. - Products catalog (T-01): list/read logic in
Sales_CRM_Products_List_Service; CRM products page uses a prepared view-model (no SQL in template). - REST:
GET /sales-crm/v1/products— paginated catalog list with filters (search,category,stock,page); stock filter accepts all WooCommerce stock statuses (including custom statuses such as out of production). - Products UI: stock status filter and edit modal both use
wc_get_product_stock_status_options(); fixes for status-only updates from the dashboard modal. - CRM UI REST (wave 4): CRM frontend migrated from legacy AJAX to
sales-crm/v1(orders, customers, products search, order card, catalog edit, logout, invoices, report PDF); seeCHANGELOG.mdfor full notes. - Fixed: block adding
outofstock/out_of_productionitems to orders; faster order status change (deferred transactional emails).
3.1.0
- Architecture (wave 3 complete):
Sales_CRM_Customer_RepositoryandSales_CRM_Activity_Log_Repository; DTO read-models for customer list/profile and activity logs; templatescustomer.php,customers.php, andlogs.phpuse service layer instead of direct DB/user API calls. - Activity log: clearer event sources (manager notes, tracking number, line-item changes); filter “Order note” maps to manual manager notes only.
- Create order: reliable intl-tel-input phone mask (country flag, placeholder, BY/UA/RU validation); scripts enqueued via
sales_crm_enqueue_phone_input_assets(). - Fixed: variation line price 0 when WooCommerce
_pricemeta is empty; CRM discount VAT display; customer password reset white screen. - Docs:
docs/reports/WAVE_3_ACCEPTANCE_REPORT.md; seeCHANGELOG.mdfor full developer notes.
3.0.3
- Architecture (wave 2 complete): order logic split into sub-services —
Sales_CRM_Order_Discount_Service,Sales_CRM_Order_Line_Item_Service,Sales_CRM_Order_Crm_Actions_Service, sharedSales_CRM_Order_Mutation_Support;Sales_CRM_Order_Serviceis a thin facade delegating to them. - Create order: legacy
wc_create_order()path removed fromadd-order.php; creation always usesSales_CRM_Order_Service::create_order_from_crm_session()(noWOO_SALES_CRM_V3_ENABLEDbranch). - Order list:
Sales_CRM_Order_Repository::query_for_crm_list()— single entry for CRM status-group filters beforewc_get_orders. - Order card (POST): all mutations via order service (status, notes, qty, SKU, discount, address, AST); CRM discount meta recalculated after SKU add / line remove when a percent discount is active.
- VAT label:
get_vat_rate_label_for_order()and VAT (XX%) in order totals; historical rate from order tax snapshot. - Docs: wave 2 marked closed in
ARCHITECTURE_IDEALSTATE_PLAN.md; updatedSERVICES_FACADE.md. - VAT with CRM discount: VAT and subtotal rows in the order totals table are scaled proportionally when a CRM discount is applied (taxable base after discount); without discount, values match WooCommerce
get_total_tax()/get_subtotal(). - Order totals row order: gross total and discount first, then subtotal without VAT and VAT breakdown, then final total with discount (
order-items-table.php). - Docs:
docs/guides/WOOCOMMERCE_TAX_PRICING_CRM.md— CRM discount and VAT calculation (with/without discount). - Architecture:
Sales_CRM_Order_RepositoryandSales_CRM_Service_Factory::order_repository(); optional Strangler path for Create order in CRM whenWOO_SALES_CRM_V3_ENABLEDis set in wp-config (Sales_CRM_Order_Service::create_order_from_crm_session). Template views use order service helpers (get_wc_order,get_order_statuses_for_ui,get_status_display_name,get_order_notes_for_display) instead of scattered WooCommerce calls. - Security / refactor (internal): Phase B order notes via WC API; phases C (SQL hardening) and D (XSS escapes) per project docs; full-tree WPCS pass remains the project baseline.
- Pricing & tax: CRM order line totals and product/dashboard pricing aligned with WooCommerce tax settings (
wc_prices_include_tax, WC totals); preview totals for the temporary cart use a short-livedWC_Order+calculate_totals(). - VAT rate label: order totals show VAT (XX%) / НДС (XX%) next to the tax amount; rate from the order tax snapshot (historical) with fallback to current WC standard rates; see
docs/guides/WOOCOMMERCE_TAX_PRICING_CRM.md. - Docs:
ARCHITECTURE_IDEALSTATE_PLAN.md, template order-logic inventory, Strangler create-order acceptance on staging (seeCHANGELOG.md). - i18n: new/updated Russian strings for order-service errors and
VAT (%s):— recompilelanguages/sales-crm-ru_RU.moif you ship custom PO files.
3.0.1
- Architecture: centralized facade services —
Sales_CRM_Customer_Service,Sales_CRM_Log_Service(withlog()for WC logger and CRM login/logout events), continued use ofSales_CRM_Order_Service;Sales_CRM_Ordersloads customer display data via Customer Service; plugin boot order updated (customerscustomer-serviceorders). - Logging: CRM activity and admin flows use
Sales_CRM_Log_Serviceinstead of directSales_CRM_Loggerin touched code;Sales_CRM_Admin_Settings::get_logs()uses the same log pipeline as the CRM logs UI. - Reports PDF: more reliable download (output buffer flush before binary, relaxed chart PNG validation with graceful skip, client detects
%PDFeven ifContent-Typeis wrong); AJAX URL uses relativeadmin-ajax.php; header band uses primary color from settings. - Testing: optional
define( 'SALES_CRM_DISABLE_PDF_RATE_LIMIT', true );in wp-config disables PDF rate limiting (remove after tests). - Mobile block page:
<body class="mobile-blocked-page">so primary color background from settings applies. - i18n: fixed Russian catalog entry for discount log line (
msgidmust match__()placeholders%1$s/%2$d); recompile.moafter.poupdates. - Developer changelog:
CHANGELOG.md(Keep a Changelog); internal docs:docs/features/SERVICES_FACADE.md, updatedREPORTS_PDF_EXPORT.mdandREFACTORING_3_0_STRATEGY.md. - Refactoring phase A (docs): updated
docs/reports/HPOS_CODE_INVENTORY.md; addedREFACTORING_SECURITY_AUDIT_MATRIX.mdandREFACTORING_ACCEPTANCE_CRITERIA.md(audit matrix + formal acceptance criteria for next phases).
3.0.0
- Breaking: minimum PHP 8.0 required (PHP 7.x no longer supported). Upgrade PHP before updating; use 2.1.x on older PHP if needed.
- Baseline for large refactor: internal strategy uses Strangler pattern — new code paths can be gated with
WOO_SALES_CRM_V3_ENABLED(aligned with CRM 3.0 naming; seedeveloper/docs/reports/REFACTORING_3_0_STRATEGY.md). - Optional: set
define('WOO_SALES_CRM_V3_ENABLED', true);orCRM_V3_ENABLEDin wp-config.php when you are ready to test the refactored branch (default remains legacy). Old namesWOO_SALES_CRM_V2_ENABLED/CRM_V2_ENABLEDare still read for backward compatibility. - Version alignment:
version.php, plugin header, and Stable tag set to 3.0.0; ComposerrequirePHP ^8.0. - HPOS-related order migrations already use WooCommerce APIs where previously adjusted (see project docs).
2.1.2
- Reports: Download PDF — export the selected period to PDF (mPDF); chart embedded as PNG from the on-screen canvas
- Reports PDF: full list of non-completed orders for the period; product table includes all aggregated rows with total quantity greater than one (screen still shows TOP-5)
- Reports PDF: header logo from CRM settings; page numbers; currency uses the
rub.string in PDF output where the ruble glyph is unreliable in PDF fonts - Security: PDF output is not cached under
uploads; delivery only through authenticated AJAX (view_reports/ administrator) - Anti-abuse: rate limiting for PDF generation (default: about once per hour per user, optional IP-based limit; filterable)
- Activation: require PHP extensions GD and mbstring (aligned with mPDF)
- Bundled
composer.json,composer.lock, andvendor/(mPDF) for “upload and run” installs; developer docs:docs/features/REPORTS_PDF_EXPORT.md - Russian translations updated for PDF and activation messages
2.1.1
- Reports: choose month, quarter, or year; Apply filter; year dropdown lists only years that have orders (classic posts + HPOS)
- Reports: Chart.js graphs adapted to period (daily / quarterly multi-series / yearly by month)
- Reports: “Products for period (TOP-5)” — aggregate quantities by SKU from Completed + In Progress status groups (per CRM settings)
- Reports: “Orders for period” lists non-completed orders only; pagination uses CRM “items per page” setting
- Reports: amounts shown with store currency via wc_price(); chart bootstrapped from reports-chart.js (no inline scripts in template)
- Updated Russian translations for new strings
1.2.9.3
- Added CRM order identification icon (dashicons-desktop) in order lists
- CRM-created orders now display a blue desktop icon next to order numbers
- Icon appears in dashboard, orders, and customer sections
- Added tooltip showing which manager created the order via CRM
- Enhanced order tracking for CRM vs. regular website orders
- Improved visual distinction between order creation methods
1.2.8.7
- Customer search fix: Completely redesigned customer search algorithm
- Fixed incomplete customer search results – now finds all customers with matching names
- Enhanced search functionality across all CRM sections (customers list, order creation)
- Improved search by first name, last name, full name, and phone numbers
- Added comprehensive search across WordPress user fields and meta fields
- Eliminated duplicate results in customer search
- Performance optimization: Enhanced logging system with intelligent caching
- Optimized log retrieval with 5-minute caching for improved performance
- Improved SQL queries for system logs and order notes processing
- Enhanced pagination and filtering for better user experience
- Reduced database load through efficient log processing
- Added automatic cache clearing when new logs are created
- Optimized memory usage for large log datasets
- Improved overall CRM dashboard responsiveness
- Performance optimization: Enhanced logging system with intelligent caching
- Optimized log retrieval with 5-minute caching for improved performance
- Improved SQL queries for system logs and order notes processing
- Enhanced pagination and filtering for better user experience
- Reduced database load through efficient log processing
- Added automatic cache clearing when new logs are created
- Optimized memory usage for large log datasets
- Improved overall CRM dashboard responsiveness
1.2.8.6
- Critical bug fix: Resolved empty products display issue in CRM dashboard
- Performance optimization with improved SQL queries and caching system
- Replaced inefficient nested SQL subqueries with optimized JOIN operations
- Implemented comprehensive caching for product search, categories, and filters
- Fixed critical memory usage issue with unlimited product loading (limit -1)
- Added new Sales_CRM_Cache_Manager class for intelligent caching
- Optimized database queries for 3-5x faster performance
- Implemented automatic cache clearing on product and category changes
- Reduced memory usage by 70-90% through result limiting
- Added 90%+ cache hit rate for frequently accessed data
- Enhanced overall system responsiveness and scalability
1.2.8.4
- Complete Russian localization with 376+ translated strings
- Full interface translation for all frontend and backend elements
- Improved localization system with automatic language detection
- Fixed product search functionality by SKU and category filtering
- Resolved display issues with added items in order creation
- Enhanced JavaScript localization replacing hardcoded English strings
- Optimized translation file compilation and loading system
- Added debugging support for translation loading
- Comprehensive localization coverage: menus, forms, notifications, modals
- Improved user experience for Russian-speaking users
1.2.8.0
- Added default plugin logo implementation across all CRM pages
- Implemented automatic fallback to default logo when no custom logo is uploaded
- Enhanced logo display on login, mobile-blocked, no-access pages and main CRM layout
- Added new methods in admin settings class for logo management with default fallback
- Improved user experience with consistent branding across all CRM interfaces
- Maintained backward compatibility with existing custom logo functionality
1.2.7.8
- Implemented PHPCS (PHP CodeSniffer) for automatic code formatting
- Added WordPress coding standards compliance with adapted rules for plugins
- Created comprehensive development tools and automation scripts
- Organized project structure according to WordPress/WooCommerce standards
- Added detailed documentation for code formatting and development workflow
- Prepared plugin for production deployment with clean file structure
- Enhanced code quality and maintainability standards
1.2.7.7
- Added HPOS (High-Performance Order Storage) compatibility testing
- Implemented new “HPOS Test” tab in admin settings with two-column layout
- Enhanced HPOS status detection with multiple fallback methods
- Improved error handling for HPOS compatibility checks
- Added comprehensive HPOS compatibility information and testing instructions
- Removed debug logging for production use
- Cleaned up test files and prepared for release
1.2.7.6
- Migrated from PHP sessions to WC()->session for better compatibility
- Fixed customer data persistence issues in order creation
- Improved menu order: moved “Products” above “Reports”
- Enhanced AJAX customer selection functionality
- Optimized temporary data storage using WooCommerce session system
- Added fallback to user meta for authenticated users
1.2.7.4
- Added automatic update system for order statuses
- Implemented flexible status group management
- Fixed compatibility issues with Advanced Shipment Tracking
- Improved order display logic in dashboard
- Added comprehensive error handling
- Removed debug logging for production use
1.2.7.2
- Enhanced customer search functionality
- Improved order tracking system
- Bug fixes and performance improvements
1.2.7.1
- Initial release with core CRM functionality
- Basic order and customer management
- Activity logging system