fluent_support_exportable_tickets_data
Parameters
- '$data' (array) Exportable data
- '$tickets' (object) Ticket data
Usage
add_filter('fluent_support/exportable_tickets_data', function ($data, $tickets) {
// ...do something
return $data;
}, 10, 2);Reference
apply_filters('fluent_support/exportable_tickets_data', $data, $tickets)
This filter is located in fluent-support/app/Hooks/Handlers/PrivacyHandler.php
fluent_support_exportable_conversations_data
Parameters
- '$data' (array) Exportable data
- '$conversations' (object) Conversation data
Usage
add_filter('fluent_support/exportable_conversations_data', function ($data, $conversations) {
// ...do something
return $data;
}, 10, 2);Reference
apply_filters('fluent_support/exportable_conversations_data', $data, $conversations)
This filter is located in fluent-support/app/Hooks/Handlers/PrivacyHandler.php
fluent_support_exportable_customer_data
Parameters
- '$data' (array) Exportable data
- '$customer' (object) Customer data
Usage
add_filter('fluent_support/exportable_customer_data', function ($data, $customer) {
// ...do something
return $data;
}, 10, 2);Reference
apply_filters('fluent_support/exportable_customer_data', $data, $customer)
This filter is located in fluent-support/app/Hooks/Handlers/PrivacyHandler.php
fluent_support_recaptcha_v3_ref_score
Parameters
- '$refScore' (integer) reCAPTCHA v3 threshold value (The score is compared with the reCAPTCHA value provided by Google, which is determined based on interactions with your site )
Usage
add_filter('fluent_support/recaptcha_v3_ref_score', function ($refScore) {
// ...do something
return $refScore;
}, 10, 1);Reference
apply_filters('fluent_support/recaptcha_v3_ref_score', 0.5)
This filter is located in fluent-support/app/Hooks/Handlers/ReCaptchaHandler.php
fluent_support_storage_drivers_info
Parameters
- '$drivers' (array) Storage driver information
Usage
add_filter('fluent_support/storage_drivers_info', function ($drivers) {
// ...do something
return $drivers;
}, 10, 1);Reference
apply_filters('fluent_support/storage_drivers_info', $drivers)
This filter is located in fluent-support/app/Services/Storage/StorageManager.php
fluent_support_allowed_customer_profile_picture_file_type
Parameters
- '$fileTypes' (array) Customer profile picture file types
Usage
add_filter('fluent_support/allowed_customer_profile_picture_file_type', function ($fileTypes) {
// ...do something
return $fileTypes;
}, 10, 1);Reference
apply_filters('fluent_support/allowed_customer_profile_picture_file_type', array('jpeg', 'jpe', 'jpg', 'png'))
This filter is located in fluent-support/app/Services/AvatarUploder.php
fluent_support_uploaded_file_name_prefix
Parameters
- '$prefix' (string) File name prefix Usage
add_filter('fluent_support/uploaded_file_name_prefix', function ($prefix) {
// ...do something
return $prefix;
}, 10, 1);Reference
apply_filters('fluent_support/uploaded_file_name_prefix', $prefix)
This filter is located in fluent-support/app/Services/Includes/FileSystem.php
fluentsupport_smartcode_fallback
Parameters
- '$matches' (string) Smartcode data
- '$data' (object) Customer data Usage
add_filter('fluentsupport/smartcode_fallback', function ($matches, $data) {
// ...do something
return $matches;
}, 10, 2);Reference
apply_filters('fluentsupport/smartcode_fallback', $matches[0], $data)
This filter is located in fluent-support/app/Services/Parser/ShortcodeParser.php
fluentsupport_smartcode_fallback_callback
Parameters
- '$matches' (string) Smartcode data
- '$valueKey' (string) Key associated with the original value
- '$defaultValue' (string) The default value to fall back on if the smartcode cannot be resolved
- '$data' (object) Customer data
Usage
add_filter('fluentsupport/smartcode_fallback_callback_' . $dataKey, function ($matches, $valueKey, $defaultValue, $data) {
// ...do something
return $matches;
}, 10, 4);Note: $dataKey Unique key or identifier associated with the specific data being processed.
Reference
apply_filters('fluentsupport/smartcode_fallback_callback_' . $dataKey, $matches[0], $valueKey, $defaultValue, $data)
This filter is located in fluent-support/app/Services/Parser/ShortcodeParser.php
fluent_support_strict_subjects
Parameters
- '$subjects' (array) Email based subjects
Usage
add_filter('fluent_support/strict_subjects', function ($subjects) {
// ...do something
return $subjects;
}, 10, 1);Reference
apply_filters('fluent_support/strict_subjects', [ 'ticket_replied_by_agent_email_to_customer', 'ticket_closed_by_agent_email_to_customer', 'ticket_created_email_to_customer' ])
This filter is located in fluent-support/app/Services/EmailNotification/Settings.php
fluent_support_migrator_class_mapper
Parameters
- '$classMapper' (array) Ticket migration class mapper
Usage
add_filter('fluent_support/migrator_class_mapper', function ($classMapper) {
// ...do something
return $classMapper;
}, 10, 1);Reference
apply_filters('fluent_support/migrator_class_mapper', [ 'awesome-support' => 'AwesomeSupportTickets', 'support-candy' => 'SupportCandyTickets', 'js-helpdesk' => 'JSHelpdeskTickets', ])
This filter is located in fluent-support/app/Modules/TicketImport/Importers/BaseImporter.php
fluent_support_allow_share_essential
Parameters
- '$allowShareEssential' (boolean) Permission to share essential data or not
Usage
add_filter('fluentsupport_allow_share_essential', function ($allowShareEssential) {
// ...do something
return $allowShareEssential;
}, 10, 1);Reference
apply_filters('fluentsupport_allow_share_essential', Helper::getOption('_share_essential', 'no') == 'yes')
This filter is located in fluent-support/app/Services/Integrations/Maintenance.php
fluent_support_can_customer_access_portal
Parameters
$canAccess(boolean) Whether access is allowed — defaulttrue$customer(object) The customer object requesting access
Usage
add_filter('fluent_support/can_customer_access_portal', function ($canAccess, $customer) {
// block suspended customers
if ($customer->status === 'blocked') {
return false;
}
return $canAccess;
}, 10, 2);Reference
apply_filters('fluent_support/can_customer_access_portal', true, $customer)
This filter is located in fluent-support/app/Modules/CustomerPortal/PortalController.php
fluent_support_can_customer_access_ticket
Parameters
$canAccess(boolean) Whether access is allowed — defaulttrue$customer(object) The customer requesting access$ticket(object) The ticket being accessed$action(string) The action being attempted, e.g.'view','reply'
Usage
add_filter('fluent_support/can_customer_access_ticket', function ($canAccess, $customer, $ticket, $action) {
// only allow viewing, not replying to closed tickets
if ($action === 'reply' && $ticket->status === 'closed') {
return false;
}
return $canAccess;
}, 10, 4);Reference
apply_filters('fluent_support/can_customer_access_ticket', true, $customer, $ticket, $action)
This filter is located in fluent-support/app/Modules/CustomerPortal/PortalService.php
fluent_support_menu_items
Parameters
$menuItems(array) Array of menu item definitions
Usage
add_filter('fluent_support/menu_items', function ($menuItems) {
$baseUrl = admin_url('admin.php?page=fluent-support#/');
$menuItems['my_custom_page'] = [
'key' => 'my_custom_page',
'label' => 'Custom Page',
'permalink' => $baseUrl . 'custom-page',
];
return $menuItems;
}, 10, 1);Reference
apply_filters('fluent_support/menu_items', $menuItems)
This filter is located in fluent-support/app/Hooks/Handlers/Menu.php
fluent_support_settings_menu_items
Parameters
$menu(array) Array of settings menu item definitions
Usage
add_filter('fluent_support/settings_menu_items', function ($menu) {
$menu[] = [
'title' => 'My Settings',
'route_name' => 'my_settings',
'icon' => 'myIcon',
];
return $menu;
}, 10, 1);Reference
apply_filters('fluent_support/settings_menu_items', $menu)
This filter is located in fluent-support/app/Services/Helper.php
fluent_support_portal_admin_base_url
Parameters
$url(string) The default portal base URL
Usage
add_filter('fluent_support/portal_admin_base_url', function ($url) {
return 'https://support.mysite.com/tickets/';
}, 10, 1);Reference
apply_filters('fluent_support/portal_admin_base_url', $url)
This filter is located in fluent-support/app/Services/Helper.php
fluent_support_ticket_import_chunk_limit
Parameters
$limit(integer) Number of tickets per import chunk — default20
Usage
add_filter('fluent_support/ticket_import_chunk_limit', function ($limit) {
return 10; // process fewer tickets at a time on low-memory servers
}, 10, 1);Reference
apply_filters('fluent_support/ticket_import_chunk_limit', 20)
This filter is located in fluent-support/app/Modules/TicketImport/Importers/BaseImporter.php
fluent_support_fs_tickets_updated_since
Parameters
$date(string) ISO 8601 date string — default'2010-01-19T02:00:00Z'
Usage
add_filter('fluent_support/fs_tickets_updated_since', function ($date) {
return '2023-01-01T00:00:00Z'; // only import tickets updated after Jan 2023
}, 10, 1);Reference
apply_filters('fluent_support/fs_tickets_updated_since', '2010-01-19T02:00:00Z')
This filter is located in fluent-support/app/Modules/TicketImport/Importers/BaseImporter.php
fluent_support_truncate_uploaded_file_names
Parameters
$truncate(boolean) Whether to truncate file names — defaultfalse
Usage
add_filter('fluent_support/truncate_uploaded_file_names', function ($truncate) {
return true;
}, 10, 1);Reference
apply_filters('fluent_support/truncate_uploaded_file_names', false)
This filter is located in fluent-support/app/Services/Includes/FileSystem.php
fluent_support_external_attachment_url
Parameters
$url(string) The attachment's full URL as stored$attachment(object) The attachment object
Usage
add_filter('fluent_support/external_attachment_url', function ($url, $attachment) {
// rewrite to a signed CDN URL
return my_cdn_sign($url);
}, 10, 2);Reference
apply_filters('fluent_support/external_attachment_url', $attachment->full_url, $attachment)
Since 2.4.7: this filter runs only for a storage driver that is not registered through fluent_support/storage_drivers. A registered driver serves files through its own getDownloadUrl().
This filter is located in fluent-support/app/Services/Storage/StorageManager.php
fluent_support_customer_page_ticket_widgets_limit
Parameters
$limit(integer) Maximum number of tickets to show — default20
Usage
add_filter('fluent_support/customer_page_ticket_widgets_limit', function ($limit) {
return 10;
}, 10, 1);Reference
apply_filters('fluent_support/customer_page_ticket_widgets_limit', 20)
This filter is located in fluent-support/app/Modules/Customers/CustomerController.php
fluent_support_get_avatar
Parameters
$avatarUrl(string) The default avatar URL$email(string) The person's email address
Usage
add_filter('fluent_support/get_avatar', function ($avatarUrl, $email) {
return my_custom_avatar_service($email);
}, 10, 2);Reference
apply_filters('fluent_support/get_avatar', "https://www.gravatar.com/avatar/{$hash}?s=128" . $fallback, $email)
This filter is located in fluent-support/app/Models/Person.php
fluent_support_pro_upgrade_base_url
Parameters
$baseUrl(string) The default pricing page URL — default'https://fluentsupport.com/pricing'
Usage
add_filter('fluent_support/pro_upgrade_base_url', function ($baseUrl) {
return 'https://mysite.com/go/fluent-support-pro';
}, 10, 1);Reference
apply_filters('fluent_support/pro_upgrade_base_url', 'https://fluentsupport.com/pricing')
This filter is located in fluent-support/app/Services/Helper.php
fluent_support_attachment_signed_url_ttl
Signed URLs are used for attachment links in the admin app, the customer portal and MCP tool results.
Parameters
- '$ttl' (integer) Lifetime in seconds. Default
HOUR_IN_SECONDS(3600)
Usage
add_filter('fluent_support/attachment_signed_url_ttl', function ($ttl) {
return 6 * HOUR_IN_SECONDS;
}, 10, 1);Reference
apply_filters('fluent_support/attachment_signed_url_ttl', HOUR_IN_SECONDS)
This filter is located in fluent-support/app/Models/Attachment.php
fluent_support_max_per_page
Available since Fluent Support 2.4.7.
Parameters
- '$maxPerPage' (integer) Largest allowed page size. Default
150
Usage
add_filter('fluent_support/max_per_page', function ($maxPerPage) {
return 200;
}, 10, 1);Reference
apply_filters('fluent_support/max_per_page', 150)
This filter is located in fluent-support/app/Models/Model.php
fluent_support_storage_drivers
A driver that is not registered here still works through the older per-driver hooks (fluent_support/attachment_uploaded_as_temp_{driver}, fluent_support/finalize_file_upload_{driver}, fluent_support/delete_remote_attachment_{driver} and fluent_support/external_attachment_url).
Available since Fluent Support 2.4.7.
Parameters
- '$drivers' (array) Registered drivers, keyed by driver key
Usage
add_filter('fluent_support/storage_drivers', function ($drivers) {
$drivers['my_storage'] = new MyStorageDriver(); // implements StorageDriverInterface
return $drivers;
}, 10, 1);The interface methods are getKey(), isConfigured(), upload($attachment, $ticketId), delete($attachment), getDownloadUrl($attachment), stream($attachment), getLocalCopy($attachment, $maxBytes = 0) and getStatus().
Reference
apply_filters('fluent_support/storage_drivers', [])
This filter is located in fluent-support/app/Services/Storage/StorageManager.php
fluent_support_mail_attachments_max_bytes
Available since Fluent Support 2.4.7.
Parameters
- '$maxBytes' (integer) Total size in bytes. Default
10 * MB_IN_BYTES
Usage
add_filter('fluent_support/mail_attachments_max_bytes', function ($maxBytes) {
return 20 * MB_IN_BYTES;
}, 10, 1);Reference
apply_filters('fluent_support/mail_attachments_max_bytes', 10 * MB_IN_BYTES)
This filter is located in fluent-support/app/Services/Storage/MailAttachments.php
fluent_support_mail_attachments_fetch_seconds
Parameters
- '$seconds' (int|float) Time budget in seconds. Default
15;0means no limit
Usage
add_filter('fluent_support/mail_attachments_fetch_seconds', function ($seconds) {
// ...do something
return $seconds;
}, 10, 1);Reference
apply_filters('fluent_support/mail_attachments_fetch_seconds', 15)
This filter is located in fluent-support/app/Services/Storage/MailAttachments.php
fluent_support_attachment_email_url_ttl
Available since Fluent Support 2.4.7.
Parameters
- '$ttl' (integer) Lifetime in seconds. Default
30 * DAY_IN_SECONDS, minimum one day
Usage
add_filter('fluent_support/attachment_email_url_ttl', function ($ttl) {
return 7 * DAY_IN_SECONDS;
}, 10, 1);Reference
apply_filters('fluent_support/attachment_email_url_ttl', 30 * DAY_IN_SECONDS)
This filter is located in fluent-support/app/Models/Attachment.php
fluent_support_attachment_login_url
Available since Fluent Support 2.4.7.
Parameters
- '$loginUrl' (string) Login URL. Default
wp_login_url($currentUrl) - '$currentUrl' (string) The attachment URL to return to
Usage
add_filter('fluent_support/attachment_login_url', function ($loginUrl, $currentUrl) {
return add_query_arg('redirect_to', rawurlencode($currentUrl), home_url('/support-login/'));
}, 10, 2);Reference
apply_filters('fluent_support/attachment_login_url', wp_login_url($currentUrl), $currentUrl)
This filter is located in fluent-support/app/Hooks/Handlers/ExternalPages.php
fluent_support_attachment_local_copy
Available since Fluent Support 2.4.7.
Parameters
- '$path' (string|null) Default
null - '$attachment' (object) Attachment record
- '$maxBytes' (integer) Give up when the file is larger than this.
0means no limit
Usage
add_filter('fluent_support/attachment_local_copy', function ($path, $attachment, $maxBytes) {
if ($attachment->driver !== 'my_storage') {
return $path;
}
return my_storage_download_to_temp($attachment, $maxBytes);
}, 10, 3);Reference
apply_filters('fluent_support/attachment_local_copy', null, $attachment, $maxBytes)
This filter is located in fluent-support/app/Services/Storage/StorageManager.php
fluent_support_system_tools_tables
Parameters
- '$definitions' (array) Each item:
name(without the WordPress prefix),title, optionallazy(bool, created on first use)
Usage
add_filter('fluent_support/system_tools_tables', function ($definitions) {
$definitions[] = ['name' => 'my_addon_logs', 'title' => 'My Add-on Logs'];
return $definitions;
}, 10, 1);Reference
apply_filters('fluent_support/system_tools_tables', $definitions)
This filter is located in fluent-support/app/Modules/SystemTools/DatabaseHealth.php
fluent_support_system_tools_cleanup_types
Parameters
- '$types' (array) Each item:
key,title,count(callable(string $cutoff): int) anddelete(callable(string $cutoff, int $limit): int, rows removed, at most$limit)
Usage
add_filter('fluent_support/system_tools_cleanup_types', function ($types) {
// ...do something
return $types;
}, 10, 1);Reference
apply_filters('fluent_support/system_tools_cleanup_types', [])
This filter is located in fluent-support/app/Modules/SystemTools/DataCleanup.php
fluent_support_system_tools_cron_events
Parameters
- '$jobs' (array) Each item:
hook,title,interval(seconds),scheduler(wp_cronby default, oraction_scheduler)
Usage
add_filter('fluent_support/system_tools_cron_events', function ($jobs) {
$jobs[] = ['hook' => 'my_addon_hourly', 'title' => 'My Add-on Sync', 'interval' => HOUR_IN_SECONDS];
return $jobs;
}, 10, 1);Reference
apply_filters('fluent_support/system_tools_cron_events', $jobs)
This filter is located in fluent-support/app/Modules/SystemTools/CronMonitor.php
