Trip Reviews
[trip_rating_summary] Shortcode
This page documents public WordPress hooks for customizing InquiryFlow front-end behavior, lead handling, emails, and admin exports. Use these in a child theme functions.php or a small custom plugin.
Display and frontend
inquiryflow_hide_inquiry_widget (filter)
Force-hide the floating inquiry widget on the current request.
Parameters: bool $hide, mixed $queried (current queried object)
add_filter( 'inquiryflow_hide_inquiry_widget', function ( $hide, $queried ) {
if ( is_page( 'contact' ) ) {
return true;
}
return $hide;
}, 10, 2 );
inquiryflow_button_display_rules (filter)
Fallback display rule when trip/post/page toggles do not match. Return true to show the widget.
Parameters: bool $show, mixed $queried
add_filter( 'inquiryflow_button_display_rules', function ( $show, $queried ) {
if ( is_singular( 'product' ) ) {
return true;
}
return $show;
}, 10, 2 );
inquiryflow_inquiry_widget_should_display (filter)
Final pass on whether the auto-mounted widget should display.
Parameters: bool $show, mixed $queried
add_filter( 'inquiryflow_inquiry_widget_should_display', function ( $show, $queried ) {
return $show && ! is_user_logged_in();
}, 10, 2 );
inquiryflow_frontend_config (filter)
Modify the JavaScript config object passed to the front-end widget (inquiryflowIb).
Parameters: array $config, array $settings
add_filter( 'inquiryflow_frontend_config', function ( $config, $settings ) {
$config['buttonLabel'] = 'Request a quote';
return $config;
}, 10, 2 );
inquiryflow_whatsapp_message (filter)
Change the prefilled WhatsApp message before {trip_title} replacement.
Parameters: string $message, array $trip (trip context array)
add_filter( 'inquiryflow_whatsapp_message', function ( $message, $trip ) {
return 'Hello! I am interested in ' . ( $trip['title'] ?? 'your trips' ) . '.';
}, 10, 2 );
Lead lifecycle
inquiryflow_inquiry_created (action)
Fires after a new lead is saved.
Parameters: Lead $lead
add_action( 'inquiryflow_inquiry_created', function ( $lead ) {
error_log( 'New inquiry from ' . $lead->email );
} );
inquiryflow_inquiry_status_changed (action)
Fires when an admin changes lead status.
Parameters: Lead $updated, string $old_status
add_action( 'inquiryflow_inquiry_status_changed', function ( $updated, $old_status ) {
if ( 'booked' === $updated->status ) {
// Notify ops channel.
}
}, 10, 2 );
inquiryflow_inquiry_fields (filter)
Modify lead row data (including meta) before sanitization and insert.
Parameters: array $row (fields + meta key)
add_filter( 'inquiryflow_inquiry_fields', function ( $row ) {
$row['meta']['utm_campaign'] = sanitize_text_field( $_COOKIE['utm_campaign'] ?? '' );
return $row;
} );
inquiryflow_format_lead (filter)
Modify the REST/API representation of a lead returned to admin or integrations.
Parameters: array $data, Lead $lead
add_filter( 'inquiryflow_format_lead', function ( $data, $lead ) {
$data['crm_url'] = 'https://crm.example.com/lead/' . $lead->id;
return $data;
}, 10, 2 );
inquiryflow_validate_inquiry (filter)
Add custom validation before a public inquiry is accepted. Return WP_Error to reject.
Parameters: null|\WP_Error $error, array $params, \WP_REST_Request $request
add_filter( 'inquiryflow_validate_inquiry', function ( $error, $params, $request ) {
if ( empty( $params['message'] ) ) {
return new \WP_Error( 'message_required', 'Please include a message.', array( 'status' => 400 ) );
}
return $error;
}, 10, 3 );
Allowed values
inquiryflow_allowed_lead_sources (filter)
Whitelist lead channel sources. Default: form, whatsapp, exit_intent, trip_builder.
Parameters: string[] $sources
add_filter( 'inquiryflow_allowed_lead_sources', function ( $sources ) {
$sources[] = 'partner_api';
return $sources;
} );
inquiryflow_allowed_lead_types (filter)
Whitelist lead types. Default: inquiry.
Parameters: string[] $types
add_filter( 'inquiryflow_allowed_lead_types', function ( $types ) {
$types[] = 'group_booking';
return $types;
} );
inquiryflow_allowed_inquiry_meta_keys (filter)
Register custom meta keys allowed on public submissions (max 20 keys unless filtered elsewhere).
Parameters: string[] $keys
add_filter( 'inquiryflow_allowed_inquiry_meta_keys', function ( $keys ) {
$keys[] = 'utm_campaign';
return $keys;
} );
Email notifications
inquiryflow_admin_email_recipients (filter)
Change who receives admin new-inquiry emails.
Parameters: string[] $recipients, Lead $lead, string $context (admin or admin_test)
add_filter( 'inquiryflow_admin_email_recipients', function ( $recipients, $lead, $context ) {
$recipients[] = '[email protected]';
return $recipients;
}, 10, 3 );
inquiryflow_admin_email_headers (filter)
Modify email headers for admin notifications.
Parameters: string[] $headers, Lead $lead, string $context
add_filter( 'inquiryflow_admin_email_headers', function ( $headers, $lead, $context ) {
$headers[] = 'Reply-To: ' . $lead->email;
return $headers;
}, 10, 3 );
inquiryflow_email_template (filter)
Override admin email subject or body text. Context: admin_subject, admin_body, admin_test_subject, admin_test_body. Pro also uses this for follow-up templates.
Parameters: string $text, string $context, Lead $lead
add_filter( 'inquiryflow_email_template', function ( $text, $context, $lead ) {
if ( 'admin_subject' === $context ) {
return 'URGENT: New trip inquiry from ' . $lead->name;
}
return $text;
}, 10, 3 );
inquiryflow_admin_email_body_sections (filter)
Append HTML sections to the admin notification body.
Parameters: string[] $sections, Lead $lead, array $args
add_filter( 'inquiryflow_admin_email_body_sections', function ( $sections, $lead, $args ) {
$sections[] = '<p><strong>Priority:</strong> VIP client</p>';
return $sections;
}, 10, 3 );
inquiryflow_admin_email_context_rows (filter)
Modify label/value rows in the admin email context table.
Parameters: array $rows, Lead $lead, ?array $trip
add_filter( 'inquiryflow_admin_email_context_rows', function ( $rows, $lead, $trip ) {
$rows[] = array( 'label' => 'Office', 'value' => 'Sydney' );
return $rows;
}, 10, 3 );
Captcha
inquiryflow_verify_captcha (filter)
Short-circuit or replace captcha verification. Return true/false to override; return null to use built-in verification.
Parameters: bool|null $result, string $provider, string $token, Core $core
add_filter( 'inquiryflow_verify_captcha', function ( $result, $provider, $token, $core ) {
if ( 'custom' === $provider ) {
return my_custom_captcha_verify( $token );
}
return $result;
}, 10, 4 );
inquiryflow_captcha_frontend_config (filter)
Adjust captcha settings sent to the front end (site key, provider flags).
Parameters: array $config, string $provider, Core $core, array $settings
add_filter( 'inquiryflow_captcha_frontend_config', function ( $config, $provider, $core, $settings ) {
$config['theme'] = 'dark';
return $config;
}, 10, 4 );
Settings
inquiryflow_settings_loaded (filter)
Modify settings array after load from storage.
Parameters: array $settings
add_filter( 'inquiryflow_settings_loaded', function ( $settings ) {
$settings['button_label'] = 'Enquire now';
return $settings;
} );
inquiryflow_settings_schema (filter)
Add or modify setting field definitions (keys, defaults, sanitize callbacks).
Parameters: array $schema
add_filter( 'inquiryflow_settings_schema', function ( $schema ) {
$schema['fields']['custom_banner'] = array(
'type' => 'string',
'default' => '',
);
return $schema;
} );
Admin list and export
inquiryflow_admin_lead_columns (filter)
Customize Inquiries table columns. Each item: array( 'id' => '', 'label' => '' ).
Parameters: array $columns
add_filter( 'inquiryflow_admin_lead_columns', function ( $columns ) {
$columns[] = array( 'id' => 'phone', 'label' => 'Phone' );
return $columns;
} );
inquiryflow_export_csv_columns (filter)
Customize CSV export column headers (key => label).
Parameters: array $columns
add_filter( 'inquiryflow_export_csv_columns', function ( $columns ) {
$columns['phone'] = 'Phone';
return $columns;
} );
inquiryflow_export_csv_row (filter)
Modify a single CSV row at export time.
Parameters: array $row, Lead $lead, array $columns
add_filter( 'inquiryflow_export_csv_row', function ( $row, $lead, $columns ) {
$row['phone'] = $lead->phone ?? '';
return $row;
}, 10, 3 );
