How can we help?

Search our knowledge base or browse your support conversations below.

Developer Hooks Reference

DeskPress provides a comprehensive set of WordPress filter and action hooks that let you customize and extend the plugin's behavior. This reference covers all public hooks organized by feature area.

Support Form Hooks

Form Template Actions

These action hooks fire at specific points inside the support form HTML, letting you inject custom content.

HookDescription
hsd_form_startFires at the beginning of the form, inside the tag.
hsd_form_subjectFires before the subject field.
hsd_form_messageFires before the message textarea.
hsd_form_attachmentsFires before the attachments field.
hsd_form_hidden_valuesFires in the hidden fields area. Use this to add custom hidden inputs.
hsd_form_submitFires before the submit button.
hsd_form_endFires at the end of the form, before the closing tag.
hsd_email_form_fieldsFires inside the email identification form to add custom fields.

Form Submission Actions

HookDescription
hsd_submission_formFires at the start of form submission processing, after nonce verification.
hsd_form_submitted_without_errorFires after a form is successfully submitted. Receives $success (bool).
hsd_form_submitted_with_errorFires when a form submission fails. Receives $success (bool).
hsd_form_submitted_to_create_threadFires just before a reply is created from form data.
hsd_form_submitted_to_create_conversationFires just before a new conversation is created from form data.

Form Submission Filters

HookParametersDescription
hsd_allowed_attachment_mime_types$mime_types (array)Filters the array of allowed MIME types for file attachments.
hsd_max_attachment_size$max_size (int)Filters the maximum file size for attachments in bytes. Default: 5 MB.
hsd_thread_submitted_success_redirect_url$redirect_url (string)Filters the redirect URL after a successful form submission.
hsd_thread_submitted_error_redirect_url$redirect_url (string)Filters the redirect URL after a failed form submission.
hsd_process_form_submission_new_thread$new_thread (mixed)Filters the result of form submission processing before return.

Conversation Hooks

Conversation Filters

HookParametersDescription
hsd_hide_drafts_and_notes$hide (bool)Controls whether draft and note threads are hidden from front-end display. Default: true.
hsd_get_complete_conversation$conversation (array), $conversation_id (string), $refresh (bool)Filters a complete conversation array (conversation + customer + threads) before it is returned.
hsd_check_customer_id_for_security$check (bool)Controls whether the customer ID security check is enforced when listing conversations. Default: true.
hsd_get_full_conversations_by_user$conversations (array), $customer_id (string), $refresh (bool)Filters the full array of conversations for a user before it is returned.
hsd_pagination_per_page$per_page (int)Filters the number of conversations shown per page in the conversation table. Default: 10.

Creating Conversations and Threads

HookTypeParametersDescription
hsd_create_thread_fieldsFilter$fields (array: customer, text, attachments, status)Filters the fields array sent to the API when creating a new thread (reply).
hsd_create_conversation_fieldsFilter$fields (array: mailboxId, customer, type, status, subject, threads)Filters the fields array sent to the API when creating a new conversation.
hsd_create_threadAction$raw_response (array)Fires after a new thread (reply) is successfully created.
hsd_create_conversationAction$raw_response (array)Fires after a new conversation is successfully created.

Single Conversation View Hooks

These action hooks fire at specific points in the single conversation template. All hooks receive $item (array) — the conversation array.

HookDescription
hsd_single_conversation_go_backFires after the "back to conversations" link.
hsd_single_conversation_pre_titleFires before the conversation title in the header.
hsd_single_conversation_post_titleFires after the conversation title in the header.
hsd_single_conversation_pre_posted_onFires before the posted-on metadata (author, date, thread count).
hsd_single_conversation_posted_onFires after the posted-on metadata items.
hsd_single_conversation_post_headerFires after the entire conversation header.
hsd_single_conversation_thread_startFires before the thread messages loop begins.
hsd_single_conversation_thread_endFires after the thread messages loop ends.

Support Portal Hooks

Portal Template Actions

These action hooks fire at key layout points in the portal templates.

HookDescription
hsd_portal_after_heroFires after the hero/header section of the portal.
hsd_portal_after_topicsFires after the topic/category cards section.
hsd_portal_before_conversationsFires before the conversations table section.
hsd_portal_after_conversationsFires after the conversations table section.
hsd_portal_after_actionsFires after the action buttons section.

Portal Filters

HookParametersDescription
hsd_portal_footer_text$text (string)Filters the footer text displayed at the bottom of the portal. Default: "Powered by DeskPress".

Customer Hooks

HookTypeParametersDescription
hsd_find_customer_ids_preFilter$customer_ids (array), $user_id (int), $refresh (bool)Filters the customer IDs array before the API lookup runs. Return a non-empty array to skip the API call.
hsd_find_customer_idsFilter$customer_ids (array), $user_id (int), $refresh (bool)Filters the final customer IDs array after lookup.
hsd_is_customerFilter$is_customer (bool)Filters whether the current visitor is considered a Help Scout customer. Default: is_user_logged_in().
hsd_api_find_emailFilter$user_email (string), $user_id (int)Filters the email address used to look up a customer in Help Scout.
hsd_get_user_customer_idsFilter$customer_ids (array), $user_id (int)Filters customer IDs retrieved from user meta.
hsd_set_user_customer_idsAction$user_id (int), $customer_ids (array)Fires after customer IDs are saved to user meta.

API Request Hooks

These filters let you modify Help Scout API requests and responses.

GET Requests

HookParametersDescription
hsd_v2_api_request_api_url$api_url (string), $endpoint (string), $query (array), $refresh (bool)Filters the API URL before a GET request is made.
hsd_v2_api_request_params$params (array), $endpoint (string), $api_url (string), $query (array), $refresh (bool)Filters the wp_remote_request parameters for GET requests (headers, timeout, etc.).
hsd_v2_api_request$response (string), $endpoint (string), $api_url (string), $query (array), $refresh (bool)Filters the raw response body after a GET API request.

POST/PUT Requests

HookParametersDescription
hsd_v2_api_post_api_url$api_url (string), $data (array), $method (string)Filters the API URL before a POST/PUT request is made.
hsd_v2_api_post_params$params (array), $api_url (string), $data (array)Filters the request parameters for POST/PUT requests.
hsd_v2_api_post$response (string), $api_url (string), $data (array), $method (string)Filters the raw response body after a POST/PUT API request.

Docs & Knowledge Base Hooks

HookTypeParametersDescription
hsd_docs_categoriesFilter$categories (array) — each item has title, icon, url, colorFilters the default documentation topic categories displayed on the portal.

Tags Hooks

HookTypeParametersDescription
hsd_v2_get_converstation_tagsFilter$convo_tags (array), $conversation (array), $tags (array of allowed tag IDs)Filters the conversation tags before display.

Email Login Hooks

HookTypeParametersDescription
hsd_maybe_store_customer_emailActionFires after a customer email is stored for identification.
hsd_process_email_form_submissionActionFires at the start of email form submission processing.
hsd_email_submitted_redirect_urlFilter$redirect_url (string)Filters the redirect URL after an email identification form is submitted.

E-Commerce Sidebar App Hooks

Customer Profile

HookTypeParametersDescription
hsd_customer_profile_htmlFilter$html (string), $data (array), $emails (array), $wp_user (WP_User or false)Filters the customer profile HTML that appears in all e-commerce sidebar apps.

WooCommerce

HookTypeParametersDescription
hsd_woo_app_no_purchases_htmlFilter$html (string), $handler (object)Filters the HTML shown when no WooCommerce purchases are found.
hsd_woo_build_response_html_edit_urlFilter$edit_url (string)Filters the edit URL for each WooCommerce order in the sidebar app.
hsd_woo_build_response_htmlFilter$html (string), $handler (object)Filters the complete HTML response for the WooCommerce sidebar app.

Easy Digital Downloads

HookTypeParametersDescription
hsd_edd_app_no_purchases_htmlFilter$html (string), $handler (object)Filters the HTML shown when no EDD purchases are found.
hsd_edd_app_early_htmlFilter$html (string), $handler (object), $orders (array), $downloads (array)Filters HTML prepended at the start of the EDD sidebar app response.
hsd_edd_support_topicsFilter$map (array) — slug to label mappingFilters the EDD support topic choices.

WP eCommerce

HookTypeParametersDescription
hsd_wpsc_app_no_purchases_htmlFilter$html (string), $handler (object)Filters the HTML shown when no WP eCommerce purchases are found.
hsd_wpsc_app_early_htmlFilter$html (string), $handler (object), $orders (array)Filters HTML prepended at the start of the WP eCommerce sidebar app response.

Template & Localization Hooks

HookTypeParametersDescription
hsd_template_pathFilter$template_path (string)Filters the template directory path used for view loading. Useful for template overrides in themes.
hsd_languages_directoryFilter$lang_dir (string)Filters the languages directory used for loading translation files.
hsd_scripts_localizationFilter$hsd_js_object (array)Filters the JavaScript localization object passed to front-end and admin scripts.

Display Helper Hooks

HookTypeParametersDescription
hsd_get_waiting_sinceFilter$waiting (string)Filters the human-readable "waiting since" string for a conversation.
hsd_get_days_agoFilter$days_since (int)Filters the calculated number of days since a conversation was last updated.

AJAX Hooks

HookTypeParametersDescription
hsd_allowed_ajax_methodsFilter$allowed_methods (array)Filters the list of allowed AJAX method names that can be called via the shortcodes AJAX handler.

Onboarding Wizard Hooks

HookTypeParametersDescription
deskpress_onboarding_stepsFilter$steps (array) — associative array keyed by step IDFilters the onboarding wizard steps array. Allows adding, removing, or reordering setup wizard steps.
Scroll to Top