Polanger Ticket System for WooCommerce (Free) Developer Hooks Reference This file contains the full hook and filter list for the free plugin. For a shorter overview, see readme.txt > "Available Hooks for Developers". == Actions (do_action) == * PGTS_after_new_ticket_form - After the new-ticket template wrapper ends * PGTS_after_ticket_category_priority - After category/priority fields block * PGTS_after_ticket_created - After ticket row and first message are stored (AJAX create); args: ticket_id, message_id, data array * PGTS_after_ticket_message_field - After message textarea (new ticket form) * PGTS_after_ticket_notification - After new-ticket notification is sent; args: ticket_id, user_id * PGTS_after_ticket_product_selection - After product/order selection block * PGTS_after_ticket_submit - After submit button row (still inside form) * PGTS_after_ticket_subject_field - After subject input * PGTS_admin_composer_tools - Admin reply composer toolbar area; arg: ticket object * PGTS_admin_message_after_content - After each message body in admin ticket view; args: message object, ticket object * PGTS_admin_ticket_detail_modals - End of admin ticket detail (e.g. modals); arg: ticket object * PGTS_admin_ticket_header_after_title - After title in admin ticket header; arg: ticket object * PGTS_admin_ticket_sidebar_product_order - Sidebar product/order card area; args: ticket object, order object or null * PGTS_before_new_ticket_form - Before new-ticket template output * PGTS_before_render_new_ticket_form - Before rendering new-ticket form (PHP); arg: user_id * PGTS_before_ticket_category_priority - Before category/priority fields * PGTS_before_ticket_message_field - Before message field * PGTS_before_ticket_product_selection - Before product selection block * PGTS_before_ticket_submit - Before submit/actions row * PGTS_before_ticket_subject_field - Before subject field * PGTS_before_ticket_validation - Before server-side validation (AJAX create); arg: sanitized POST array * PGTS_message_added - After a ticket message row is stored; args: message_id, ticket_id, message text, is_admin_reply bool, user_id * PGTS_message_after_content - After each message body on customer ticket view; args: message object, ticket object * PGTS_new_ticket_form_end - End of form (before closing template section) * PGTS_new_ticket_form_start - Start of
(new ticket) * PGTS_new_ticket_header - Inside form header next to title * PGTS_reply_form_actions - Customer reply form actions area; arg: ticket object * PGTS_reply_form_before_textarea - Before customer reply textarea; arg: ticket object * PGTS_ticket_category_priority_fields - Inside category/priority row (extra fields) * PGTS_ticket_created - When ticket row is inserted; args: ticket_id, data array * PGTS_ticket_created_before_message - After ticket row, before first message insert; args: ticket_id, data array * PGTS_ticket_closed - When status changes to closed or resolved (fires with ticket_closed action); args: ticket_id, ticket object * PGTS_ticket_deleted - After permanent admin delete; args: ticket_id, ticket object * PGTS_ticket_detail_after_category - Admin sidebar after category block; arg: ticket object * PGTS_ticket_detail_after_messages - Customer view after messages list; arg: ticket object * PGTS_ticket_detail_sidebar_after_customer - Admin sidebar after customer card; args: user_id, ticket object * PGTS_ticket_form_actions_end - End of submit/actions row (new ticket) * PGTS_ticket_form_actions_start - Start of submit/actions row (new ticket) * PGTS_ticket_attachments_field - Extension point for attachment UI (free outputs nothing here; Pro uses it) * PGTS_ticket_status_changed - After status update; args: ticket_id, new status, old status, ticket object * PGTS_tickets_list_header_columns - Extra cells in admin tickets table header * PGTS_tickets_list_row_columns - Extra cells per row; arg: ticket object * PGTS_settings_tab_content_{$tab} - Settings page tab body (dynamic hook name; $tab is the tab slug) == Filters (apply_filters) == * PGTS_new_ticket_categories - Categories array passed to new-ticket template; args: array, user_id * PGTS_new_ticket_form_title - New ticket page

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