Thank you for purchasing my add-on.
If you have any questions that are beyond the scope of this help file, please send me an email at rcwdsupport@cantarano.com.
This add-on extends the functionality of the free Wordpress plugin Gravity Forms.
This add-on extends the functionality of the premium Wordpress plugin Gravity Forms.
It allows to add a new single file upload field that is not related to the WP media core.
Yes, you will not find the loaded file inside the media manager, also it uses a different folder for every location (based on form id, field id and entry id). Also, you can activate the option to let user upload more than 1 file!!!
New WP filter to manage file title position: gforms_rcwdupload_title_mode
New WP filters to manage custom rename tags: gforms_rcwdupload_rename_tags and gforms_rcwdupload_rename_tags_replace
New available tag for the rename field: [field:ID], now you can use the content from other fields
New JS trigger to customize upload filters ( gformsrcwdupload_filters and gformsrcwdupload_object). See F.A.Q. section
Available tags for the rename field ( [form_id], [field_id], [lead_id], [fieldlabel] )
Upload in chunks (by using the filter gforms_rcwdupload_chunks)
Setting for IMAGE THUMB AFTER UPLOAD
WOOCOMMERCE QUICK CHECKOUT COMPATIBILITY (needs "WooCommerce Gravity Forms Product Addons")
AUTO UPDATER (experimental, be careful, alway made a backup before do it).
Gravity Forms 1.9 ready.
Support for SAVE AND CONTINUE (GF 1.9 feature)
Javascript triggers.
Sortable. Reorder elements in list using drag&drop (if repeater option is On).
Support for image preview before upload with size settings! (for all modern browsers)
Option for autoupload after file selection
Option for rename the file (if repeater is active, a progressive numeric suffix will be added)
Option for weight limit (KB or MB)
WOOCOMMERCE 2.1.8+ COMPATIBILITY (needs "WooCommerce Gravity Forms Product Addons")
WOOCOMMERCE Catalog Visibility Options COMPATIBILITY
Options for resizing (clientside and serverside)
Options for filtering the allowed extensions
Repeater option! Yes you can let users to upload more to add additional upload fields
Support for drag&drop
Useful filters that will let you customize some stuff (new filters will be added to next releases)
Option for add a title field
Compatible with "Gravity Forms User Registration" plugin
Filename edit in admin (as requested from some of you): Now you can change the filename when editing an entry
New option available (as requested from some of you): Hide the browse button after file selection
New option available (as requested from some of you): Start the repeater with n fields
Language translation for english and italian
improved MULTISITE NETWORK COMPATIBILITY
improved UPLOAD PROCESSING AND STABILITY
improved GRAVITY VIEW COMPATIBILITY (needs "Gravity View Addon")
improved GRAVITY VIEW DATATABLES ADD-ON COMPATIBILITY (needs "Gravity View Add-on and Datatables Add-on")
added new filters to manage content in Gravity View:
gforms_rcwdupload_gravityview_entry_mode and gforms_rcwdupload_gravityview_item
Ready-to-use PHP functions for getting url or path of the files
This add-on requires Gravity Forms v1.7+ and Wordpress v3.5+
After the installation, you have to fill a form to verify the purchase: you will find a new submenu page in your FORMS menu.
Click on "Rcwd Upload settings" and fill the fields (under each field you will find instructions on how to get the info you need).
After installing the add-on you will see a new field type added to the Standard Field toolbox in the Form Editor when creating or editing a Gravity Form.
Click on it to add it to the form and configure the fields options to your liking.
It is automatically includer as part of the {all_fields} merge tag output.
The following functions are useful for getting url or file path:
BASIC WAY
--- about getting the entry_id value ---
$leads = GFFormsModel::get_leads(YOUR-FORM-ID); // PASS YOUR FORM ID TO GET ALL ENTRIES foreach($leads as $lead){ // CYCLE THE LEADS $entry_id = $lead['id']; // HERE YOU CAN CALL YOUR gforms_rcwdupload_gaf_url function }
WHEN USING FORM FOR CREATING POSTS
WHEN USING USER REGISTRATION ADD-ON
This add-on provides hooks to customize various aspect. New actions and filters will be available in next releases.
Following is a list of available hooks and filters.
ACTIONS
function gforms_rcwdupload_up_in_external( $tempfile, $form_id, $field_id, $lead_id ){ //HERE YOU CAN USE, FOR EXAMPLE: rename( $tempfile, 'YOURDIR/filename.yourextension'); // OR SOME CODE TO UPLOAD THE FILE OUTSIDE, IN EXAMPLE AMAZON S3 OR DROPBOX } add_action( 'gforms_rcwdupload_up_in_external', 'gforms_rcwdupload_up_in_external', 10, 4 );
FILTERS
function gforms_rcwdupload_thumb_force_http( $force, $form_id, $field_id, $lead_id ){ return true; } add_filter( 'gforms_rcwdupload_thumb_force_http', 'gforms_rcwdupload_thumb_force_http', 10, 4);
function gforms_rcwdupload_chunks( $chunk, $form_id, $field_id, $lead_id ){ //chunk_size accepts either a size in bytes or a formatted string, e.g: 204800 or"204800b"`` or "200kb". //REMEMBER: don't set the chunk value over the php or wordpress upload limit. $chunk = '500kb'; return $chunk; } add_filter( 'gforms_rcwdupload_chunks', 'gforms_rcwdupload_chunks', 10, 4 ); functiongforms_rcwdupload_chunks_FORMID( $chunk, $field_id, $lead_id ){ //chunk_size accepts either a size in bytes or a formatted string, e.g: 204800 or"204800b"`` or "200kb".
//REMEMBER: don't set the chunk value over the php or wordpress upload limit. $chunk = '500kb'; return $chunk; } add_filter( 'gforms_rcwdupload_chunks_FORMID', 'gforms_rcwdupload_chunks_FORMID', 10, 3 ); function gforms_rcwdupload_chunks_FORMID_FIELDID( $chunk, $lead_id ){ //chunk_size accepts either a size in bytes or a formatted string, e.g: 204800 or"204800b"`` or "200kb".
//REMEMBER: don't set the chunk value over the php or wordpress upload limit. $chunk = '500kb'; return $chunk; } add_filter( 'gforms_rcwdupload_chunks_FORMID_FIELDID', 'gforms_rcwdupload_chunks_FORMID_FIELDID', 10, 2 );
function gforms_rcwdupload_repeater_limit( $value, $form_id, $field_id, $lead_id ){ return $value; } add_filter( 'gforms_rcwdupload_repeater_limit', 'gforms_rcwdupload_repeater_limit', 10, 4); function gforms_rcwdupload_repeater_limit_FORMID( $value, $field_id, $lead_id ){ return $value; } add_filter( 'gforms_rcwdupload_repeater_limit_FORMID', 'gforms_rcwdupload_repeater_limit_FORMID', 10, 3); function gforms_rcwdupload_repeater_limit_FORMID_FIELDID( $value, $lead_id ){ return $value; } add_filter( 'gforms_rcwdupload_repeater_limit_FORMID_FIELDID', 'gforms_rcwdupload_repeater_limit_FORMID_FIELDID', 10, 2);
function gforms_rcwdupload_up_is_external( $external, $form_id, $field_id, $lead_id ){ return true; } add_filter( 'gforms_rcwdupload_up_is_external', 'gforms_rcwdupload_up_is_external', 10, 4 ); function gforms_rcwdupload_up_is_external_FORMID( $external, $field_id, $lead_id ){ return true; } add_filter( 'gforms_rcwdupload_up_is_external_FORMID', 'gforms_rcwdupload_up_is_external_FORMID', 10, 3 ); function gforms_rcwdupload_up_is_external_FORMID_FIELDID( $external, $lead_id ){ return true; } add_filter( 'gforms_rcwdupload_up_is_external_FORMID_FIELDID', 'gforms_rcwdupload_up_is_external_FORMID_FIELDID', 10, 2 );
function gforms_rcwdupload_merge_tag_filter( $mode, $lead, $form ){
return 'name'; } add_filter( gforms_rcwdupload_merge_tag_filter', gforms_rcwdupload_merge_tag_filter, 10, 3 ); function gforms_rcwdupload_merge_tag_filtere_FORMID( $mode, $lead ){ return 'url'; } add_filter( 'gforms_rcwdupload_merge_tag_filter_FORMID', gforms_rcwdupload_merge_tag_filter_FORMID, 10, 2 );
function gforms_rcwdupload_notification_only_name( $only_name, $lead, $form ){ return false; } add_filter( 'gforms_rcwdupload_notification_only_name', gforms_rcwdupload_notification_only_name, 10, 3 ); function gforms_rcwdupload_notification_only_name_FORMID( $only_name, $lead ){ return false; } add_filter( 'gforms_rcwdupload_notification_only_name_FORMID', gforms_rcwdupload_notification_only_name_FORMID, 10, 2 );
function gforms_rcwdupload_filename_as_title( $only_name, $form_id, $field_id, $lead_id ){ return true; } add_filter( 'gforms_rcwdupload_filename_as_title', gforms_rcwdupload_filename_as_title, 10, 4 ); function gforms_rcwdupload_filename_as_title_FORMID( $only_name, $field_id, $lead_id ){ return true; } add_filter( 'gforms_rcwdupload_filename_as_title_FORMID', gforms_rcwdupload_filename_as_title_FORMID, 10, 3 ); function gforms_rcwdupload_filename_as_title_FORMID_FIELDID( $only_name, $lead_id ){ return true; } add_filter( 'gforms_rcwdupload_filename_as_title_FORMID_FIELDID', gforms_rcwdupload_filename_as_title_FORMID, 10, 2 );
function gforms_rcwdupload_entry_mask_url( $mask_url, $form_id, $field_id, $lead_id ){ return true; } add_filter( 'gforms_rcwdupload_entry_mask_url', 'gforms_rcwdupload_entry_mask_url', 10, 4 ); function gforms_rcwdupload_entry_mask_url_FORMID( $mask_url, $field_id, $lead_id ){ return true; } add_filter( 'gforms_rcwdupload_entry_mask_url_FORMID', 'gforms_rcwdupload_entry_mask_url_FORMID', 10, 3 ); function gforms_rcwdupload_entry_mask_url_FORMID_FIELDID( $mask_url, $lead_id ){ return true; } add_filter( 'gforms_rcwdupload_entry_mask_url_FORMID_FIELDID', 'gforms_rcwdupload_entry_mask_url_FORMID', 10, 2 );
function gforms_rcwdupload_entry_filelist_separator( $separator, $form_id, $field_id, $lead_id ){ return '-'; } add_filter( 'gforms_rcwdupload_entry_filelist_separator', gforms_rcwdupload_entry_filelist_separator, 10, 4 ); function gforms_rcwdupload_entry_filelist_separator_FORMID( $separator, $field_id, $lead_id ){ return '-'; } add_filter( 'gforms_rcwdupload_entry_filelist_separator_FORMID', gforms_rcwdupload_entry_filelist_separator_FORMID, 10, 3 ); function gforms_rcwdupload_entry_filelist_separator_FORMID_FIELDID( $separator, $lead_id ){ return '-'; } add_filter( 'gforms_rcwdupload_entry_filelist_separator_FORMID_FIELDID', gforms_rcwdupload_entry_filelist_separator_FORMID, 10, 2 );
function gforms_rcwdupload_path( $path, $form_id, $field_id, $lead_id ){ //... //SOME SCRIPTS TO GET THE NEW PATH (remember: no filename here!) return $YOURPATH; //... } add_filter( 'gforms_rcwdupload_path', gforms_rcwdupload_path, 10, 4 ); function gforms_rcwdupload_path_FORMID_FIELDID( $path, $field_id, $lead_id ){ //... //SOME SCRIPTS TO GET THE NEW PATH (remember: no filename here!) return $YOURPATH; //... } add_filter( 'gforms_rcwdupload_path_FORMID', gforms_rcwdupload_path_FORMID, 10, 3 ); function gforms_rcwdupload_path_FORMID_FIELDID( $path, $lead_id ){ //... //SOME SCRIPTS TO GET THE NEW PATH (remember: no filename here!) return $YOURPATH; //... } add_filter( 'gforms_rcwdupload_path_FORMID_FIELDID', gforms_rcwdupload_path_FORMID_FIELDID, 10, 2 );
function gforms_rcwdupload_url( $url, $form_id, $field_id, $lead_id ){ //... //SOME SCRIPTS TO GET THE NEW URL (remember: no filename here!) return $YOURURL; //... } add_filter( 'gforms_rcwdupload_url', 'gforms_rcwdupload_url', 10, 4 ); function gforms_rcwdupload_url_FORMID_FIELDID( $url, $field_id, $lead_id ){ //... //SOME SCRIPTS TO GET THE NEW URL (remember: no filename here!) return $YOURURL; //... } add_filter( 'gforms_rcwdupload_url_FORMID', 'gforms_rcwdupload_url_FORMID', 10, 3 ); function gforms_rcwdupload_url_FORMID_FIELDID( $url, $lead_id ){ //... //SOME SCRIPTS TO GET THE NEW URL (remember: no filename here!) return $YOURURL; //... } add_filter( 'gforms_rcwdupload_url_FORMID_FIELDID', 'gforms_rcwdupload_url_FORMID_FIELDID', 10, 2 );
function gforms_rcwdupload_rewrite_rules( $rewrite_rules ){ //$REWRITE_RULES IS ARRAY. WANT TO ADD YOUR CUSTOM RULES? DO IT HERE :) //PASS VALUES IN THIS WAY: $new_non_wp_rules = array( 'YOUR RULE' => 'YOUR RULE CONVERSION' ); //OR IF YOU WANT TO KEEP DEFAULT RULES AND ADD YOURS: $new_non_wp_rules[YOUR RULE] = 'YOUR RULE CONVERSION'; return $new_non_wp_rules; // DON'T FORGET TO ADD THIS } add_filter( 'gforms_rcwdupload_rewrite_rules', 'gforms_rcwdupload_rewrite_rules' );
function rcwd_gforms_rcwdupload_rename_tags(){ $tags[] = '[rndm]'; // THIS SET THE SHORTCODE return $tags; } add_filter( 'gforms_rcwdupload_rename_tags', 'rcwd_gforms_rcwdupload_rename_tags' ); function rcwd_gforms_rcwdupload_rename_tags_replace( $replace, $form_id, $field_id, $lead_id ){ $replace[] = 'whateveryouwant'; // THIS SET THE CONTENT THAT REPLACE THE PREVIOUS SHORTCODE return $replace; } add_filter( 'gforms_rcwdupload_rename_tags_replace', 'rcwd_gforms_rcwdupload_rename_tags_replace', 10, 4 );
function gforms_rcwdupload_gravityview_entry_mode( $mode, $args, $form ){ /* POSSIBLE VALUES: link (default) : this will output the html for the anchor only_name : this will output the name of the file url : this will output the url */ return 'link'; } add_filter( 'gforms_rcwdupload_gravityview_entry_mode', 'gforms_rcwdupload_gravityview_entry_mode', 10, 3 ); function gforms_rcwdupload_gravityview_item( $item, $args, $form ){ $items = explode( '<br />', $item ); // THIS IS NECESSARY WHEN YOU ARE USING THE REPEATER OPTION $output = ''; foreach($items as $item) $output .= $item; return $output; } add_filter( 'gforms_rcwdupload_gravityview_item', 'gforms_rcwdupload_gravityview_item', 10, 3 );
function gforms_rcwdupload_title_mode( $mode, $vfile, $title, $form_id, $field_id, $lead_id ){ /* POSSIBLE VALUES: 0 (default) : this will use the title instead of the filename 1 : this will prepend the title before the link followed by a minus sign */ return 0; } add_filter( 'gforms_rcwdupload_title_mode', 'gforms_rcwdupload_title_mode', 10, 6 );
These triggers can help you to achieve some results.
jQuery(function($){ $(document).on( "gformsrcwdupload_filters", function( event, filters, form_id, field_id ) { filters['your-filter-name'] = 'your-value'; // CHECK THE F.A.Q. SECTION FOR AN EXAMPLE return filters; // ALWAYS NEEDED! }); });
jQuery(function($){ $(document).on( "gformsrcwdupload_object", function( event, form_id, field_id ) { // CHECK THE F.A.Q. SECTION FOR AN EXAMPLE }); });
jQuery(function($){ //GENERAL _______________________ $(document).on( "gformsrcwdupload_preview", function( event, element, form_id, field_id, args ){ $(element).data({ width : 200, height : 30, crop : true }); }); // FILTERING WITH FORM ID_______________________ $(document).on( "gformsrcwdupload_FORMID_preview", function( event, element, field_id, args ){ //... }); // FILTERING WITH FORM ID AND FIELD ID_______________________ $(document).on( "gformsrcwdupload_FORMID_FIELDID_preview", function( event, element, args ){ //... }); });
jQuery(function($){ // GENERAL _______________________ $(document).on( "gformsrcwdupload_fileuploaded", function( event, url, form_id, field_id ){ $('#thumbnail img').attr( 'src', href ); }); // FILTERING WITH FORM ID_______________________ $(document).on( "gformsrcwdupload_FORMID_fileuploaded", function( event, url, field_id, ){ //... }); // FILTERING WITH FORM ID AND FIELD ID_______________________ $(document).on( "gformsrcwdupload_FORMID_FIELDID_fileuploaded", function( event, url ){ //... }); });
jQuery(function($){ // GENERAL _______________________ $(document).on( "gformsrcwdupload_fileuploaded", function( event, form_id, field_id ){ $('#thumbnail img').attr( 'src', '' ); }); // FILTERING WITH FORM ID_______________________ $(document).on( "gformsrcwdupload_FORMID_fileuploaded", function( event, field_id, ){ //... }); // FILTERING WITH FORM ID AND FIELD ID_______________________ $(document).on( "gformsrcwdupload_FORMID_FIELDID_fileuploaded", function( event ){ //... }); });
Finally, this plugin is almost compatible with Woocommerce (2.1.8+)!!!
Obviously, you need to purchase the "WooCommerce Gravity Forms Product Addons". This plugin connect any GF field to Woocommerce.
If you have a lower version, try this little modification of the woocommerce core file "includes/class-wc-order-item-meta.php":
https://github.com/woothemes/woocommerce/commit/2c0cf92
Any info or tutorial will be put in this space.
You need support for it? no problem! Send me an email at rcwdsupport@cantarano.com.
No support in comments section. Please use it for presale questions only, thanks :)
$(document).on( "gformsrcwdupload_filters", function( event, filters, form_id, field_id ) { filters['max_width'] = 50; // SET YOUR WIDTH LIMIT, WITHOUT THE WORD PX return filters; // DON'T FORGET TO RETURN THE FILTERS! }); $(document).on( "gformsrcwdupload_object", function( event, form_id, field_id ) { plupload.addFileFilter('max_width', function( max_width, file, cb ){ var self = this var img = new o.Image(); function finalize(result){ img.destroy(); img = null; if (!result){ self.trigger('Error', { code : plupload.IMAGE_DIMENSIONS_ERROR, message : "The width exceeds the allowed limit of " + max_width + " pixels.", file : file }); } cb(result); } img.onload = function() { finalize(img.width < max_width); }; img.onerror = function(){ finalize(false); }; img.load(file.getSource()); }); });
GFRcwdCommon::upload_info( $form_id, $field_id, $entry_id, $user_id )
NOTE: $user_id IS OPTIONAL, you have to pass this value ONLY if you are using the plugin with "gravity forms user registration add-on".
NOTE ABOUT " HOW TO GET MY FIELD SERIALIZED DATA": if have two methods to get the data, the 1st is to cycle all leads using GFFormsModel::get_leads($form_id), or, if you are using the form to create a POST, you need to get the ENTRY ID by using the wp function get_post_meta( $post_id, '_gform-entry-id', true ).
if you do a var_dump on $path, you will see other useful info that you should need.$lead = RGFormsModel::get_lead(ENTRY_ID); $form = RGFormsModel::get_form_meta(FORM_ID); foreach( $form['fields'] as $field ){ $field = (array)$field; // IT SEEMS THAT IN LATEST GFORMS VERSION, THIS WILL BE AN OBJECT. I PREFER TO CAST IT AS ARRAY if($field['type'] == 'rcwdupload'){ $value = unserialize( $lead[$field['id']] ); //$value = unserialize(get_user_meta( $user_id, 'YOUR-META-NAME', true )); // NEED THIS IF USING WITH GFORMS USER REGISTRATION ADD-ON $form_id = $value[0]['form_id']; $field_id = $value[0]['field_id']; $entry_id = $value[0]['entry_id']; $filename = $value[0]['file']; $path = GFRcwdCommon::upload_info( $form_id, $field_id, $entry_id ); //$path = GFRcwdCommon::upload_info( $form_id, $field_id, $entry_id, $user_id ); // NEED THIS IF USING WITH GFORMS USER REGISTRATION ADD-ON $file = $path['url'].$filename; } }
function change_user_notification_attachments( $notification, $form, $entry ){ if($notification["name"] == "Notifica amministratore"){ // THIS IS THE IMPORTANT PART,IF YOU HAVE MORE THAN ONE NOTIFICATION, THE ONLY WAY TO ADD ATTACHMENTS ONLY TO ONE IS USING THE NAME, IT MUST BE THE SAME YOU ADD IN YOUR NOTIFICATION SETTINGS. SEE THE ATTACHED IMAGE $rcwdupload_fields = GFCommon::get_fields_by_type($form, array("rcwdupload")); if(!is_array($rcwdupload_fields)) return $notification; $attachments = array(); foreach($rcwdupload_fields as $rcwdupload){ if(!empty($entry[$rcwdupload["id"]])){ $value = unserialize($entry[$rcwdupload["id"]]); foreach($value as $singlevalue){ if( isset($singlevalue) and isset($singlevalue['form_id']) and isset($singlevalue['field_id']) and isset($singlevalue['entry_id']) and isset($singlevalue['file']) and !empty($singlevalue['file']) ){ $form_id = $singlevalue['form_id']; $field_id = $singlevalue['field_id']; $entry_id = $singlevalue['entry_id']; $filename = $singlevalue['file']; $path = GFRcwdCommon::upload_info( $form_id, $field_id, $entry_id ); $attachments[] = $path['path'].$filename; } } } } $notification["attachments"] = $attachments; } return $notification; } add_filter( 'gform_notification', 'change_user_notification_attachments', 10, 3 );
function gform_notification( $notification, $form, $entry ){ if($notification["name"] == "Notifica amministratore"){ // THIS IS THE IMPORTANT PART,IF YOU HAVE MORE THAN ONE NOTIFICATION, THE ONLY WAY TO ADD ATTACHMENTS ONLY TO ONE IS USING THE NAME, IT MUST BE THE SAME YOU ADD IN YOUR NOTIFICATION SETTINGS. SEE THE ATTACHED IMAGE $text = $notification['message']; $form_id = $form['id']; $fields = $form['fields']; preg_match_all( '/{[^{]*?:(\d+(\.\d+)?)(:(.*?))?}/mi', $text, $matches, PREG_SET_ORDER ); if(is_array($matches)){ $rcwdfields = GFCommon::get_fields_by_type($form, array("rcwdupload")); if(!is_array($rcwdfields)) return $notification; $matchesids = array(); $matchesidsc = array(); foreach($matches as $match){ $matchesidsc[] = $match[0]; $matchesids[] = $match[1]; } foreach($rcwdfields as $rcwdfield){ if(false !== $rfkey = array_search( $rcwdfield->id, $matchesids )){ $pics = gforms_rcwdupload_gaf_url( $entry['id'], $rcwdfield->id, $single = false ); if(!empty($pics)){ foreach($pics as $pk => $pic) $pics[$pk] = '<img src="'.$pic.'" alt="">'; } $text = str_replace( $matchesidsc[$rfkey], implode( ' ', $pics ), $text ); } } $notification['message'] = $text; } } return $notification; } add_filter( 'gform_notification', 'gform_notification', 10, 3 );
function gforms_rcwdupload_gravityview_entry_mode( $mode, $args, $form ){ return 'url'; // THIS IS NECESSARY TO GET ONLY THE URL FOR EVERY SINGLE FILE } add_filter( 'gforms_rcwdupload_gravityview_entry_mode', 'gforms_rcwdupload_gravityview_entry_mode', 10, 3 ); function gforms_rcwdupload_gravityview_item( $item, $args, $form ){ $items = explode( '<br />', $item ); // THIS IS NECESSARY WHEN YOU ARE USING THE REPEATER OPTION $output = ''; foreach($items as $item) $output .= '<div class="your-item"><a href="'.$item.'" target="_blank"><img src="'.$item.'" alt="" width="150"></a></div>'; return $output; } add_filter( 'gforms_rcwdupload_gravityview_item', 'gforms_rcwdupload_gravityview_item', 10, 3 );
This section will grow with your support! Send me an email at rcwdsupport@cantarano.com with your question and i will help you as soon as possible.
Don't forget to check the checkbox "Get notified by email if this item is updated" in your Downloads page :)
To update the plugin you have 2 ways
V1.1.7.0
V1.1.6.9
V1.1.6.6
V1.1.6.0
V1.1.5.9
V1.1.5.8
V1.1.5.6
V1.1.5.4
V1.1.5.3
V1.1.5.0
V1.1.4.9
V1.1.4.8
V1.1.4.7
V1.1.4.6
V1.1.4.5
V1.1.4.4
V1.1.4.1
V1.1.3.9
V1.1.3.5
V1.1.3.4
V1.1.3.1
V1.1.2.9
V1.1.2.5
V1.1.2.4
V1.1.2.3
V1.1.2.2
V1.1.2.0
V1.1.1.9
V1.1.1.7
V1.1.1.6
V1.1.1.5
V1.1.1.2
V1.1.1.1
V1.1.1.0
V1.1.0.9
V1.1.0.8
V1.1.0.7
V1.1.0.6
V1.1.0.5
V1.1.0.4
V1.1.0.3
V1.1.0.1
V1.1.0.0
V1.0.9.9
V1.0.9.2
V1.0.9.1
V1.0.9.0
V1.0.8.9
V1.0.8.8
V1.0.8.7
V1.0.8.6
V1.0.8.5
V1.0.8.2
V1.0.8.1
V1.0.8.0
V1.0.7.9
V1.0.7.3
V1.0.7.2
V1.0.7.1
V1.0.6.2
V1.0.5.9
V1.0.5.6
V1.0.5.4
V1.0.5.3
V1.0.5.2
V1.0.5.1
V1.0.4
v1.0.3
v1.0.2
v1.0.1
v1.0.0
Roberto Cantarano - web design and developement