Skip to content

Christmas Holiday Special Discount

Flat 30% OFF!
Formidable Forms alternatives
  • Pricing
  • Features
  • Demos
  • Integrations
  • Blog
  • Docs
  • Contact
  • Account

Christmas Holiday Special Discount

Flat 30% OFF!
Formidable Forms alternatives
Popular Search entrysubmitpaymentsubmissionentries

Developer Docs

  • Database Tables of Fluent Forms
  • Submission Lifecycle
  • Integration Feed – Fields API
  • Creating Custom SmartCode for Form Editor
  • Limit Email Domains in Fluent Forms Form Submission
  • Email verification with Emailable
  • Email Confirmation Field
  • How to make a login form with Fluent Form
  • How to make a strong password requirement in user registration forms with Fluent Forms
  • Create Unique Fields in Fluent Forms
  • Populate dropdown field options from Google Sheet
  • Form PHP API
  • PHP Action Hooks
  • PHP Filter Hooks
  • Useful Snippets
  • Creating Pretty Conversational Form URL Slug
  • How to create your own custom field with Fluent Forms

Action Hooks

  • fluentform_before_insert_submission
  • fluentform_submission_inserted
  • fluentform_before_submission_confirmation
  • fluentform_inserted_new_form
  • fluentform_before_form_render
  • fluentform_loaded
  • fluentform_before_form_actions_processing
  • fluentform_before_insert_payment_form
  • flentform_form_duplicated
  • fluentform_form_imported
  • fluentform_after_save_form_settings
  • fluent_editor_init
  • fluentform_loading_editor_assets
  • fluentform_before_editor_start
  • fluentform_after_editor_start
  • fluentform_after_form_screen_wrapper
  • fluentform_before_form_screen_wrapper
  • fluentform_render_item_{$item}
  • fluentform_after_form_render
  • fluentform_form_element_start
  • fluentform_render_item_step_start
  • fluentform_render_item_step_end
  • ff_rendering_calculation_form
  • fluentform_maybe_scheduled_jobs
  • fluentform_do_email_report_scheduled_tasks
  • before_fluentform_permission_set_assignment
  • after_fluentform_permission_set_assignment
  • fluentform_global_menu
  • fluentform_after_form_navigation
  • ff_fluentform_form_application_view_{$route}
  • fluentform_init_custom_stylesheet
  • fluentform_load_form_assets
  • fluentform_scripts_registered
  • flunetform_render_payment_entries
  • fluentform_pre_load_scripts
  • fluentform_new_response_note_added
  • fluentform_starting_file_upload
  • fluentform_global_notify_completed
  • fluentform_save_global_integration_settings_{ $settingsKey}
  • ff_integration_action_result
  • fluentform_email_summary_details
  • fluentform_email_template_after_footer
  • fluentform_addons_page_render_{$current_menu_item}
  • fluentform_before_form_settings_app
  • fluentform_after_form_settings_app
  • fluentform_form_settings_container_{$current_sub_route}
  • fluentform_before_global_settings_wrapper
  • fluentform_after_global_settings_wrapper
  • fluentform_global_settings_component_{$currentComponent}
  • fluentform_after_global_settings_option_render
  • fluentform_before_global_settings_option_render
  • fluentform_before_export_import_wrapper
  • fluentform_after_export_import_wrapper
  • fluentform_before_export_import_container
  • fluentform_after_before_export_import_container
  • fluentform_form_styler
  • fluentform_after_style_generated
  • fluentform_conversational_frame_head
  • fluentform_conversational_frame_footer
  • fluentform_user_registration_before_start
  • fluentform_created_user
  • fluentform_user_registration_completed
  • fluentform_post_integration_success
  • fluentformpro_entry_confirmation
  • fluentform_before_partial_entry_deleted
  • fluentform_after_partial_entry_deleted
  • flunetform_render_payment_entries
  • fluentform_before_all_entries_render
  • fluentform_after_all_entries_render
  • fluentform_before_entry_deleted
  • fluentform_after_entry_deleted
  • fluentform_payment_receipt_before_content
  • fluentform_payment_receipt_after_content
  • fluent_payment_frameless_{$paymentMethod}
  • fluentform_rending_payment_method_
  • fluentform_payment_method_render_{$methodName}
  • fluentform_before_payment_status_change
  • fluentform_after_payment_status_change
  • fluentform_payment_refunded_{$method}
  • fluentform_payment_refunded
  • fluentform_payment_refund_updated_{$method}
  • fluentform_payment_refund_updated
  • fluentform_paypal_ipn_verification_failed
  • fluentform_ipn_endpint_
  • fluentform_ipn_paypal_action_
  • fluentform_ipn_paypal_action_web_accept

Filter Hooks

  • fluentform_insert_response_data
  • fluentform_filter_insert_data
  • fluentform_submission_confirmation
  • fluentform_validate_input_item_{input_key}
  • fluentform_entry_statuses_core
  • fluentform_rendering_field_data_{INPUT_KEY}
  • fluentform_email_body
  • fluentform_rendering_field_data_select
  • fluentform_filter_email_attachments
  • fluentform_rendering_form
  • fluentform_is_form_renderable
  • fluentform_is_handling_submission
  • fluentform_validation_errors
  • fluentform_honeypot_name
  • fluentform_before_render_item
  • fluentform_rendering_field_html_{$elementName}
  • fluentform_skip_no_conflict
  • fluentform_load_styles
  • fluentform_load_default_public
  • fluentform_is_hide_submit_btn_{ $formId}
  • fluentform_form_class
  • fluent_form_html_attributes
  • fluentform_editor_shortcodes
  • fluentform_shortcode_parser_callback_{smart_code_name}
  • fluentform_all_editor_shortcodes
  • fluentform_smartcode_group_{$group}
  • fluentform_payment_smartcode
  • fluentform_entry_statuses_core
  • fluentform_nonce_verify
  • fluentform_nonce_error
  • fluentform_numeric_styles
  • fluentform_akismet_fields
  • ff_will_return_html
  • fluentform_honeypot_status
  • fluentform_dashboard_notices
  • fluentform_is_admin_page
  • fluentform_single_response_data
  • fluentform/available_date_formats
  • fluentform_permission_set
  • fluentform_api_all_logs
  • fluentform_api_success_log
  • fluentform_api_failed_log
  • fluentform_truncate_password_values
  • fluentform_verify_user_permission_{ $eachPermission}
  • fluentform_permission_callback
  • fluentform_nonce_error
  • fluentform_editor_init_element_{$element}
  • fluent_editor_validation_rule_settings
  • fluent_editor_element_settings_placement
  • fluent_editor_components
  • fluent_editor_countries
  • fluent_editor_element_customization_settings
  • fluentform_addons_extra_menu
  • fluentform_global_addons
  • fluentform_global_integration_settings_{$settingsKey}
  • fluentform_global_integration_fields_{$settingsKey}
  • fluentform_global_notification_active_types
  • fluentform_notifying_async_{$integrationKey}
  • fluentform_mailchimp_keep_existing_interests
  • fluentform_mailchimp_keep_existing_tags
  • fluentform_global_notification_feed_{$feed->meta_key}
  • fluentform_integration_data_{$integrationKey}
  • fluentform_shortcode_defaults
  • fluentform_info_shortcode_defaults
  • fluentform_get_raw_responses
  • fluentform_export_data
  • fluentform_shortcode_feed_text
  • fluentform_entry_lists_labels
  • fluentform_all_entries
  • fluentform_step_string
  • fluentform_global_form_vars
  • fluentform_all_entry_labels
  • fluentform_all_entry_labels_with_payment
  • fluentforms_recaptcha_v3_ref_score
  • fluentform_auto_read
  • fluentform_create_default_settings
  • fluentform_form_fields_update
  • fluentform_single_entry_widgets
  • fluentform-disabled_analytics
  • fluentform_entry_notes
  • fluentform_add_response_note
  • fluentform_disable_attachment_delete
  • fluentform_response_render_{element}
  • fluentform_settings_module_{$module}
  • fluentform_rendering_field_html_
  • fluentform_validation_message_{$ruleName}
  • fluentform_item_rules_{$item}
  • fluentform_send_plain_html_email
  • fluentform_submission_message_parse
  • fluentform_email_subject
  • fluentform_email_body
  • fluentform_email_to
  • fluentform_email_header
  • fluentform_email_footer
  • fluentform_email_styles
  • fluentform_email_template_footer_text
  • fluentform_email_attachments
  • fluentform_email_summary_body_text
  • fluentform_email_summary_footer_text
  • fluentform_email_content_type_header
  • fluentform_email_template_header_image
  • fluentform_email_template_email_heading
  • fluentform_email_template_colors
  • fluentform_nonce_verify
  • fluentform_popup_shortcode_defaults
  • fluentform_survey_shortcode_defaults
  • fluentform_itl_options
  • fluentform_ip_provider
  • fluentform_post_type_selection_types_args
  • fluentform_post_selection_types
  • fluentform_post_selection_posts_pre_data
  • fluentform_post_selection_label_by
  • fluentform_user_registration_field_defaults
  • fluentform_icontact_request_args
  • fluentform_user_registration_feed_fields
  • fluentorm_UserRegistration_creatable_roles
  • fluentform_payment_settings_{$method}
  • payment_method_settings_validation_{$method}
  • fluentform_with_payment_submission_data
  • fluentform_submission_order_items
  • fluentform_payment_field_{$elementName}
  • fluentform_stripe_checkout_args
  • fluentform_uploader_args
  • fluent_file_uploaded
  • fluentform_file_upload_params
  • fluentform_uploaded_file_name
  • fluentform_file_upload_validations
  • fluentform_file_upload_validation_error
  • fluentform_disable_inputmode
  • fluentform_file_type_options
  • fluentform_default_upload_path 

Reference API Classes

  • BaseFieldManager Class
  • IntegrationManager Class
  • PDF TemplateManager Class
  • BasePaymentMethod Class
  • BaseProcessor Class

Data Definations

  • $submission_data Array
  • $form Object
  • Home
  • Docs
  • Developer Docs
  • Creating Custom SmartCode for Form Editor

Creating Custom SmartCode for Form Editor

Table of Contents
  • Pushing Smartcode to the suggested list of the Form editor
  • Pushing Smartcode to the suggested list of the Email / Confirmation Settings
  • Transforming the value
  • Build Geo Location SmartCode

Fluent Forms have custom smartcodes for dynamic data that you can use for form input’s default value. By default you will get wide range of dynamic smart-codes including current user info, current embedded post’s information, dynamic dates, cookie value, URL get parameters, Browser information, IP address etc.

But If you want to add your own smartcodes then it’s not that hard actually. Let’s see how you can add your own custom smartcode.

Pushing Smartcode to the suggested list of the Form editor #

add_filter('fluentform_editor_shortcodes', function ($smartCodes) {
    $smartCodes[0]['shortcodes']['{my_own_smartcode}'] = 'My Own smartcode';
    return $smartCodes;
});

By using this code we have hooked the fluentform_editor_shortcodes filter hook and then added our own smartcode {my_own_smartcode} in the available list.

Smart code pushed in Available suggestion

Pushing Smartcode to the suggested list of the Email / Confirmation Settings #

add_filter('fluentform_all_editor_shortcodes',function($data){
	
	$customShortCodes = [
		     'title'=>'Custom',
                     'shortcodes' => ['{my_own_smartcode}' => 'my_own_smartcode',]
		];
	$data[] = $customShortCodes;
	return $data;
	
},10,1);

Transforming the value #

Now our smartcode has been available and anyone can use that in any input field. Let’s transform that value with something dynamic.

/*
 * To replace dynamic new smartcode the filter hook will be
 * fluentform_editor_shortcode_callback_{your_smart_code_name}
 */
add_filter('fluentform_editor_shortcode_callback_my_own_smartcode', function ($value, $form) {
    $dynamicValue = $form->title; // We are send current form title. You can fetch any data and return
    return $dynamicValue;
}, 10, 2);

The following code will transform the value for Email and Confirmation Settings.

/*
 * Create a custom shortcode for email / confirmation or other after form submit
 * Usage: {my_custom_shortcode}
 * @param $value string original shortcode string
 * @param $parser class \FluentForm\App\Services\FormBuilder\ShortCodeParser
 */
add_filter('fluentform_shortcode_parser_callback_my_own_smartcode', function ($value, $parser) {

    // If you need $submittedData
    $entry = $parser::getEntry();
    $submittedData = \json_decode($entry->response, true);
  
    // if you need form ID
    $formId = $entry->form_id;

    
    return 'my custom value';
}, 10, 2);

So in this example, We are adding a composite filter fluentform_editor_shortcode_callback_my_own_smartcode. Here my_own_smartcode is the keyword of our SmartCode and then returning the current form’s title. You can definitely fetch your own value and return. Please note that You have to always return number or string. No array or object return is allowed.

Dynamic Default Value showing now

Build Geo Location SmartCode #

Let’s build something useful. Some hosting provides provide $_SEREVR variable for geo-data based on IP address. Please note that It depends on your hosting provider. So please check if these $_SEREVR variables are available or not.

  • $_SERVER[‘GEOIP_COUNTRY_NAME’] – Return Country Name
  • $_SERVER[‘GEOIP_CITY’] – Return City name

So let’s create a smartcode {ffc_geo_country} smartcode which will return the user’s country name.

/*
 * Add the smartcode to the list
 */
add_filter('fluentform_editor_shortcodes', function ($smartCodes) {
    $smartCodes[0]['shortcodes']['{ffc_geo_country}'] = 'GEO Country';
    return $smartCodes;
});

/*
 * Transform the smartcode
 */
add_filter('fluentform_editor_shortcode_callback_ffc_geo_country', function ($value, $form) {
    if(isset($_SERVER['GEOIP_COUNTRY_NAME'])) {
        return $_SERVER['GEOIP_COUNTRY_NAME'];
    }
    return '';
}, 10, 2);

That’s it. It’s too easy to extend Fluent Forms. Please check the project at github.

If you did not start using Fluent Forms then you should definitely give a try. It’s Free and available in WordPress Plugin repository

Contact Form Plugin – WP Fluent Forms – Fastest Contact Form Builder Plugin for WordPress
What are your Feelings
Share This Article :
  • Facebook
  • Twitter
  • LinkedIn
  • Pinterest
Still stuck? How can we help?

How can we help?

Updated on July 29, 2021
Integration Feed – Fields APILimit Email Domains in Fluent Forms Form Submission

Powered by BetterDocs

Table of Contents
  • Pushing Smartcode to the suggested list of the Form editor
  • Pushing Smartcode to the suggested list of the Email / Confirmation Settings
  • Transforming the value
  • Build Geo Location SmartCode
Fluent Forms

Addons

  • Signature (Paid)
  • PDF Generator
  • Mautic
  • Mailpoet

Get Help

  • Documentation
  • API Docs
  • Support
  • Brand Guideline

Resource

  • Fluent Forms Free vs. Pro
  • Fluent Forms vs. WPForms
  • Fluent Forms vs. Gravity Forms
  • Fluent Forms vs. Ninja Forms
  • Fluent Forms vs. Forminator

Our Brands

  • Ninja Tables
  • FluentCRM
  • Fluent Support
  • FluentSMTP
  • WP Social Ninja
  • Paymattic
  • AzonPress

Email Newsletter

fluentform Newsletter Inline
We won't send you spam. Unsubscribe at any time.
Ninja-Tables-BFCM-Popup-Banner
×
Facebook Facebook Group Twitter Instagram YouTube WordPress

Copyright © 2023 Fluent Forms. A Brand of  WPManageNinja™ | Affiliate | Terms & Privacy

Scroll to top
  • Pricing
  • Features
  • Demos
  • Integrations
  • Blog
  • Docs
  • Contact
  • Account