Skip to content
View as Markdown

Contact Filters ​

FluentCRM Core Intermediate

These filter hooks let you customize contact data, profile sections, custom fields, avatars, smart codes, bulk actions, and more.

Contact Statuses & Types ​

fluent_crm/contact_statuses ​

Filter the list of valid contact subscription statuses.

Parameters

  • $statuses Array - Default statuses: subscribed, pending, unsubscribed, bounced, complained

Usage:

php
add_filter('fluent_crm/contact_statuses', function($statuses) {
    // Add a custom status
    $statuses[] = 'on_hold';
    return $statuses;
});

Source: app/Functions/helpers.php


fluent_crm/contact_editable_statuses ​

Filter which contact statuses are user-editable (can be set manually by admin). System-only statuses like bounced or complained may be excluded.

Parameters

  • $statuses Array - Subset of contact statuses

Usage:

php
add_filter('fluent_crm/contact_editable_statuses', function($statuses) {
    // Remove a status from the editable list
    return array_diff($statuses, ['complained']);
});

Source: app/Functions/helpers.php


fluent_crm/contact_types ​

Filter the contact type definitions (e.g., Lead, Customer).

Parameters

  • $types Array - Associative array of slug => label

Usage:

php
add_filter('fluent_crm/contact_types', function($types) {
    $types['partner'] = __('Partner', 'fluent-crm');
    return $types;
});

Source: app/Functions/helpers.php


fluent_crm/contact_activity_types ​

Filter the activity/timeline event type definitions shown on the contact profile.

Parameters

  • $types Array - Associative array of slug => label (e.g., note, call, email, meeting)

Usage:

php
add_filter('fluent_crm/contact_activity_types', function($types) {
    $types['sms'] = __('SMS', 'fluent-crm');
    return $types;
});

Source: app/Functions/helpers.php


fluent_crm/status_text ​

Filter the mapping of internal status keys to human-readable labels.

Parameters

  • $mapStatus Array - Associative array of status_key => display_label

Usage:

php
add_filter('fluent_crm/status_text', function($mapStatus) {
    $mapStatus['subscribed'] = 'Active Member';
    return $mapStatus;
});

Source: app/Services/Helper.php


fluent_crm/contact_name_prefixes ​

Filter the name prefix/salutation options (Mr, Mrs, Ms, etc.). This is the current hook (since 2.7.0).

Note: A legacy hook fluentcrm_contact_name_prefixes also exists (since 2.5.5) and fires first. The current hook applies on top of it.

Parameters

  • $prefixes Array - List of prefix strings

Usage:

php
add_filter('fluent_crm/contact_name_prefixes', function($prefixes) {
    $prefixes[] = 'Dr';
    $prefixes[] = 'Prof';
    return $prefixes;
});

Source: app/Services/Helper.php


fluent_crm/email_sendable_statuses ​

Filter which contact statuses are eligible to receive campaign emails.

Parameters

  • $statuses Array - Default: ['subscribed', 'transactional']

Usage:

php
add_filter('fluent_crm/email_sendable_statuses', function($statuses) {
    // Only send to subscribed contacts
    return ['subscribed'];
});

Source: app/Functions/helpers.php


Profile Sections & Widgets ​

fluentcrm_profile_sections ​

Filter the array of tab sections displayed on the contact profile page. Use this to add custom tabs.

Parameters

  • $sections Array - Each section has slug, title, icon, and other properties

Usage:

php
add_filter('fluentcrm_profile_sections', function($sections) {
    $sections['my_custom_tab'] = [
        'slug'  => 'my_custom_tab',
        'title' => __('My Tab', 'fluent-crm'),
        'icon'  => 'el-icon-setting'
    ];
    return $sections;
});

Source: app/Services/Helper.php


fluent_crm/subscriber_top_widgets ​

Filter the array of "top" widgets shown above the timeline on a contact profile.

Parameters

Usage:

php
add_filter('fluent_crm/subscriber_top_widgets', function($widgets, $subscriber) {
    $widgets[] = [
        'title'   => 'Custom Widget',
        'content' => '<p>Custom content for ' . $subscriber->email . '</p>'
    ];
    return $widgets;
}, 10, 2);

Source: app/Http/Controllers/SubscriberController.php


fluent_crm/subscriber_info_widgets ​

Filter additional sidebar info widgets on a contact profile page.

Parameters

Usage:

php
add_filter('fluent_crm/subscriber_info_widgets', function($widgets, $subscriber) {
    $widgets[] = [
        'title'   => 'Membership',
        'content' => '<p>Gold Member</p>'
    ];
    return $widgets;
}, 10, 2);

Source: app/Http/Controllers/SubscriberController.php


fluent_crm/contact_note_fields ​

Filter the array of additional fields shown on the Add Note form for contacts.

Parameters

  • $fields Array - Additional field definitions

Usage:

php
add_filter('fluent_crm/contact_note_fields', function($fields) {
    $fields[] = [
        'key'   => 'priority',
        'label' => __('Priority', 'fluent-crm'),
        'type'  => 'select',
        'options' => ['low' => 'Low', 'medium' => 'Medium', 'high' => 'High']
    ];
    return $fields;
});

Source: app/Services/Helper.php


Custom Fields & Avatars ​

fluent_crm/global_field_types ​

Filter the list of available custom contact field types (text, date, checkbox, etc.).

Parameters

  • $fieldTypes Array - Field type definitions

Usage:

php
add_filter('fluent_crm/global_field_types', function($fieldTypes) {
    $fieldTypes['color_picker'] = [
        'label' => 'Color Picker',
        'type'  => 'color_picker'
    ];
    return $fieldTypes;
});

Source: app/Models/CustomContactField.php


fluent_crm/modify_custom_field_value ​

Filter a custom field value when it is retrieved. Useful for transforming stored values before display.

Parameters

  • $value Mixed - The custom field value

Usage:

php
add_filter('fluent_crm/modify_custom_field_value', function($value) {
    // Transform the value as needed
    return $value;
});

Source: app/Models/Subscriber.php


fluent_crm/default_avatar ​

Filter the default avatar URL used when Gravatar is disabled or no avatar is available.

Parameters

  • $url String - Default avatar image URL
  • $email String - Contact's email address

Usage:

php
add_filter('fluent_crm/default_avatar', function($url, $email) {
    return 'https://example.com/custom-avatar.png';
}, 10, 2);

Source: app/Functions/helpers.php


fluent_crm/get_avatar ​

Filter the final avatar URL for a contact (Gravatar or custom).

Parameters

  • $url String - Avatar URL (Gravatar by default)
  • $email String - Contact's email address

Usage:

php
add_filter('fluent_crm/get_avatar', function($url, $email) {
    // Use a custom avatar service
    return 'https://avatars.example.com/' . md5($email);
}, 10, 2);

Source: app/Functions/helpers.php


fluent_crm/allowed_html_tags ​

Filter the array of allowed HTML tags and attributes used in wp_kses() for sanitizing content.

Parameters

  • $tags Array - Associative array of tag => attributes

Usage:

php
add_filter('fluent_crm/allowed_html_tags', function($tags) {
    $tags['iframe'] = [
        'src'    => true,
        'width'  => true,
        'height' => true
    ];
    return $tags;
});

Source: app/Services/Helper.php


Smart Codes ​

fluentcrm_contact_smartcodes ​

Filter the array of contact smart codes (e.g., contact.first_name, contact.email) shown in the smart code picker.

Parameters

  • $smartCodes Array - Array of smart code definitions

Usage:

php
add_filter('fluentcrm_contact_smartcodes', function($smartCodes) {
    $smartCodes[] = [
        'key'   => '{{contact.custom_field}}',
        'title' => 'Custom Field'
    ];
    return $smartCodes;
});

Source: app/Services/Helper.php


fluent_crm/general_smartcodes ​

Filter the array of general CRM and WordPress smart codes (e.g., crm.business_name, wp.admin_email).

Parameters

  • $smartCodes Array - Array of general smart code definitions

Usage:

php
add_filter('fluent_crm/general_smartcodes', function($smartCodes) {
    $smartCodes[] = [
        'key'   => '{{crm.site_phone}}',
        'title' => 'Site Phone Number'
    ];
    return $smartCodes;
});

Source: app/Services/Helper.php


fluent_crm/smartcode_groups ​

Filter the full grouped array of smart code groups returned by getGlobalSmartCodes().

Parameters

  • $smartCodes Array - Grouped smart code array

Usage:

php
add_filter('fluent_crm/smartcode_groups', function($smartCodes) {
    // Add a custom smart code group
    $smartCodes['my_group'] = [
        'title'      => 'My Custom Codes',
        'shortcodes' => [
            '{{my_group.key1}}' => 'Description 1'
        ]
    ];
    return $smartCodes;
});

Source: app/Services/Helper.php


fluent_crm/extended_smart_codes ​

Filter the array of additional smart code groups registered by add-ons.

Parameters

  • $extendedCodes Array - Default []

Usage:

php
add_filter('fluent_crm/extended_smart_codes', function($codes) {
    $codes[] = [
        'title'      => 'WooCommerce',
        'shortcodes' => [
            '{{woo.last_order_total}}' => 'Last Order Total'
        ]
    ];
    return $codes;
});

Source: app/Services/Helper.php


Bulk Actions & Filters ​

fluent_crm/custom_contact_bulk_actions ​

Add custom bulk actions to the contacts table dropdown.

Parameters

  • $actions Array - Default []

Usage:

php
add_filter('fluent_crm/custom_contact_bulk_actions', function($actions) {
    $actions[] = [
        'label' => __('Sync to External', 'fluent-crm'),
        'value' => 'sync_external'
    ];
    return $actions;
});

Tip: Handle the action via the fluent_crm/contact_bulk_action_{$actionName} dynamic filter.

Source: app/Hooks/Handlers/AdminMenu.php


fluent_crm/contact_bulk_action_limit ​

Filter the maximum number of contacts to process in a single bulk-action request.

Parameters

  • $limit INT - Default 400
  • $request Request Object

Usage:

php
add_filter('fluent_crm/contact_bulk_action_limit', function($limit, $request) {
    return 1000;
}, 10, 2);

Source: app/Http/Controllers/SubscriberController.php


fluentcrm_advanced_filter_options ​

Filter the full array of advanced filter groups for the contact filter UI.

Parameters

  • $groups Array - Filter group definitions

Usage:

php
add_filter('fluentcrm_advanced_filter_options', function($groups) {
    // Add a custom filter group
    $groups['my_filters'] = [
        'label'   => 'My Custom Filters',
        'options' => [
            ['label' => 'Has Purchased', 'value' => 'has_purchased']
        ]
    ];
    return $groups;
});

Source: app/Services/Helper.php


CSV Export & Import Mapping ​

fluent_crm/subscriber_table_columns ​

Filter the column definitions for CSV export of the Contacts table.

Parameters

  • $columns Array - Column definitions

Usage:

php
add_filter('fluent_crm/subscriber_table_columns', function($columns) {
    $columns['custom_field'] = __('Custom Field', 'fluent-crm');
    return $columns;
});

Source: app/Http/Controllers/CsvController.php


fluentcrm_user_map_data ​

Filter the Subscriber data array when mapping a WordPress user to a CRM contact during sync.

Parameters

  • $subscriber Array - Subscriber data being mapped
  • $user \WP_User - WordPress user object

Usage:

php
add_filter('fluentcrm_user_map_data', function($subscriber, $user) {
    $subscriber['company_id'] = get_user_meta($user->ID, 'company_id', true);
    return $subscriber;
}, 10, 2);

Source: app/Services/Helper.php


fluentcrm_update_wp_user_email_on_change ​

Control whether the linked WordPress user's email should be updated when the CRM contact's email changes.

Parameters

  • $update Boolean - Default false

Usage:

php
add_filter('fluentcrm_update_wp_user_email_on_change', function($update) {
    return true; // Sync email changes to WP user
});

Source: app/Models/Subscriber.php