• Access & Security 95
  • Administration 171
  • Advertisement 92
  • Audio & Video 66
  • Author & Content 99
  • Comments 96
  • Communication 110
  • Communities & Forums 84
  • Development 47
  • E-Commerce 76
  • Email Management 53
  • Events & Calendars 80
  • Language 25
  • Map & Weather 44
  • Migration & Conversion 28
  • Miscellaneous 254
  • Mobile 15
  • Photos 143
  • Plugins 260
  • SEO & Site Speed 118
  • Social 186
  • Theme Enhancement 169

  • Add this plugin to a List

    You need to be logged in to add this plugin to your list.

    WordPress-to-lead for Salesforce CRM

    Add to List

    Brilliant Web-to-Lead for Salesforce creates a solid integration between your WordPress install(s) and your Salesforce CRM account! People can enter a contact form on your site, and the lead (or case) goes straight into Salesforce CRM: no more copy pasting lead info, no more missing leads: each and every one of them is in for you to follow up.


    You can fully configure all the different settings for the form, and then use a shortcode to insert the form into your posts or pages, or you can use the widget that comes with the plugin and insert the form into your sidebar!

    Previous contributors:

    Filters and Hooks


    • These should be placed in your active theme functions.php or a functionality plugin.
    • Never edit a plugin directly (unless you understand the implications of doing so).
    • You can use Pluginception to create a custom plugin for these to make them independent of your theme:



    Change the API url the plugin posts data to. Passes the form type (lead or case)

    add_filter( 'salesforce_w2l_api_url', 'my_w2l_api_url', 10, 2 );
    function my_w2l_api_url( $url, $form_type ){
        return '';


    Provide your own validation logic for each field.

    An error array is passed in, along with the field name, submitted value, and field configuration (type, default value, required, etc).

    Here’s an example of blocking common free email providers:

    add_filter('sfwp2l_validate_field','block_non_biz_emails', 10, 4);
    function block_non_biz_emails( $error, $name, $val, $field ){
        if( $name == 'email' ){
            $non_biz_domains = array( '', '', '', '' );
            $domain = array_pop(explode('@', $val));
            if( in_array( $domain, $non_biz_domains ) ){
                $error['valid'] = false;
                $error['message'] = 'Please enter a business email addresss.';
        return $error;

    You can add to the $non_biz_domains to block other providers as well.


    HTML of the form before it’s returned to WordPress for display


    Change from name (user confirmation)


    Change from email (user confirmation)


    Change from name (admin notification)


    Change from email (admin notification)


    Adding this code to your functions.php file will add 3 emails to the list. You can add as many as you want and each will get an admin notification email.

    function salesforce_add_emails( $emails ){
    //uncomment line below to remove site admin
    $emails[]='[email protected]';
    $emails[]='[email protected]';
    $emails[]='[email protected]';
    return $emails;



    Allows you to filter (append, prepend, modify) the email message content sent to the user or admin(s).

    add_filter('salesforce_w2l_cc_user_email_content','salesforce_filter_user_message', 10, 1);
    function salesforce_filter_user_message( $message ){
        $message = 'Before the user message' . "rnrn" . $message . "rnrn" . 'After the user message';
        return $message;
    add_filter('salesforce_w2l_cc_admin_email_content','salesforce_filter_admin_message', 10, 1);
    function salesforce_filter_admin_message( $message ){
        $message = 'Before the admin message' . "rnrn" . $message . "rnrn" . 'After the admin message';
        return $message;


    Filter the Reply-To email header (e.g. to allow replies to go to the form submitter)


    salesforce_w2l_returl_{Form ID}

    Allows you to filter the value of a field before it is output to dynamically populate it with a value, auto set it based on another value, etc.


    // Filter Return/Success URL on a specific form
    // salesforce_w2l_returl_{Form ID}
    add_filter( 'salesforce_w2l_returl_1_tester', 'salesforce_w2l_returl_1_tester_example', 10, 1 );
    function salesforce_w2l_returl_1_tester_example(  $returl ){
        return '';


    salesforce_w2l_success_message_{Form ID}

    Allows you to filter the contents of the success message before it is output to dynamically populate it with a value, auto set it based on another value, etc.


    // Filter Success Message on a specific form
    // salesforce_w2l_success_message_{Form ID}
    add_filter( 'salesforce_w2l_success_message_1_tester', 'salesforce_w2l_success_message_1_tester_example', 10, 1 );
    function salesforce_w2l_success_message_1_tester_example(  $success ){
        return 'Testing 123';


    salesforce_w2l_field_value_{Form ID}_{Field Name}

    Allows you to filter the value of a field before it is output to dynamically populate it with a value, auto set it based on another value, etc.

    Note that the second filter requires you to replace {Form ID} and {Field Name} to be replaced with the relevant form id and field name.

    If you need access to the field or form settings in your filter you can use:

    $field = salesforce_get_field( $field_name, $form_id );
    $form = salesforce_get_form( $form_id );


    // Pre-check a checkbox
    add_filter( 'salesforce_w2l_field_value', 'salesforce_w2l_field_value_precheck_example', 10, 3 );
    function salesforce_w2l_field_value_precheck_example( $val, $field, $form ){
        $form_id = 1; // form id to act upon
        $field_name = 'checkboxfield__c'; // API Name of the field you want to auto check
        if( $form == $form_id && $field_name == $field && ! $_POST )
            return 1; // or whatever the value of your checkbox is
        return $val;
    // Store HTTP referrer in a field (this is not 100% reliable as the browser sends this value to the server)
    add_filter( 'salesforce_w2l_field_value', 'salesforce_w2l_field_value_referrer_example', 10, 3 );
    function salesforce_w2l_field_value_referrer_example( $val, $field, $form ){
        $form_id = 1; // form id to act upon
        $field_name = 'referrer__c'; // API Name of the field you want to autofill
        if( $form == $form_id && $field_name == $field ){
            if( isset( $_SERVER['HTTP_REFERER'] ) ){
                return $_SERVER['HTTP_REFERER'];
        return $val;
    // Autofill fields based on thew query string (using Google Analytics tracking variables in this example)
    add_filter( 'salesforce_w2l_field_value', 'salesforce_w2l_field_value_querystring_example', 10, 3 );
    function salesforce_w2l_field_value_querystring_example( $val, $field, $form ){
        $form_id = 1; // form id to act upon
        $field_name = 'source__c'; // API Name of the field you want to autofill
        $qs_var = 'source'; // e.g. ?source=foo
        if( $form == $form_id && $field_name == $field ){
            if( isset( $_GET[ $qs_var ] ) ){
                return $_GET[ $qs_var ];
        return $val;
    // Autofill a user's country based on IP
    add_filter( 'salesforce_w2l_field_value', 'salesforce_w2l_field_value_geoip_example', 10, 3 );
    function salesforce_w2l_field_value_geoip_example( $val, $field, $form ){
        // Based on this plugin:
        // Adjust this code to the one used by your geo detection plugin
        if( !function_exists( 'geoip_detect2_get_info_from_current_ip' ) ) return;
        $form_id = 1; // form id to act upon
        $field_name = 'country__c'; // API Name of the field you want to autofill
        if( $form == $form_id && $field_name == $field ){
            $userInfo = geoip_detect2_get_info_from_current_ip();
            //$val = $userInfo->country->isoCode; // e.g. US
            $val = $userInfo->country->name; // e.g. United States
        return $val;
    // Autofill a date
    add_filter( 'salesforce_w2l_field_value', 'salesforce_w2l_field_value_date_example', 10, 3 );
    function salesforce_w2l_field_value_date_example( $val, $field, $form ){
        $form_id = 1; // form id to act upon
        $field_name = 'mydatefield__c'; // API Name of the field you want to auto check
        if( $form == $form_id && $field_name == $field && ! $_POST )
            return current_time('Y-m-d'); // or whatever date format you want
        return $val;


    Allows you to remove the form action.

    // Remove Form Action
    add_filter( 'salesforce_w2l_form_action', 'salesforce_w2l_form_action_example', 10, 1 );
    function salesforce_w2l_form_action_example(  $action ){
        return '';


    Allows you to alter the lead source (per form or globally).

    // Alter Lead Source
    add_filter( 'salesforce_w2l_lead_source', 'salesforce_w2l_lead_source_example', 10, 2 );
    function salesforce_w2l_lead_source_example(  $lead_source, $form_id ){
        if( $form_id == 1 )
            return 'Example Lead Source for Form #1 on page id #'.get_the_id();
        return $lead_source;


    Allows filtering of the wp_remote_post arguments (e.g. extend the timeout, increase redirect limit, etc).

    add_filter( 'salesforce_w2l_post_args', 'salesforce_w2l_post_args_example' );
    function salesforce_w2l_post_args_example( $args ){
        $args['timeout'] = 10; // http timeout in seconds
        return $args;


    Allows filtering of the post data before it is sent to SalesForce.

    add_filter( 'salesforce_w2l_post_data', 'salesforce_w2l_post_data_example', 10, 3 );
    function salesforce_w2l_post_data_example( $post, $form_id, $form_type ){
        error_log( 'POST ARGS = '.print_r( $post, 1 ) );
        $post['test'] = 'test';
        return $post;


    Suppress the organization id missing nag message (return false).

    add_filter( 'salesforce_w2l_show_admin_nag_message', '__return_false', 10, 1 );



    Allows you to do something (read only) with the post data before it’s submitted to SalesForce.

    e.g. Send it to another API, log it to a database, etc.

    If you need to change the data, use the salesforce_w2l_post_data filter.

    add_action('salesforce_w2l_before_submit', 'salesforce_w2l_before_submit_example', 10, 3 );
    function salesforce_w2l_before_submit_example( $post, $form_id, $form_type ){
        error_log( 'BEFORE SUBMIT '.print_r($post,1) );


    Allows you to do something (read only) with the post data when there is an error submitting to SalesForce.

    e.g. Notify someone via email, log it somewhere, etc.

    add_action('salesforce_w2l_error_submit', 'salesforce_w2l_error_submit_example', 10, 4 );
    function salesforce_w2l_error_submit_example( $result, $post, $form_id, $form_type ){
        error_log( 'ERROR SUBMIT ' . print_r($result,1) );


    Allows you to do something (read only) with the post data after it’s submitted to SalesForce.

    e.g. Send it to another API, log it to a database, etc.

    add_action('salesforce_w2l_after_submit', 'salesforce_w2l_after_submit_example', 10, 3 );
    function salesforce_w2l_after_submit_example( $post, $form_id, $form_type ){
        error_log( 'AFTER SUBMIT '.print_r($post,1) );


    Allows you to add to or change the list of fields that are auto prefixed by the plugin to avoid collisions with WP Query reserved request parameters

    add_filter('salesforce_w2l_get_prefixed_inputs', 'salesforce_w2l_get_prefixed_inputs_example', 10, 1 );
    function salesforce_w2l_get_prefixed_inputs_example( $fields ){
        $fields[] = 'new_field_name';
        return $fields;


    Allows you to change the default field name prefix (_sf) used to avoid collisions with WP Query reserved request parameters.

    add_filter('salesforce_w2l_input_name_prefix', 'salesforce_w2l_input_name_prefix_example', 10, 1 );
    function salesforce_w2l_input_name_prefix_example( $prefix ){
        return 'sfwp2lprefix_';
    Rate This Plugin

    Please Login to Rate this Plugin!




    0 Votes
    Not Rated Yet Stats

    Last Updated790 Days ago
    Published14 years ago

    Report Wrong Category!

    Do you think this Plugin belongs to another Category?

    What Category Should this Plugin belong to? *

    Reason *

    Create a Plugin List

    You need to be Logged in to Create a Plugin List.

    Submit A plugin

    You need to be logged in to submit a plugin.


    WPD is the unofficial online plugin directory of WordPress.

    An attempt has been made to list Only functional, active,efficient and up-to-date plugins.

    Categorized : Plugin are listed by category and subcategory based on functionality and uses. Here you can browse wordpress plugin from our neatly categorized plugin directory and sort the plugins by rating, votes, last updated and published and search plugins using tags.

    Search : Plugins can be searched by their functionality using multi-tag search and you can search plugins using their exact name although we are not ensuring Google like search accuracy.

    Create Plugin Lists : You will be able to create list of plugins and share them with Wordpress Community or you can keep them private and use them as a bookmarks.
    e.g. Plugins That I’ve Used on My Site, Best Event Management Plugins, Christmas Plugins etc.

    If you think certain awesome plugin is not in the directory then notify us through our Submit a Plugin page.

    Browsing the Plugin Directory

    Browse by Category

    In WPD, Plugins are categorized carefully. You can browse all the categories from the homepage or you can access the category lists from any page by clicking the button from the left of the website.

    Browse by Tags

    Each plugin listed in WPD is marked with useful tags. You can browse plugins by Tags from the All Tags page

    Searching in WPD

    Multi Tag Search

    You can search plugins using multiple tags. To perform a multi-tag search. Go to Homepage and then in the search field type any keywords or tags(comma separated) and then click on the search button. To search plugins from a selected category just select the category from the dropdown and type your tags.

    Searching a specific Plugin in WPD

    If you want to find a specific plugin in our directory, Go to Homepage and then select the "Search in Title" option. Then write the name of the plugin and click the search button to find the Plugin.

    Plugin Lists

    Whats a Plugin List

    Plugin Lists are user created lists of plugins. Any registered users can create Plugin Lists and share it with anyone or make it private.

    Why Create a plugin List?
    • Easy to keep track of your favourite and useful plugin.

    • Share list of plugins on blogs, social media or to a client.

    • Keep a track of what plugins you installed in which of your blogs by creating a list for each blog

    Creating a Plugin List

    To create a Plugin List, click the button from the left of the page; a popup box will appear. In the "List Name" field, put the name of the List. eg: Best Seo plugins for your site.
    In the Description field, put a few words describing the List.
    By default, lists are automatically published as public, which is visible to everyone. If you do not want others to see the List, select "Private" from the dropdown list. Then click the "Create List" button to create the list.

    Adding Plugins to your List

    To add a plugin to your List, go to a plugin page and click the "Add to List" button. A popup box will appear where you can select in which of your list you want to add this plugin. You can add a note if you want, this note will appear below the plugin in your list.
    P.S: You can only add plugins that are in our directory.

    Your Lists will appear in our "Plugin Lists" page when you set the list as "Public" and your list contains atleast 2 plugins.

    Editing your Lists

    When you are on your list page, notice there is a button on the top right corner of the page. Click it to edit the List Name and the List Description.

    Accessing All your Lists

    You can access all your Plugin lists by going to your profile and clicking the "Lists" tab.

    Removing your Lists

    You can remove your Plugin lists by going to your profile and clicking the "Lists" tab. on top right of each list click the button to remove the list completely.

    While tremendous effort has been put to keep this directory precise and complete, still errors and omissions are unavoidable and possible. We welcome any suggestions for corrections, deletions, and idea that might improve the overall experience.

    To submit a Feedback click the from the bottom right corner of the site.

    Brave Popup Builder
    Our Latest WordPress Plugin
    Create Awesome WordPress Popups with Intuitive visual Editor. Choose from hundreds of Presets. Create Beautiful Popups and convert more visitors to subscribers, clients and customers.
    This Popup was Built with this plugin.
    Marketing knowledge
    Upgrade your
    Leverage agile frameworks to provide a robust synopsis for high overviews.
    Register or log in to assess the record