À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 endsPGTS_after_ticket_category_priorityÌtumọ̀ Yorùbá: – After category/priority fields blockPGTS_after_ticket_createdÌtumọ̀ Yorùbá: – After ticket row and first message are stored (AJAX create); args: ticket_id, message_id, data arrayPGTS_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_idPGTS_after_ticket_product_selectionÌtumọ̀ Yorùbá: – After product/order selection blockPGTS_after_ticket_submitÌtumọ̀ Yorùbá: – After submit button row (still inside form)PGTS_after_ticket_subject_fieldÌtumọ̀ Yorùbá: – After subject inputPGTS_admin_composer_toolsÌtumọ̀ Yorùbá: – Admin reply composer toolbar area; arg: ticket objectPGTS_admin_message_after_contentÌtumọ̀ Yorùbá: – After each message body in admin ticket view; args: message object, ticket objectPGTS_admin_ticket_detail_modalsÌtumọ̀ Yorùbá: – End of admin ticket detail (e.g. modals); arg: ticket objectPGTS_admin_ticket_header_after_titleÌtumọ̀ Yorùbá: – After title in admin ticket header; arg: ticket objectPGTS_admin_ticket_sidebar_product_orderÌtumọ̀ Yorùbá: – Sidebar product/order card area; args: ticket object, order object or nullPGTS_before_new_ticket_formÌtumọ̀ Yorùbá: – Before new-ticket template outputPGTS_before_render_new_ticket_formÌtumọ̀ Yorùbá: – Before rendering new-ticket form (PHP); arg: user_idPGTS_before_ticket_category_priorityÌtumọ̀ Yorùbá: – Before category/priority fieldsPGTS_before_ticket_message_fieldÌtumọ̀ Yorùbá: – Before message fieldPGTS_before_ticket_product_selectionÌtumọ̀ Yorùbá: – Before product selection blockPGTS_before_ticket_submitÌtumọ̀ Yorùbá: – Before submit/actions rowPGTS_before_ticket_subject_fieldÌtumọ̀ Yorùbá: – Before subject fieldPGTS_before_ticket_validationÌtumọ̀ Yorùbá: – Before server-side validation (AJAX create); arg: sanitized POST arrayPGTS_message_addedÌtumọ̀ Yorùbá: – After a ticket message row is stored; args: message_id, ticket_id, message text, is_admin_reply bool, user_idPGTS_message_after_contentÌtumọ̀ Yorùbá: – After each message body on customer ticket view; args: message object, ticket objectPGTS_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 titlePGTS_reply_form_actionsÌtumọ̀ Yorùbá: – Customer reply form actions area; arg: ticket objectPGTS_reply_form_before_textareaÌtumọ̀ Yorùbá: – Before customer reply textarea; arg: ticket objectPGTS_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 arrayPGTS_ticket_created_before_messageÌtumọ̀ Yorùbá: – After ticket row, before first message insert; args: ticket_id, data arrayPGTS_ticket_closedÌtumọ̀ Yorùbá: – When status changes to closed or resolved (fires with ticket_closed action); args: ticket_id, ticket objectPGTS_ticket_deletedÌtumọ̀ Yorùbá: – After permanent admin delete; args: ticket_id, ticket objectPGTS_ticket_detail_after_categoryÌtumọ̀ Yorùbá: – Admin sidebar after category block; arg: ticket objectPGTS_ticket_detail_after_messagesÌtumọ̀ Yorùbá: – Customer view after messages list; arg: ticket objectPGTS_ticket_detail_sidebar_after_customerÌtumọ̀ Yorùbá: – Admin sidebar after customer card; args: user_id, ticket objectPGTS_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 objectPGTS_tickets_list_header_columnsÌtumọ̀ Yorùbá: – Extra<th>cells in admin tickets table headerPGTS_tickets_list_row_columnsÌtumọ̀ Yorùbá: – Extra<td>cells per row; arg: ticket objectPGTS_settings_tab_content_{$tab}Ìtumọ̀ Yorùbá: – Settings page tab body (dynamic hook name;$tabis the tab slug)
Filters (apply_filters)
PGTS_new_ticket_categoriesÌtumọ̀ Yorùbá: – Categories array passed to new-ticket template; args: array, user_idPGTS_new_ticket_form_titleÌtumọ̀ Yorùbá: – New ticket page<h2>textPGTS_new_ticket_ordersÌtumọ̀ Yorùbá: – Orders-with-products for selection; args: array, user_idPGTS_new_ticket_prioritiesÌtumọ̀ Yorùbá: – Priorities array for new-ticket template; args: array, user_idPGTS_new_ticket_purchased_productsÌtumọ̀ Yorùbá: – Purchased products for selection; args: array, user_idPGTS_new_ticket_template_dataÌtumọ̀ Yorùbá: – Extra template variables; args: array, user_idPGTS_prevent_new_ticket_formÌtumọ̀ Yorùbá: – Return true to block rendering new-ticket form; args: false, user_idPGTS_settings_tabsÌtumọ̀ Yorùbá: – Admin settings tabs arrayPGTS_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 createdPGTS_ticket_custom_fields_dataÌtumọ̀ Yorùbá: – Custom field values merged into ticket creation; args: array, sanitized POSTPGTS_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 placeholderPGTS_ticket_message_rowsÌtumọ̀ Yorùbá: – Textarea rows attributePGTS_ticket_prioritiesÌtumọ̀ Yorùbá: – Global priorities listPGTS_ticket_statusesÌtumọ̀ Yorùbá: – Status slug => label mapPGTS_ticket_subject_maxlengthÌtumọ̀ Yorùbá: – Subject max length attributePGTS_ticket_subject_minlengthÌtumọ̀ Yorùbá: – Min subject length (validation + HTML attribute)PGTS_ticket_subject_placeholderÌtumọ̀ Yorùbá: – Subject input placeholderPGTS_ticket_submit_button_textÌtumọ̀ Yorùbá: – New ticket submit button labelPGTS_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
- Go to Plugins > Add New in your WordPress admin
- Search for “Polanger Ticket System”
- Click Install Now and then Activate
- Go to Tickets in the admin menu to configure settings
Manual Installation
- Download the plugin zip file
- Go to Plugins > Add New > Upload Plugin
- Upload the zip file and click Install Now
- Activate the plugin
- Go to Tickets in the admin menu to configure settings
After Activation
- Navigate to Tickets > Settings to configure general options
- Go to Tickets > Settings > Categories & Priorities to customize categories and priorities
- 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
/languagesfolder. 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 ticketYou 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ópaTú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
