Plugin Directory

Changeset 3310866


Ignore:
Timestamp:
06/13/2025 07:10:10 AM (10 months ago)
Author:
closemarketing
Message:

Update to version 4.0.2 from GitHub

Location:
formscrm
Files:
12 edited
1 copied

Legend:

Unmodified
Added
Removed
  • formscrm/assets/icon-158x158.gif

    • Property svn:mime-type changed from application/octet-stream to image/gif
  • formscrm/assets/icon-256x256.gif

    • Property svn:mime-type changed from application/octet-stream to image/gif
  • formscrm/tags/4.0.2/formscrm.php

    r3303369 r3310866  
    44 * Plugin URI:  https://close.technology/wordpress-plugins/formscrm/
    55 * Description: Connects Forms with CRM, ERP and Email Marketing.
    6  * Version:     4.0.1
     6 * Version:     4.0.2
    77 * Author:      CloseTechnology
    88 * Author URI:  https://close.technology
     
    2424defined( 'ABSPATH' ) || die( 'No script kiddies please!' );
    2525
    26 define( 'FORMSCRM_VERSION', '4.0.1' );
     26define( 'FORMSCRM_VERSION', '4.0.2' );
    2727define( 'FORMSCRM_PLUGIN', __FILE__ );
    2828define( 'FORMSCRM_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
    2929define( 'FORMSCRM_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
    3030define( 'FORMSCRM_CRED_VARIABLES', array( 'url', 'username', 'password', 'apipassword', 'odoodb', 'apisales' ) );
    31 
    32 add_action( 'plugins_loaded', 'fcrm_plugin_init' );
    33 /**
    34  * Load localization files
    35  *
    36  * @return void
    37  */
    38 function fcrm_plugin_init() {
    39     load_plugin_textdomain( 'formscrm', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
    40 }
    4131
    4232add_filter(
  • formscrm/tags/4.0.2/includes/crm-library/class-crmlib-clientify.php

    r3290078 r3310866  
    714714                'required' => false,
    715715            );
     716
     717            $fields[] = array(
     718                'name'     => 'deal|expected_closed_date_days',
     719                'label'    => __( 'Expected Closure Date in Days', 'formscrm' ),
     720                'required' => false,
     721            );
    716722        }
    717723
     
    782788                if ( 'deal|product_skus' === $element['name'] ) {
    783789                    $deal_product_skus = $element['value'];
     790                } elseif ( 'deal|expected_closed_date_days' === $element['name'] ) {
     791                    $deal['expected_closed_date'] = gmdate( 'Y-m-d', strtotime( '+' . (int) $element['value'] . ' days' ) );
    784792                } else {
    785793                    $custom_field             = explode( '|', $element['name'] );
  • formscrm/tags/4.0.2/includes/formscrm-library/class-elementor.php

    r3290078 r3310866  
    1616}
    1717
     18use ElementorPro\Modules\Forms\Submissions\Database\Query;
     19
    1820/**
    1921 * Action Class
     
    7375            }
    7476
    75             formscrm_debug_message( $array_path[ $crmname ] );
    76 
    7777            if ( class_exists( $crmclassname ) ) {
    7878                $this->crmlib = new $crmclassname();
     79            } else {
     80                // If the class does not exist, we throw an error.
     81                formscrm_debug_message( 'Class ' . $crmclassname . ' not found in ' . $array_path[ $crmname ] );
     82                wp_send_json_error( __( 'CRM library not found', 'formscrm' ) );
    7983            }
    8084        }
     
    255259        $raw_fields = $record->get( 'fields' );
    256260
    257         // Normalize the Form Data.
    258         $merge_vars = [];
    259         foreach ( $raw_fields as $id => $field ) {
    260             $merge_vars[ $id ] = [
    261                 'name'  => $id,
    262                 'value' => $field['value'],
    263             ];
    264         }
    265 
    266261        // Unpack hidden settings for the form.
    267262        if ( isset( $settings['formscrm_settings_hidden'] ) ) {
     
    270265
    271266            if ( isset( $settings['fc_crm_type'] ) && ! empty( $hidden_settings[ $settings['fc_crm_type'] ] ) ) {
    272                 $settings['fc_crm_module'] = $hidden_settings[ $settings['fc_crm_type'] ];
     267                $settings['fc_crm_module'] = $hidden_settings[ $settings['fc_crm_type'] ] ?? '';
    273268            }
     269        }
     270
     271        // Normalize the Form Data.
     272        $merge_vars = [];
     273        foreach ( $raw_fields as $id => $field ) {
     274            $key = array_search( $id, $hidden_settings, true );
     275            if ( false === $key ) {
     276                continue;
     277            }
     278            $field_id     = str_replace( 'fc_crm_field-', '', $key );
     279            $merge_vars[] = [
     280                'name'  => $field_id,
     281                'value' => $field['value'] ?? '',
     282            ];
    274283        }
    275284
     
    277286            $merge_vars['visitor_key'] = [
    278287                'name'  => 'visitor_key',
    279                 'value' => sanitize_text_field( wp_unslash( $_POST['visitor_key'] ) )
     288                'value' => sanitize_text_field( wp_unslash( $_POST['visitor_key'] ) ),
    280289            ];
    281290        }
    282291        // Create contact in CRM.
     292        $settings = formscrm_elementor_process_settings( $settings );
    283293        $this->include_library( $settings['fc_crm_type'] );
    284294        $response_result = $this->crmlib->create_entry( $settings, $merge_vars );
    285295
     296        $response_message = '';
    286297        if ( 'error' === $response_result['status'] ) {
    287             $url   = isset( $response_result['url'] ) ? $response_result['url'] : '';
    288             $query = isset( $response_result['query'] ) ? $response_result['query'] : '';
    289 
    290             formscrm_debug_email_lead( $settings['fc_crm_type'], 'Error ' . $response_result['message'], $merge_vars, $url, $query );
     298            $url     = isset( $response_result['url'] ) ? $response_result['url'] : '';
     299            $query   = isset( $response_result['query'] ) ? $response_result['query'] : '';
     300            $message = isset( $response_result['message'] ) ? $response_result['message'] : '';
     301
     302            formscrm_debug_email_lead( $settings['fc_crm_type'], 'Error ' . $message, $merge_vars, $url, $query );
     303
     304            $response_message = sprintf(
     305                // translators: %1$s CRM name %2$s Error message %3$s URL %4$s Query.
     306                __( 'Error creating %1$s Error: %2$s URL: %3$s QUERY: %4$s', 'formscrm' ),
     307                esc_html( $settings['fc_crm_type'] ),
     308                $message,
     309                $url,
     310                $query
     311            );
     312            $ajax_handler->messages['admin_error'][] = $response_message;
     313        } else {
     314            $response_message = sprintf(
     315                // translators: %1$s CRM name %2$s ID number of entry created.
     316                __( 'Success creating %1$s Entry ID: %2$s', 'formscrm' ),
     317                esc_html( $settings['fc_crm_type'] ),
     318                $response_result['id']
     319            );
     320            $ajax_handler->messages['success'][] = $response_message;
    291321        }
    292322    }
  • formscrm/tags/4.0.2/includes/formscrm-library/elementor-ajax.php

    r3303369 r3310866  
    1717 * @return void
    1818 */
    19 function formscrm_elementor_process_post( $post_data ) {
    20     // Sanitize the post data.
    21     foreach ( $post_data as $key => $value ) {
    22         if ( 'fc_crm_url' === $key ) {
    23             $post_data[ $key ] = isset( $value['url'] ) ? sanitize_url( $value['url'] ) : $value;
    24             continue;
    25         }
    26         $post_data[ $key ] = sanitize_text_field( $value );
     19function formscrm_elementor_process_settings( $post_data ) {
     20    if ( isset( $post_data['fc_crm_url'] ) && is_array( $post_data['fc_crm_url'] ) ) {
     21        // If the URL is an array, we assume it has a 'url' key.
     22        $post_data['fc_crm_url'] = isset( $post_data['fc_crm_url']['url'] ) ? sanitize_text_field( $post_data['fc_crm_url']['url'] ) : '';
     23    } elseif ( isset( $post_data['fc_crm_url'] ) ) {
     24        // If it's not an array, sanitize it directly.
     25        $post_data['fc_crm_url'] = sanitize_text_field( $post_data['fc_crm_url'] );
    2726    }
    2827    return $post_data;
     
    7675    $crmlib = new $crmclassname();
    7776
    78     $post_data = formscrm_elementor_process_post( $_POST['crmSettings'] ?? array() );
     77    $post_data = formscrm_elementor_process_settings( $_POST['crmSettings'] ?? array() );
    7978
    8079    // 2. Show modules dropdown
     
    112111            <div class="elementor-control-field-description"></div>
    113112        </div>
    114     </div><?php
    115 
     113    </div>
     114    <?php
    116115    // 3. Show settings for each module
    117116    foreach ( $modules as $module ) {
     
    126125        }
    127126
    128         $post_data  = formscrm_elementor_process_post( $_POST['crmSettings'] ?? array() );
     127        $post_data  = formscrm_elementor_process_settings( $_POST['crmSettings'] ?? array() );
    129128        $crm_fields = $crmlib->list_fields( $post_data, $value );
    130129
     
    133132        } ?>
    134133
    135         <table class="elementor-map-table" cellspacing="0" cellpadding="0" data-module="<?php echo $value; ?>"><tbody>
     134        <table class="elementor-map-table" cellspacing="0" cellpadding="0" data-module="<?php echo esc_html( $value ); ?>"><tbody>
    136135            <tr class="elementor-map-row">
    137136                <th class="elementor-map-column elementor-map-column-heading elementor-map-column-key"><?php esc_html_e( 'Field CRM', 'formscrm' ); ?></th>
     
    148147                $crm_field_name  = sanitize_text_field( $crm_field['name'] );
    149148                $crm_field_label = isset( $crm_field['label'] ) ? sanitize_text_field( $crm_field['label'] ) : '';
    150                 $crm_field_req   = isset( $crm_field['req'] ) ? (bool) $crm_field['req'] : false; ?>
     149                $crm_field_req   = isset( $crm_field['req'] ) ? (bool) $crm_field['req'] : false;
     150                ?>
    151151
    152152                <tr class="elementor-map-row">
    153153                    <td class="elementor-map-column elementor-map-column-key">
    154                         <label for="wpelementor-crm-field-<?php echo esc_html( $crm_field_name ); ?>"><?php
    155 
     154                        <label for="wpelementor-crm-field-<?php echo esc_html( $crm_field_name ); ?>">
     155                        <?php
    156156                        echo esc_html( $crm_field_label );
    157157
     
    163163                    </td>
    164164                    <td class="elementor-map-column elementor-map-column-value">
    165                         <select class="wide" name="fc_crm_field-<?php esc_html( $crm_field_name ); ?>" >
    166                             <option value=""><?php esc_html_e( 'Select a field', 'formscrm' ); ?></option><?php
    167 
     165                        <select class="wide" name="fc_crm_field-<?php echo esc_html( $crm_field_name ); ?>" >
     166                            <option value=""><?php esc_html_e( 'Select a field', 'formscrm' ); ?></option>
     167                            <?php
    168168                            foreach ( $_POST['formFields'] as $form_name => $form_label ) {
    169169                                echo '<option value="' . esc_html( $form_name ) . '" ';
  • formscrm/tags/4.0.2/readme.txt

    r3303369 r3310866  
    55Requires at least: 5.5
    66Tested up to: 6.8
    7 Stable tag: 4.0.1
    8 Version: 4.0.1
     7Stable tag: 4.0.2
     8Version: 4.0.2
    99License: GPL2
    1010License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    5454[youtube https://www.youtube.com/watch?v=HHG763ikL7o]
    5555
    56 **Instructions for adding Clientify cookie in the forms**
    57 
    58 Clientify cookie adds the ability to merge the contact with the Clientify cookie in the form. You will see if Clientify is added as CRM, a new hidden field in your form. You could check if is already in the form, but if you don't have it you can add it and put as css *clientify_cookie* .
    59 
    6056**Dynamic values in GravityForms and WPForms**
    6157We have developed a way to get values from other fields in GravityForms and WPForms. You can use this in the field mapping in the feed. You can use:
     
    6561We recommend to use this in the field mapping in the feed and hidden field that gets the value.
    6662
     63== Settings for Clientify ==
     64**Instructions for adding Clientify cookie in the forms**
     65Clientify cookie adds the ability to merge the contact with the Clientify cookie in the form. You will see if Clientify is added as CRM, a new hidden field in your form. You could check if is already in the form, but if you don't have it you can add it and put as css *clientify_cookie* .
     66
     67**Add expected closure date for Deals in Clientify**
     68You can add a new field that fits with expected closure date for Deals in Clientify. This field is optional, and you need to add a number of days to the expected closure date. The plugin will calculate the date from today and will add it to the Deal in Clientify.
     69
    6770**Autoassignment in Clientify**
    6871We have added a new field in Clientify to apply the autoassignment to the contact. You can add a string with the list of usernames separated by comma (,) to apply the autoassignment.
     
    7780
    7881== Changelog ==
     82= 4.0.2 =
     83*  Added: Expected closure date for Deals in Clientify.
     84*  Fixed: Elementor Forms Fields and values not sending.
     85*  Fixed: Warnings messages in load_plugin_textdomain.
     86
    7987= 4.0.1 =
    8088*  Fixed: Elementor Forms with URL Odoo not working.
  • formscrm/trunk/formscrm.php

    r3303369 r3310866  
    44 * Plugin URI:  https://close.technology/wordpress-plugins/formscrm/
    55 * Description: Connects Forms with CRM, ERP and Email Marketing.
    6  * Version:     4.0.1
     6 * Version:     4.0.2
    77 * Author:      CloseTechnology
    88 * Author URI:  https://close.technology
     
    2424defined( 'ABSPATH' ) || die( 'No script kiddies please!' );
    2525
    26 define( 'FORMSCRM_VERSION', '4.0.1' );
     26define( 'FORMSCRM_VERSION', '4.0.2' );
    2727define( 'FORMSCRM_PLUGIN', __FILE__ );
    2828define( 'FORMSCRM_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
    2929define( 'FORMSCRM_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
    3030define( 'FORMSCRM_CRED_VARIABLES', array( 'url', 'username', 'password', 'apipassword', 'odoodb', 'apisales' ) );
    31 
    32 add_action( 'plugins_loaded', 'fcrm_plugin_init' );
    33 /**
    34  * Load localization files
    35  *
    36  * @return void
    37  */
    38 function fcrm_plugin_init() {
    39     load_plugin_textdomain( 'formscrm', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
    40 }
    4131
    4232add_filter(
  • formscrm/trunk/includes/crm-library/class-crmlib-clientify.php

    r3290078 r3310866  
    714714                'required' => false,
    715715            );
     716
     717            $fields[] = array(
     718                'name'     => 'deal|expected_closed_date_days',
     719                'label'    => __( 'Expected Closure Date in Days', 'formscrm' ),
     720                'required' => false,
     721            );
    716722        }
    717723
     
    782788                if ( 'deal|product_skus' === $element['name'] ) {
    783789                    $deal_product_skus = $element['value'];
     790                } elseif ( 'deal|expected_closed_date_days' === $element['name'] ) {
     791                    $deal['expected_closed_date'] = gmdate( 'Y-m-d', strtotime( '+' . (int) $element['value'] . ' days' ) );
    784792                } else {
    785793                    $custom_field             = explode( '|', $element['name'] );
  • formscrm/trunk/includes/formscrm-library/class-elementor.php

    r3290078 r3310866  
    1616}
    1717
     18use ElementorPro\Modules\Forms\Submissions\Database\Query;
     19
    1820/**
    1921 * Action Class
     
    7375            }
    7476
    75             formscrm_debug_message( $array_path[ $crmname ] );
    76 
    7777            if ( class_exists( $crmclassname ) ) {
    7878                $this->crmlib = new $crmclassname();
     79            } else {
     80                // If the class does not exist, we throw an error.
     81                formscrm_debug_message( 'Class ' . $crmclassname . ' not found in ' . $array_path[ $crmname ] );
     82                wp_send_json_error( __( 'CRM library not found', 'formscrm' ) );
    7983            }
    8084        }
     
    255259        $raw_fields = $record->get( 'fields' );
    256260
    257         // Normalize the Form Data.
    258         $merge_vars = [];
    259         foreach ( $raw_fields as $id => $field ) {
    260             $merge_vars[ $id ] = [
    261                 'name'  => $id,
    262                 'value' => $field['value'],
    263             ];
    264         }
    265 
    266261        // Unpack hidden settings for the form.
    267262        if ( isset( $settings['formscrm_settings_hidden'] ) ) {
     
    270265
    271266            if ( isset( $settings['fc_crm_type'] ) && ! empty( $hidden_settings[ $settings['fc_crm_type'] ] ) ) {
    272                 $settings['fc_crm_module'] = $hidden_settings[ $settings['fc_crm_type'] ];
     267                $settings['fc_crm_module'] = $hidden_settings[ $settings['fc_crm_type'] ] ?? '';
    273268            }
     269        }
     270
     271        // Normalize the Form Data.
     272        $merge_vars = [];
     273        foreach ( $raw_fields as $id => $field ) {
     274            $key = array_search( $id, $hidden_settings, true );
     275            if ( false === $key ) {
     276                continue;
     277            }
     278            $field_id     = str_replace( 'fc_crm_field-', '', $key );
     279            $merge_vars[] = [
     280                'name'  => $field_id,
     281                'value' => $field['value'] ?? '',
     282            ];
    274283        }
    275284
     
    277286            $merge_vars['visitor_key'] = [
    278287                'name'  => 'visitor_key',
    279                 'value' => sanitize_text_field( wp_unslash( $_POST['visitor_key'] ) )
     288                'value' => sanitize_text_field( wp_unslash( $_POST['visitor_key'] ) ),
    280289            ];
    281290        }
    282291        // Create contact in CRM.
     292        $settings = formscrm_elementor_process_settings( $settings );
    283293        $this->include_library( $settings['fc_crm_type'] );
    284294        $response_result = $this->crmlib->create_entry( $settings, $merge_vars );
    285295
     296        $response_message = '';
    286297        if ( 'error' === $response_result['status'] ) {
    287             $url   = isset( $response_result['url'] ) ? $response_result['url'] : '';
    288             $query = isset( $response_result['query'] ) ? $response_result['query'] : '';
    289 
    290             formscrm_debug_email_lead( $settings['fc_crm_type'], 'Error ' . $response_result['message'], $merge_vars, $url, $query );
     298            $url     = isset( $response_result['url'] ) ? $response_result['url'] : '';
     299            $query   = isset( $response_result['query'] ) ? $response_result['query'] : '';
     300            $message = isset( $response_result['message'] ) ? $response_result['message'] : '';
     301
     302            formscrm_debug_email_lead( $settings['fc_crm_type'], 'Error ' . $message, $merge_vars, $url, $query );
     303
     304            $response_message = sprintf(
     305                // translators: %1$s CRM name %2$s Error message %3$s URL %4$s Query.
     306                __( 'Error creating %1$s Error: %2$s URL: %3$s QUERY: %4$s', 'formscrm' ),
     307                esc_html( $settings['fc_crm_type'] ),
     308                $message,
     309                $url,
     310                $query
     311            );
     312            $ajax_handler->messages['admin_error'][] = $response_message;
     313        } else {
     314            $response_message = sprintf(
     315                // translators: %1$s CRM name %2$s ID number of entry created.
     316                __( 'Success creating %1$s Entry ID: %2$s', 'formscrm' ),
     317                esc_html( $settings['fc_crm_type'] ),
     318                $response_result['id']
     319            );
     320            $ajax_handler->messages['success'][] = $response_message;
    291321        }
    292322    }
  • formscrm/trunk/includes/formscrm-library/elementor-ajax.php

    r3303369 r3310866  
    1717 * @return void
    1818 */
    19 function formscrm_elementor_process_post( $post_data ) {
    20     // Sanitize the post data.
    21     foreach ( $post_data as $key => $value ) {
    22         if ( 'fc_crm_url' === $key ) {
    23             $post_data[ $key ] = isset( $value['url'] ) ? sanitize_url( $value['url'] ) : $value;
    24             continue;
    25         }
    26         $post_data[ $key ] = sanitize_text_field( $value );
     19function formscrm_elementor_process_settings( $post_data ) {
     20    if ( isset( $post_data['fc_crm_url'] ) && is_array( $post_data['fc_crm_url'] ) ) {
     21        // If the URL is an array, we assume it has a 'url' key.
     22        $post_data['fc_crm_url'] = isset( $post_data['fc_crm_url']['url'] ) ? sanitize_text_field( $post_data['fc_crm_url']['url'] ) : '';
     23    } elseif ( isset( $post_data['fc_crm_url'] ) ) {
     24        // If it's not an array, sanitize it directly.
     25        $post_data['fc_crm_url'] = sanitize_text_field( $post_data['fc_crm_url'] );
    2726    }
    2827    return $post_data;
     
    7675    $crmlib = new $crmclassname();
    7776
    78     $post_data = formscrm_elementor_process_post( $_POST['crmSettings'] ?? array() );
     77    $post_data = formscrm_elementor_process_settings( $_POST['crmSettings'] ?? array() );
    7978
    8079    // 2. Show modules dropdown
     
    112111            <div class="elementor-control-field-description"></div>
    113112        </div>
    114     </div><?php
    115 
     113    </div>
     114    <?php
    116115    // 3. Show settings for each module
    117116    foreach ( $modules as $module ) {
     
    126125        }
    127126
    128         $post_data  = formscrm_elementor_process_post( $_POST['crmSettings'] ?? array() );
     127        $post_data  = formscrm_elementor_process_settings( $_POST['crmSettings'] ?? array() );
    129128        $crm_fields = $crmlib->list_fields( $post_data, $value );
    130129
     
    133132        } ?>
    134133
    135         <table class="elementor-map-table" cellspacing="0" cellpadding="0" data-module="<?php echo $value; ?>"><tbody>
     134        <table class="elementor-map-table" cellspacing="0" cellpadding="0" data-module="<?php echo esc_html( $value ); ?>"><tbody>
    136135            <tr class="elementor-map-row">
    137136                <th class="elementor-map-column elementor-map-column-heading elementor-map-column-key"><?php esc_html_e( 'Field CRM', 'formscrm' ); ?></th>
     
    148147                $crm_field_name  = sanitize_text_field( $crm_field['name'] );
    149148                $crm_field_label = isset( $crm_field['label'] ) ? sanitize_text_field( $crm_field['label'] ) : '';
    150                 $crm_field_req   = isset( $crm_field['req'] ) ? (bool) $crm_field['req'] : false; ?>
     149                $crm_field_req   = isset( $crm_field['req'] ) ? (bool) $crm_field['req'] : false;
     150                ?>
    151151
    152152                <tr class="elementor-map-row">
    153153                    <td class="elementor-map-column elementor-map-column-key">
    154                         <label for="wpelementor-crm-field-<?php echo esc_html( $crm_field_name ); ?>"><?php
    155 
     154                        <label for="wpelementor-crm-field-<?php echo esc_html( $crm_field_name ); ?>">
     155                        <?php
    156156                        echo esc_html( $crm_field_label );
    157157
     
    163163                    </td>
    164164                    <td class="elementor-map-column elementor-map-column-value">
    165                         <select class="wide" name="fc_crm_field-<?php esc_html( $crm_field_name ); ?>" >
    166                             <option value=""><?php esc_html_e( 'Select a field', 'formscrm' ); ?></option><?php
    167 
     165                        <select class="wide" name="fc_crm_field-<?php echo esc_html( $crm_field_name ); ?>" >
     166                            <option value=""><?php esc_html_e( 'Select a field', 'formscrm' ); ?></option>
     167                            <?php
    168168                            foreach ( $_POST['formFields'] as $form_name => $form_label ) {
    169169                                echo '<option value="' . esc_html( $form_name ) . '" ';
  • formscrm/trunk/readme.txt

    r3303369 r3310866  
    55Requires at least: 5.5
    66Tested up to: 6.8
    7 Stable tag: 4.0.1
    8 Version: 4.0.1
     7Stable tag: 4.0.2
     8Version: 4.0.2
    99License: GPL2
    1010License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    5454[youtube https://www.youtube.com/watch?v=HHG763ikL7o]
    5555
    56 **Instructions for adding Clientify cookie in the forms**
    57 
    58 Clientify cookie adds the ability to merge the contact with the Clientify cookie in the form. You will see if Clientify is added as CRM, a new hidden field in your form. You could check if is already in the form, but if you don't have it you can add it and put as css *clientify_cookie* .
    59 
    6056**Dynamic values in GravityForms and WPForms**
    6157We have developed a way to get values from other fields in GravityForms and WPForms. You can use this in the field mapping in the feed. You can use:
     
    6561We recommend to use this in the field mapping in the feed and hidden field that gets the value.
    6662
     63== Settings for Clientify ==
     64**Instructions for adding Clientify cookie in the forms**
     65Clientify cookie adds the ability to merge the contact with the Clientify cookie in the form. You will see if Clientify is added as CRM, a new hidden field in your form. You could check if is already in the form, but if you don't have it you can add it and put as css *clientify_cookie* .
     66
     67**Add expected closure date for Deals in Clientify**
     68You can add a new field that fits with expected closure date for Deals in Clientify. This field is optional, and you need to add a number of days to the expected closure date. The plugin will calculate the date from today and will add it to the Deal in Clientify.
     69
    6770**Autoassignment in Clientify**
    6871We have added a new field in Clientify to apply the autoassignment to the contact. You can add a string with the list of usernames separated by comma (,) to apply the autoassignment.
     
    7780
    7881== Changelog ==
     82= 4.0.2 =
     83*  Added: Expected closure date for Deals in Clientify.
     84*  Fixed: Elementor Forms Fields and values not sending.
     85*  Fixed: Warnings messages in load_plugin_textdomain.
     86
    7987= 4.0.1 =
    8088*  Fixed: Elementor Forms with URL Odoo not working.
Note: See TracChangeset for help on using the changeset viewer.