Folders – Unlimited Folders to Organize Media Library Folder, Pages, Posts, File Manager - Version 2.4.4

Version Description

From now on when you clone/edit/publish pages, posts and custom posts in a specific folder, you'll stay in that folder

Download this release

Release Info

Developer galdub
Plugin Icon wp plugin Folders – Unlimited Folders to Organize Media Library Folder, Pages, Posts, File Manager
Version 2.4.4
Comparing to
See all releases

Code changes from version 2.4.3 to 2.4.4

Files changed (4) hide show
  1. assets/js/custom.js +64 -10
  2. folders.php +2 -2
  3. includes/folders.class.php +103 -3
  4. readme.txt +4 -1
assets/js/custom.js CHANGED
@@ -31,6 +31,11 @@ jQuery(document).ready(function(){
31
  // alert("submitted");
32
  // return false;
33
  //});
 
 
 
 
 
34
  jQuery(document).on("click", ".select-all-item-btn", function(e){
35
  if(jQuery("ul.attachments li.selected").length == 0) {
36
  jQuery(".custom-media-select").removeClass("active");
@@ -367,8 +372,19 @@ function triggerInlineUpdate() {
367
  inlineEditPost.revert(thisID);
368
  });
369
  }
 
370
 
 
 
 
 
 
 
 
 
371
 
 
 
372
  }
373
 
374
  function ajaxAnimation() {
@@ -493,6 +509,8 @@ function resetMediaAndPosts() {
493
  jQuery(".folder-loader-ajax").addClass("active");
494
  if(jQuery("#folder-posts-filter").length) {
495
  jQuery("#folder-posts-filter").load(folderCurrentURL + " #posts-filter", function () {
 
 
496
  if (!jQuery(".tree-structure").length) {
497
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
498
  }
@@ -501,6 +519,8 @@ function resetMediaAndPosts() {
501
  });
502
  } else {
503
  jQuery("#wpbody").load(folderCurrentURL + " #wpbody-content", false, function (res) {
 
 
504
  if (!jQuery(".tree-structure").length) {
505
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
506
  }
@@ -649,6 +669,9 @@ jQuery(document).ready(function(){
649
  jQuery(".form-loader-count").css("width", "100%");
650
  if(jQuery("#folder-posts-filter").length) {
651
  jQuery("#folder-posts-filter").load(folderCurrentURL + " #posts-filter", function () {
 
 
 
652
  if (!jQuery(".tree-structure").length) {
653
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
654
  }
@@ -656,6 +679,9 @@ jQuery(document).ready(function(){
656
  });
657
  } else {
658
  jQuery("#wpbody").load(folderCurrentURL + " #wpbody-content", function () {
 
 
 
659
  if (!jQuery(".tree-structure").length) {
660
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
661
  }
@@ -666,9 +692,11 @@ jQuery(document).ready(function(){
666
  var thisIndex = jQuery(this).closest("li.route").data("folder-id");
667
  jQuery("#media-attachment-taxonomy-filter").val(thisIndex);
668
  jQuery("#media-attachment-taxonomy-filter").trigger("change");
669
- if(jQuery(this).hasClass("is-new-item")) {
670
- thisSlug = jQuery(this).closest("li.route").data("slug");
671
- }
 
 
672
  jQuery(".custom-media-select").removeClass("active");
673
  //add_menu_to_list();
674
  }
@@ -691,6 +719,9 @@ jQuery(document).ready(function(){
691
  jQuery(".form-loader-count").css("width", "100%");
692
  if(jQuery("#folder-posts-filter").length) {
693
  jQuery("#folder-posts-filter").load(folderCurrentURL + " #posts-filter", function () {
 
 
 
694
  if (!jQuery(".tree-structure").length) {
695
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
696
  }
@@ -698,6 +729,9 @@ jQuery(document).ready(function(){
698
  });
699
  } else {
700
  jQuery("#wpbody").load(folderCurrentURL + " #wpbody-content", function () {
 
 
 
701
  if (!jQuery(".tree-structure").length) {
702
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
703
  }
@@ -841,6 +875,9 @@ jQuery(document).ready(function(){
841
  jQuery(".form-loader-count").css("width", "100%");
842
  if(jQuery("#folder-posts-filter").length) {
843
  jQuery("#folder-posts-filter").load(folderCurrentURL + " #posts-filter", function () {
 
 
 
844
  if (!jQuery(".tree-structure").length) {
845
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
846
  }
@@ -849,6 +886,9 @@ jQuery(document).ready(function(){
849
  });
850
  } else {
851
  jQuery("#wpbody").load(folderCurrentURL + " #wpbody-content", function () {
 
 
 
852
  if (!jQuery(".tree-structure").length) {
853
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
854
  }
@@ -860,6 +900,9 @@ jQuery(document).ready(function(){
860
  activeRecordID = "";
861
  jQuery("#media-attachment-taxonomy-filter").val("all");
862
  jQuery("#media-attachment-taxonomy-filter").trigger("change");
 
 
 
863
  add_active_item_to_list();
864
  }
865
  });
@@ -874,6 +917,9 @@ jQuery(document).ready(function(){
874
  jQuery(".form-loader-count").css("width", "100%");
875
  if(jQuery("#folder-posts-filter").length) {
876
  jQuery("#folder-posts-filter").load(folderCurrentURL + " #posts-filter", function () {
 
 
 
877
  if (!jQuery(".tree-structure").length) {
878
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
879
  }
@@ -882,6 +928,9 @@ jQuery(document).ready(function(){
882
  });
883
  } else {
884
  jQuery("#wpbody").load(folderCurrentURL + " #wpbody-content", function () {
 
 
 
885
  if (!jQuery(".tree-structure").length) {
886
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
887
  }
@@ -892,6 +941,9 @@ jQuery(document).ready(function(){
892
  } else {
893
  jQuery("#media-attachment-taxonomy-filter").val("unassigned");
894
  jQuery("#media-attachment-taxonomy-filter").trigger("change");
 
 
 
895
  add_active_item_to_list();
896
  }
897
  });
@@ -1756,13 +1808,15 @@ if(wcp_settings.post_type == "attachment") {
1756
  selectedVal = jQuery("#media-attachment-taxonomy-filter").val();
1757
  if(selectedVal != "all" && loadData == 1) {
1758
  var wp1 = parent.wp;
1759
- wp1.media.frame.setState('insert');
1760
- if (wp1.media.frame.content.get() !== null) {
1761
- wp1.media.frame.content.get().collection.props.set({ignore: (+new Date())});
1762
- wp1.media.frame.content.get().options.selection.reset();
1763
- } else {
1764
- wp1.media.frame.library.props.set({ignore: (+new Date())});
1765
- }
 
 
1766
  }
1767
  if(res.taxonomies.length) {
1768
  if(jQuery("#media-attachment-taxonomy-filter").length) {
31
  // alert("submitted");
32
  // return false;
33
  //});
34
+
35
+ if(wcp_settings.page_url != wcp_settings.current_url) {
36
+ folderCurrentURL = wcp_settings.current_url;
37
+ }
38
+ activeRecordID = wcp_settings.selected_taxonomy;
39
  jQuery(document).on("click", ".select-all-item-btn", function(e){
40
  if(jQuery("ul.attachments li.selected").length == 0) {
41
  jQuery(".custom-media-select").removeClass("active");
372
  inlineEditPost.revert(thisID);
373
  });
374
  }
375
+ }
376
 
377
+ function set_default_folders(post_id) {
378
+ jQuery.ajax({
379
+ url: wcp_settings.ajax_url,
380
+ type: 'post',
381
+ data: 'action=save_folder_last_status&post_type='+wcp_settings.post_type+"&post_id="+post_id,
382
+ cache: false,
383
+ async: false,
384
+ success: function(){
385
 
386
+ }
387
+ })
388
  }
389
 
390
  function ajaxAnimation() {
509
  jQuery(".folder-loader-ajax").addClass("active");
510
  if(jQuery("#folder-posts-filter").length) {
511
  jQuery("#folder-posts-filter").load(folderCurrentURL + " #posts-filter", function () {
512
+ var obj = { Title: "", Url: folderCurrentURL };
513
+ history.pushState(obj, obj.Title, obj.Url);
514
  if (!jQuery(".tree-structure").length) {
515
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
516
  }
519
  });
520
  } else {
521
  jQuery("#wpbody").load(folderCurrentURL + " #wpbody-content", false, function (res) {
522
+ var obj = { Title: "", Url: folderCurrentURL };
523
+ history.pushState(obj, obj.Title, obj.Url);
524
  if (!jQuery(".tree-structure").length) {
525
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
526
  }
669
  jQuery(".form-loader-count").css("width", "100%");
670
  if(jQuery("#folder-posts-filter").length) {
671
  jQuery("#folder-posts-filter").load(folderCurrentURL + " #posts-filter", function () {
672
+ var obj = { Title: jQuery("#wcp_folder_"+activeRecordID).data("slug"), Url: folderCurrentURL };
673
+ history.pushState(obj, obj.Title, obj.Url);
674
+ set_default_folders(jQuery("#wcp_folder_"+activeRecordID).data("slug"));
675
  if (!jQuery(".tree-structure").length) {
676
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
677
  }
679
  });
680
  } else {
681
  jQuery("#wpbody").load(folderCurrentURL + " #wpbody-content", function () {
682
+ var obj = { Title: jQuery("#wcp_folder_"+activeRecordID).data("slug"), Url: folderCurrentURL };
683
+ history.pushState(obj, obj.Title, obj.Url);
684
+ set_default_folders(jQuery("#wcp_folder_"+activeRecordID).data("slug"));
685
  if (!jQuery(".tree-structure").length) {
686
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
687
  }
692
  var thisIndex = jQuery(this).closest("li.route").data("folder-id");
693
  jQuery("#media-attachment-taxonomy-filter").val(thisIndex);
694
  jQuery("#media-attachment-taxonomy-filter").trigger("change");
695
+ thisSlug = jQuery(this).closest("li.route").data("slug");
696
+ folderCurrentURL = wcp_settings.page_url + jQuery(this).closest("li.route").data("slug");
697
+ var obj = { Title: thisSlug, Url: folderCurrentURL };
698
+ history.pushState(obj, obj.Title, obj.Url);
699
+ set_default_folders(thisSlug);
700
  jQuery(".custom-media-select").removeClass("active");
701
  //add_menu_to_list();
702
  }
719
  jQuery(".form-loader-count").css("width", "100%");
720
  if(jQuery("#folder-posts-filter").length) {
721
  jQuery("#folder-posts-filter").load(folderCurrentURL + " #posts-filter", function () {
722
+ var obj = { Title: "", Url: folderCurrentURL };
723
+ history.pushState(obj, obj.Title, obj.Url);
724
+ set_default_folders("all");
725
  if (!jQuery(".tree-structure").length) {
726
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
727
  }
729
  });
730
  } else {
731
  jQuery("#wpbody").load(folderCurrentURL + " #wpbody-content", function () {
732
+ var obj = { Title: "", Url: folderCurrentURL };
733
+ history.pushState(obj, obj.Title, obj.Url);
734
+ set_default_folders("all");
735
  if (!jQuery(".tree-structure").length) {
736
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
737
  }
875
  jQuery(".form-loader-count").css("width", "100%");
876
  if(jQuery("#folder-posts-filter").length) {
877
  jQuery("#folder-posts-filter").load(folderCurrentURL + " #posts-filter", function () {
878
+ var obj = { Title: "", Url: folderCurrentURL };
879
+ history.pushState(obj, obj.Title, obj.Url);
880
+ set_default_folders("all");
881
  if (!jQuery(".tree-structure").length) {
882
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
883
  }
886
  });
887
  } else {
888
  jQuery("#wpbody").load(folderCurrentURL + " #wpbody-content", function () {
889
+ var obj = { Title: "", Url: folderCurrentURL };
890
+ history.pushState(obj, obj.Title, obj.Url);
891
+ set_default_folders("all");
892
  if (!jQuery(".tree-structure").length) {
893
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
894
  }
900
  activeRecordID = "";
901
  jQuery("#media-attachment-taxonomy-filter").val("all");
902
  jQuery("#media-attachment-taxonomy-filter").trigger("change");
903
+ var obj = { Title: "", Url: wcp_settings.page_url };
904
+ history.pushState(obj, obj.Title, obj.Url);
905
+ set_default_folders("all");
906
  add_active_item_to_list();
907
  }
908
  });
917
  jQuery(".form-loader-count").css("width", "100%");
918
  if(jQuery("#folder-posts-filter").length) {
919
  jQuery("#folder-posts-filter").load(folderCurrentURL + " #posts-filter", function () {
920
+ var obj = { Title: "", Url: folderCurrentURL };
921
+ history.pushState(obj, obj.Title, obj.Url);
922
+ set_default_folders("-1");
923
  if (!jQuery(".tree-structure").length) {
924
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
925
  }
928
  });
929
  } else {
930
  jQuery("#wpbody").load(folderCurrentURL + " #wpbody-content", function () {
931
+ var obj = { Title: "", Url: folderCurrentURL };
932
+ history.pushState(obj, obj.Title, obj.Url);
933
+ set_default_folders("-1");
934
  if (!jQuery(".tree-structure").length) {
935
  jQuery(".wp-header-end").before('<div class="tree-structure"><ul></ul><div class="clear clearfix"></div></div>');
936
  }
941
  } else {
942
  jQuery("#media-attachment-taxonomy-filter").val("unassigned");
943
  jQuery("#media-attachment-taxonomy-filter").trigger("change");
944
+ var obj = { Title: "", Url: wcp_settings.page_url+"-1" };
945
+ history.pushState(obj, obj.Title, obj.Url);
946
+ set_default_folders("-1");
947
  add_active_item_to_list();
948
  }
949
  });
1808
  selectedVal = jQuery("#media-attachment-taxonomy-filter").val();
1809
  if(selectedVal != "all" && loadData == 1) {
1810
  var wp1 = parent.wp;
1811
+ if(wp1.media != undefined) {
1812
+ wp1.media.frame.setState('insert');
1813
+ if (wp1.media.frame.content.get() !== null) {
1814
+ wp1.media.frame.content.get().collection.props.set({ignore: (+new Date())});
1815
+ wp1.media.frame.content.get().options.selection.reset();
1816
+ } else {
1817
+ wp1.media.frame.library.props.set({ignore: (+new Date())});
1818
+ }
1819
+ }
1820
  }
1821
  if(res.taxonomies.length) {
1822
  if(jQuery("#media-attachment-taxonomy-filter").length) {
folders.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: Folders
4
  * Description: Arrange media, pages, custom post types and posts into folders
5
- * Version: 2.4.3
6
  * Author: Premio
7
  * Author URI: https://premio.io/downloads/folders/
8
  * Text Domain: folders
@@ -30,7 +30,7 @@ if(!defined("WCP_FOLDER_URL")) {
30
  define('WCP_FOLDER_URL', plugin_dir_url(__FILE__));
31
  }
32
  if(!defined("WCP_FOLDER_VERSION")) {
33
- define('WCP_FOLDER_VERSION', "2.4.3");
34
  }
35
 
36
  include_once plugin_dir_path(__FILE__)."includes/folders.class.php";
2
  /**
3
  * Plugin Name: Folders
4
  * Description: Arrange media, pages, custom post types and posts into folders
5
+ * Version: 2.4.4
6
  * Author: Premio
7
  * Author URI: https://premio.io/downloads/folders/
8
  * Text Domain: folders
30
  define('WCP_FOLDER_URL', plugin_dir_url(__FILE__));
31
  }
32
  if(!defined("WCP_FOLDER_VERSION")) {
33
+ define('WCP_FOLDER_VERSION', "2.4.4");
34
  }
35
 
36
  include_once plugin_dir_path(__FILE__)."includes/folders.class.php";
includes/folders.class.php CHANGED
@@ -63,6 +63,8 @@ class WCP_Folders
63
  add_action('wp_ajax_wcp_change_folder_display_status', array($this, 'wcp_change_folder_display_status'));
64
  /* Update width Data */
65
  add_action('wp_ajax_wcp_change_all_status', array($this, 'wcp_change_all_status'));
 
 
66
  self::$folders = 10;
67
 
68
  /* Send message on plugin deactivate */
@@ -137,6 +139,15 @@ class WCP_Folders
137
  add_filter('mla_media_modal_query_final_terms', array( $this, 'media_modal_query_final_terms'), 10, 3);
138
  }
139
 
 
 
 
 
 
 
 
 
 
140
  public function media_modal_query_final_terms($request) {
141
  if(isset($_REQUEST['action']) && $_REQUEST['action'] == "mla-query-attachments") {
142
  $query = isset($_REQUEST['query'])?$_REQUEST['query']:array();
@@ -207,7 +218,50 @@ class WCP_Folders
207
  $options = get_option('folders_settings');
208
  $options = (empty($options) || !is_array($options))?array():$options;
209
  $post_status = filter_input(INPUT_GET, 'post_status', FILTER_SANITIZE_STRING);
210
- if(empty($post_status) && !$isAjax && in_array($typenow, $options) && (isset($current_screen->base) && ($current_screen->base == "edit" || ($current_screen->base == "upload")))) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
211
 
212
  $default_folders = get_option('default_folders');
213
  $default_folders = (empty($default_folders) || !is_array($default_folders))?array():$default_folders;
@@ -635,11 +689,41 @@ class WCP_Folders
635
  $isAjax = (defined('DOING_AJAX') && DOING_AJAX)?1:0;
636
  $options = get_option('folders_settings');
637
  $options = (empty($options) || !is_array($options))?array():$options;
638
- if(!$isAjax && in_array($typenow, $options) && (isset($current_screen->base) && ($current_screen->base == "edit" || ($current_screen->base == "upload")))) {
 
639
 
640
  $default_folders = get_option('default_folders');
641
  $default_folders = (empty($default_folders) || !is_array($default_folders))?array():$default_folders;
642
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
643
  $status = 1;
644
  if(isset($default_folders[$typenow]) && !empty($default_folders[$typenow])) {
645
  $type = self::get_custom_post_type($typenow);
@@ -2253,6 +2337,9 @@ class WCP_Folders
2253
  wp_register_script('wcp-folders-alert', plugin_dir_url(dirname(__FILE__)) . 'assets/js/livequery.min.js', array(), WCP_FOLDER_VERSION);
2254
  wp_register_script('wcp-folders-custom', plugin_dir_url(dirname(__FILE__)) . 'assets/js/custom.js', array('jquery', 'jquery-ui-resizable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'jquery-ui-sortable', 'backbone'), WCP_FOLDER_VERSION);
2255
 
 
 
 
2256
  if ($typenow == "attachment") {
2257
  $admin_url = admin_url("upload.php?post_type=attachment&media_folder=");
2258
  } else {
@@ -2260,10 +2347,15 @@ class WCP_Folders
2260
  if (isset($_GET['s']) && !empty($_GET['s'])) {
2261
  $admin_url .= "&s=" . $_GET['s'];
2262
  }
2263
- $post_type = self::get_custom_post_type($typenow);
2264
  $admin_url .= "&{$post_type}=";
2265
  }
2266
 
 
 
 
 
 
 
2267
  $is_active = 1;
2268
  $folders = -1;
2269
  if (!self::check_has_valid_key()) {
@@ -2288,12 +2380,20 @@ class WCP_Folders
2288
  $taxonomy_status = 1;
2289
  } else if(isset($_GET[$post_type]) && !empty($_GET[$post_type])) {
2290
  $selected_taxonomy = $_GET[$post_type];
 
 
 
 
 
 
 
2291
  }
2292
  wp_localize_script('wcp-folders-custom', 'wcp_settings', array(
2293
  'ajax_url' => admin_url('admin-ajax.php'),
2294
  'upgrade_url' => admin_url('admin.php?page=wcp_folders_upgrade'),
2295
  'post_type' => $typenow,
2296
  'page_url' => $admin_url,
 
2297
  'ajax_image' => plugin_dir_url(dirname(__FILE__)) . "assets/images/ajax-loader.gif",
2298
  'is_key_active' => $is_active,
2299
  'folders' => $folders,
63
  add_action('wp_ajax_wcp_change_folder_display_status', array($this, 'wcp_change_folder_display_status'));
64
  /* Update width Data */
65
  add_action('wp_ajax_wcp_change_all_status', array($this, 'wcp_change_all_status'));
66
+ /* Update width Data */
67
+ add_action('wp_ajax_save_folder_last_status', array($this, 'save_folder_last_status'));
68
  self::$folders = 10;
69
 
70
  /* Send message on plugin deactivate */
139
  add_filter('mla_media_modal_query_final_terms', array( $this, 'media_modal_query_final_terms'), 10, 3);
140
  }
141
 
142
+ public function save_folder_last_status(){
143
+ $post_type = filter_input(INPUT_POST, 'post_type', FILTER_SANITIZE_STRING);
144
+ $post_id = filter_input(INPUT_POST, 'post_id', FILTER_SANITIZE_STRING);
145
+ if(!empty($post_type) && !empty($post_id)) {
146
+ delete_option("last_folder_status_for".$post_type);
147
+ add_option("last_folder_status_for".$post_type, $post_id);
148
+ }
149
+ }
150
+
151
  public function media_modal_query_final_terms($request) {
152
  if(isset($_REQUEST['action']) && $_REQUEST['action'] == "mla-query-attachments") {
153
  $query = isset($_REQUEST['query'])?$_REQUEST['query']:array();
218
  $options = get_option('folders_settings');
219
  $options = (empty($options) || !is_array($options))?array():$options;
220
  $post_status = filter_input(INPUT_GET, 'post_status', FILTER_SANITIZE_STRING);
221
+ $last_status = get_option("last_folder_status_for".$typenow);
222
+ if(empty($post_status) && !$isAjax && (in_array($typenow, $options) || !empty($last_status)) && (isset($current_screen->base) && ($current_screen->base == "edit" || ($current_screen->base == "upload")))) {
223
+
224
+ if(!empty($last_status)) {
225
+ $status = 1;
226
+ if($last_status != "-1" && $last_status != "all") {
227
+ $type = self::get_custom_post_type($typenow);
228
+ $term = get_term_by('slug', $last_status, $type);
229
+ if (empty($term) || !is_object($term)) {
230
+ $status = 0;
231
+ }
232
+ }
233
+ delete_option("last_folder_status_for".$typenow);
234
+ if($last_status == "all") {
235
+ $last_status = "";
236
+ }
237
+ if($status) {
238
+ if ($typenow == "attachment") {
239
+ if (!isset($_REQUEST['media_folder'])) {
240
+ $admin_url = admin_url("upload.php?post_type=attachment&media_folder=");
241
+ $admin_url .= $last_status;
242
+ ?>
243
+ <script>
244
+ window.location = '<?php echo $admin_url ?>';
245
+ </script>
246
+ <?php
247
+ exit;
248
+ }
249
+ } else {
250
+ $post_type = self::get_custom_post_type($typenow);
251
+ $admin_url = admin_url("edit.php?post_type=" . $typenow);
252
+ $admin_url .= "&{$post_type}=";
253
+ if (!isset($_REQUEST[$post_type])) {
254
+ $admin_url .= $last_status;
255
+ ?>
256
+ <script>
257
+ window.location = '<?php echo $admin_url ?>';
258
+ </script>
259
+ <?php
260
+ exit;
261
+ }
262
+ }
263
+ }
264
+ }
265
 
266
  $default_folders = get_option('default_folders');
267
  $default_folders = (empty($default_folders) || !is_array($default_folders))?array():$default_folders;
689
  $isAjax = (defined('DOING_AJAX') && DOING_AJAX)?1:0;
690
  $options = get_option('folders_settings');
691
  $options = (empty($options) || !is_array($options))?array():$options;
692
+ $last_status = get_option("last_folder_status_for".$typenow);
693
+ if(!$isAjax && (in_array($typenow, $options) || !empty($last_status)) && (isset($current_screen->base) && ($current_screen->base == "edit" || ($current_screen->base == "upload")))) {
694
 
695
  $default_folders = get_option('default_folders');
696
  $default_folders = (empty($default_folders) || !is_array($default_folders))?array():$default_folders;
697
 
698
+ if(!empty($last_status)) {
699
+ $status = 1;
700
+ if($last_status != "-1" && $last_status != "all") {
701
+ $type = self::get_custom_post_type($typenow);
702
+ $term = get_term_by('slug', $last_status, $type);
703
+ if (empty($term) || !is_object($term)) {
704
+ $status = 0;
705
+ }
706
+ }
707
+ delete_option("last_folder_status_for".$typenow);
708
+ if($last_status == "all") {
709
+ $last_status = "";
710
+ }
711
+ if($status) {
712
+ if ($typenow == "attachment") {
713
+ if (!isset($_REQUEST['media_folder'])) {
714
+ $admin_url = admin_url("upload.php?post_type=attachment&media_folder=");
715
+ $admin_url .= $last_status;
716
+ ?>
717
+ <script>
718
+ window.location = '<?php echo $admin_url ?>';
719
+ </script>
720
+ <?php
721
+ exit;
722
+ }
723
+ }
724
+ }
725
+ }
726
+
727
  $status = 1;
728
  if(isset($default_folders[$typenow]) && !empty($default_folders[$typenow])) {
729
  $type = self::get_custom_post_type($typenow);
2337
  wp_register_script('wcp-folders-alert', plugin_dir_url(dirname(__FILE__)) . 'assets/js/livequery.min.js', array(), WCP_FOLDER_VERSION);
2338
  wp_register_script('wcp-folders-custom', plugin_dir_url(dirname(__FILE__)) . 'assets/js/custom.js', array('jquery', 'jquery-ui-resizable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'jquery-ui-sortable', 'backbone'), WCP_FOLDER_VERSION);
2339
 
2340
+
2341
+ $post_type = self::get_custom_post_type($typenow);
2342
+
2343
  if ($typenow == "attachment") {
2344
  $admin_url = admin_url("upload.php?post_type=attachment&media_folder=");
2345
  } else {
2347
  if (isset($_GET['s']) && !empty($_GET['s'])) {
2348
  $admin_url .= "&s=" . $_GET['s'];
2349
  }
 
2350
  $admin_url .= "&{$post_type}=";
2351
  }
2352
 
2353
+ $current_url = $admin_url;
2354
+ if(isset($_GET[$post_type]) && !empty($_GET[$post_type])) {
2355
+ $current_url .= $_GET[$post_type];
2356
+ }
2357
+
2358
+
2359
  $is_active = 1;
2360
  $folders = -1;
2361
  if (!self::check_has_valid_key()) {
2380
  $taxonomy_status = 1;
2381
  } else if(isset($_GET[$post_type]) && !empty($_GET[$post_type])) {
2382
  $selected_taxonomy = $_GET[$post_type];
2383
+
2384
+ $term = get_term_by('slug', $selected_taxonomy, $post_type );
2385
+ if (!empty($term) && is_object($term)) {
2386
+ $selected_taxonomy = $term->term_id;
2387
+ } else {
2388
+ $selected_taxonomy = "";
2389
+ }
2390
  }
2391
  wp_localize_script('wcp-folders-custom', 'wcp_settings', array(
2392
  'ajax_url' => admin_url('admin-ajax.php'),
2393
  'upgrade_url' => admin_url('admin.php?page=wcp_folders_upgrade'),
2394
  'post_type' => $typenow,
2395
  'page_url' => $admin_url,
2396
+ 'current_url' => $current_url,
2397
  'ajax_image' => plugin_dir_url(dirname(__FILE__)) . "assets/images/ajax-loader.gif",
2398
  'is_key_active' => $is_active,
2399
  'folders' => $folders,
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: galdub, tomeraharon, premio
3
  Tags: folder, folders, organize, pages folders, media library, posts folders, media folders, subfolders, file manager, directories
4
  Requires at least: 3.0.0
5
  Tested up to: 5.3
6
- Stable tag: 2.4.3
7
  Plugin URI: https://premio.io/downloads/folders/
8
 
9
  Folders is a WordPress plugin that will help you quickly organize and manage all of your Pages, Posts and Media library files in folders.
@@ -143,6 +143,9 @@ A live demo for the Folders plugin is available at <a href="https://demo.premio.
143
 
144
  == Changelog ==
145
 
 
 
 
146
  = 2.4.3 =
147
  Small bugs fixed including: folder filtering bugs (trash, draft etc), WooCommerce products duplicate bug, quick edit in folders, Media Library Assistant compatibility and more
148
 
3
  Tags: folder, folders, organize, pages folders, media library, posts folders, media folders, subfolders, file manager, directories
4
  Requires at least: 3.0.0
5
  Tested up to: 5.3
6
+ Stable tag: 2.4.4
7
  Plugin URI: https://premio.io/downloads/folders/
8
 
9
  Folders is a WordPress plugin that will help you quickly organize and manage all of your Pages, Posts and Media library files in folders.
143
 
144
  == Changelog ==
145
 
146
+ = 2.4.4 =
147
+ From now on when you clone/edit/publish pages, posts and custom posts in a specific folder, you'll stay in that folder
148
+
149
  = 2.4.3 =
150
  Small bugs fixed including: folder filtering bugs (trash, draft etc), WooCommerce products duplicate bug, quick edit in folders, Media Library Assistant compatibility and more
151