Drag and Drop Multiple File Upload – Contact Form 7 - Version 1.3.5.4

Version Description

  • Added - Russian translation (Thanks to "Dan Uchvatoff ")
  • Fixed - File counter "of" not translatable.
Download this release

Release Info

Developer glenwpcoder
Plugin Icon 128x128 Drag and Drop Multiple File Upload – Contact Form 7
Version 1.3.5.4
Comparing to
See all releases

Code changes from version 1.3.5.1 to 1.3.5.4

assets/js/codedropz-uploader-min.js CHANGED
@@ -1,11 +1,11 @@
1
  /**
2
- * CodeDropz Uploader v1.3.5
3
  * Copyright 2018 Glen Mongaya
4
  * CodeDrop Drag&Drop Uploader
5
- * @version 1.3.5
6
  * @author CodeDropz, Glen Don L. Mongaya
7
  * @license The MIT License (MIT)
8
  */
9
 
10
  // CodeDropz Drag and Drop Plugin
11
- !function(e){e.fn.CodeDropz_Uploader=function(a){this.each(function(){var d=e(this),r=e.extend({handler:d,color:"#000",background:"",server_max_error:"Uploaded file exceeds the maximum upload size of your server.",max_file:d.data("max")?d.data("max"):10,max_upload_size:d.data("limit")?d.data("limit"):"10485760",supported_type:d.data("type")?d.data("type"):"jpg|jpeg|JPG|png|gif|pdf|doc|docx|ppt|pptx|odt|avi|ogg|m4a|mov|mp3|mp4|mpg|wav|wmv|xls",text:"Drag & Drop Files Here",separator:"or",button_text:"Browse Files",on_success:""},a),o=d.data("name")+"_count_files";localStorage.setItem(o,1);var s='<div class="codedropz-upload-handler"><div class="codedropz-upload-container"><div class="codedropz-upload-inner"><h3>'+r.text+"</h3><span>"+r.separator+'</span><div class="codedropz-btn-wrap"><a class="cd-upload-btn" href="javascript:void(0)">'+r.button_text+'</a></div></div></div><span class="dnd-upload-counter"><span>0</span> of '+parseInt(r.max_file)+"</span></div>";r.handler.wrapAll('<div class="codedropz-upload-wrapper"></div>'),r.supported_type=r.supported_type.replace(/[^a-zA-Z0-9| ]/g,"");var t=r.handler.parents("form"),n=r.handler.parents(".codedropz-upload-wrapper"),p=e('input[type="submit"]',t);r.handler.after(s),e(".codedropz-upload-handler",n).on("drag dragstart dragend dragover dragenter dragleave drop",function(e){e.preventDefault(),e.stopPropagation()}),e(".codedropz-upload-handler",n).on("dragover dragenter",function(a){e(this).addClass("codedropz-dragover")}),e(".codedropz-upload-handler",n).on("dragleave dragend drop",function(a){e(this).removeClass("codedropz-dragover")}),e("a.cd-upload-btn",n).on("click",function(e){e.preventDefault(),r.handler.val(null),r.handler.click()}),e(".codedropz-upload-handler",n).on("drop",function(e){l(e.originalEvent.dataTransfer.files,"drop")}),r.handler.on("change",function(e){l(this.files,"click")});var l=function(a,s){if(!(!a.length>1)){var p=new FormData;p.append("supported_type",r.supported_type),p.append("size_limit",r.max_upload_size),p.append("action","dnd_codedropz_upload"),p.append("type",s),p.append("security",dnd_cf7_uploader.ajax_nonce),e("span.has-error",r.handler).remove(),e.each(a,function(a,s){if(void 0!==p.delete&&p.delete("upload-file"),localStorage.getItem(o)>r.max_file)return!e("span.has-error-msg",n).length>0&&(err_msg=dnd_cf7_uploader.drag_n_drop_upload.max_file_limit,n.append('<span class="has-error-msg">'+err_msg.replace("%count%",r.max_file)+"</span>")),!1;var l=i.createProgressBar(s),c=!1;if(s.size>r.max_upload_size&&(e(".dnd-upload-details",e("#"+l)).append('<span class="has-error">'+dnd_cf7_uploader.drag_n_drop_upload.large_file+"</span>"),c=!0),regex_type=new RegExp("(.*?).("+r.supported_type+")$"),!1!==c||regex_type.test(s.name.toLowerCase())||(e(".dnd-upload-details",e("#"+l)).append('<span class="has-error">'+dnd_cf7_uploader.drag_n_drop_upload.inavalid_type+"</span>"),c=!0),localStorage.setItem(o,Number(localStorage.getItem(o))+1),!1===c){p.append("upload-file",s);e.ajax({url:r.ajax_url,type:t.attr("method"),data:p,dataType:"json",cache:!1,contentType:!1,processData:!1,xhr:function(){var e=new window.XMLHttpRequest;return e.upload.addEventListener("progress",function(e){if(e.lengthComputable){var a=e.loaded/e.total,d=parseInt(100*a);i.setProgressBar(l,d)}},!1),e},complete:function(){i.setProgressBar(l,100)},success:function(a){a.success?e.isFunction(r.on_success)&&r.on_success.call(this,d,l,a):(e(".dnd-progress-bar",e("#"+l)).remove(),e(".dnd-upload-details",e("#"+l)).append('<span class="has-error">'+a.data+"</span>"),e('input[type="submit"]',t).removeClass("disabled").prop("disabled",!1))},error:function(a,d,o){e(".dnd-progress-bar",e("#"+l)).remove(),e(".dnd-upload-details",e("#"+l)).append('<span class="has-error">'+r.server_max_error+"</span>"),e('input[type="submit"]',t).removeClass("disabled").prop("disabled",!1)}})}})}},i={createProgressBar:function(a){var d=e(".codedropz-upload-handler",n),r="dnd-file-"+Math.random().toString(36).substr(2,9),s='<div class="dnd-upload-image"><span class="dnd-icon-blank-file"></span></div><div class="dnd-upload-details"><span class="name"><span>'+a.name+"</span><em>("+i.bytesToSize(a.size)+')</em></span><a href="javascript:void(0)" title="'+dnd_cf7_uploader.drag_n_drop_upload.delete.title+'" class="remove-file" data-storage="'+o+'"><span class="dnd-icon-remove"></span></a><span class="dnd-progress-bar"><span></span></span></div>';return d.after('<div id="'+r+'" class="dnd-upload-status">'+s+"</div>"),r},setProgressBar:function(a,d){var r=e(".dnd-progress-bar",e("#"+a));return r.length>0&&(i.disableBtn(p),progress_width=d*r.width()/100,e("span",r).addClass("in-progress").animate({width:progress_width},10).text(d+"% "),100==d&&e("span",r).addClass("complete").removeClass("in-progress")),!1},bytesToSize:function(e){return 0===e?"0":(kBytes=e/1024,fileSize=kBytes>=1024?(kBytes/1024).toFixed(2)+"MB":kBytes.toFixed(2)+"KB",fileSize)},disableBtn:function(e){e.length>0&&e.addClass("disable").prop("disabled",!0)}}}),e(document).on("click",".dnd-icon-remove",function(d){var r=e(this),o=r.parents(".dnd-upload-status"),s=r.parents(".codedropz-upload-wrapper"),t=r.parent("a").attr("data-storage"),n=Number(localStorage.getItem(t));if(e("span.in-progress",o).length>0)return!1;if(e(".has-error",o).length>0)return o.remove(),localStorage.setItem(t,n-1),!1;r.addClass("deleting").text(dnd_cf7_uploader.drag_n_drop_upload.delete.text+"...");var p={path:o.find('input[type="hidden"]').val(),action:"dnd_codedropz_upload_delete",security:dnd_cf7_uploader.ajax_nonce};e.post(a.ajax_url,p,function(a){a.success&&(o.remove(),localStorage.setItem(t,n-1),e(".dnd-upload-status",s).length<=1&&e("span.has-error-msg",s).remove(),e(".dnd-upload-counter span",s).text(Number(localStorage.getItem(t))-1))})})}}(jQuery);
1
  /**
2
+ * CodeDropz Uploader v1.3.5.4
3
  * Copyright 2018 Glen Mongaya
4
  * CodeDrop Drag&Drop Uploader
5
+ * @version 1.3.5.4
6
  * @author CodeDropz, Glen Don L. Mongaya
7
  * @license The MIT License (MIT)
8
  */
9
 
10
  // CodeDropz Drag and Drop Plugin
11
+ !function(e){e.fn.CodeDropz_Uploader=function(a){this.each(function(){var d=e(this),r=e.extend({handler:d,color:"#000",background:"",server_max_error:"Uploaded file exceeds the maximum upload size of your server.",max_file:d.data("max")?d.data("max"):10,max_upload_size:d.data("limit")?d.data("limit"):"10485760",supported_type:d.data("type")?d.data("type"):"jpg|jpeg|JPG|png|gif|pdf|doc|docx|ppt|pptx|odt|avi|ogg|m4a|mov|mp3|mp4|mpg|wav|wmv|xls",text:"Drag & Drop Files Here",separator:"or",button_text:"Browse Files",on_success:""},a),o=d.data("name")+"_count_files";localStorage.setItem(o,1);var s='<div class="codedropz-upload-handler"><div class="codedropz-upload-container"><div class="codedropz-upload-inner"><h3>'+r.text+"</h3><span>"+r.separator+'</span><div class="codedropz-btn-wrap"><a class="cd-upload-btn" href="javascript:void(0)">'+r.button_text+'</a></div></div></div><span class="dnd-upload-counter"><span>0</span> '+dnd_cf7_uploader.dnd_text_counter+" "+parseInt(r.max_file)+"</span></div>";r.handler.wrapAll('<div class="codedropz-upload-wrapper"></div>'),r.supported_type=r.supported_type.replace(/[^a-zA-Z0-9| ]/g,"");var t=r.handler.parents("form"),n=r.handler.parents(".codedropz-upload-wrapper"),p=e('input[type="submit"]',t);r.handler.after(s),e(".codedropz-upload-handler",n).on("drag dragstart dragend dragover dragenter dragleave drop",function(e){e.preventDefault(),e.stopPropagation()}),e(".codedropz-upload-handler",n).on("dragover dragenter",function(a){e(this).addClass("codedropz-dragover")}),e(".codedropz-upload-handler",n).on("dragleave dragend drop",function(a){e(this).removeClass("codedropz-dragover")}),e("a.cd-upload-btn",n).on("click",function(e){e.preventDefault(),r.handler.val(null),r.handler.click()}),e(".codedropz-upload-handler",n).on("drop",function(e){l(e.originalEvent.dataTransfer.files,"drop")}),r.handler.on("change",function(e){l(this.files,"click")});var l=function(a,s){if(!(!a.length>1)){var p=new FormData;p.append("supported_type",r.supported_type),p.append("size_limit",r.max_upload_size),p.append("action","dnd_codedropz_upload"),p.append("type",s),p.append("security",dnd_cf7_uploader.ajax_nonce),e("span.has-error",r.handler).remove(),e.each(a,function(a,s){if(void 0!==p.delete&&p.delete("upload-file"),localStorage.getItem(o)>r.max_file)return!e("span.has-error-msg",n).length>0&&(err_msg=dnd_cf7_uploader.drag_n_drop_upload.max_file_limit,n.append('<span class="has-error-msg">'+err_msg.replace("%count%",r.max_file)+"</span>")),!1;var l=i.createProgressBar(s),c=!1;if(s.size>r.max_upload_size&&(e(".dnd-upload-details",e("#"+l)).append('<span class="has-error">'+dnd_cf7_uploader.drag_n_drop_upload.large_file+"</span>"),c=!0),regex_type=new RegExp("(.*?).("+r.supported_type+")$"),!1!==c||regex_type.test(s.name.toLowerCase())||(e(".dnd-upload-details",e("#"+l)).append('<span class="has-error">'+dnd_cf7_uploader.drag_n_drop_upload.inavalid_type+"</span>"),c=!0),localStorage.setItem(o,Number(localStorage.getItem(o))+1),!1===c){p.append("upload-file",s);e.ajax({url:r.ajax_url,type:t.attr("method"),data:p,dataType:"json",cache:!1,contentType:!1,processData:!1,xhr:function(){var e=new window.XMLHttpRequest;return e.upload.addEventListener("progress",function(e){if(e.lengthComputable){var a=e.loaded/e.total,d=parseInt(100*a);i.setProgressBar(l,d)}},!1),e},complete:function(){i.setProgressBar(l,100)},success:function(a){a.success?e.isFunction(r.on_success)&&r.on_success.call(this,d,l,a):(e(".dnd-progress-bar",e("#"+l)).remove(),e(".dnd-upload-details",e("#"+l)).append('<span class="has-error">'+a.data+"</span>"),e('input[type="submit"]',t).removeClass("disabled").prop("disabled",!1))},error:function(a,d,o){e(".dnd-progress-bar",e("#"+l)).remove(),e(".dnd-upload-details",e("#"+l)).append('<span class="has-error">'+r.server_max_error+"</span>"),e('input[type="submit"]',t).removeClass("disabled").prop("disabled",!1)}})}})}},i={createProgressBar:function(a){var d=e(".codedropz-upload-handler",n),r="dnd-file-"+Math.random().toString(36).substr(2,9),s='<div class="dnd-upload-image"><span class="dnd-icon-blank-file"></span></div><div class="dnd-upload-details"><span class="name"><span>'+a.name+"</span><em>("+i.bytesToSize(a.size)+')</em></span><a href="javascript:void(0)" title="'+dnd_cf7_uploader.drag_n_drop_upload.delete.title+'" class="remove-file" data-storage="'+o+'"><span class="dnd-icon-remove"></span></a><span class="dnd-progress-bar"><span></span></span></div>';return d.after('<div id="'+r+'" class="dnd-upload-status">'+s+"</div>"),r},setProgressBar:function(a,d){var r=e(".dnd-progress-bar",e("#"+a));return r.length>0&&(i.disableBtn(p),progress_width=d*r.width()/100,e("span",r).addClass("in-progress").animate({width:progress_width},10).text(d+"% "),100==d&&e("span",r).addClass("complete").removeClass("in-progress")),!1},bytesToSize:function(e){return 0===e?"0":(kBytes=e/1024,fileSize=kBytes>=1024?(kBytes/1024).toFixed(2)+"MB":kBytes.toFixed(2)+"KB",fileSize)},disableBtn:function(e){e.length>0&&e.addClass("disable").prop("disabled",!0)}}}),e(document).on("click",".dnd-icon-remove",function(d){var r=e(this),o=r.parents(".dnd-upload-status"),s=r.parents(".codedropz-upload-wrapper"),t=r.parent("a").attr("data-storage"),n=Number(localStorage.getItem(t));if(e("span.in-progress",o).length>0)return!1;if(e(".has-error",o).length>0)return o.remove(),localStorage.setItem(t,n-1),!1;r.addClass("deleting").text(dnd_cf7_uploader.drag_n_drop_upload.delete.text+"...");var p={path:o.find('input[type="hidden"]').val(),action:"dnd_codedropz_upload_delete",security:dnd_cf7_uploader.ajax_nonce};e.post(a.ajax_url,p,function(a){a.success&&(o.remove(),localStorage.setItem(t,n-1),e(".dnd-upload-status",s).length<=1&&e("span.has-error-msg",s).remove(),e(".dnd-upload-counter span",s).text(Number(localStorage.getItem(t))-1))}),e("span.has-error-msg").remove()})}}(jQuery);
drag-n-drop-upload-cf7.php CHANGED
@@ -6,7 +6,7 @@
6
  * Description: This simple plugin create Drag & Drop or choose Multiple File upload in your Confact Form 7 Forms.
7
  * Text Domain: dnd-upload-cf7
8
  * Domain Path: /languages
9
- * Version: 1.3.5.1
10
  * Author: Glen Don L. Mongaya
11
  * Author URI: http://codedropz.com
12
  * License: GPL2
@@ -21,7 +21,7 @@
21
  define( 'dnd_upload_cf7', true );
22
 
23
  /** Define plugin Version */
24
- define( 'dnd_upload_cf7_version', '1.3.5.1' );
25
 
26
  /** Define constant Plugin Directories */
27
  define( 'dnd_upload_cf7_directory', untrailingslashit( dirname( __FILE__ ) ) );
6
  * Description: This simple plugin create Drag & Drop or choose Multiple File upload in your Confact Form 7 Forms.
7
  * Text Domain: dnd-upload-cf7
8
  * Domain Path: /languages
9
+ * Version: 1.3.5.4
10
  * Author: Glen Don L. Mongaya
11
  * Author URI: http://codedropz.com
12
  * License: GPL2
21
  define( 'dnd_upload_cf7', true );
22
 
23
  /** Define plugin Version */
24
+ define( 'dnd_upload_cf7_version', '1.3.5.4' );
25
 
26
  /** Define constant Plugin Directories */
27
  define( 'dnd_upload_cf7_directory', untrailingslashit( dirname( __FILE__ ) ) );
inc/dnd-upload-cf7.php CHANGED
@@ -59,7 +59,7 @@
59
 
60
  // Create dir
61
  $dir = dnd_get_upload_dir();
62
- if( is_dir( $dir['upload_dir'] ) ) {
63
  // Generate .htaccess file`
64
  $htaccess_file = path_join( dirname( $dir['upload_dir'] ), '.htaccess' );
65
  if ( ! file_exists( $htaccess_file ) ) {
@@ -211,7 +211,9 @@
211
  }
212
 
213
  // Delete files from dir
214
- wp_delete_file( $dir . $file );
 
 
215
 
216
  $count += 1;
217
 
@@ -251,6 +253,9 @@
251
  // Parse fields
252
  $fields = $wpcf7->scan_form_tags();
253
 
 
 
 
254
  // Prop email
255
  $mail = $wpcf7->prop('mail');
256
  $mail_2 = $wpcf7->prop('mail_2');
@@ -262,10 +267,18 @@
262
  foreach( $fields as $field ) {
263
  if( $field->basetype == 'mfile') {
264
  if( isset( $submitted['posted_data'][$field->name] ) && ! empty( $submitted['posted_data'][$field->name] ) ) {
265
- $files = implode( "\n" , $submitted['posted_data'][$field->name] );
266
- $mail['body'] = str_replace( "[$field->name]", "\n" . $files, $mail['body'] );
 
 
 
 
 
 
 
267
  if( $mail_2['active'] ) {
268
- $mail_2['body'] = str_replace( "[$field->name]", "\n" . $files, $mail_2['body'] );
 
269
  }
270
  }
271
  }
@@ -283,10 +296,40 @@
283
  return $wpcf7;
284
  }
285
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
  // hooks - Custom cf7 Mail components ( Attached File on Email )
287
  function dnd_cf7_mail_components( $components, $form ) {
288
  global $_mail;
289
 
 
 
 
 
290
  // Get upload directory
291
  $uploads_dir = dnd_get_upload_dir();
292
 
@@ -379,7 +422,8 @@
379
  'text' => __('deleting','dnd-upload-cf7'),
380
  'title' => __('Remove','dnd-upload-cf7')
381
  )
382
- )
 
383
  )
384
  );
385
 
@@ -618,7 +662,8 @@
618
  $filename = wp_basename( $file['name'] );
619
  $filename = wpcf7_canonicalize( $filename, 'as-is' );
620
 
621
- if( mb_check_encoding( $filename, 'ASCII' ) ){
 
622
  $filename = wpcf7_antiscript_file_name( $filename );
623
  }
624
 
@@ -649,19 +694,35 @@
649
  die;
650
  }
651
 
 
 
 
 
 
 
 
 
 
 
 
 
 
652
  // Delete file
653
  function dnd_codedropz_upload_delete() {
654
 
 
 
 
655
  // check and verify ajax request
656
  if( is_user_logged_in() ) {
657
  check_ajax_referer( 'dnd-cf7-security-nonce', 'security' );
658
  }
659
 
660
  // Sanitize Path
661
- $path = ( isset( $_POST['path'] ) ? sanitize_text_field( $_POST['path'] ) : null );
662
 
663
- // Get folder directory
664
- $dir = dnd_get_upload_dir();
665
 
666
  // Make sure path is set
667
  if( ! is_null( $path ) ) {
@@ -672,7 +733,7 @@
672
  }
673
 
674
  // Concatenate path and upload directory
675
- $file_path = realpath( trailingslashit( dirname( $dir['upload_dir'] ) ) . trim( $path ) );
676
 
677
  // Check if is in the correct upload_dir
678
  if( ! preg_match("/". wpcf7_dnd_dir ."/i", $file_path ) ) {
59
 
60
  // Create dir
61
  $dir = dnd_get_upload_dir();
62
+ if( isset( $dir['upload_dir'] ) && is_dir( $dir['upload_dir'] ) ) {
63
  // Generate .htaccess file`
64
  $htaccess_file = path_join( dirname( $dir['upload_dir'] ), '.htaccess' );
65
  if ( ! file_exists( $htaccess_file ) ) {
211
  }
212
 
213
  // Delete files from dir
214
+ if( $file != '.htaccess' ) {
215
+ wp_delete_file( $dir . $file );
216
+ }
217
 
218
  $count += 1;
219
 
253
  // Parse fields
254
  $fields = $wpcf7->scan_form_tags();
255
 
256
+ // Links
257
+ $links = array();
258
+
259
  // Prop email
260
  $mail = $wpcf7->prop('mail');
261
  $mail_2 = $wpcf7->prop('mail_2');
267
  foreach( $fields as $field ) {
268
  if( $field->basetype == 'mfile') {
269
  if( isset( $submitted['posted_data'][$field->name] ) && ! empty( $submitted['posted_data'][$field->name] ) ) {
270
+
271
+ // Get posted_data files
272
+ $files = $submitted['posted_data'][$field->name];
273
+
274
+ // Links - 1
275
+ $mail_links = dnd_cf7_links( $files, $mail['use_html'] );
276
+ $mail['body'] = str_replace( "[$field->name]", "\n" . implode( "\n", $mail_links ), $mail['body'] );
277
+
278
+ // Links - 2
279
  if( $mail_2['active'] ) {
280
+ $mail_links_2 = dnd_cf7_links( $files, $mail_2['use_html'] );
281
+ $mail_2['body'] = str_replace( "[$field->name]", "\n" . implode( "\n", $mail_links_2 ), $mail_2['body'] );
282
  }
283
  }
284
  }
296
  return $wpcf7;
297
  }
298
 
299
+ // Get file links.
300
+ function dnd_cf7_links( $files, $use_html = false) {
301
+
302
+ // check and make sure we have files
303
+ if( ! $files ) {
304
+ return;
305
+ }
306
+
307
+ // Setup html links
308
+ $links = array();
309
+ foreach( $files as $file ) {
310
+ $links[] = ( $use_html ? '<a href="'. esc_url( $file ) .'">'. wp_basename( $file ) .'</a>' : $file );
311
+ }
312
+
313
+ // Allow other themes/plugin to modify data.
314
+ return apply_filters('dndcf7_before_send_files', $links, $files );
315
+ }
316
+
317
+ // Log message...
318
+ function dnd_logs( $message, $email = false ) {
319
+ $uploads_dir = dnd_get_upload_dir();
320
+ $file = fopen( $uploads_dir['upload_dir']."/logs.txt", "a") or die("Unable to open file!");
321
+ fwrite( $file, "\n". ( is_array( $message ) ? print_r( $message, true ) : $message ) );
322
+ fclose( $file );
323
+ }
324
+
325
  // hooks - Custom cf7 Mail components ( Attached File on Email )
326
  function dnd_cf7_mail_components( $components, $form ) {
327
  global $_mail;
328
 
329
+ if( ! $form ) {
330
+ return;
331
+ }
332
+
333
  // Get upload directory
334
  $uploads_dir = dnd_get_upload_dir();
335
 
422
  'text' => __('deleting','dnd-upload-cf7'),
423
  'title' => __('Remove','dnd-upload-cf7')
424
  )
425
+ ),
426
+ 'dnd_text_counter' => __('of','dnd-upload-cf7')
427
  )
428
  );
429
 
662
  $filename = wp_basename( $file['name'] );
663
  $filename = wpcf7_canonicalize( $filename, 'as-is' );
664
 
665
+ // Check if string is ascii then proceed with antiscript function ( remove or clean filename )
666
+ if( dnd_cf7_check_ascii( $filename ) ){
667
  $filename = wpcf7_antiscript_file_name( $filename );
668
  }
669
 
694
  die;
695
  }
696
 
697
+ // Check if a string is ASCII.
698
+ function dnd_cf7_check_ascii( $string ) {
699
+ if ( function_exists( 'mb_check_encoding' ) ) {
700
+ if ( mb_check_encoding( $string, 'ASCII' ) ) {
701
+ return true;
702
+ }
703
+ } elseif ( ! preg_match( '/[^\x00-\x7F]/', $string ) ) {
704
+ return true;
705
+ }
706
+
707
+ return false;
708
+ }
709
+
710
  // Delete file
711
  function dnd_codedropz_upload_delete() {
712
 
713
+ // Get folder directory
714
+ $dir = dnd_get_upload_dir();
715
+
716
  // check and verify ajax request
717
  if( is_user_logged_in() ) {
718
  check_ajax_referer( 'dnd-cf7-security-nonce', 'security' );
719
  }
720
 
721
  // Sanitize Path
722
+ $get_path = ( isset( $_POST['path'] ) ? sanitize_text_field( $_POST['path'] ) : null );
723
 
724
+ //limit the user input to a file name and to ignore injected path names
725
+ $path = basename( $get_path );
726
 
727
  // Make sure path is set
728
  if( ! is_null( $path ) ) {
733
  }
734
 
735
  // Concatenate path and upload directory
736
+ $file_path = realpath( trailingslashit( $dir['upload_dir'] ) . trim( $path ) );
737
 
738
  // Check if is in the correct upload_dir
739
  if( ! preg_match("/". wpcf7_dnd_dir ."/i", $file_path ) ) {
languages/dnd-upload-cf7-de_DE.mo CHANGED
Binary file
languages/dnd-upload-cf7-de_DE.po CHANGED
@@ -3,7 +3,7 @@ msgstr ""
3
  "Project-Id-Version: Drag and Drop Multiple File Upload - Contact Form 7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2019-03-18 14:28+0000\n"
6
- "PO-Revision-Date: 2020-06-07 12:46+0800\n"
7
  "Last-Translator: admin <info@aachen-webdesigner.de>\n"
8
  "Language-Team: Deutsch\n"
9
  "Language: de_DE\n"
@@ -83,6 +83,10 @@ msgstr "Dateien zu gross"
83
  msgid "Invalid file Type"
84
  msgstr "Ungültiger Dateityp"
85
 
 
 
 
 
86
  #. Name of the plugin
87
  msgid "Drag and Drop Multiple File Upload - Contact Form 7"
88
  msgstr "Mehrere Dateien per Drag & Drop hochladen - Kontaktformular 7"
3
  "Project-Id-Version: Drag and Drop Multiple File Upload - Contact Form 7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2019-03-18 14:28+0000\n"
6
+ "PO-Revision-Date: 2020-07-31 08:22+0800\n"
7
  "Last-Translator: admin <info@aachen-webdesigner.de>\n"
8
  "Language-Team: Deutsch\n"
9
  "Language: de_DE\n"
83
  msgid "Invalid file Type"
84
  msgstr "Ungültiger Dateityp"
85
 
86
+ #: inc/dnd-upload-cf7.php:425
87
+ msgid "of"
88
+ msgstr "von"
89
+
90
  #. Name of the plugin
91
  msgid "Drag and Drop Multiple File Upload - Contact Form 7"
92
  msgstr "Mehrere Dateien per Drag & Drop hochladen - Kontaktformular 7"
languages/dnd-upload-cf7-fr_FR.mo CHANGED
Binary file
languages/dnd-upload-cf7-fr_FR.po CHANGED
@@ -2,14 +2,14 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: \n"
4
  "POT-Creation-Date: 2019-03-18 18:47+0800\n"
5
- "PO-Revision-Date: 2019-03-18 18:49+0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: fr\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 2.2.1\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
15
  "X-Poedit-KeywordsList: __;__e;esc_html__\n"
@@ -73,6 +73,10 @@ msgstr ""
73
  msgid "Name"
74
  msgstr ""
75
 
 
 
 
 
76
  #: inc/dnd-upload-cf7.php:345
77
  msgid "File size limit (bytes)"
78
  msgstr ""
2
  msgstr ""
3
  "Project-Id-Version: \n"
4
  "POT-Creation-Date: 2019-03-18 18:47+0800\n"
5
+ "PO-Revision-Date: 2020-07-31 08:26+0800\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: fr\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 2.3.1\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
15
  "X-Poedit-KeywordsList: __;__e;esc_html__\n"
73
  msgid "Name"
74
  msgstr ""
75
 
76
+ #: inc/dnd-upload-cf7.php:425
77
+ msgid "of"
78
+ msgstr "de"
79
+
80
  #: inc/dnd-upload-cf7.php:345
81
  msgid "File size limit (bytes)"
82
  msgstr ""
languages/dnd-upload-cf7-ko_KR.mo CHANGED
Binary file
languages/dnd-upload-cf7-ko_KR.po CHANGED
@@ -1,106 +1,136 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: \n"
4
- "POT-Creation-Date: 2019-03-18 18:47+0800\n"
5
- "PO-Revision-Date: 2019-03-18 19:01+0800\n"
6
- "Language-Team: \n"
7
- "MIME-Version: 1.0\n"
8
- "Content-Type: text/plain; charset=UTF-8\n"
9
- "Content-Transfer-Encoding: 8bit\n"
10
- "X-Generator: Poedit 2.2.1\n"
11
- "X-Poedit-Basepath: ..\n"
12
- "Plural-Forms: nplurals=1; plural=0;\n"
13
- "X-Poedit-KeywordsList: __;__e;esc_html__\n"
14
- "Last-Translator: \n"
15
- "Language: ko\n"
16
- "X-Poedit-SearchPath-0: .\n"
17
-
18
- #: inc/dnd-upload-cf7.php:50
19
- msgid "The uploaded file exceeds the maximum upload size of your server."
20
- msgstr ""
21
-
22
- #: inc/dnd-upload-cf7.php:51
23
- msgid "Uploading a file fails for any reason"
24
- msgstr ""
25
-
26
- #: inc/dnd-upload-cf7.php:52
27
- msgid "Uploaded file is too large"
28
- msgstr ""
29
-
30
- #: inc/dnd-upload-cf7.php:53
31
- msgid "Uploaded file is not allowed for file type"
32
- msgstr ""
33
-
34
- #: inc/dnd-upload-cf7.php:192
35
- msgid "Drag & Drop Files Here"
36
- msgstr "드래그 앤 드롭 파일"
37
-
38
- #: inc/dnd-upload-cf7.php:193
39
- msgid "or"
40
- msgstr "또는"
41
-
42
- #: inc/dnd-upload-cf7.php:194
43
- msgid "Browse Files"
44
- msgstr "파일 찾아보기"
45
-
46
- #: inc/dnd-upload-cf7.php:309
47
- msgid "multiple file upload"
48
- msgstr ""
49
-
50
- #: inc/dnd-upload-cf7.php:321
51
- #, php-format
52
- msgid ""
53
- "Generate a form-tag for a file uploading field. For more details, see %s."
54
- msgstr ""
55
-
56
- #: inc/dnd-upload-cf7.php:322
57
- msgid "https://contactform7.com/file-uploading-and-attachment/"
58
- msgstr ""
59
-
60
- #: inc/dnd-upload-cf7.php:322
61
- msgid "File Uploading and Attachment"
62
- msgstr ""
63
-
64
- #: inc/dnd-upload-cf7.php:332 inc/dnd-upload-cf7.php:335
65
- msgid "Field type"
66
- msgstr ""
67
-
68
- #: inc/dnd-upload-cf7.php:336
69
- msgid "Required field"
70
- msgstr ""
71
-
72
- #: inc/dnd-upload-cf7.php:341
73
- msgid "Name"
74
- msgstr ""
75
-
76
- #: inc/dnd-upload-cf7.php:345
77
- msgid "File size limit (bytes)"
78
- msgstr ""
79
-
80
- #: inc/dnd-upload-cf7.php:349
81
- msgid "Acceptable file types"
82
- msgstr ""
83
-
84
- #: inc/dnd-upload-cf7.php:353
85
- msgid "Max file upload"
86
- msgstr ""
87
-
88
- #: inc/dnd-upload-cf7.php:357
89
- msgid "Id attribute"
90
- msgstr ""
91
-
92
- #: inc/dnd-upload-cf7.php:361
93
- msgid "Class attribute"
94
- msgstr ""
95
-
96
- #: inc/dnd-upload-cf7.php:372
97
- msgid "Insert Tag"
98
- msgstr ""
99
-
100
- #: inc/dnd-upload-cf7.php:376
101
- #, php-format
102
- msgid ""
103
- "To attach the file uploaded through this field to mail, you need to insert "
104
- "the corresponding mail-tag (%s) into the File Attachments field on the Mail "
105
- "tab."
106
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: \n"
4
+ "POT-Creation-Date: 2020-07-31 08:26+0800\n"
5
+ "PO-Revision-Date: 2020-07-31 08:29+0800\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "Language: ko\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 2.3.1\n"
13
+ "X-Poedit-Basepath: ..\n"
14
+ "Plural-Forms: nplurals=1; plural=0;\n"
15
+ "X-Poedit-KeywordsList: __;__e;esc_html__\n"
16
+ "X-Poedit-SearchPath-0: .\n"
17
+
18
+ #: inc/dnd-upload-cf7.php:138
19
+ msgid "The uploaded file exceeds the maximum upload size of your server."
20
+ msgstr ""
21
+
22
+ #: inc/dnd-upload-cf7.php:139
23
+ msgid "Uploading a file fails for any reason"
24
+ msgstr ""
25
+
26
+ #: inc/dnd-upload-cf7.php:140
27
+ msgid "Uploaded file is too large"
28
+ msgstr ""
29
+
30
+ #: inc/dnd-upload-cf7.php:141
31
+ msgid "Uploaded file is not allowed for file type"
32
+ msgstr ""
33
+
34
+ #: inc/dnd-upload-cf7.php:142
35
+ #, php-format
36
+ msgid ""
37
+ "Note : Some of the files are not uploaded ( Only %count% files allowed )"
38
+ msgstr ""
39
+
40
+ #: inc/dnd-upload-cf7.php:143
41
+ msgid "This field is required."
42
+ msgstr ""
43
+
44
+ #: inc/dnd-upload-cf7.php:144
45
+ msgid "Minimum file upload at least"
46
+ msgstr ""
47
+
48
+ #: inc/dnd-upload-cf7.php:413
49
+ msgid "Drag & Drop Files Here"
50
+ msgstr "드래그 앤 드롭 파일"
51
+
52
+ #: inc/dnd-upload-cf7.php:414
53
+ msgid "or"
54
+ msgstr "또는"
55
+
56
+ #: inc/dnd-upload-cf7.php:415
57
+ msgid "Browse Files"
58
+ msgstr "파일 찾아보기"
59
+
60
+ #: inc/dnd-upload-cf7.php:422
61
+ msgid "deleting"
62
+ msgstr ""
63
+
64
+ #: inc/dnd-upload-cf7.php:423
65
+ msgid "Remove"
66
+ msgstr ""
67
+
68
+ #: inc/dnd-upload-cf7.php:425
69
+ msgid "of"
70
+ msgstr ""
71
+
72
+ #: inc/dnd-upload-cf7.php:543
73
+ msgid "multiple file upload"
74
+ msgstr ""
75
+
76
+ #: inc/dnd-upload-cf7.php:555
77
+ #, php-format
78
+ msgid ""
79
+ "Generate a form-tag for a file uploading field. For more details, see %s."
80
+ msgstr ""
81
+
82
+ #: inc/dnd-upload-cf7.php:556
83
+ msgid "https://contactform7.com/file-uploading-and-attachment/"
84
+ msgstr ""
85
+
86
+ #: inc/dnd-upload-cf7.php:556
87
+ msgid "File Uploading and Attachment"
88
+ msgstr ""
89
+
90
+ #: inc/dnd-upload-cf7.php:566 inc/dnd-upload-cf7.php:569
91
+ msgid "Field type"
92
+ msgstr ""
93
+
94
+ #: inc/dnd-upload-cf7.php:570
95
+ msgid "Required field"
96
+ msgstr ""
97
+
98
+ #: inc/dnd-upload-cf7.php:575
99
+ msgid "Name"
100
+ msgstr ""
101
+
102
+ #: inc/dnd-upload-cf7.php:579
103
+ msgid "File size limit (bytes)"
104
+ msgstr ""
105
+
106
+ #: inc/dnd-upload-cf7.php:583
107
+ msgid "Acceptable file types"
108
+ msgstr ""
109
+
110
+ #: inc/dnd-upload-cf7.php:587
111
+ msgid "Mininum file upload"
112
+ msgstr ""
113
+
114
+ #: inc/dnd-upload-cf7.php:591
115
+ msgid "Max file upload"
116
+ msgstr ""
117
+
118
+ #: inc/dnd-upload-cf7.php:595
119
+ msgid "Id attribute"
120
+ msgstr ""
121
+
122
+ #: inc/dnd-upload-cf7.php:599
123
+ msgid "Class attribute"
124
+ msgstr ""
125
+
126
+ #: inc/dnd-upload-cf7.php:610
127
+ msgid "Insert Tag"
128
+ msgstr ""
129
+
130
+ #: inc/dnd-upload-cf7.php:614
131
+ #, php-format
132
+ msgid ""
133
+ "To attach the file uploaded through this field to mail, you need to insert "
134
+ "the corresponding mail-tag (%s) into the File Attachments field on the Mail "
135
+ "tab."
136
+ msgstr ""
languages/dnd-upload-cf7-nl_NL.mo CHANGED
Binary file
languages/dnd-upload-cf7-nl_NL.po CHANGED
@@ -3,16 +3,16 @@ msgstr ""
3
  "Project-Id-Version: Drag and Drop Multiple File Upload - Contact Form 7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2019-03-18 14:39+0000\n"
6
- "PO-Revision-Date: 2019-03-18 14:43+0000\n"
7
  "Last-Translator: admin <info@aachen-webdesigner.de>\n"
8
  "Language-Team: Dutch\n"
9
- "Language: nl-NL\n"
10
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
11
  "MIME-Version: 1.0\n"
12
  "Content-Type: text/plain; charset=UTF-8\n"
13
  "Content-Transfer-Encoding: 8bit\n"
14
- "X-Generator: Loco https://localise.biz/\n"
15
- "X-Loco-Version: 2.2.1; wp-5.1.1"
16
 
17
  #: inc/dnd-upload-cf7.php:194
18
  msgid "Browse Files"
@@ -103,3 +103,7 @@ msgstr ""
103
  #: inc/dnd-upload-cf7.php:51
104
  msgid "Uploading a file fails for any reason"
105
  msgstr ""
 
 
 
 
3
  "Project-Id-Version: Drag and Drop Multiple File Upload - Contact Form 7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2019-03-18 14:39+0000\n"
6
+ "PO-Revision-Date: 2020-07-31 08:31+0800\n"
7
  "Last-Translator: admin <info@aachen-webdesigner.de>\n"
8
  "Language-Team: Dutch\n"
9
+ "Language: nl_NL\n"
10
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
11
  "MIME-Version: 1.0\n"
12
  "Content-Type: text/plain; charset=UTF-8\n"
13
  "Content-Transfer-Encoding: 8bit\n"
14
+ "X-Generator: Poedit 2.3.1\n"
15
+ "X-Loco-Version: 2.2.1; wp-5.1.1\n"
16
 
17
  #: inc/dnd-upload-cf7.php:194
18
  msgid "Browse Files"
103
  #: inc/dnd-upload-cf7.php:51
104
  msgid "Uploading a file fails for any reason"
105
  msgstr ""
106
+
107
+ #: inc/dnd-upload-cf7.php:425
108
+ msgid "of"
109
+ msgstr "van"
languages/dnd-upload-cf7-ru_RU.mo ADDED
Binary file
languages/dnd-upload-cf7-ru_RU.po ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Drag and Drop Multiple File Upload - Contact Form 7\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2020-07-19 22:19+0000\n"
6
+ "PO-Revision-Date: 2020-07-31 09:13+0800\n"
7
+ "Last-Translator: \n"
8
+ "Language-Team: Русский\n"
9
+ "Language: ru_RU\n"
10
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n"
11
+ "%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2);\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Generator: Poedit 2.3.1\n"
16
+ "X-Loco-Version: 2.4.0; wp-5.4.2\n"
17
+
18
+ #: inc/dnd-upload-cf7.php:415
19
+ msgid "Browse Files"
20
+ msgstr "Выбрать файл"
21
+
22
+ #: inc/dnd-upload-cf7.php:846
23
+ msgid "Browse Text"
24
+ msgstr "Текст кнопки Файл"
25
+
26
+ #: inc/dnd-upload-cf7.php:422
27
+ msgid "deleting"
28
+ msgstr "удаление"
29
+
30
+ #: inc/dnd-upload-cf7.php:413
31
+ msgid "Drag & Drop Files Here"
32
+ msgstr "Текст для поля Файл"
33
+
34
+ #: inc/dnd-upload-cf7.php:838
35
+ msgid "Drag & Drop Text"
36
+ msgstr "Текст поля Загрузка файлов"
37
+
38
+ #. Name of the plugin
39
+ msgid "Drag and Drop Multiple File Upload - Contact Form 7"
40
+ msgstr "Форма загрузки файлов для плагина Contact Form 7"
41
+
42
+ #: inc/dnd-upload-cf7.php:851
43
+ msgid "Error Message"
44
+ msgstr "Ошибка"
45
+
46
+ #: inc/dnd-upload-cf7.php:859
47
+ msgid "Failed to Upload"
48
+ msgstr "Загрузка не удалась"
49
+
50
+ #: inc/dnd-upload-cf7.php:855
51
+ msgid "File exceeds server limit"
52
+ msgstr "Превышен лимит размера файлов на сервере"
53
+
54
+ #: inc/dnd-upload-cf7.php:863
55
+ msgid "Files too large"
56
+ msgstr "Файлы слишком большие"
57
+
58
+ #. Author of the plugin
59
+ msgid "Glen Don L. Mongaya"
60
+ msgstr "Glen Don L. Mongaya"
61
+
62
+ #. Author URI of the plugin
63
+ msgid "http://codedropz.com"
64
+ msgstr "http://codedropz.com"
65
+
66
+ #. URI of the plugin
67
+ msgid "https://profiles.wordpress.org/glenwpcoder"
68
+ msgstr "https://profiles.wordpress.org/glenwpcoder"
69
+
70
+ #: inc/dnd-upload-cf7.php:867
71
+ msgid "Invalid file Type"
72
+ msgstr "Неверный тип файла"
73
+
74
+ #: inc/dnd-upload-cf7.php:871
75
+ msgid "Max File Limit"
76
+ msgstr "Максимальный размер файла"
77
+
78
+ #: inc/dnd-upload-cf7.php:144
79
+ msgid "Minimum file upload at least"
80
+ msgstr "Размер файла от"
81
+
82
+ #: inc/dnd-upload-cf7.php:875
83
+ msgid "Mininimum File"
84
+ msgstr "Минимум файлов"
85
+
86
+ #: inc/dnd-upload-cf7.php:542
87
+ msgid "multiple file upload"
88
+ msgstr "форма загрузки нескольких файлов"
89
+
90
+ #: inc/dnd-upload-cf7.php:142
91
+ #, php-format
92
+ msgid ""
93
+ "Note : Some of the files are not uploaded ( Only %count% files allowed )"
94
+ msgstr ""
95
+ "Внимание: некоторые файлы не были загружены ( загружено %count% файлов )"
96
+
97
+ #: inc/dnd-upload-cf7.php:414
98
+ msgid "or"
99
+ msgstr "или"
100
+
101
+ #: inc/dnd-upload-cf7.php:423
102
+ msgid "Remove"
103
+ msgstr "Удалить"
104
+
105
+ #: inc/dnd-upload-cf7.php:829
106
+ msgid "Send Attachment as links?"
107
+ msgstr "Отправить ссылки на скачивание"
108
+
109
+ #: inc/dnd-upload-cf7.php:138
110
+ msgid "The uploaded file exceeds the maximum upload size of your server."
111
+ msgstr "Загруженный файл превышает разрешённый размер."
112
+
113
+ #: inc/dnd-upload-cf7.php:143
114
+ msgid "This field is required."
115
+ msgstr "Поле обязательное"
116
+
117
+ #. Description of the plugin
118
+ msgid ""
119
+ "This simple plugin create Drag & Drop or choose Multiple File upload in your "
120
+ "Confact Form 7 Forms."
121
+ msgstr ""
122
+ "Плагин позволяет создать поле для загрузки файлов в плагине Contact Form 7"
123
+
124
+ #: inc/dnd-upload-cf7.php:141
125
+ msgid "Uploaded file is not allowed for file type"
126
+ msgstr "Данный тип файлов не разрешён"
127
+
128
+ #: inc/dnd-upload-cf7.php:140
129
+ msgid "Uploaded file is too large"
130
+ msgstr "Загруженный файл слишком велик"
131
+
132
+ #: inc/dnd-upload-cf7.php:834
133
+ msgid "Uploader Info"
134
+ msgstr "Информация о загрузчике"
135
+
136
+ #: inc/dnd-upload-cf7.php:139
137
+ msgid "Uploading a file fails for any reason"
138
+ msgstr "Иная ошибка загрузки файла"
139
+
140
+ #: inc/dnd-upload-cf7.php:425
141
+ msgid "of"
142
+ msgstr "из"
readme.txt CHANGED
@@ -3,7 +3,7 @@ Donate link : http://codedropz.com/donation
3
  Tags: drag and drop, contact form 7, ajax uploader, multiple file, upload, contact form 7 uploader
4
  Requires at least: 3.0.1
5
  Tested up to: 5.4.1
6
- Stable tag: 1.3.5.1
7
  Requires PHP: 5.2.4
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -32,12 +32,12 @@ Here's a little [DEMO](http://codedropz.com/contact).
32
  * Cool Progress Bar
33
  * Compatible with any browser
34
 
35
- ### Premium Features
36
 
37
  Checkout available features on **PRO version**.
38
 
39
  * Image Preview - Show Thumbnail for images
40
- * Auto Delete Files - After Form Submission
41
  - *(1 hour, 4 hours, 8 hours , days, months etc)*
42
  * Zip Files ( Compressed File )
43
  * Save Files to Wordpress Media Library
@@ -46,7 +46,7 @@ Checkout available features on **PRO version**.
46
  - Generated Name - Timestamp
47
  - Random Folder
48
  - By User
49
- - Custom Folder
50
  * Change Wordpress Upload Directory
51
  * Send to email as individual attachment, ZIP archive or as a links
52
  * Chunks Upload *( Break large files into smaller Chunks )*
@@ -66,6 +66,9 @@ You can get [PRO Version here](https://www.codedropz.com/purchase-plugin/)!
66
  * [Drag & Drop Multiple File Upload - WPForms](https://www.codedropz.com/drag-drop-file-uploader-wpforms/)
67
  An extension for **WPForms** - Transform your simple file upload into beautiful **"Drag & Drop Multiple File Upload"**.
68
 
 
 
 
69
  **PLUGIN GUIDE - FREE VERSION**
70
 
71
  [youtube https://www.youtube.com/watch?v=DvuvmzIImYo]
@@ -130,6 +133,19 @@ To install this plugin see below:
130
 
131
  == Changelog ==
132
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  = 1.3.5.1 =
134
  * Bug - Quick Fix ( Unable to submit form when acceptance field is set )
135
  - Issue if "additional settings" section added this line: acceptance_as_validation: on
@@ -141,7 +157,7 @@ To install this plugin see below:
141
  * Modified - File Upload error message ( display error code )
142
 
143
  = 1.3.4 =
144
- * Fixed - Removed uploaded files when item Inbound Messages "Permanently Deleted".
145
  * Added - Counter of how many files are uploaded ( ie: 4 of 10 )
146
  * New - Features allow to set Minimum File Upload.
147
  - ie : minimum upload:2, max upload:10 = [mfile* upload-file-669 min-file:2 max-file:10]
3
  Tags: drag and drop, contact form 7, ajax uploader, multiple file, upload, contact form 7 uploader
4
  Requires at least: 3.0.1
5
  Tested up to: 5.4.1
6
+ Stable tag: 1.3.5.4
7
  Requires PHP: 5.2.4
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
32
  * Cool Progress Bar
33
  * Compatible with any browser
34
 
35
+ ### Premium Features
36
 
37
  Checkout available features on **PRO version**.
38
 
39
  * Image Preview - Show Thumbnail for images
40
+ * Auto Delete Files - After Form Submission
41
  - *(1 hour, 4 hours, 8 hours , days, months etc)*
42
  * Zip Files ( Compressed File )
43
  * Save Files to Wordpress Media Library
46
  - Generated Name - Timestamp
47
  - Random Folder
48
  - By User
49
+ - Custom Folder
50
  * Change Wordpress Upload Directory
51
  * Send to email as individual attachment, ZIP archive or as a links
52
  * Chunks Upload *( Break large files into smaller Chunks )*
66
  * [Drag & Drop Multiple File Upload - WPForms](https://www.codedropz.com/drag-drop-file-uploader-wpforms/)
67
  An extension for **WPForms** - Transform your simple file upload into beautiful **"Drag & Drop Multiple File Upload"**.
68
 
69
+ * [Drag & Drop Multiple File Upload - WooCommerce](https://wordpress.org/plugins/drag-and-drop-multiple-file-upload-for-woocommerce/)
70
+ An extension for **WooCommerce** - Transform your simple file upload into beautiful **"Drag & Drop Multiple File Upload"**.
71
+
72
  **PLUGIN GUIDE - FREE VERSION**
73
 
74
  [youtube https://www.youtube.com/watch?v=DvuvmzIImYo]
133
 
134
  == Changelog ==
135
 
136
+ = 1.3.5.4 =
137
+ * Added - Russian translation (Thanks to "Dan Uchvatoff ")
138
+ * Fixed - File counter "of" not translatable.
139
+
140
+ = 1.3.5.3 =
141
+ * Fixed - PHP Fatal error on server not supporting mb_check_encoding.
142
+ * Fixed - Fatal error: Uncaught Error: Call to a member function scan_form_tags()
143
+ - When "Accept PayPal Payments using Contact Form 7" installed.
144
+
145
+ = 1.3.5.2 =
146
+ * Added - Improved sercurity ( Limit the user input to a file name and ignore injected path names )
147
+ * Modified - Email links ( display only the filename )
148
+
149
  = 1.3.5.1 =
150
  * Bug - Quick Fix ( Unable to submit form when acceptance field is set )
151
  - Issue if "additional settings" section added this line: acceptance_as_validation: on
157
  * Modified - File Upload error message ( display error code )
158
 
159
  = 1.3.4 =
160
+ * Fixed - Removed uploaded files when item Inbound Messages "Permanently Deleted".
161
  * Added - Counter of how many files are uploaded ( ie: 4 of 10 )
162
  * New - Features allow to set Minimum File Upload.
163
  - ie : minimum upload:2, max upload:10 = [mfile* upload-file-669 min-file:2 max-file:10]