Polanger Ticket System for WooCommerce

Àpèjúwe

Polanger Ticket System is a support ticket plugin for WooCommerce. It provides a ticket-based support system integrated with WooCommerce.

Key Features

Polanger Ticket System includes the following features:

  • Chat-style messaging interface
  • Real-time collision detection (Agent Lock)
  • Automatic email notifications
  • Customizable categories & priorities
  • WooCommerce order & product linking
  • Customer ticket closing option
  • Maximum active tickets limit
  • Auto-close inactive tickets
  • HPOS compatible
  • Fully translatable (i18n ready)

Ticket Management

  • Create Tickets Ìtumọ̀ Yorùbá: – Customers can easily create support tickets from their My Account page
  • Track Status Ìtumọ̀ Yorùbá: – Monitor tickets through Open, In Progress, Waiting, Resolved, and Closed statuses
  • Priority Levels Ìtumọ̀ Yorùbá: – Organize tickets by urgency with customizable priority levels (Low, Normal, High, Urgent)
  • Categories Ìtumọ̀ Yorùbá: – Categorize tickets for better organization and routing
  • Order Association Ìtumọ̀ Yorùbá: – Link tickets to specific WooCommerce orders for context
  • Product Association Ìtumọ̀ Yorùbá: – Connect tickets to purchased products

Chat Interface

  • Real-time Updates Ìtumọ̀ Yorùbá: – Automatic polling for new messages without page refresh
  • Chat-style Design Ìtumọ̀ Yorùbá: – Familiar messaging interface like popular chat apps
  • Admin & Customer Badges Ìtumọ̀ Yorùbá: – Clear distinction between support team and customer messages
  • Time Stamps Ìtumọ̀ Yorùbá: – Human-readable “X minutes ago” format
  • User Avatars Ìtumọ̀ Yorùbá: – Visual identification for all participants

Security & Control

  • Agent Lock / Collision Detection Ìtumọ̀ Yorùbá: – Prevents multiple admins from working on the same ticket simultaneously with real-time warnings
  • Heartbeat System Ìtumọ̀ Yorùbá: – 30-second presence checks to track active viewers
  • Auto-Leave Detection Ìtumọ̀ Yorùbá: – Automatically removes inactive agents using sendBeacon API
  • 2-Minute Timeout Ìtumọ̀ Yorùbá: – Inactive admins are automatically removed from viewer list
  • Max Active Tickets Ìtumọ̀ Yorùbá: – Limit how many open tickets a customer can have at once
  • Nonce Verification Ìtumọ̀ Yorùbá: – All AJAX requests are secured with WordPress nonces
  • Capability Checks Ìtumọ̀ Yorùbá: – Role-based access control for all operations

Settings

  • Enable/Disable System Ìtumọ̀ Yorùbá: – Turn the entire ticket system on or off
  • Require Product Purchase Ìtumọ̀ Yorùbá: – Only allow customers who purchased products to create tickets
  • Custom No-Purchase Message Ìtumọ̀ Yorùbá: – WYSIWYG editor for custom messages with links
  • Tickets Per Page Ìtumọ̀ Yorùbá: – Control pagination for ticket lists
  • Customer Ticket Closing Ìtumọ̀ Yorùbá: – Allow or prevent customers from closing their own tickets
  • Auto-Close Days Ìtumọ̀ Yorùbá: – Automatically close tickets after X days of inactivity
  • Max Active Tickets Ìtumọ̀ Yorùbá: – Set maximum number of active tickets per customer

Email Notifications

  • New Ticket Alerts Ìtumọ̀ Yorùbá: – Admin receives email when a new ticket is created
  • Reply Notifications Ìtumọ̀ Yorùbá: – Customers receive email when admin replies
  • Custom Admin Email Ìtumọ̀ Yorùbá: – Set a specific email address for notifications
  • Enable/Disable Ìtumọ̀ Yorùbá: – Full control over email notifications

Interface

  • Admin Dashboard Ìtumọ̀ Yorùbá: – Gradient headers, card-based layout
  • Status Color Coding Ìtumọ̀ Yorùbá: – Each status has a distinct color for quick identification
  • Priority Indicators Ìtumọ̀ Yorùbá: – Visual priority badges with customizable colors
  • Row Highlighting Ìtumọ̀ Yorùbá: – Ticket list rows colored by status
  • Hover Effects Ìtumọ̀ Yorùbá: – Smooth animations and transitions
  • Fully Responsive Ìtumọ̀ Yorùbá: – Works perfectly on all devices
  • Unread Badge Ìtumọ̀ Yorùbá: – Shows unread ticket count in My Account menu

WooCommerce Integration

  • My Account Integration Ìtumọ̀ Yorùbá: – Seamless “Support Tickets” tab in customer account
  • Order Linking Ìtumọ̀ Yorùbá: – Associate tickets with specific orders
  • Product Linking Ìtumọ̀ Yorùbá: – Connect tickets to purchased products
  • Purchase Verification Ìtumọ̀ Yorùbá: – Optionally require product purchase for ticket creation
  • HPOS Compatible Ìtumọ̀ Yorùbá: – Full support for High-Performance Order Storage

Developer Friendly

  • Hook System Ìtumọ̀ Yorùbá: – Extensive action and filter hooks for customization
  • Clean Code Ìtumọ̀ Yorùbá: – WordPress Coding Standards compliant (PHPCS)
  • Custom Database Tables Ìtumọ̀ Yorùbá: – Optimized performance with dedicated tables
  • i18n Ready Ìtumọ̀ Yorùbá: – Complete translation support with .pot file
  • Debug Logging Ìtumọ̀ Yorùbá: – Built-in logging when WP_DEBUG is enabled

Available Hooks for Developers

The free plugin registers the actions and filters below. Pro addons use many of the same extension points (for example file uploads hook into PGTS_ticket_attachments_field).

Actions (do_action)

  • PGTS_after_new_ticket_form Ìtumọ̀ Yorùbá: – After the new-ticket template wrapper ends
  • PGTS_after_ticket_category_priority Ìtumọ̀ Yorùbá: – After category/priority fields block
  • PGTS_after_ticket_created Ìtumọ̀ Yorùbá: – After ticket row and first message are stored (AJAX create); args: ticket_id, message_id, data array
  • PGTS_after_ticket_message_field Ìtumọ̀ Yorùbá: – After message textarea (new ticket form)
  • PGTS_after_ticket_notification Ìtumọ̀ Yorùbá: – After new-ticket notification is sent; args: ticket_id, user_id
  • PGTS_after_ticket_product_selection Ìtumọ̀ Yorùbá: – After product/order selection block
  • PGTS_after_ticket_submit Ìtumọ̀ Yorùbá: – After submit button row (still inside form)
  • PGTS_after_ticket_subject_field Ìtumọ̀ Yorùbá: – After subject input
  • PGTS_admin_composer_tools Ìtumọ̀ Yorùbá: – Admin reply composer toolbar area; arg: ticket object
  • PGTS_admin_message_after_content Ìtumọ̀ Yorùbá: – After each message body in admin ticket view; args: message object, ticket object
  • PGTS_admin_ticket_detail_modals Ìtumọ̀ Yorùbá: – End of admin ticket detail (e.g. modals); arg: ticket object
  • PGTS_admin_ticket_header_after_title Ìtumọ̀ Yorùbá: – After title in admin ticket header; arg: ticket object
  • PGTS_admin_ticket_sidebar_product_order Ìtumọ̀ Yorùbá: – Sidebar product/order card area; args: ticket object, order object or null
  • PGTS_before_new_ticket_form Ìtumọ̀ Yorùbá: – Before new-ticket template output
  • PGTS_before_render_new_ticket_form Ìtumọ̀ Yorùbá: – Before rendering new-ticket form (PHP); arg: user_id
  • PGTS_before_ticket_category_priority Ìtumọ̀ Yorùbá: – Before category/priority fields
  • PGTS_before_ticket_message_field Ìtumọ̀ Yorùbá: – Before message field
  • PGTS_before_ticket_product_selection Ìtumọ̀ Yorùbá: – Before product selection block
  • PGTS_before_ticket_submit Ìtumọ̀ Yorùbá: – Before submit/actions row
  • PGTS_before_ticket_subject_field Ìtumọ̀ Yorùbá: – Before subject field
  • PGTS_before_ticket_validation Ìtumọ̀ Yorùbá: – Before server-side validation (AJAX create); arg: sanitized POST array
  • PGTS_message_added Ìtumọ̀ Yorùbá: – After a ticket message row is stored; args: message_id, ticket_id, message text, is_admin_reply bool, user_id
  • PGTS_message_after_content Ìtumọ̀ Yorùbá: – After each message body on customer ticket view; args: message object, ticket object
  • PGTS_new_ticket_form_end Ìtumọ̀ Yorùbá: – End of form (before closing template section)
  • PGTS_new_ticket_form_start Ìtumọ̀ Yorùbá: – Start of <form> (new ticket)
  • PGTS_new_ticket_header Ìtumọ̀ Yorùbá: – Inside form header next to title
  • PGTS_reply_form_actions Ìtumọ̀ Yorùbá: – Customer reply form actions area; arg: ticket object
  • PGTS_reply_form_before_textarea Ìtumọ̀ Yorùbá: – Before customer reply textarea; arg: ticket object
  • PGTS_ticket_category_priority_fields Ìtumọ̀ Yorùbá: – Inside category/priority row (extra fields)
  • PGTS_ticket_created Ìtumọ̀ Yorùbá: – When ticket row is inserted; args: ticket_id, data array
  • PGTS_ticket_created_before_message Ìtumọ̀ Yorùbá: – After ticket row, before first message insert; args: ticket_id, data array
  • PGTS_ticket_closed Ìtumọ̀ Yorùbá: – When status changes to closed or resolved (fires with ticket_closed action); args: ticket_id, ticket object
  • PGTS_ticket_deleted Ìtumọ̀ Yorùbá: – After permanent admin delete; args: ticket_id, ticket object
  • PGTS_ticket_detail_after_category Ìtumọ̀ Yorùbá: – Admin sidebar after category block; arg: ticket object
  • PGTS_ticket_detail_after_messages Ìtumọ̀ Yorùbá: – Customer view after messages list; arg: ticket object
  • PGTS_ticket_detail_sidebar_after_customer Ìtumọ̀ Yorùbá: – Admin sidebar after customer card; args: user_id, ticket object
  • PGTS_ticket_form_actions_end Ìtumọ̀ Yorùbá: – End of submit/actions row (new ticket)
  • PGTS_ticket_form_actions_start Ìtumọ̀ Yorùbá: – Start of submit/actions row (new ticket)
  • PGTS_ticket_attachments_field Ìtumọ̀ Yorùbá: – Extension point for attachment UI (free outputs nothing here; Pro uses it)
  • PGTS_ticket_status_changed Ìtumọ̀ Yorùbá: – After status update; args: ticket_id, new status, old status, ticket object
  • PGTS_tickets_list_header_columns Ìtumọ̀ Yorùbá: – Extra <th> cells in admin tickets table header
  • PGTS_tickets_list_row_columns Ìtumọ̀ Yorùbá: – Extra <td> cells per row; arg: ticket object
  • PGTS_settings_tab_content_{$tab} Ìtumọ̀ Yorùbá: – Settings page tab body (dynamic hook name; $tab is the tab slug)

Filters (apply_filters)

  • PGTS_new_ticket_categories Ìtumọ̀ Yorùbá: – Categories array passed to new-ticket template; args: array, user_id
  • PGTS_new_ticket_form_title Ìtumọ̀ Yorùbá: – New ticket page <h2> text
  • PGTS_new_ticket_orders Ìtumọ̀ Yorùbá: – Orders-with-products for selection; args: array, user_id
  • PGTS_new_ticket_priorities Ìtumọ̀ Yorùbá: – Priorities array for new-ticket template; args: array, user_id
  • PGTS_new_ticket_purchased_products Ìtumọ̀ Yorùbá: – Purchased products for selection; args: array, user_id
  • PGTS_new_ticket_template_data Ìtumọ̀ Yorùbá: – Extra template variables; args: array, user_id
  • PGTS_prevent_new_ticket_form Ìtumọ̀ Yorùbá: – Return true to block rendering new-ticket form; args: false, user_id
  • PGTS_settings_tabs Ìtumọ̀ Yorùbá: – Admin settings tabs array
  • PGTS_template_path Ìtumọ̀ Yorùbá: – Subfolder under your theme for template overrides (default: polanger-ticket-system-for-woocommerce/)
  • PGTS_ticket_categories Ìtumọ̀ Yorùbá: – Global categories list (from options/DB)
  • PGTS_ticket_created_response Ìtumọ̀ Yorùbá: – AJAX JSON after ticket created
  • PGTS_ticket_custom_fields_data Ìtumọ̀ Yorùbá: – Custom field values merged into ticket creation; args: array, sanitized POST
  • PGTS_ticket_default_priority Ìtumọ̀ Yorùbá: – Default selected priority slug (default: normal)
  • PGTS_ticket_message_minlength Ìtumọ̀ Yorùbá: – Min message length (validation + HTML attribute)
  • PGTS_ticket_message_placeholder Ìtumọ̀ Yorùbá: – Message textarea placeholder
  • PGTS_ticket_message_rows Ìtumọ̀ Yorùbá: – Textarea rows attribute
  • PGTS_ticket_priorities Ìtumọ̀ Yorùbá: – Global priorities list
  • PGTS_ticket_statuses Ìtumọ̀ Yorùbá: – Status slug => label map
  • PGTS_ticket_subject_maxlength Ìtumọ̀ Yorùbá: – Subject max length attribute
  • PGTS_ticket_subject_minlength Ìtumọ̀ Yorùbá: – Min subject length (validation + HTML attribute)
  • PGTS_ticket_subject_placeholder Ìtumọ̀ Yorùbá: – Subject input placeholder
  • PGTS_ticket_submit_button_text Ìtumọ̀ Yorùbá: – New ticket submit button label
  • PGTS_ticket_validation_error Ìtumọ̀ Yorùbá: – Return WP_Error or string to fail validation; args: null, sanitized POST

Pro Version

The Pro version extends the plugin with 10 modular addons that can be enabled or disabled independently.

Support Panel
A complete frontend support interface for agents. Manage tickets without WordPress admin access. Includes ticket claiming system, internal notes, agent assignment, live messaging with real-time updates, and customer search functionality.

File Attachments addon
The File Attachments addon allows customers and agents to attach files to new tickets and replies. In Pro settings, you can enable or disable uploads, set the maximum file size (MB), and restrict allowed file types. It supports drag-and-drop uploads, secure storage, and nonce-protected download links, and integrates seamlessly with the Support Panel and ticket messages.

Canned Responses
Create and use pre-written responses for common questions. Features include keyboard shortcuts, categories, dynamic placeholders ({customer_name}, {ticket_id}, etc.), personal and global responses, and usage tracking.

Auto Assignment
Automatically assign unassigned tickets to agents after a configurable time period. Supports “Least Active” and “Round Robin” strategies, agent capacity limits, and race condition protection.

SLA Management
Track response and resolution times with Service Level Agreements. Features priority-based SLA policies, working hours support, automatic pause/resume when waiting for customer, breach detection, and visual SLA indicators.

Analytics Dashboard
Real-time analytics for support operations. Monitor live ticket status, SLA health, daily performance, agent metrics, breach rates, and reopen rates. Includes smart caching and AJAX refresh.

Customer Priority
Automatic customer scoring based on order history and spending. Priority customers are sorted to the top of ticket lists. Includes customer insights panel with order history, ticket history, and manual priority override.

Agent Notifications
Real-time notifications for support agents when new tickets arrive or customers reply.

Merge/Split Tickets
Merge related tickets into one or split complex tickets into multiple separate tickets.

Ticket Rating
Collect customer satisfaction ratings after ticket closure to measure support quality.

More information:

Ìgbéwọlẹ̀

Automatic Installation

  1. Go to Plugins > Add New in your WordPress admin
  2. Search for “Polanger Ticket System”
  3. Click Install Now and then Activate
  4. Go to Tickets in the admin menu to configure settings

Manual Installation

  1. Download the plugin zip file
  2. Go to Plugins > Add New > Upload Plugin
  3. Upload the zip file and click Install Now
  4. Activate the plugin
  5. Go to Tickets in the admin menu to configure settings

After Activation

  1. Navigate to Tickets > Settings to configure general options
  2. Go to Tickets > Settings > Categories & Priorities to customize categories and priorities
  3. Customers can now access tickets from their My Account > Support Tickets page

FAQ

Does this plugin require WooCommerce?

Yes, WooCommerce 5.0 or higher is required. The plugin integrates directly with WooCommerceÌtumọ̀ Yorùbá: ’s My Account page.

Where do customers access their tickets?

Customers can access their tickets from the “Support Tickets” tab in their WooCommerce My Account page.

Can I customize ticket categories and priorities?

Yes! Navigate to Tickets > Settings and click on the Categories & Priorities tab. You can add, edit, delete, and reorder both categories and priorities. Each can have a custom name, color, and default status.

How does collision detection work?

When an admin opens a ticket, the system registers them as a “viewer” using a heartbeat system. If another admin opens the same ticket, both will see a warning message showing who else is viewing the ticket. This prevents duplicate responses and confusion.

Can customers close their own tickets?

Yes, this is enabled by default. You can disable it in Tickets > Settings by unchecking “Allow Customers to Close Tickets”.

How do I limit the number of tickets a customer can create?

Go to Tickets > Settings and set the “Max Active Tickets Per Customer” option. Set to 0 for unlimited tickets.

Is the plugin compatible with HPOS?

Yes! Polanger Ticket System is fully compatible with WooCommerceÌtumọ̀ Yorùbá: ’s High-Performance Order Storage (HPOS).

Can I translate the plugin?

Yes, the plugin is fully translatable. A .pot file is included in the /languages folder. You can use tools like Poedit or Loco Translate to create translations.

How do email notifications work?

When enabled, the plugin sends:
Ìtumọ̀ Yorùbá: – Email to admin when a new ticket is created
Ìtumọ̀ Yorùbá: – Email to customer when admin replies to their ticket

You can configure the admin email address and enable/disable notifications in Tickets > Settings.

Are there additional extensions?

Yes, additional features are available through separate extensions. See the Extensions section above for details.

Àwọn àgbéyẹ̀wò

Kò sí àwọn àgbéyẹ̀wò fún plugin yìí.

Àwọn Olùkópa & Olùgbéejáde

“Polanger Ticket System for WooCommerce” jẹ́ ètò ìṣàmúlò orísun ṣíṣí sílẹ̀. Àwọn ènìyàn wọ̀nyí ti ṣe ìkópa sí plugin yìí.

Àwọn Olùkópa

Túmọ̀ “Polanger Ticket System for WooCommerce” sí èdè rẹ.

Ṣe o nífẹ̀ẹ́ sí ìdàgbàsókè?

Ṣàwárí koodu, ṣàyẹ̀wò ibi ìpamọ́ SVN, tàbí ṣe àgbékalẹ̀ sí àkọsílẹ̀ ìdàgbàsókè nípasẹ̀ RSS.

Àkọsílẹ̀ àwọn àyípadà

1.2.1

  • Added: Permanent ticket deletion from the admin ticket list and ticket detail screen.
  • Improved: Ticket deletion now requires confirmation before execution.
  • Security: Deletion is restricted to closed tickets only; server-side validation prevents removal of open or in-progress tickets, even for tampered requests.
  • Security: Added nonce-protected AJAX and capability checks (manage_woocommerce) to control deletion permissions.
  • Developer: Expanded “Available Hooks for Developers” documentation in the readme with a complete list of PGTS_ actions and filters, including descriptions and parameter notes.

1.2.0

  • Performance: Improved My Account ticket list polling with debouncing and reduced unnecessary reflows during background updates.
  • Performance: Optimized admin ticket detail scripts with more efficient event handling and faster AJAX reply processing.
  • Performance: Reduced redundant option and settings reads when rendering ticket badges on the frontend.
  • Performance: Optimized ticket list queries with more efficient column selection for large datasets.
  • Mobile: Improved tap targets, spacing, and readability on ticket forms and chat threads for small screens (~480px and below).
  • Mobile: Enhanced reply composer behavior when the on-screen keyboard opens (better scroll positioning and iOS safe-area support).

1.0.0

  • Initial release
  • Complete ticket management system
  • Customer frontend integration with WooCommerce My Account
  • Admin dashboard with gradient design
  • Real-time chat-style messaging
  • Agent lock / collision detection system
  • Email notifications for new tickets and replies
  • Customizable categories with colors
  • Customizable priorities with colors
  • Order and product association
  • Customer ticket closing option
  • Maximum active tickets per customer limit
  • Auto-close inactive tickets setting
  • Require product purchase option
  • Custom no-purchase message with WYSIWYG editor
  • Status-based row coloring in ticket lists
  • Unread ticket badge in My Account menu
  • Full HPOS compatibility
  • Complete i18n support
  • WordPress Coding Standards compliant
  • Extensive hook system for developers