Ultimate Member – User Profile & Membership Plugin - Version 2.1.13

Version Description

Download this release

Release Info

Developer nsinelnikov
Plugin Icon 128x128 Ultimate Member – User Profile & Membership Plugin
Version 2.1.13
Comparing to
See all releases

Code changes from version 2.1.12 to 2.1.13

Files changed (41) hide show
  1. assets/js/um-members.js +8 -2
  2. assets/js/um-members.min.js +1 -1
  3. includes/admin/assets/css/um-admin-modal.css +10 -1
  4. includes/admin/assets/js/um-admin-blocks.js +33 -24
  5. includes/admin/assets/js/um-admin-modal.js +1 -1
  6. includes/admin/core/class-admin-builder.php +8 -0
  7. includes/admin/core/class-admin-enqueue.php +1 -1
  8. includes/admin/core/class-admin-metabox.php +1 -1
  9. includes/admin/core/class-admin-settings.php +2 -2
  10. includes/admin/core/class-admin-upgrade.php +25 -21
  11. includes/admin/core/class-admin-users.php +4 -5
  12. includes/admin/core/packages/2.0-beta1/init.php +56 -19
  13. includes/admin/core/packages/2.0.10/init.php +3 -1
  14. includes/admin/core/packages/2.1.0-beta1/init.php +3 -1
  15. includes/admin/core/packages/2.1.3-beta3/init.php +9 -3
  16. includes/core/class-access.php +13 -8
  17. includes/core/class-builtin.php +1 -1
  18. includes/core/class-fields.php +4 -1
  19. includes/core/class-form.php +2 -2
  20. includes/core/class-gdpr.php +1 -3
  21. includes/core/class-login.php +2 -1
  22. includes/core/class-member-directory-meta.php +6 -6
  23. includes/core/class-member-directory.php +19 -12
  24. includes/core/class-password.php +3 -3
  25. includes/core/class-profile.php +1 -1
  26. includes/core/class-register.php +2 -1
  27. includes/core/class-user.php +2 -2
  28. includes/core/class-validation.php +13 -8
  29. includes/core/um-actions-account.php +4 -2
  30. includes/core/um-actions-form.php +17 -1
  31. includes/core/um-actions-global.php +0 -2
  32. includes/core/um-actions-misc.php +4 -0
  33. includes/core/um-actions-profile.php +4 -4
  34. includes/core/um-actions-register.php +6 -0
  35. includes/core/um-filters-fields.php +3 -1
  36. readme.txt +29 -2
  37. templates/gdpr-register.php +3 -2
  38. templates/message.php +3 -1
  39. templates/register.php +1 -1
  40. templates/restricted-taxonomy.php +45 -44
  41. ultimate-member.php +1 -1
assets/js/um-members.js CHANGED
@@ -4,7 +4,6 @@ var um_member_directories = [];
4
 
5
  var um_member_directory_last_data = [];
6
 
7
-
8
  function um_parse_current_url() {
9
  var data = {};
10
 
@@ -218,8 +217,14 @@ function um_ajax_get_members( directory, args ) {
218
  *
219
  */
220
 
221
-
222
  var hash = um_members_get_hash( directory );
 
 
 
 
 
 
 
223
  var page = um_get_current_page( directory );
224
  var search = um_get_search( directory );
225
  var sorting = um_get_sort( directory );
@@ -1330,6 +1335,7 @@ jQuery(document.body).ready( function() {
1330
  jQuery( '.um-directory' ).each( function() {
1331
  var directory = jQuery(this);
1332
  var hash = um_members_get_hash( directory );
 
1333
  um_member_directories.push( hash );
1334
 
1335
  // slideup/slidedown animation fix for grid filters bar
4
 
5
  var um_member_directory_last_data = [];
6
 
 
7
  function um_parse_current_url() {
8
  var data = {};
9
 
217
  *
218
  */
219
 
 
220
  var hash = um_members_get_hash( directory );
221
+
222
+ var allow = wp.hooks.applyFilters( 'um_member_directory_get_members_allow', true, hash, directory );
223
+ if ( ! allow ) {
224
+ setTimeout( um_ajax_get_members, 600, directory, args );
225
+ return;
226
+ }
227
+
228
  var page = um_get_current_page( directory );
229
  var search = um_get_search( directory );
230
  var sorting = um_get_sort( directory );
1335
  jQuery( '.um-directory' ).each( function() {
1336
  var directory = jQuery(this);
1337
  var hash = um_members_get_hash( directory );
1338
+
1339
  um_member_directories.push( hash );
1340
 
1341
  // slideup/slidedown animation fix for grid filters bar
assets/js/um-members.min.js CHANGED
@@ -1 +1 @@
1
- var um_members_directory_busy=[],um_member_directories=[],um_member_directory_last_data=[];function um_parse_current_url(){var t={},a=window.location.search.substring(1).split("&");return jQuery.each(a,function(e){var r=a[e].split("=");t[r[0]]=r[1]}),t}function um_get_data_for_directory(e,r){var t=um_members_get_hash(e),a={},i=um_parse_current_url();if(jQuery.each(i,function(e){-1!==e.indexOf("_"+t)&&""!==i[e]&&(a[e.replace("_"+t,"")]=i[e])}),r){if(void 0!==a[r])try{a[r]=decodeURIComponent(a[r])}catch(e){console.error(e)}return a[r]}return a}function um_set_url_from_data(e,r,t){var a=um_members_get_hash(e),i=um_get_data_for_directory(e),m={};jQuery.isArray(t)?(jQuery.each(t,function(e){t[e]=encodeURIComponent(t[e])}),t=t.join("||")):jQuery.isNumeric(t)||(t=t.split("||"),jQuery.each(t,function(e){t[e]=encodeURIComponent(t[e])}),t=t.join("||")),""!==t&&(m[r+"_"+a]=t),jQuery.each(i,function(e){r===e?""!==t&&(m[e+"_"+a]=t):m[e+"_"+a]=i[e]}),jQuery.each(um_member_directories,function(e){var r=um_member_directories[e];if(r!==a){var t=um_get_data_for_directory(jQuery('.um-directory[data-hash="'+r+'"]'));jQuery.each(t,function(e){m[e+"_"+r]=t[e]})}});var d=[];jQuery.each(m,function(e){d.push(e+"="+m[e])});var s="?"+(d=wp.hooks.applyFilters("um_member_directory_url_attrs",d)).join("&");"?"===s&&(s=""),window.history.pushState("string","UM Member Directory",window.location.origin+window.location.pathname+s)}function um_members_get_hash(e){return e.data("hash")}function um_is_directory_busy(e){var r=um_members_get_hash(e);return void 0!==um_members_directory_busy[r]&&um_members_directory_busy[r]}function um_members_show_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!0,e.find(".um-members-overlay").show()}function um_members_hide_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!1,e.find(".um-members-overlay").hide()}function um_set_range_label(e,r){var t="",a=e.siblings(".um-slider-range").data("placeholder-s"),i=e.siblings(".um-slider-range").data("placeholder-p");t=r?r.values[0]===r.values[1]?a.replace("{value}",r.values[0]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):i.replace("{min_range}",r.values[0]).replace("{max_range}",r.values[1]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):e.slider("values",0)===e.slider("values",1)?a.replace("{value}",e.slider("values",0)).replace("{field_label}",e.siblings(".um-slider-range").data("label")):i.replace("{min_range}",e.slider("values",0)).replace("{max_range}",e.slider("values",1)).replace("{field_label}",e.siblings(".um-slider-range").data("label")),e.siblings(".um-slider-range").html(t),e.siblings(".um_range_min").val(e.slider("values",0)),e.siblings(".um_range_max").val(e.slider("values",1))}function um_get_search(e){return e.find(".um-search-line").length?e.find(".um-search-line").val():""}function um_get_sort(e){return e.data("sorting")}function um_get_current_page(e){var r=e.data("page");return r&&void 0!==r||(r=1),r}function um_time_convert(e,r){var t=Math.floor(e/60),a=e%60;return 60<=a&&(a=0,24<=(t+=1)&&(t=0)),a<10&&(a="0"+a),t+":"+a}function um_ajax_get_members(u,e){var t=um_members_get_hash(u),r=um_get_current_page(u),a=um_get_search(u),i=um_get_sort(u),m=-(new Date).getTimezoneOffset()/60,_={directory_id:t,page:r,search:a,sorting:i,gmt_offset:m,post_refferer:u.data("base-post"),nonce:um_scripts.nonce};u.find(".um-search-filter").length&&u.find(".um-search-filter").each(function(){var e=jQuery(this);if(e.find(".um-slider").length){var r=e.find(".um-slider").data("field_name"),t=um_get_data_for_directory(u,"filter_"+r+"_from"),a=um_get_data_for_directory(u,"filter_"+r+"_to");void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find(".um-datepicker-filter").length){r=e.find(".um-datepicker-filter").data("filter_name"),t=um_get_data_for_directory(u,"filter_"+r+"_from"),a=um_get_data_for_directory(u,"filter_"+r+"_to");void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find(".um-timepicker-filter").length){r=e.find(".um-timepicker-filter").data("filter_name"),t=um_get_data_for_directory(u,"filter_"+r+"_from"),a=um_get_data_for_directory(u,"filter_"+r+"_to");if(void 0!==t)(i=1*(t=t.split(":"))[0])<10&&(i="0"+i),(d=1*t[1])<10&&(d="0"+d),t=i+":"+d+":00";if(void 0!==a){var i,m=a.split(":"),d=1*m[1];(i=1*m[0])<10&&(i="0"+i),d<10&&(d="0"+d),a=i+":"+d+":59"}void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find("select").length){r=e.find("select").attr("name");void 0!==(s=um_get_data_for_directory(u,"filter_"+r))&&(_[r]=s.split("||"))}else if(e.hasClass("um-text-filter-type")&&e.find('input[type="text"]').length){var s;r=e.find('input[type="text"]').attr("name");void 0!==(s=um_get_data_for_directory(u,"filter_"+r))&&(_[r]=s)}else _=wp.hooks.applyFilters("um_member_directory_custom_filter_handler",_,e,u)}),_=wp.hooks.applyFilters("um_member_directory_filter_request",_),wp.ajax.send("um_get_members",{data:_,success:function(e){um_member_directory_last_data[t]=e,um_build_template(u,e);var r=wp.template("um-members-pagination");u.find(".um-members-pagination-box").html(r(e)),u.data("total_pages",e.pagination.total_pages),e.pagination.total_pages?(u.find(".um-member-directory-sorting-options").prop("disabled",!1),u.find(".um-member-directory-view-type").removeClass("um-disabled")):(u.find(".um-member-directory-sorting-options").prop("disabled",!0),u.find(".um-member-directory-view-type").addClass("um-disabled")),wp.hooks.doAction("um_member_directory_loaded",u,e),um_init_new_dropdown(),um_members_hide_preloader(u)},error:function(e){console.log(e),um_members_hide_preloader(u)}})}function um_build_template(e,r){var t=e.data("view_type"),a=wp.template("um-member-"+t+"-"+um_members_get_hash(e));e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-members-wrapper").prepend(a(r.users));var i=wp.template("um-members-header");e.find(".um-members-intro").remove();var m=wp.hooks.applyFilters("um_member_directory_generate_header",!1,e);(void 0!==r.is_search&&r.is_search||m)&&e.find(".um-members-wrapper").prepend(i(r)),e.addClass("um-loaded"),e.find(".um-members.um-members-grid").length&&UM_Member_Grid(e.find(".um-members.um-members-grid")),jQuery(document).trigger("um_build_template",[e,r]),jQuery(window).trigger("resize"),init_tipsy()}function UM_Member_Grid(e){e.find(".um-member").length&&e.imagesLoaded(function(){e.masonry({itemSelector:".um-member",columnWidth:".um-member",gutter:".um-gutter-sizer"}).on("layoutComplete",function(e,r){jQuery(document).trigger("um_grid_initialized",[e,r])})})}function um_get_filters_data(u){var _=[];return u.find(".um-search-filter").each(function(){var t,a,d,i=jQuery(this);if(i.find("input.um-datepicker-filter").length)d="datepicker",i.find("input.um-datepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(u,"filter_"+e+"_from"),t=um_get_data_for_directory(u,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=u.find('input.um-datepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("input.um-timepicker-filter").length)d="timepicker",i.find("input.um-timepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(u,"filter_"+e+"_from"),t=um_get_data_for_directory(u,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=u.find('input.um-timepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("select").length){d="select",t=i.find("select").attr("name"),a=i.find("select").data("placeholder"),m=void 0===(m=um_get_data_for_directory(u,"filter_"+t))?[]:m.split("||"),jQuery.each(m,function(e){var r=i.find('select option[value="'+m[e]+'"]').data("value_label");_.push({name:t,label:a,value_label:r,value:m[e],type:d})})}else if(i.hasClass("um-text-filter-type")&&i.find('input[type="text"]').length){var m;d="text",t=i.find('input[type="text"]').attr("name"),a=i.find('input[type="text"]').attr("placeholder"),void 0===(m=um_get_data_for_directory(u,"filter_"+t))&&(m=""),""!=m&&_.push({name:t,label:a,value_label:m,value:m,type:d})}else if(i.find("div.ui-slider").length){d="slider",t=i.find("div.ui-slider").data("field_name");var e,r=um_get_data_for_directory(u,"filter_"+t+"_from"),s=um_get_data_for_directory(u,"filter_"+t+"_to");if(void 0===r&&void 0===s)return;e=r===s?i.find("div.um-slider-range").data("placeholder-s").replace("{value}",r).replace("{field_label}",i.find("div.um-slider-range").data("label")):i.find("div.um-slider-range").data("placeholder-p").replace("{min_range}",r).replace("{max_range}",s).replace("{field_label}",i.find("div.um-slider-range").data("label")),a=i.find("div.um-slider-range").data("label"),_.push({name:t,label:a,value_label:e,value:[r,s],type:d})}else _=wp.hooks.applyFilters("um_member_directory_get_filter_data",_,u,i)}),_}function um_change_tag(e){var r=um_get_filters_data(e);e.find(".um-members-filter-tag").remove();var t=e.find(".um-filtered-line");if(t.length){var a=wp.template("um-members-filtered-line");t.prepend(a({filters:r})),0===e.find(".um-members-filter-remove").length?(e.find(".um-clear-filters").hide(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(e.find(".um-clear-filters").show(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"))}}function um_run_search(e){if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=um_get_data_for_directory(e,"search"),t=e.find(".um-search-line").val();if(t===r||""===t&&void 0===r)um_members_hide_preloader(e);else{e.data("general_search",t),um_set_url_from_data(e,"search",t),e.data("page",1),um_set_url_from_data(e,"page","");var a=!1;if(!(a=wp.hooks.applyFilters("um_member_directory_ignore_after_search",a,e)))if(1===e.data("must-search")&&(t=um_get_search(e),0===e.find(".um-members-filter-remove").length&&!t))return e.data("searched",0),e.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),wp.hooks.doAction("um_member_directory_clear_not_searched",e),void um_members_hide_preloader(e);e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}}jQuery(document.body).ready(function(){jQuery(".um-directory .um-search-filter select").each(function(){1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2()}),jQuery(document.body).on("mouseover",".um-directory .um-member-directory-view-type",function(){if(!jQuery(this).hasClass("um-disabled")){var e=jQuery(this).find(".um-member-directory-view-type-a:visible");e.hide(),e.next().length?e.next().show().tipsy("show"):jQuery(this).find(".um-member-directory-view-type-a:first").show().tipsy("show")}}).on("mouseout",".um-directory .um-member-directory-view-type",function(){jQuery(this).hasClass("um-disabled")||(jQuery(this).find(".um-member-directory-view-type-a").hide().tipsy("hide"),jQuery(this).find('.um-member-directory-view-type-a[data-type="'+jQuery(this).parents(".um-directory").data("view_type")+'"]').show())}),jQuery(document.body).on("click",".um-directory .um-member-directory-view-type-a",function(){var e=jQuery(this).parents(".um-directory");if(um_is_directory_busy(e))return!1;var r=jQuery(this),t=r.parents(".um-member-directory-view-type");if(!t.hasClass("um-disabled")){um_members_show_preloader(e);var a=t.find(".um-member-directory-view-type-a:visible");a.hide(),a.next().length?a.next().show().tipsy("show"):t.find(".um-member-directory-view-type-a:first").show().tipsy("show");var i=um_member_directory_last_data[um_members_get_hash(e)];if(null!==i){var m=r.data("type");um_set_url_from_data(e,"view_type",m),e.data("view_type",m),um_build_template(e,i),um_init_new_dropdown()}um_members_hide_preloader(e)}}),jQuery(document.body).on("click",".um-directory .um-do-search",function(){um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("keypress",".um-directory .um-search-line",function(e){13===e.which&&um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("click",".um-directory .um-member-directory-sorting-a .um-new-dropdown li a",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&1!==jQuery(this).data("selected")){um_members_show_preloader(e);var r=jQuery(this).data("value");e.data("sorting",r),um_set_url_from_data(e,"sort",r),um_ajax_get_members(e),jQuery(this).parents(".um-new-dropdown").find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),jQuery(this).data("selected",1).prop("data-selected",1).attr("data-selected",1),jQuery(this).parents(".um-member-directory-sorting-a").find("> a").html(jQuery(this).html())}}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){if(!jQuery(this).hasClass("disabled")){var e,r=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(r))um_members_show_preloader(r),1===(e="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?1*r.data("page")-1:"next"===jQuery(this).data("page")?1*r.data("page")+1:"last"===jQuery(this).data("page")?parseInt(r.data("total_pages")):parseInt(jQuery(this).data("page")))?(r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled")):(e===parseInt(r.data("total_pages"))?r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass("disabled")),r.find(".pagi").removeClass("current"),r.find('.pagi[data-page="'+e+'"]').addClass("current"),r.data("page",e),um_set_url_from_data(r,"page",1===e?"":e),um_ajax_get_members(r)}}),jQuery(document.body).on("change",".um-directory .um-members-pagi-dropdown",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).val();e.find(".pagi").removeClass("current"),e.find('.pagi[data-page="'+r+'"]').addClass("current"),e.data("page",r),um_set_url_from_data(e,"page",1===r?"":r),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-more").hide(),r.find(".um-member-meta-main").slideDown(),r.find(".um-member-less").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-less").hide(),r.find(".um-member-meta-main").slideUp(),r.find(".um-member-more").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-more").hide(),r.find(".um-member-meta").slideDown(function(){UM_Member_Grid(t)}),r.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(t)},100),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-less").hide(),r.find(".um-member-meta").slideUp(function(){r.find(".um-member-more").fadeIn(),UM_Member_Grid(t)}),!1}),jQuery(".um-member-directory-filters-a").click(function(){var e=jQuery(this),r=e.parents(".um-directory").find(".um-search");r.is(":visible")?r.slideUp(250,function(){e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}):r.slideDown({duration:250,start:function(){jQuery(this).css({display:"grid"}),e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}})}),jQuery(document.body).on("change",".um-directory .um-search-filter select",function(){if(""!==jQuery(this).val()){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).prop("name"),t=um_get_data_for_directory(e,"filter_"+r);t=void 0===t?[]:t.split("||"),-1===jQuery.inArray(jQuery(this).val(),t)&&(t.push(jQuery(this).val()),um_set_url_from_data(e,"filter_"+r,t=t.join("||")),e.data("page",1),um_set_url_from_data(e,"page","")),jQuery(this).find('option[value="'+jQuery(this).val()+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2(),jQuery(this).val("").trigger("change"),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled")}}}),jQuery(document.body).on("blur",'.um-directory .um-search-filter.um-text-filter-type input[type="text"]',function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){var r=jQuery(this).val(),t=jQuery(this).prop("name"),a=um_get_data_for_directory(e,"filter_"+t);void 0===a&&(a=""),r!==a&&(um_members_show_preloader(e),um_set_url_from_data(e,"filter_"+t,r),e.data("page",1),um_set_url_from_data(e,"page",""),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),jQuery(document.body).on("keypress",'.um-directory .um-search-filter.um-text-filter-type input[type="text"]',function(e){if(13===e.which){var r=jQuery(this).parents(".um-directory");if(um_is_directory_busy(r))return;var t=jQuery(this).val(),a=jQuery(this).prop("name"),i=um_get_data_for_directory(r,"filter_"+a);if(void 0===i&&(i=""),t===i)return;um_members_show_preloader(r),um_set_url_from_data(r,"filter_"+a,t),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}),jQuery(document.body).on("click",".um-directory .um-members-filter-remove",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&e){um_members_show_preloader(e);var r=jQuery(this).data("value"),t=jQuery(this).data("name"),a=jQuery(this).data("type");if("text"===a)um_set_url_from_data(e,"filter_"+t,""),jQuery('.um-search-filter input[name="'+t+'"]').val("");else if("select"===a){var i=um_get_data_for_directory(e,"filter_"+t);i=void 0===i?[]:i.split("||"),-1!==jQuery.inArray(r.toString(),i)&&(i=jQuery.grep(i,function(e){return e!==r.toString()})),i.length||(i=""),um_set_url_from_data(e,"filter_"+t,i);var m=jQuery('.um-search-filter select[name="'+t+'"]');m.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<m.find("option:not(:disabled)").length&&m.prop("disabled",!1),m.select2("destroy").select2(),0<e.find('.um-search-filter select[data-um-parent="'+t+'"]').length&&m.trigger("change")}else if("slider"===a){um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to","");var d=jQuery(".um-search-filter #"+t+"_min").siblings(".um-slider"),s=d.slider("option");d.slider("values",[s.min,s.max]),jQuery(".um-search-filter #"+t+"_min").val(""),jQuery(".um-search-filter #"+t+"_max").val(""),um_set_range_label(d)}else"datepicker"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to",""),jQuery(".um-search-filter #"+t+"_from").val(""),jQuery(".um-search-filter #"+t+"_to").val("")):"timepicker"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to",""),jQuery(".um-search-filter #"+t+"_from").val(""),jQuery(".um-search-filter #"+t+"_to").val("")):wp.hooks.doAction("um_member_directory_filter_remove",a,e,t,r);e.data("page",1),um_set_url_from_data(e,"page",""),jQuery(this).tipsy("hide"),jQuery(this).parents(".um-members-filter-tag").remove(),0===e.find(".um-members-filter-remove").length?e.find(".um-clear-filters").hide():e.find(".um-clear-filters").show();var u=!1;if(!(u=wp.hooks.applyFilters("um_member_directory_ignore_after_search",u,e)))if(1===e.data("must-search")){var _=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!_)return e.data("searched",0),e.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),wp.hooks.doAction("um_member_directory_clear_not_searched",e),void um_members_hide_preloader(e)}e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-clear-filters-a",function(){var s=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(s)){um_members_show_preloader(s),s.find(".um-members-filter-remove").each(function(){var r=jQuery(this).data("value"),e=jQuery(this).data("name"),t=jQuery(this).data("type");if("text"===t)um_set_url_from_data(s,"filter_"+e,""),jQuery('.um-search-filter input[name="'+e+'"]').val("");else if("select"===t){var a=um_get_data_for_directory(s,"filter_"+e);a=void 0===a?[]:a.split("||"),-1!==jQuery.inArray(r.toString(),a)&&(a=jQuery.grep(a,function(e){return e!==r.toString()})),a.length||(a=""),um_set_url_from_data(s,"filter_"+e,a);var i=jQuery('.um-search-filter select[name="'+e+'"]');i.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<i.find("option:not(:disabled)").length&&i.prop("disabled",!1),i.select2("destroy").select2(),0<s.find('.um-search-filter select[data-um-parent="'+e+'"]').length&&i.trigger("change")}else if("slider"===t){um_set_url_from_data(s,"filter_"+e+"_from",""),um_set_url_from_data(s,"filter_"+e+"_to","");var m=jQuery(".um-search-filter #"+e+"_min").siblings(".um-slider"),d=m.slider("option");m.slider("values",[d.min,d.max]),jQuery(".um-search-filter #"+e+"_min").val(""),jQuery(".um-search-filter #"+e+"_max").val(""),um_set_range_label(m)}else"datepicker"===t?(um_set_url_from_data(s,"filter_"+e+"_from",""),um_set_url_from_data(s,"filter_"+e+"_to",""),jQuery(".um-search-filter #"+e+"_from").val(""),jQuery(".um-search-filter #"+e+"_to").val("")):"timepicker"===t?(um_set_url_from_data(s,"filter_"+e+"_from",""),um_set_url_from_data(s,"filter_"+e+"_to",""),jQuery(".um-search-filter #"+e+"_from").val(""),jQuery(".um-search-filter #"+e+"_to").val("")):wp.hooks.doAction("um_member_directory_clear_filters",t,s,e,r)}),s.data("page",1),um_set_url_from_data(s,"page",""),s.find(".um-members-filter-tag").remove(),0===s.find(".um-members-filter-remove").length?(s.find(".um-clear-filters").hide(),s.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(s.find(".um-clear-filters").show(),s.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"));var e=!1;if(!(e=wp.hooks.applyFilters("um_member_directory_ignore_after_search",e,s)))if(1===s.data("must-search"))if(!um_get_search(s))return s.data("searched",0),s.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),s.find(".um-member-directory-sorting-options").prop("disabled",!0),s.find(".um-member-directory-view-type").addClass("um-disabled"),wp.hooks.doAction("um_member_directory_clear_not_searched",s),void um_members_hide_preloader(s);s.find(".um-member-directory-sorting-options").prop("disabled",!1),s.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(s)}}),wp.hooks.doAction("um_member_directory_on_first_pages_loading"),jQuery(".um-directory").each(function(){var e=jQuery(this),r=um_members_get_hash(e);um_member_directories.push(r),e.find(".um-search").length&&(e.find(".um-search").is(":visible")||e.find(".um-search").css({display:"grid"}).slideUp(1)),e.find(".um-slider").each(function(){var e=jQuery(this),t=e.parents(".um-directory"),a=e.data("field_name"),r=um_get_data_for_directory(t,"filter_"+a+"_from"),i=um_get_data_for_directory(t,"filter_"+a+"_to");void 0===r&&(r=parseInt(e.data("min"))),void 0===i&&(i=parseInt(e.data("max")));var m=[r,i];e.slider({range:!0,min:parseInt(e.data("min")),max:parseInt(e.data("max")),values:m,create:function(e,r){},step:1,slide:function(e,r){um_set_range_label(jQuery(this),r)},stop:function(e,r){um_is_directory_busy(t)||(um_members_show_preloader(t),um_set_url_from_data(t,"filter_"+a+"_from",r.values[0]),um_set_url_from_data(t,"filter_"+a+"_to",r.values[1]),t.data("page",1),um_set_url_from_data(t,"page",""),um_ajax_get_members(t),um_change_tag(t),t.data("searched",1),t.find(".um-member-directory-sorting-options").prop("disabled",!1),t.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),um_set_range_label(e)}),e.find(".um-datepicker-filter").each(function(){var s=jQuery(this),u=new Date(1e3*s.data("date_min")),_=new Date(1e3*s.data("date_max")),e=s.pickadate({selectYears:!0,min:u,max:_,formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){s.blur()},onClose:function(){s.blur()},onSet:function(e){if(e.select){var r=s.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=s.data("filter_name"),a=s.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");void 0===i&&(i=u/1e3),void 0===m&&(m=_/1e3);var d=e.select/1e3;s.val();"from"===a?i=d:"to"===a&&(m=d),um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}}).pickadate("picker"),r=s.data("filter_name"),t=s.data("range"),a=um_get_data_for_directory(s.parents(".um-directory"),"filter_"+r+"_"+t);void 0!==a&&e.set("select",1e3*a)}),e.find(".um-timepicker-filter").each(function(){var u=jQuery(this),_=u.attr("id"),o=u.data("filter_name"),n=u.attr("data-min"),l=u.attr("data-max"),e=n.split(":"),r=l.split(":"),t=u.pickatime({format:u.data("format"),interval:parseInt(u.data("intervals")),min:[e[0],e[1]],max:[r[0],r[1]],formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){u.blur()},onClose:function(){u.blur()},onSet:function(e){if(e.select){var r=u.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=u.data("filter_name"),a=u.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");if(void 0===i&&(i=n),void 0===m&&(m=l),void 0!==e.select){var d=um_time_convert(e.select,a);"from"===a?i=d:"to"===a&&(m=d)}else"from"===a?i=n:"to"===a&&(m=l);var s=jQuery("#"+_).val();"from"===u.data("range")?jQuery("#"+o+"_to").pickatime("picker").set("min",s):jQuery("#"+o+"_from").pickatime("picker").set("max",s),um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}}).pickatime("picker"),a=u.data("filter_name"),i=u.data("range"),m=um_get_data_for_directory(u.parents(".um-directory"),"filter_"+a+"_"+i);if(void 0!==m){var d=m.split(":");t.set("select",60*d[0]+1*d[1])}}),wp.hooks.doAction("um_member_directory_on_init",e,r);var t=!1;if(!(t=wp.hooks.applyFilters("um_member_directory_ignore_after_search",t,e))&&1===e.data("must-search")){var a=um_get_search(e);if(!um_get_filters_data(e).length&&!a)return}wp.hooks.applyFilters("um_member_directory_prevent_default_first_loading",!1,e,r)||(um_members_show_preloader(e),um_ajax_get_members(e,{first_load:!0}),um_change_tag(e))}),window.addEventListener("popstate",function(e){jQuery(".um-directory").each(function(){var d=jQuery(this),e=um_members_get_hash(d);(um_member_directories.push(e),um_members_show_preloader(d),d.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),d.find(".um-member-directory-search-line").length)&&(void 0===(s=um_get_data_for_directory(d,"search"))&&(s=""),d.data("general_search",s),d.find(".um-search-line").val(s));var r=um_get_data_for_directory(d,"page");if(void 0===r?r=1:r>d.data("total_pages")&&(r=d.data("total_pages")),d.data("page",r).attr("data-page",r),d.find(".um-member-directory-sorting").length){var t=um_get_data_for_directory(d,"sort");void 0===t&&(t=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]').find('a[data-default="1"]').data("value")),d.data("sorting",t);var a=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]');a.find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),a.find('a[data-value="'+t+'"]').data("selected",1).prop("data-selected",1).attr("data-selected",1),d.find(".um-member-directory-sorting-a").find("> a").html(a.find('a[data-value="'+t+'"]').html())}if(d.find(".um-member-directory-view-type").length){var i=um_get_data_for_directory(d,"view_type");void 0===i&&(i=d.find('.um-member-directory-view-type-a[data-default="1"]').data("type")),d.data("view_type",i),d.find(".um-member-directory-view-type .um-member-directory-view-type-a").hide(),d.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="'+i+'"]').show()}d.find(".um-datepicker-filter").each(function(){var e=jQuery(this),r=e.pickadate("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);void 0!==i?r.set("select",1e3*i):r.clear()}),d.find(".um-slider").each(function(){var e=jQuery(this),r=e.data("field_name"),t=um_get_data_for_directory(d,"filter_"+r+"_from"),a=um_get_data_for_directory(d,"filter_"+r+"_to");void 0===t&&(t=e.data("min")),t=parseInt(t),void 0===a&&(a=e.data("max")),a=parseInt(a),e.slider("values",[t,a]),um_set_range_label(e)}),d.find(".um-timepicker-filter").each(function(){var e=jQuery(this),r=e.pickatime("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);if(void 0!==i){var m=i.split(":");r.set("select",60*m[0])}else r.clear()});var m=!1;if(!(m=wp.hooks.applyFilters("um_member_directory_ignore_after_search",m,d))&&1===d.data("must-search")){var s=um_get_search(d);if(!um_get_filters_data(d).length&&!s)return d.data("searched",0),void um_members_hide_preloader(d);d.data("searched",1)}wp.hooks.applyFilters("um_member_directory_prevent_default_first_loading",!1,d,e)||(um_ajax_get_members(d),um_change_tag(d))})})});
1
+ var um_members_directory_busy=[],um_member_directories=[],um_member_directory_last_data=[];function um_parse_current_url(){var t={},a=window.location.search.substring(1).split("&");return jQuery.each(a,function(e){var r=a[e].split("=");t[r[0]]=r[1]}),t}function um_get_data_for_directory(e,r){var t=um_members_get_hash(e),a={},i=um_parse_current_url();if(jQuery.each(i,function(e){-1!==e.indexOf("_"+t)&&""!==i[e]&&(a[e.replace("_"+t,"")]=i[e])}),r){if(void 0!==a[r])try{a[r]=decodeURIComponent(a[r])}catch(e){console.error(e)}return a[r]}return a}function um_set_url_from_data(e,r,t){var a=um_members_get_hash(e),i=um_get_data_for_directory(e),m={};jQuery.isArray(t)?(jQuery.each(t,function(e){t[e]=encodeURIComponent(t[e])}),t=t.join("||")):jQuery.isNumeric(t)||(t=t.split("||"),jQuery.each(t,function(e){t[e]=encodeURIComponent(t[e])}),t=t.join("||")),""!==t&&(m[r+"_"+a]=t),jQuery.each(i,function(e){r===e?""!==t&&(m[e+"_"+a]=t):m[e+"_"+a]=i[e]}),jQuery.each(um_member_directories,function(e){var r=um_member_directories[e];if(r!==a){var t=um_get_data_for_directory(jQuery('.um-directory[data-hash="'+r+'"]'));jQuery.each(t,function(e){m[e+"_"+r]=t[e]})}});var d=[];jQuery.each(m,function(e){d.push(e+"="+m[e])});var s="?"+(d=wp.hooks.applyFilters("um_member_directory_url_attrs",d)).join("&");"?"===s&&(s=""),window.history.pushState("string","UM Member Directory",window.location.origin+window.location.pathname+s)}function um_members_get_hash(e){return e.data("hash")}function um_is_directory_busy(e){var r=um_members_get_hash(e);return void 0!==um_members_directory_busy[r]&&um_members_directory_busy[r]}function um_members_show_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!0,e.find(".um-members-overlay").show()}function um_members_hide_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!1,e.find(".um-members-overlay").hide()}function um_set_range_label(e,r){var t="",a=e.siblings(".um-slider-range").data("placeholder-s"),i=e.siblings(".um-slider-range").data("placeholder-p");t=r?r.values[0]===r.values[1]?a.replace("{value}",r.values[0]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):i.replace("{min_range}",r.values[0]).replace("{max_range}",r.values[1]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):e.slider("values",0)===e.slider("values",1)?a.replace("{value}",e.slider("values",0)).replace("{field_label}",e.siblings(".um-slider-range").data("label")):i.replace("{min_range}",e.slider("values",0)).replace("{max_range}",e.slider("values",1)).replace("{field_label}",e.siblings(".um-slider-range").data("label")),e.siblings(".um-slider-range").html(t),e.siblings(".um_range_min").val(e.slider("values",0)),e.siblings(".um_range_max").val(e.slider("values",1))}function um_get_search(e){return e.find(".um-search-line").length?e.find(".um-search-line").val():""}function um_get_sort(e){return e.data("sorting")}function um_get_current_page(e){var r=e.data("page");return r&&void 0!==r||(r=1),r}function um_time_convert(e,r){var t=Math.floor(e/60),a=e%60;return 60<=a&&(a=0,24<=(t+=1)&&(t=0)),a<10&&(a="0"+a),t+":"+a}function um_ajax_get_members(u,e){var t=um_members_get_hash(u);if(wp.hooks.applyFilters("um_member_directory_get_members_allow",!0,t,u)){var r=um_get_current_page(u),a=um_get_search(u),i=um_get_sort(u),m=-(new Date).getTimezoneOffset()/60,_={directory_id:t,page:r,search:a,sorting:i,gmt_offset:m,post_refferer:u.data("base-post"),nonce:um_scripts.nonce};u.find(".um-search-filter").length&&u.find(".um-search-filter").each(function(){var e=jQuery(this);if(e.find(".um-slider").length){var r=e.find(".um-slider").data("field_name"),t=um_get_data_for_directory(u,"filter_"+r+"_from"),a=um_get_data_for_directory(u,"filter_"+r+"_to");void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find(".um-datepicker-filter").length){r=e.find(".um-datepicker-filter").data("filter_name"),t=um_get_data_for_directory(u,"filter_"+r+"_from"),a=um_get_data_for_directory(u,"filter_"+r+"_to");void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find(".um-timepicker-filter").length){r=e.find(".um-timepicker-filter").data("filter_name"),t=um_get_data_for_directory(u,"filter_"+r+"_from"),a=um_get_data_for_directory(u,"filter_"+r+"_to");if(void 0!==t)(i=1*(t=t.split(":"))[0])<10&&(i="0"+i),(d=1*t[1])<10&&(d="0"+d),t=i+":"+d+":00";if(void 0!==a){var i,m=a.split(":"),d=1*m[1];(i=1*m[0])<10&&(i="0"+i),d<10&&(d="0"+d),a=i+":"+d+":59"}void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find("select").length){r=e.find("select").attr("name");void 0!==(s=um_get_data_for_directory(u,"filter_"+r))&&(_[r]=s.split("||"))}else if(e.hasClass("um-text-filter-type")&&e.find('input[type="text"]').length){var s;r=e.find('input[type="text"]').attr("name");void 0!==(s=um_get_data_for_directory(u,"filter_"+r))&&(_[r]=s)}else _=wp.hooks.applyFilters("um_member_directory_custom_filter_handler",_,e,u)}),_=wp.hooks.applyFilters("um_member_directory_filter_request",_),wp.ajax.send("um_get_members",{data:_,success:function(e){um_member_directory_last_data[t]=e,um_build_template(u,e);var r=wp.template("um-members-pagination");u.find(".um-members-pagination-box").html(r(e)),u.data("total_pages",e.pagination.total_pages),e.pagination.total_pages?(u.find(".um-member-directory-sorting-options").prop("disabled",!1),u.find(".um-member-directory-view-type").removeClass("um-disabled")):(u.find(".um-member-directory-sorting-options").prop("disabled",!0),u.find(".um-member-directory-view-type").addClass("um-disabled")),wp.hooks.doAction("um_member_directory_loaded",u,e),um_init_new_dropdown(),um_members_hide_preloader(u)},error:function(e){console.log(e),um_members_hide_preloader(u)}})}else setTimeout(um_ajax_get_members,600,u,e)}function um_build_template(e,r){var t=e.data("view_type"),a=wp.template("um-member-"+t+"-"+um_members_get_hash(e));e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-members-wrapper").prepend(a(r.users));var i=wp.template("um-members-header");e.find(".um-members-intro").remove();var m=wp.hooks.applyFilters("um_member_directory_generate_header",!1,e);(void 0!==r.is_search&&r.is_search||m)&&e.find(".um-members-wrapper").prepend(i(r)),e.addClass("um-loaded"),e.find(".um-members.um-members-grid").length&&UM_Member_Grid(e.find(".um-members.um-members-grid")),jQuery(document).trigger("um_build_template",[e,r]),jQuery(window).trigger("resize"),init_tipsy()}function UM_Member_Grid(e){e.find(".um-member").length&&e.imagesLoaded(function(){e.masonry({itemSelector:".um-member",columnWidth:".um-member",gutter:".um-gutter-sizer"}).on("layoutComplete",function(e,r){jQuery(document).trigger("um_grid_initialized",[e,r])})})}function um_get_filters_data(u){var _=[];return u.find(".um-search-filter").each(function(){var t,a,d,i=jQuery(this);if(i.find("input.um-datepicker-filter").length)d="datepicker",i.find("input.um-datepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(u,"filter_"+e+"_from"),t=um_get_data_for_directory(u,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=u.find('input.um-datepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("input.um-timepicker-filter").length)d="timepicker",i.find("input.um-timepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(u,"filter_"+e+"_from"),t=um_get_data_for_directory(u,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=u.find('input.um-timepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("select").length){d="select",t=i.find("select").attr("name"),a=i.find("select").data("placeholder"),m=void 0===(m=um_get_data_for_directory(u,"filter_"+t))?[]:m.split("||"),jQuery.each(m,function(e){var r=i.find('select option[value="'+m[e]+'"]').data("value_label");_.push({name:t,label:a,value_label:r,value:m[e],type:d})})}else if(i.hasClass("um-text-filter-type")&&i.find('input[type="text"]').length){var m;d="text",t=i.find('input[type="text"]').attr("name"),a=i.find('input[type="text"]').attr("placeholder"),void 0===(m=um_get_data_for_directory(u,"filter_"+t))&&(m=""),""!=m&&_.push({name:t,label:a,value_label:m,value:m,type:d})}else if(i.find("div.ui-slider").length){d="slider",t=i.find("div.ui-slider").data("field_name");var e,r=um_get_data_for_directory(u,"filter_"+t+"_from"),s=um_get_data_for_directory(u,"filter_"+t+"_to");if(void 0===r&&void 0===s)return;e=r===s?i.find("div.um-slider-range").data("placeholder-s").replace("{value}",r).replace("{field_label}",i.find("div.um-slider-range").data("label")):i.find("div.um-slider-range").data("placeholder-p").replace("{min_range}",r).replace("{max_range}",s).replace("{field_label}",i.find("div.um-slider-range").data("label")),a=i.find("div.um-slider-range").data("label"),_.push({name:t,label:a,value_label:e,value:[r,s],type:d})}else _=wp.hooks.applyFilters("um_member_directory_get_filter_data",_,u,i)}),_}function um_change_tag(e){var r=um_get_filters_data(e);e.find(".um-members-filter-tag").remove();var t=e.find(".um-filtered-line");if(t.length){var a=wp.template("um-members-filtered-line");t.prepend(a({filters:r})),0===e.find(".um-members-filter-remove").length?(e.find(".um-clear-filters").hide(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(e.find(".um-clear-filters").show(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"))}}function um_run_search(e){if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=um_get_data_for_directory(e,"search"),t=e.find(".um-search-line").val();if(t===r||""===t&&void 0===r)um_members_hide_preloader(e);else{e.data("general_search",t),um_set_url_from_data(e,"search",t),e.data("page",1),um_set_url_from_data(e,"page","");var a=!1;if(!(a=wp.hooks.applyFilters("um_member_directory_ignore_after_search",a,e)))if(1===e.data("must-search")&&(t=um_get_search(e),0===e.find(".um-members-filter-remove").length&&!t))return e.data("searched",0),e.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),wp.hooks.doAction("um_member_directory_clear_not_searched",e),void um_members_hide_preloader(e);e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}}jQuery(document.body).ready(function(){jQuery(".um-directory .um-search-filter select").each(function(){1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2()}),jQuery(document.body).on("mouseover",".um-directory .um-member-directory-view-type",function(){if(!jQuery(this).hasClass("um-disabled")){var e=jQuery(this).find(".um-member-directory-view-type-a:visible");e.hide(),e.next().length?e.next().show().tipsy("show"):jQuery(this).find(".um-member-directory-view-type-a:first").show().tipsy("show")}}).on("mouseout",".um-directory .um-member-directory-view-type",function(){jQuery(this).hasClass("um-disabled")||(jQuery(this).find(".um-member-directory-view-type-a").hide().tipsy("hide"),jQuery(this).find('.um-member-directory-view-type-a[data-type="'+jQuery(this).parents(".um-directory").data("view_type")+'"]').show())}),jQuery(document.body).on("click",".um-directory .um-member-directory-view-type-a",function(){var e=jQuery(this).parents(".um-directory");if(um_is_directory_busy(e))return!1;var r=jQuery(this),t=r.parents(".um-member-directory-view-type");if(!t.hasClass("um-disabled")){um_members_show_preloader(e);var a=t.find(".um-member-directory-view-type-a:visible");a.hide(),a.next().length?a.next().show().tipsy("show"):t.find(".um-member-directory-view-type-a:first").show().tipsy("show");var i=um_member_directory_last_data[um_members_get_hash(e)];if(null!==i){var m=r.data("type");um_set_url_from_data(e,"view_type",m),e.data("view_type",m),um_build_template(e,i),um_init_new_dropdown()}um_members_hide_preloader(e)}}),jQuery(document.body).on("click",".um-directory .um-do-search",function(){um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("keypress",".um-directory .um-search-line",function(e){13===e.which&&um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("click",".um-directory .um-member-directory-sorting-a .um-new-dropdown li a",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&1!==jQuery(this).data("selected")){um_members_show_preloader(e);var r=jQuery(this).data("value");e.data("sorting",r),um_set_url_from_data(e,"sort",r),um_ajax_get_members(e),jQuery(this).parents(".um-new-dropdown").find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),jQuery(this).data("selected",1).prop("data-selected",1).attr("data-selected",1),jQuery(this).parents(".um-member-directory-sorting-a").find("> a").html(jQuery(this).html())}}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){if(!jQuery(this).hasClass("disabled")){var e,r=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(r))um_members_show_preloader(r),1===(e="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?1*r.data("page")-1:"next"===jQuery(this).data("page")?1*r.data("page")+1:"last"===jQuery(this).data("page")?parseInt(r.data("total_pages")):parseInt(jQuery(this).data("page")))?(r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled")):(e===parseInt(r.data("total_pages"))?r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass("disabled")),r.find(".pagi").removeClass("current"),r.find('.pagi[data-page="'+e+'"]').addClass("current"),r.data("page",e),um_set_url_from_data(r,"page",1===e?"":e),um_ajax_get_members(r)}}),jQuery(document.body).on("change",".um-directory .um-members-pagi-dropdown",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).val();e.find(".pagi").removeClass("current"),e.find('.pagi[data-page="'+r+'"]').addClass("current"),e.data("page",r),um_set_url_from_data(e,"page",1===r?"":r),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-more").hide(),r.find(".um-member-meta-main").slideDown(),r.find(".um-member-less").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-less").hide(),r.find(".um-member-meta-main").slideUp(),r.find(".um-member-more").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-more").hide(),r.find(".um-member-meta").slideDown(function(){UM_Member_Grid(t)}),r.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(t)},100),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-less").hide(),r.find(".um-member-meta").slideUp(function(){r.find(".um-member-more").fadeIn(),UM_Member_Grid(t)}),!1}),jQuery(".um-member-directory-filters-a").click(function(){var e=jQuery(this),r=e.parents(".um-directory").find(".um-search");r.is(":visible")?r.slideUp(250,function(){e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}):r.slideDown({duration:250,start:function(){jQuery(this).css({display:"grid"}),e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}})}),jQuery(document.body).on("change",".um-directory .um-search-filter select",function(){if(""!==jQuery(this).val()){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).prop("name"),t=um_get_data_for_directory(e,"filter_"+r);t=void 0===t?[]:t.split("||"),-1===jQuery.inArray(jQuery(this).val(),t)&&(t.push(jQuery(this).val()),um_set_url_from_data(e,"filter_"+r,t=t.join("||")),e.data("page",1),um_set_url_from_data(e,"page","")),jQuery(this).find('option[value="'+jQuery(this).val()+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2(),jQuery(this).val("").trigger("change"),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled")}}}),jQuery(document.body).on("blur",'.um-directory .um-search-filter.um-text-filter-type input[type="text"]',function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){var r=jQuery(this).val(),t=jQuery(this).prop("name"),a=um_get_data_for_directory(e,"filter_"+t);void 0===a&&(a=""),r!==a&&(um_members_show_preloader(e),um_set_url_from_data(e,"filter_"+t,r),e.data("page",1),um_set_url_from_data(e,"page",""),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),jQuery(document.body).on("keypress",'.um-directory .um-search-filter.um-text-filter-type input[type="text"]',function(e){if(13===e.which){var r=jQuery(this).parents(".um-directory");if(um_is_directory_busy(r))return;var t=jQuery(this).val(),a=jQuery(this).prop("name"),i=um_get_data_for_directory(r,"filter_"+a);if(void 0===i&&(i=""),t===i)return;um_members_show_preloader(r),um_set_url_from_data(r,"filter_"+a,t),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}),jQuery(document.body).on("click",".um-directory .um-members-filter-remove",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&e){um_members_show_preloader(e);var r=jQuery(this).data("value"),t=jQuery(this).data("name"),a=jQuery(this).data("type");if("text"===a)um_set_url_from_data(e,"filter_"+t,""),jQuery('.um-search-filter input[name="'+t+'"]').val("");else if("select"===a){var i=um_get_data_for_directory(e,"filter_"+t);i=void 0===i?[]:i.split("||"),-1!==jQuery.inArray(r.toString(),i)&&(i=jQuery.grep(i,function(e){return e!==r.toString()})),i.length||(i=""),um_set_url_from_data(e,"filter_"+t,i);var m=jQuery('.um-search-filter select[name="'+t+'"]');m.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<m.find("option:not(:disabled)").length&&m.prop("disabled",!1),m.select2("destroy").select2(),0<e.find('.um-search-filter select[data-um-parent="'+t+'"]').length&&m.trigger("change")}else if("slider"===a){um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to","");var d=jQuery(".um-search-filter #"+t+"_min").siblings(".um-slider"),s=d.slider("option");d.slider("values",[s.min,s.max]),jQuery(".um-search-filter #"+t+"_min").val(""),jQuery(".um-search-filter #"+t+"_max").val(""),um_set_range_label(d)}else"datepicker"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to",""),jQuery(".um-search-filter #"+t+"_from").val(""),jQuery(".um-search-filter #"+t+"_to").val("")):"timepicker"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to",""),jQuery(".um-search-filter #"+t+"_from").val(""),jQuery(".um-search-filter #"+t+"_to").val("")):wp.hooks.doAction("um_member_directory_filter_remove",a,e,t,r);e.data("page",1),um_set_url_from_data(e,"page",""),jQuery(this).tipsy("hide"),jQuery(this).parents(".um-members-filter-tag").remove(),0===e.find(".um-members-filter-remove").length?e.find(".um-clear-filters").hide():e.find(".um-clear-filters").show();var u=!1;if(!(u=wp.hooks.applyFilters("um_member_directory_ignore_after_search",u,e)))if(1===e.data("must-search")){var _=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!_)return e.data("searched",0),e.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),wp.hooks.doAction("um_member_directory_clear_not_searched",e),void um_members_hide_preloader(e)}e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-clear-filters-a",function(){var s=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(s)){um_members_show_preloader(s),s.find(".um-members-filter-remove").each(function(){var r=jQuery(this).data("value"),e=jQuery(this).data("name"),t=jQuery(this).data("type");if("text"===t)um_set_url_from_data(s,"filter_"+e,""),jQuery('.um-search-filter input[name="'+e+'"]').val("");else if("select"===t){var a=um_get_data_for_directory(s,"filter_"+e);a=void 0===a?[]:a.split("||"),-1!==jQuery.inArray(r.toString(),a)&&(a=jQuery.grep(a,function(e){return e!==r.toString()})),a.length||(a=""),um_set_url_from_data(s,"filter_"+e,a);var i=jQuery('.um-search-filter select[name="'+e+'"]');i.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<i.find("option:not(:disabled)").length&&i.prop("disabled",!1),i.select2("destroy").select2(),0<s.find('.um-search-filter select[data-um-parent="'+e+'"]').length&&i.trigger("change")}else if("slider"===t){um_set_url_from_data(s,"filter_"+e+"_from",""),um_set_url_from_data(s,"filter_"+e+"_to","");var m=jQuery(".um-search-filter #"+e+"_min").siblings(".um-slider"),d=m.slider("option");m.slider("values",[d.min,d.max]),jQuery(".um-search-filter #"+e+"_min").val(""),jQuery(".um-search-filter #"+e+"_max").val(""),um_set_range_label(m)}else"datepicker"===t?(um_set_url_from_data(s,"filter_"+e+"_from",""),um_set_url_from_data(s,"filter_"+e+"_to",""),jQuery(".um-search-filter #"+e+"_from").val(""),jQuery(".um-search-filter #"+e+"_to").val("")):"timepicker"===t?(um_set_url_from_data(s,"filter_"+e+"_from",""),um_set_url_from_data(s,"filter_"+e+"_to",""),jQuery(".um-search-filter #"+e+"_from").val(""),jQuery(".um-search-filter #"+e+"_to").val("")):wp.hooks.doAction("um_member_directory_clear_filters",t,s,e,r)}),s.data("page",1),um_set_url_from_data(s,"page",""),s.find(".um-members-filter-tag").remove(),0===s.find(".um-members-filter-remove").length?(s.find(".um-clear-filters").hide(),s.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(s.find(".um-clear-filters").show(),s.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"));var e=!1;if(!(e=wp.hooks.applyFilters("um_member_directory_ignore_after_search",e,s)))if(1===s.data("must-search"))if(!um_get_search(s))return s.data("searched",0),s.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),s.find(".um-member-directory-sorting-options").prop("disabled",!0),s.find(".um-member-directory-view-type").addClass("um-disabled"),wp.hooks.doAction("um_member_directory_clear_not_searched",s),void um_members_hide_preloader(s);s.find(".um-member-directory-sorting-options").prop("disabled",!1),s.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(s)}}),wp.hooks.doAction("um_member_directory_on_first_pages_loading"),jQuery(".um-directory").each(function(){var e=jQuery(this),r=um_members_get_hash(e);um_member_directories.push(r),e.find(".um-search").length&&(e.find(".um-search").is(":visible")||e.find(".um-search").css({display:"grid"}).slideUp(1)),e.find(".um-slider").each(function(){var e=jQuery(this),t=e.parents(".um-directory"),a=e.data("field_name"),r=um_get_data_for_directory(t,"filter_"+a+"_from"),i=um_get_data_for_directory(t,"filter_"+a+"_to");void 0===r&&(r=parseInt(e.data("min"))),void 0===i&&(i=parseInt(e.data("max")));var m=[r,i];e.slider({range:!0,min:parseInt(e.data("min")),max:parseInt(e.data("max")),values:m,create:function(e,r){},step:1,slide:function(e,r){um_set_range_label(jQuery(this),r)},stop:function(e,r){um_is_directory_busy(t)||(um_members_show_preloader(t),um_set_url_from_data(t,"filter_"+a+"_from",r.values[0]),um_set_url_from_data(t,"filter_"+a+"_to",r.values[1]),t.data("page",1),um_set_url_from_data(t,"page",""),um_ajax_get_members(t),um_change_tag(t),t.data("searched",1),t.find(".um-member-directory-sorting-options").prop("disabled",!1),t.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),um_set_range_label(e)}),e.find(".um-datepicker-filter").each(function(){var s=jQuery(this),u=new Date(1e3*s.data("date_min")),_=new Date(1e3*s.data("date_max")),e=s.pickadate({selectYears:!0,min:u,max:_,formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){s.blur()},onClose:function(){s.blur()},onSet:function(e){if(e.select){var r=s.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=s.data("filter_name"),a=s.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");void 0===i&&(i=u/1e3),void 0===m&&(m=_/1e3);var d=e.select/1e3;s.val();"from"===a?i=d:"to"===a&&(m=d),um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}}).pickadate("picker"),r=s.data("filter_name"),t=s.data("range"),a=um_get_data_for_directory(s.parents(".um-directory"),"filter_"+r+"_"+t);void 0!==a&&e.set("select",1e3*a)}),e.find(".um-timepicker-filter").each(function(){var u=jQuery(this),_=u.attr("id"),o=u.data("filter_name"),l=u.attr("data-min"),n=u.attr("data-max"),e=l.split(":"),r=n.split(":"),t=u.pickatime({format:u.data("format"),interval:parseInt(u.data("intervals")),min:[e[0],e[1]],max:[r[0],r[1]],formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){u.blur()},onClose:function(){u.blur()},onSet:function(e){if(e.select){var r=u.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=u.data("filter_name"),a=u.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");if(void 0===i&&(i=l),void 0===m&&(m=n),void 0!==e.select){var d=um_time_convert(e.select,a);"from"===a?i=d:"to"===a&&(m=d)}else"from"===a?i=l:"to"===a&&(m=n);var s=jQuery("#"+_).val();"from"===u.data("range")?jQuery("#"+o+"_to").pickatime("picker").set("min",s):jQuery("#"+o+"_from").pickatime("picker").set("max",s),um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}}).pickatime("picker"),a=u.data("filter_name"),i=u.data("range"),m=um_get_data_for_directory(u.parents(".um-directory"),"filter_"+a+"_"+i);if(void 0!==m){var d=m.split(":");t.set("select",60*d[0]+1*d[1])}}),wp.hooks.doAction("um_member_directory_on_init",e,r);var t=!1;if(!(t=wp.hooks.applyFilters("um_member_directory_ignore_after_search",t,e))&&1===e.data("must-search")){var a=um_get_search(e);if(!um_get_filters_data(e).length&&!a)return}wp.hooks.applyFilters("um_member_directory_prevent_default_first_loading",!1,e,r)||(um_members_show_preloader(e),um_ajax_get_members(e,{first_load:!0}),um_change_tag(e))}),window.addEventListener("popstate",function(e){jQuery(".um-directory").each(function(){var d=jQuery(this),e=um_members_get_hash(d);(um_member_directories.push(e),um_members_show_preloader(d),d.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),d.find(".um-member-directory-search-line").length)&&(void 0===(s=um_get_data_for_directory(d,"search"))&&(s=""),d.data("general_search",s),d.find(".um-search-line").val(s));var r=um_get_data_for_directory(d,"page");if(void 0===r?r=1:r>d.data("total_pages")&&(r=d.data("total_pages")),d.data("page",r).attr("data-page",r),d.find(".um-member-directory-sorting").length){var t=um_get_data_for_directory(d,"sort");void 0===t&&(t=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]').find('a[data-default="1"]').data("value")),d.data("sorting",t);var a=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]');a.find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),a.find('a[data-value="'+t+'"]').data("selected",1).prop("data-selected",1).attr("data-selected",1),d.find(".um-member-directory-sorting-a").find("> a").html(a.find('a[data-value="'+t+'"]').html())}if(d.find(".um-member-directory-view-type").length){var i=um_get_data_for_directory(d,"view_type");void 0===i&&(i=d.find('.um-member-directory-view-type-a[data-default="1"]').data("type")),d.data("view_type",i),d.find(".um-member-directory-view-type .um-member-directory-view-type-a").hide(),d.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="'+i+'"]').show()}d.find(".um-datepicker-filter").each(function(){var e=jQuery(this),r=e.pickadate("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);void 0!==i?r.set("select",1e3*i):r.clear()}),d.find(".um-slider").each(function(){var e=jQuery(this),r=e.data("field_name"),t=um_get_data_for_directory(d,"filter_"+r+"_from"),a=um_get_data_for_directory(d,"filter_"+r+"_to");void 0===t&&(t=e.data("min")),t=parseInt(t),void 0===a&&(a=e.data("max")),a=parseInt(a),e.slider("values",[t,a]),um_set_range_label(e)}),d.find(".um-timepicker-filter").each(function(){var e=jQuery(this),r=e.pickatime("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);if(void 0!==i){var m=i.split(":");r.set("select",60*m[0])}else r.clear()});var m=!1;if(!(m=wp.hooks.applyFilters("um_member_directory_ignore_after_search",m,d))&&1===d.data("must-search")){var s=um_get_search(d);if(!um_get_filters_data(d).length&&!s)return d.data("searched",0),void um_members_hide_preloader(d);d.data("searched",1)}wp.hooks.applyFilters("um_member_directory_prevent_default_first_loading",!1,d,e)||(um_ajax_get_members(d),um_change_tag(d))})})});
includes/admin/assets/css/um-admin-modal.css CHANGED
@@ -181,7 +181,7 @@
181
 
182
  .um-admin-btn-content {
183
  display: none;
184
- padding: 10px 0 0 0;
185
  }
186
 
187
  .um-admin-btn-content p {
@@ -190,6 +190,15 @@
190
  padding: 0 !important;
191
  }
192
 
 
 
 
 
 
 
 
 
 
193
  .dynamic-mce-content {display: none}
194
 
195
  /*
181
 
182
  .um-admin-btn-content {
183
  display: none;
184
+ padding: 5px 0 0 0;
185
  }
186
 
187
  .um-admin-btn-content p {
190
  padding: 0 !important;
191
  }
192
 
193
+ .um-admin-btn-content p.um-admin-conditions-notice {
194
+ width: 100%;
195
+ margin: 0 0 9px 0 !important;
196
+ }
197
+
198
+ .um-admin-btn-content .um-admin-cur-condition:not(:last-child) {
199
+ margin: 0 0 5px 0;
200
+ }
201
+
202
  .dynamic-mce-content {display: none}
203
 
204
  /*
includes/admin/assets/js/um-admin-blocks.js CHANGED
@@ -1,24 +1,24 @@
1
  'use strict';
2
 
3
- /**
4
- * Add Control element
5
- */
6
- var um_el = wp.element.createElement;
7
-
8
  var um_components = wp.components,
9
- umToggleControl = um_components.ToggleControl,
10
  umSelectControl = um_components.SelectControl,
11
- umTextareaControl = um_components.TextareaControl,
12
- umPanelBody = um_components.PanelBody;
 
 
 
 
13
 
14
  var um_block_restriction = wp.compose.createHigherOrderComponent( function( BlockEdit ) {
15
  var um_condition_fields = {
16
- um_who_access:'um_block_settings_hide',
17
- um_roles_access:'um_block_settings_hide',
18
- um_message_type:'um_block_settings_hide',
19
- um_message_content:'um_block_settings_hide'
20
  };
21
 
 
 
22
  return function( props ) {
23
 
24
  if ( props.attributes.um_is_restrict !== true ) {
@@ -53,20 +53,22 @@ var um_block_restriction = wp.compose.createHigherOrderComponent( function( Bloc
53
  }
54
  }
55
 
56
- return um_el(
 
 
57
  wp.element.Fragment,
58
  {},
59
- um_el( BlockEdit, props ),
60
- um_el(
61
  wp.editor.InspectorControls,
62
  {},
63
- um_el(
64
- umPanelBody,
65
  {
66
  title: wp.i18n.__( 'UM access Controls', 'ultimate-member' )
67
  },
68
- um_el(
69
- umToggleControl,
70
  {
71
  label: wp.i18n.__( 'Restrict access?', 'ultimate-member' ),
72
  checked: props.attributes.um_is_restrict,
@@ -80,10 +82,12 @@ var um_block_restriction = wp.compose.createHigherOrderComponent( function( Bloc
80
  } else {
81
  um_condition_fields['um_who_access'] = '';
82
  }
 
 
83
  }
84
  }
85
  ),
86
- um_el(
87
  umSelectControl,
88
  {
89
  type: 'number',
@@ -117,10 +121,12 @@ var um_block_restriction = wp.compose.createHigherOrderComponent( function( Bloc
117
  um_condition_fields['um_message_type'] = '';
118
  um_condition_fields['um_roles_access'] = 'um_block_settings_hide';
119
  }
 
 
120
  }
121
  }
122
  ),
123
- um_el(
124
  umSelectControl,
125
  {
126
  multiple: true,
@@ -133,7 +139,7 @@ var um_block_restriction = wp.compose.createHigherOrderComponent( function( Bloc
133
  }
134
  }
135
  ),
136
- um_el(
137
  umSelectControl,
138
  {
139
  type: 'number',
@@ -164,7 +170,7 @@ var um_block_restriction = wp.compose.createHigherOrderComponent( function( Bloc
164
  }
165
  }
166
  ),
167
- um_el(
168
  umTextareaControl,
169
  {
170
  type: 'number',
@@ -175,7 +181,8 @@ var um_block_restriction = wp.compose.createHigherOrderComponent( function( Bloc
175
  props.setAttributes({ um_message_content: value });
176
  }
177
  }
178
- )
 
179
  )
180
  )
181
  );
@@ -208,6 +215,8 @@ var um_block_restrict_settings = {
208
  }
209
  };
210
 
 
 
211
 
212
  /**
213
  *
1
  'use strict';
2
 
 
 
 
 
 
3
  var um_components = wp.components,
 
4
  umSelectControl = um_components.SelectControl,
5
+ umTextareaControl = um_components.TextareaControl;
6
+
7
+
8
+ function um_admin_blocks_custom_fields( um_condition_fields, props ) {
9
+ return wp.hooks.applyFilters( 'um_admin_blocks_custom_fields', [], um_condition_fields, props );
10
+ }
11
 
12
  var um_block_restriction = wp.compose.createHigherOrderComponent( function( BlockEdit ) {
13
  var um_condition_fields = {
14
+ um_who_access: 'um_block_settings_hide',
15
+ um_roles_access: 'um_block_settings_hide',
16
+ um_message_type: 'um_block_settings_hide',
17
+ um_message_content: 'um_block_settings_hide'
18
  };
19
 
20
+ um_condition_fields = wp.hooks.applyFilters( 'um_admin_blocks_condition_fields_default', um_condition_fields );
21
+
22
  return function( props ) {
23
 
24
  if ( props.attributes.um_is_restrict !== true ) {
53
  }
54
  }
55
 
56
+ um_condition_fields = wp.hooks.applyFilters( 'um_admin_blocks_condition_fields', um_condition_fields, props );
57
+
58
+ return wp.element.createElement(
59
  wp.element.Fragment,
60
  {},
61
+ wp.element.createElement( BlockEdit, props ),
62
+ wp.element.createElement(
63
  wp.editor.InspectorControls,
64
  {},
65
+ wp.element.createElement(
66
+ wp.components.PanelBody,
67
  {
68
  title: wp.i18n.__( 'UM access Controls', 'ultimate-member' )
69
  },
70
+ wp.element.createElement(
71
+ wp.components.ToggleControl,
72
  {
73
  label: wp.i18n.__( 'Restrict access?', 'ultimate-member' ),
74
  checked: props.attributes.um_is_restrict,
82
  } else {
83
  um_condition_fields['um_who_access'] = '';
84
  }
85
+
86
+ um_condition_fields = wp.hooks.applyFilters( 'um_admin_blocks_condition_fields_on_change', um_condition_fields, 'um_is_restrict', value );
87
  }
88
  }
89
  ),
90
+ wp.element.createElement(
91
  umSelectControl,
92
  {
93
  type: 'number',
121
  um_condition_fields['um_message_type'] = '';
122
  um_condition_fields['um_roles_access'] = 'um_block_settings_hide';
123
  }
124
+
125
+ um_condition_fields = wp.hooks.applyFilters( 'um_admin_blocks_condition_fields_on_change', um_condition_fields, 'um_who_access', value );
126
  }
127
  }
128
  ),
129
+ wp.element.createElement(
130
  umSelectControl,
131
  {
132
  multiple: true,
139
  }
140
  }
141
  ),
142
+ wp.element.createElement(
143
  umSelectControl,
144
  {
145
  type: 'number',
170
  }
171
  }
172
  ),
173
+ wp.element.createElement(
174
  umTextareaControl,
175
  {
176
  type: 'number',
181
  props.setAttributes({ um_message_content: value });
182
  }
183
  }
184
+ ),
185
+ um_admin_blocks_custom_fields( um_condition_fields, props )
186
  )
187
  )
188
  );
215
  }
216
  };
217
 
218
+ um_block_restrict_settings = wp.hooks.applyFilters( 'um_admin_blocks_restrict_settings', um_block_restrict_settings );
219
+
220
 
221
  /**
222
  *
includes/admin/assets/js/um-admin-modal.js CHANGED
@@ -18,7 +18,7 @@ function um_admin_new_modal( id, ajax, size ) {
18
 
19
  um_admin_remove_modal();
20
 
21
- jQuery('body').addClass('um-admin-modal-open').append('<div class="um-admin-overlay" /><div class="um-admin-modal" />');
22
  jQuery('#' + id).prependTo('.um-admin-modal');
23
  jQuery('#' + id).show();
24
  jQuery('.um-admin-modal').show();
18
 
19
  um_admin_remove_modal();
20
 
21
+ jQuery('body').addClass('um-admin-modal-open').append('<div class="um-admin-overlay"></div><div class="um-admin-modal"></div>');
22
  jQuery('#' + id).prependTo('.um-admin-modal');
23
  jQuery('#' + id).show();
24
  jQuery('.um-admin-modal').show();
includes/admin/core/class-admin-builder.php CHANGED
@@ -227,8 +227,16 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
227
 
228
  <div class="um-admin-clear"></div>
229
  </div>
 
 
 
 
 
 
 
230
  <p><a href="javascript:void(0);" class="um-admin-new-condition button button-primary um-admin-tipsy-n" title="Add new condition"><?php _e( 'Add new rule', 'ultimate-member' ); ?></a></p>
231
  <p class="um-admin-reset-conditions"><a href="javascript:void(0);" class="button"><?php _e( 'Reset all rules', 'ultimate-member' ); ?></a></p>
 
232
  <div class="um-admin-clear"></div>
233
 
234
  <?php if ( isset( $edit_array['conditions'] ) && count( $edit_array['conditions'] ) != 0 ) {
227
 
228
  <div class="um-admin-clear"></div>
229
  </div>
230
+ <p class="um-admin-conditions-notice">
231
+ <small>
232
+ <?php _e( 'Use the condition operator `equals to` or `not equals` if the parent field has a single option.', 'ultimate-member' ); ?>
233
+ <br><?php _e( 'Use the condition operator `greater than` or `less than` if the parent field is a number.', 'ultimate-member' ); ?>
234
+ <br><?php _e( 'Use the condition operator `contains` if the parent field has multiple options.', 'ultimate-member' ); ?>
235
+ </small>
236
+ </p>
237
  <p><a href="javascript:void(0);" class="um-admin-new-condition button button-primary um-admin-tipsy-n" title="Add new condition"><?php _e( 'Add new rule', 'ultimate-member' ); ?></a></p>
238
  <p class="um-admin-reset-conditions"><a href="javascript:void(0);" class="button"><?php _e( 'Reset all rules', 'ultimate-member' ); ?></a></p>
239
+
240
  <div class="um-admin-clear"></div>
241
 
242
  <?php if ( isset( $edit_array['conditions'] ) && count( $edit_array['conditions'] ) != 0 ) {
includes/admin/core/class-admin-enqueue.php CHANGED
@@ -437,7 +437,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
437
  return;
438
  }
439
 
440
- wp_register_script( 'um_block_js', $this->js_url . 'um-admin-blocks.js', array( 'wp-i18n', 'wp-blocks', 'wp-components' ), ultimatemember_version, true );
441
  wp_set_script_translations( 'um_block_js', 'ultimate-member' );
442
 
443
  $restrict_options = array();
437
  return;
438
  }
439
 
440
+ wp_register_script( 'um_block_js', $this->js_url . 'um-admin-blocks.js', array( 'wp-i18n', 'wp-blocks', 'wp-components', 'wp-hooks' ), ultimatemember_version, true );
441
  wp_set_script_translations( 'um_block_js', 'ultimate-member' );
442
 
443
  $restrict_options = array();
includes/admin/core/class-admin-metabox.php CHANGED
@@ -1130,7 +1130,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
1130
  }
1131
  }
1132
 
1133
- update_post_meta( $post_id, '_um_search_filters_gmt', intval( $_POST['um-gmt-offset'] ) );
1134
  }
1135
 
1136
 
1130
  }
1131
  }
1132
 
1133
+ update_post_meta( $post_id, '_um_search_filters_gmt', (int) $_POST['um-gmt-offset'] );
1134
  }
1135
 
1136
 
includes/admin/core/class-admin-settings.php CHANGED
@@ -1703,7 +1703,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
1703
 
1704
  if ( ( ! wp_verify_nonce( $nonce, 'um-settings-nonce' ) || empty( $nonce ) ) || ! current_user_can( 'manage_options' ) ) {
1705
  // This nonce is not valid.
1706
- wp_die( 'Security Check' );
1707
  }
1708
 
1709
  /**
@@ -2689,7 +2689,7 @@ Require a strong password: <?php echo $this->info_value( UM()->options()->get('
2689
  --- UM Access Configuration ---
2690
 
2691
  Panic Key: <?php echo UM()->options()->get('panic_key') . "\n"; ?>
2692
- Global Site Access: <?php $arr = array('Site accessible to Everyone','','Site accessible to Logged In Users'); echo $arr[ intval( UM()->options()->get('accessible') ) ] . "\n"; ?>
2693
  <?php if( UM()->options()->get('accessible') == 2 ) { ?>
2694
  Custom Redirect URL: <?php echo UM()->options()->get('access_redirect')."\n";?>
2695
  Exclude the following URLs:<?php echo "\t\t\t\t".implode("\t\n\t\t\t\t\t\t\t\t\t\t",UM()->options()->get('access_exclude_uris') )."\n";?>
1703
 
1704
  if ( ( ! wp_verify_nonce( $nonce, 'um-settings-nonce' ) || empty( $nonce ) ) || ! current_user_can( 'manage_options' ) ) {
1705
  // This nonce is not valid.
1706
+ wp_die( __( 'Security Check', 'ultimate-member' ) );
1707
  }
1708
 
1709
  /**
2689
  --- UM Access Configuration ---
2690
 
2691
  Panic Key: <?php echo UM()->options()->get('panic_key') . "\n"; ?>
2692
+ Global Site Access: <?php $arr = array('Site accessible to Everyone','','Site accessible to Logged In Users'); echo $arr[ (int) UM()->options()->get('accessible') ] . "\n"; ?>
2693
  <?php if( UM()->options()->get('accessible') == 2 ) { ?>
2694
  Custom Redirect URL: <?php echo UM()->options()->get('access_redirect')."\n";?>
2695
  Exclude the following URLs:<?php echo "\t\t\t\t".implode("\t\n\t\t\t\t\t\t\t\t\t\t",UM()->options()->get('access_exclude_uris') )."\n";?>
includes/admin/core/class-admin-upgrade.php CHANGED
@@ -186,7 +186,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
186
  if ( $handle ) {
187
  while ( false !== ( $filename = readdir( $handle ) ) ) {
188
  if ( $filename != '.' && $filename != '..' ) {
189
- if ( is_dir( $this->packages_dir . DIRECTORY_SEPARATOR . $filename ) ) {
190
  $update_versions[] = $filename;
191
  }
192
  }
@@ -205,7 +205,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
205
  */
206
  function init_packages_ajax() {
207
  foreach ( $this->necessary_packages as $package ) {
208
- $hooks_file = $this->packages_dir . DIRECTORY_SEPARATOR . $package . DIRECTORY_SEPARATOR . 'hooks.php';
209
  if ( file_exists( $hooks_file ) ) {
210
  $pack_ajax_hooks = include_once $hooks_file;
211
 
@@ -222,7 +222,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
222
  */
223
  function init_packages_ajax_handlers() {
224
  foreach ( $this->necessary_packages as $package ) {
225
- $handlers_file = $this->packages_dir . DIRECTORY_SEPARATOR . $package . DIRECTORY_SEPARATOR . 'functions.php';
226
  if ( file_exists( $handlers_file ) ) {
227
  include_once $handlers_file;
228
  }
@@ -257,6 +257,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
257
  </div>
258
 
259
  <script type="text/javascript">
 
260
  var um_packages;
261
 
262
  jQuery( document ).ready( function() {
@@ -293,23 +294,26 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
293
  */
294
  function um_run_upgrade() {
295
  if ( um_packages.length ) {
296
- var pack = um_packages.shift();
297
- um_add_upgrade_log( '<br />=================================================================' );
298
- um_add_upgrade_log( '<h4 style="font-weight: bold;">Prepare package "' + pack + '" version...</h4>' );
299
- jQuery.ajax({
300
- url: '<?php echo esc_js( admin_url( 'admin-ajax.php' ) ) ?>',
301
- type: 'POST',
302
- dataType: 'html',
303
- data: {
304
- action: 'um_run_package',
305
- pack: pack,
306
- nonce: um_admin_scripts.nonce
307
- },
308
- success: function( html ) {
309
- um_add_upgrade_log( 'Package "' + pack + '" is ready. Start the execution...' );
310
- jQuery( '#run_upgrade' ).after( html );
311
- }
312
- });
 
 
 
313
  } else {
314
  window.location = '<?php echo add_query_arg( array( 'page' => 'ultimatemember', 'msg' => 'updated' ), admin_url( 'admin.php' ) ) ?>'
315
  }
@@ -353,7 +357,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
353
  exit('');
354
  } else {
355
  ob_start();
356
- include_once $this->packages_dir . DIRECTORY_SEPARATOR . sanitize_text_field( $_POST['pack'] ) . DIRECTORY_SEPARATOR . 'init.php';
357
  ob_get_flush();
358
  exit;
359
  }
186
  if ( $handle ) {
187
  while ( false !== ( $filename = readdir( $handle ) ) ) {
188
  if ( $filename != '.' && $filename != '..' ) {
189
+ if ( is_dir( $this->packages_dir . $filename ) ) {
190
  $update_versions[] = $filename;
191
  }
192
  }
205
  */
206
  function init_packages_ajax() {
207
  foreach ( $this->necessary_packages as $package ) {
208
+ $hooks_file = $this->packages_dir . $package . DIRECTORY_SEPARATOR . 'hooks.php';
209
  if ( file_exists( $hooks_file ) ) {
210
  $pack_ajax_hooks = include_once $hooks_file;
211
 
222
  */
223
  function init_packages_ajax_handlers() {
224
  foreach ( $this->necessary_packages as $package ) {
225
+ $handlers_file = $this->packages_dir . $package . DIRECTORY_SEPARATOR . 'functions.php';
226
  if ( file_exists( $handlers_file ) ) {
227
  include_once $handlers_file;
228
  }
257
  </div>
258
 
259
  <script type="text/javascript">
260
+ var um_request_throttle = 15000;
261
  var um_packages;
262
 
263
  jQuery( document ).ready( function() {
294
  */
295
  function um_run_upgrade() {
296
  if ( um_packages.length ) {
297
+ // 30s between upgrades
298
+ setTimeout( function () {
299
+ var pack = um_packages.shift();
300
+ um_add_upgrade_log( '<br />=================================================================' );
301
+ um_add_upgrade_log( '<h4 style="font-weight: bold;">Prepare package "' + pack + '" version...</h4>' );
302
+ jQuery.ajax({
303
+ url: '<?php echo esc_js( admin_url( 'admin-ajax.php' ) ) ?>',
304
+ type: 'POST',
305
+ dataType: 'html',
306
+ data: {
307
+ action: 'um_run_package',
308
+ pack: pack,
309
+ nonce: um_admin_scripts.nonce
310
+ },
311
+ success: function( html ) {
312
+ um_add_upgrade_log( 'Package "' + pack + '" is ready. Start the execution...' );
313
+ jQuery( '#run_upgrade' ).after( html );
314
+ }
315
+ });
316
+ }, um_request_throttle );
317
  } else {
318
  window.location = '<?php echo add_query_arg( array( 'page' => 'ultimatemember', 'msg' => 'updated' ), admin_url( 'admin.php' ) ) ?>'
319
  }
357
  exit('');
358
  } else {
359
  ob_start();
360
+ include_once $this->packages_dir . sanitize_text_field( $_POST['pack'] ) . DIRECTORY_SEPARATOR . 'init.php';
361
  ob_get_flush();
362
  exit;
363
  }
includes/admin/core/class-admin-users.php CHANGED
@@ -138,7 +138,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) {
138
 
139
  case 'um_delete':
140
  if ( is_admin() ) {
141
- wp_die( 'This action is not allowed in backend.', 'ultimate-member' );
142
  }
143
  UM()->user()->delete();
144
  break;
@@ -328,11 +328,10 @@ if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) {
328
  */
329
  function filter_users_by_status( $query ) {
330
  global $wpdb, $pagenow;
 
331
 
332
- if ( is_admin() && $pagenow == 'users.php' && ! empty( $_GET['um_status'] ) ) {
333
-
334
- $status = sanitize_key( $_GET['um_status'] );
335
-
336
  if ( $status == 'needs-verification' ) {
337
  $query->query_where = str_replace('WHERE 1=1',
338
  "WHERE 1=1 AND {$wpdb->users}.ID IN (
138
 
139
  case 'um_delete':
140
  if ( is_admin() ) {
141
+ wp_die( __( 'This action is not allowed in backend.', 'ultimate-member' ) );
142
  }
143
  UM()->user()->delete();
144
  break;
328
  */
329
  function filter_users_by_status( $query ) {
330
  global $wpdb, $pagenow;
331
+ if ( is_admin() && $pagenow == 'users.php' && ! empty( $_REQUEST['um_status'] ) ) {
332
 
333
+ $status = sanitize_key( $_REQUEST['um_status'] );
334
+
 
 
335
  if ( $status == 'needs-verification' ) {
336
  $query->query_where = str_replace('WHERE 1=1',
337
  "WHERE 1=1 AND {$wpdb->users}.ID IN (
includes/admin/core/packages/2.0-beta1/init.php CHANGED
@@ -23,7 +23,10 @@
23
  success: function( response ) {
24
  if ( typeof response.data != 'undefined' ) {
25
  um_add_upgrade_log( response.data.message );
26
- upgrade_roles();
 
 
 
27
  } else {
28
  um_wrong_ajax();
29
  }
@@ -50,7 +53,10 @@
50
  um_roles_data = response.data.roles;
51
 
52
  um_add_upgrade_log( '<?php echo esc_js( __( 'Upgrade Users...', 'ultimate-member' ) ) ?>' );
53
- get_users_per_role();
 
 
 
54
  } else {
55
  um_wrong_ajax();
56
  }
@@ -86,7 +92,9 @@
86
  um_add_upgrade_log( '<?php echo esc_js( __( 'Start users upgrading...', 'ultimate-member' ) ) ?>');
87
  users_pages = Math.ceil( response.data.count / users_per_page );
88
 
89
- update_user_per_page( role.role_key, role.key_in_meta );
 
 
90
  } else {
91
  um_wrong_ajax();
92
  }
@@ -96,7 +104,9 @@
96
  }
97
  });
98
  } else {
99
- upgrade_content_restriction();
 
 
100
  }
101
 
102
  return false;
@@ -120,7 +130,9 @@
120
  if ( typeof response.data != 'undefined' ) {
121
  um_add_upgrade_log( response.data.message );
122
  current_page++;
123
- update_user_per_page( role_key, key_in_meta );
 
 
124
  } else {
125
  um_wrong_ajax();
126
  }
@@ -130,7 +142,9 @@
130
  }
131
  });
132
  } else {
133
- get_users_per_role();
 
 
134
  }
135
  }
136
 
@@ -149,7 +163,9 @@
149
  success: function( response ) {
150
  if ( typeof response.data != 'undefined' ) {
151
  um_add_upgrade_log( response.data.message );
152
- upgrade_settings();
 
 
153
  } else {
154
  um_wrong_ajax();
155
  }
@@ -175,7 +191,9 @@
175
  success: function( response ) {
176
  if ( typeof response.data != 'undefined' ) {
177
  um_add_upgrade_log( response.data.message );
178
- upgrade_menus();
 
 
179
  } else {
180
  um_wrong_ajax();
181
  }
@@ -201,7 +219,9 @@
201
  success: function( response ) {
202
  if ( typeof response.data != 'undefined' ) {
203
  um_add_upgrade_log( response.data.message );
204
- upgrade_mc_lists();
 
 
205
  } else {
206
  um_wrong_ajax();
207
  }
@@ -227,7 +247,9 @@
227
  success: function( response ) {
228
  if ( typeof response.data != 'undefined' ) {
229
  um_add_upgrade_log( response.data.message );
230
- upgrade_social_login();
 
 
231
  } else {
232
  um_wrong_ajax();
233
  }
@@ -253,7 +275,9 @@
253
  success: function( response ) {
254
  if ( typeof response.data != 'undefined' ) {
255
  um_add_upgrade_log( response.data.message );
256
- upgrade_cpt();
 
 
257
  } else {
258
  um_wrong_ajax();
259
  }
@@ -279,7 +303,9 @@
279
  success: function( response ) {
280
  if ( typeof response.data != 'undefined' ) {
281
  um_add_upgrade_log( response.data.message );
282
- get_forums();
 
 
283
  } else {
284
  um_wrong_ajax();
285
  }
@@ -309,7 +335,9 @@
309
 
310
  forums_pages = Math.ceil( response.data.count / users_per_page );
311
 
312
- update_forums_per_page();
 
 
313
  } else {
314
  um_wrong_ajax();
315
  }
@@ -336,7 +364,9 @@
336
  if ( typeof response.data != 'undefined' ) {
337
  um_add_upgrade_log( response.data.message );
338
  current_page++;
339
- update_forums_per_page();
 
 
340
  } else {
341
  um_wrong_ajax();
342
  }
@@ -346,7 +376,9 @@
346
  }
347
  });
348
  } else {
349
- get_products();
 
 
350
  }
351
  }
352
 
@@ -370,8 +402,9 @@
370
  um_add_upgrade_log( response.data.message );
371
 
372
  products_pages = Math.ceil( response.data.count / users_per_page );
373
-
374
- update_products_per_page();
 
375
  } else {
376
  um_wrong_ajax();
377
  }
@@ -398,7 +431,9 @@
398
  if ( typeof response.data != 'undefined' ) {
399
  um_add_upgrade_log( response.data.message );
400
  current_page++;
401
- update_products_per_page();
 
 
402
  } else {
403
  um_wrong_ajax();
404
  }
@@ -408,7 +443,9 @@
408
  }
409
  });
410
  } else {
411
- upgrade_email_templates();
 
 
412
  }
413
  }
414
 
23
  success: function( response ) {
24
  if ( typeof response.data != 'undefined' ) {
25
  um_add_upgrade_log( response.data.message );
26
+
27
+ setTimeout( function () {
28
+ upgrade_roles();
29
+ }, um_request_throttle );
30
  } else {
31
  um_wrong_ajax();
32
  }
53
  um_roles_data = response.data.roles;
54
 
55
  um_add_upgrade_log( '<?php echo esc_js( __( 'Upgrade Users...', 'ultimate-member' ) ) ?>' );
56
+
57
+ setTimeout( function () {
58
+ get_users_per_role();
59
+ }, um_request_throttle );
60
  } else {
61
  um_wrong_ajax();
62
  }
92
  um_add_upgrade_log( '<?php echo esc_js( __( 'Start users upgrading...', 'ultimate-member' ) ) ?>');
93
  users_pages = Math.ceil( response.data.count / users_per_page );
94
 
95
+ setTimeout( function () {
96
+ update_user_per_page( role.role_key, role.key_in_meta );
97
+ }, um_request_throttle );
98
  } else {
99
  um_wrong_ajax();
100
  }
104
  }
105
  });
106
  } else {
107
+ setTimeout( function () {
108
+ upgrade_content_restriction();
109
+ }, um_request_throttle );
110
  }
111
 
112
  return false;
130
  if ( typeof response.data != 'undefined' ) {
131
  um_add_upgrade_log( response.data.message );
132
  current_page++;
133
+ setTimeout( function () {
134
+ update_user_per_page( role_key, key_in_meta );
135
+ }, um_request_throttle );
136
  } else {
137
  um_wrong_ajax();
138
  }
142
  }
143
  });
144
  } else {
145
+ setTimeout( function () {
146
+ get_users_per_role();
147
+ }, um_request_throttle );
148
  }
149
  }
150
 
163
  success: function( response ) {
164
  if ( typeof response.data != 'undefined' ) {
165
  um_add_upgrade_log( response.data.message );
166
+ setTimeout( function () {
167
+ upgrade_settings();
168
+ }, um_request_throttle );
169
  } else {
170
  um_wrong_ajax();
171
  }
191
  success: function( response ) {
192
  if ( typeof response.data != 'undefined' ) {
193
  um_add_upgrade_log( response.data.message );
194
+ setTimeout( function () {
195
+ upgrade_menus();
196
+ }, um_request_throttle );
197
  } else {
198
  um_wrong_ajax();
199
  }
219
  success: function( response ) {
220
  if ( typeof response.data != 'undefined' ) {
221
  um_add_upgrade_log( response.data.message );
222
+ setTimeout( function () {
223
+ upgrade_mc_lists();
224
+ }, um_request_throttle );
225
  } else {
226
  um_wrong_ajax();
227
  }
247
  success: function( response ) {
248
  if ( typeof response.data != 'undefined' ) {
249
  um_add_upgrade_log( response.data.message );
250
+ setTimeout( function () {
251
+ upgrade_social_login();
252
+ }, um_request_throttle );
253
  } else {
254
  um_wrong_ajax();
255
  }
275
  success: function( response ) {
276
  if ( typeof response.data != 'undefined' ) {
277
  um_add_upgrade_log( response.data.message );
278
+ setTimeout( function () {
279
+ upgrade_cpt();
280
+ }, um_request_throttle );
281
  } else {
282
  um_wrong_ajax();
283
  }
303
  success: function( response ) {
304
  if ( typeof response.data != 'undefined' ) {
305
  um_add_upgrade_log( response.data.message );
306
+ setTimeout( function () {
307
+ get_forums();
308
+ }, um_request_throttle );
309
  } else {
310
  um_wrong_ajax();
311
  }
335
 
336
  forums_pages = Math.ceil( response.data.count / users_per_page );
337
 
338
+ setTimeout( function () {
339
+ update_forums_per_page();
340
+ }, um_request_throttle );
341
  } else {
342
  um_wrong_ajax();
343
  }
364
  if ( typeof response.data != 'undefined' ) {
365
  um_add_upgrade_log( response.data.message );
366
  current_page++;
367
+ setTimeout( function () {
368
+ update_forums_per_page();
369
+ }, um_request_throttle );
370
  } else {
371
  um_wrong_ajax();
372
  }
376
  }
377
  });
378
  } else {
379
+ setTimeout( function () {
380
+ get_products();
381
+ }, um_request_throttle );
382
  }
383
  }
384
 
402
  um_add_upgrade_log( response.data.message );
403
 
404
  products_pages = Math.ceil( response.data.count / users_per_page );
405
+ setTimeout( function () {
406
+ update_products_per_page();
407
+ }, um_request_throttle );
408
  } else {
409
  um_wrong_ajax();
410
  }
431
  if ( typeof response.data != 'undefined' ) {
432
  um_add_upgrade_log( response.data.message );
433
  current_page++;
434
+ setTimeout( function () {
435
+ update_products_per_page();
436
+ }, um_request_throttle );
437
  } else {
438
  um_wrong_ajax();
439
  }
443
  }
444
  });
445
  } else {
446
+ setTimeout( function () {
447
+ upgrade_email_templates();
448
+ }, um_request_throttle );
449
  }
450
  }
451
 
includes/admin/core/packages/2.0.10/init.php CHANGED
@@ -16,7 +16,9 @@
16
  success: function( response ) {
17
  if ( typeof response.data != 'undefined' ) {
18
  um_add_upgrade_log( response.data.message );
19
- um_clear_cache2010();
 
 
20
  } else {
21
  um_wrong_ajax();
22
  }
16
  success: function( response ) {
17
  if ( typeof response.data != 'undefined' ) {
18
  um_add_upgrade_log( response.data.message );
19
+ setTimeout( function () {
20
+ um_clear_cache2010();
21
+ }, um_request_throttle );
22
  } else {
23
  um_wrong_ajax();
24
  }
includes/admin/core/packages/2.1.0-beta1/init.php CHANGED
@@ -17,7 +17,9 @@
17
  success: function( response ) {
18
  if ( typeof response.data != 'undefined' ) {
19
  um_add_upgrade_log( response.data.message );
20
- um_memberdir210beta1();
 
 
21
  } else {
22
  um_wrong_ajax();
23
  }
17
  success: function( response ) {
18
  if ( typeof response.data != 'undefined' ) {
19
  um_add_upgrade_log( response.data.message );
20
+ setTimeout( function () {
21
+ um_memberdir210beta1();
22
+ }, um_request_throttle );
23
  } else {
24
  um_wrong_ajax();
25
  }
includes/admin/core/packages/2.1.3-beta3/init.php CHANGED
@@ -24,7 +24,9 @@
24
 
25
  users_pages = Math.ceil( response.data.count / users_per_page );
26
 
27
- um_update_metadata_per_user213beta3();
 
 
28
  } else {
29
  um_wrong_ajax();
30
  }
@@ -49,7 +51,9 @@
49
  if ( typeof response.data != 'undefined' ) {
50
  um_add_upgrade_log( response.data.message );
51
  current_page++;
52
- um_update_metadata_per_user213beta3();
 
 
53
  } else {
54
  um_wrong_ajax();
55
  }
@@ -59,7 +63,9 @@
59
  }
60
  });
61
  } else {
62
- um_metatable213beta3();
 
 
63
  }
64
  }
65
 
24
 
25
  users_pages = Math.ceil( response.data.count / users_per_page );
26
 
27
+ setTimeout( function () {
28
+ um_update_metadata_per_user213beta3();
29
+ }, um_request_throttle );
30
  } else {
31
  um_wrong_ajax();
32
  }
51
  if ( typeof response.data != 'undefined' ) {
52
  um_add_upgrade_log( response.data.message );
53
  current_page++;
54
+ setTimeout( function () {
55
+ um_update_metadata_per_user213beta3();
56
+ }, um_request_throttle );
57
  } else {
58
  um_wrong_ajax();
59
  }
63
  }
64
  });
65
  } else {
66
+ setTimeout( function () {
67
+ um_metatable213beta3();
68
+ }, um_request_throttle );
69
  }
70
  }
71
 
includes/core/class-access.php CHANGED
@@ -1394,6 +1394,9 @@ if ( ! class_exists( 'um\core\Access' ) ) {
1394
  }
1395
  }
1396
  } else {
 
 
 
1397
  if ( ! empty( $block['attrs']['um_roles_access'] ) ) {
1398
  $display = false;
1399
  foreach ( $block['attrs']['um_roles_access'] as $role ) {
@@ -1401,15 +1404,17 @@ if ( ! class_exists( 'um\core\Access' ) ) {
1401
  $display = true;
1402
  }
1403
  }
 
1404
 
1405
- if ( ! $display ) {
1406
- $block_content = '';
1407
- if ( isset( $block['attrs']['um_message_type'] ) ) {
1408
- if ( $block['attrs']['um_message_type'] == '1' ) {
1409
- $block_content = $default_message;
1410
- } elseif ( $block['attrs']['um_message_type'] == '2' ) {
1411
- $block_content = $block['attrs']['um_message_content'];
1412
- }
 
1413
  }
1414
  }
1415
  }
1394
  }
1395
  }
1396
  } else {
1397
+ $display = true;
1398
+
1399
+ // What roles can access this content?
1400
  if ( ! empty( $block['attrs']['um_roles_access'] ) ) {
1401
  $display = false;
1402
  foreach ( $block['attrs']['um_roles_access'] as $role ) {
1404
  $display = true;
1405
  }
1406
  }
1407
+ }
1408
 
1409
+ $display = apply_filters( 'um_loggedin_block_restriction', $display, $block );
1410
+
1411
+ if ( ! $display ) {
1412
+ $block_content = '';
1413
+ if ( isset( $block['attrs']['um_message_type'] ) ) {
1414
+ if ( $block['attrs']['um_message_type'] == '1' ) {
1415
+ $block_content = $default_message;
1416
+ } elseif ( $block['attrs']['um_message_type'] == '2' ) {
1417
+ $block_content = $block['attrs']['um_message_content'];
1418
  }
1419
  }
1420
  }
includes/core/class-builtin.php CHANGED
@@ -510,7 +510,7 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
510
  'divider' => array(
511
  'name' => 'Divider',
512
  'col1' => array('_title','_width','_divider_text','_visibility'),
513
- 'col2' => array('_style','_color'),
514
  'form_only' => true,
515
  'validate' => array(
516
  '_title' => array(
510
  'divider' => array(
511
  'name' => 'Divider',
512
  'col1' => array('_title','_width','_divider_text','_visibility'),
513
+ 'col2' => array('_style','_color','_public','_roles'),
514
  'form_only' => true,
515
  'validate' => array(
516
  '_title' => array(
includes/core/class-fields.php CHANGED
@@ -2354,7 +2354,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2354
 
2355
  if ( $this->is_error( $key ) ) {
2356
  $output .= $this->field_error( $this->show_error( $key ) );
2357
- }else if ( $this->is_notice( $key ) ) {
2358
  $output .= $this->field_notice( $this->show_notice( $key ) );
2359
  }
2360
 
@@ -2366,6 +2366,9 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
2366
  $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2367
 
2368
  if ( isset( $data['label'] ) ) {
 
 
 
2369
  $output .= $this->field_label( sprintf( __( 'Confirm %s', 'ultimate-member' ), $data['label'] ), $key, $data );
2370
  }
2371
 
2354
 
2355
  if ( $this->is_error( $key ) ) {
2356
  $output .= $this->field_error( $this->show_error( $key ) );
2357
+ } elseif ( $this->is_notice( $key ) ) {
2358
  $output .= $this->field_notice( $this->show_notice( $key ) );
2359
  }
2360
 
2366
  $output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
2367
 
2368
  if ( isset( $data['label'] ) ) {
2369
+
2370
+ $data['label'] = __( $data['label'], 'ultimate-member' );
2371
+
2372
  $output .= $this->field_label( sprintf( __( 'Confirm %s', 'ultimate-member' ), $data['label'] ), $key, $data );
2373
  }
2374
 
includes/core/class-form.php CHANGED
@@ -98,7 +98,7 @@ if ( ! class_exists( 'um\core\Form' ) ) {
98
  $arr_options['status'] = 'success';
99
  $arr_options['post'] = $_POST;
100
 
101
- UM()->fields()->set_id = intval( $_POST['form_id'] );
102
  UM()->fields()->set_mode = 'profile';
103
  $form_fields = UM()->fields()->get_fields();
104
  $arr_options['fields'] = $form_fields;
@@ -439,7 +439,7 @@ if ( ! class_exists( 'um\core\Form' ) ) {
439
  }
440
 
441
  if ( isset( $_POST[ UM()->honeypot ] ) && $_POST[ UM()->honeypot ] != '' ) {
442
- wp_die( 'Hello, spam bot!', 'ultimate-member' );
443
  }
444
 
445
  /**
98
  $arr_options['status'] = 'success';
99
  $arr_options['post'] = $_POST;
100
 
101
+ UM()->fields()->set_id = absint( $_POST['form_id'] );
102
  UM()->fields()->set_mode = 'profile';
103
  $form_fields = UM()->fields()->get_fields();
104
  $arr_options['fields'] = $form_fields;
439
  }
440
 
441
  if ( isset( $_POST[ UM()->honeypot ] ) && $_POST[ UM()->honeypot ] != '' ) {
442
+ wp_die( __( 'Hello, spam bot!', 'ultimate-member' ) );
443
  }
444
 
445
  /**
includes/core/class-gdpr.php CHANGED
@@ -81,9 +81,7 @@ if ( ! class_exists( 'um\core\GDPR' ) ) {
81
  */
82
  function email_registration_data( $submitted ) {
83
  if ( ! empty( $submitted['use_gdpr_agreement'] ) ) {
84
- $timestamp = ! empty( $submitted['timestamp'] ) ? $submitted['timestamp'] : $submitted['use_gdpr_agreement'];
85
-
86
- $submitted['GDPR Applied'] = date( "d M Y H:i", $timestamp );
87
  unset( $submitted['use_gdpr_agreement'] );
88
  }
89
 
81
  */
82
  function email_registration_data( $submitted ) {
83
  if ( ! empty( $submitted['use_gdpr_agreement'] ) ) {
84
+ $submitted['GDPR Applied'] = date( "d M Y H:i", $submitted['use_gdpr_agreement'] );
 
 
85
  unset( $submitted['use_gdpr_agreement'] );
86
  }
87
 
includes/core/class-login.php CHANGED
@@ -75,7 +75,8 @@ if ( ! class_exists( 'um\core\Login' ) ) {
75
  }
76
 
77
  if ( ! wp_verify_nonce( $args['_wpnonce'], 'um_login_form' ) || empty( $args['_wpnonce'] ) || ! isset( $args['_wpnonce'] ) ) {
78
- wp_die( __( 'Invalid Nonce.', 'ultimate-member' ) );
 
79
  }
80
 
81
  return $args;
75
  }
76
 
77
  if ( ! wp_verify_nonce( $args['_wpnonce'], 'um_login_form' ) || empty( $args['_wpnonce'] ) || ! isset( $args['_wpnonce'] ) ) {
78
+ $url = apply_filters( 'um_login_invalid_nonce_redirect_url', add_query_arg( [ 'err' => 'invalid_nonce' ] ) );
79
+ exit( wp_redirect( $url ) );
80
  }
81
 
82
  return $args;
includes/core/class-member-directory-meta.php CHANGED
@@ -308,14 +308,14 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
308
 
309
  $values_array = array();
310
  foreach ( $value as $single_val ) {
311
- $single_val = stripslashes( $single_val );
312
 
313
- $values_array[] = $wpdb->prepare( "{$join_slug}{$i}.um_value LIKE %s", '%"' . trim( $single_val ) . '"%' );
314
- $values_array[] = $wpdb->prepare( "{$join_slug}{$i}.um_value LIKE %s", '%' . serialize( strval( trim( $single_val ) ) ) . '%' );
315
- $values_array[] = $wpdb->prepare( "{$join_slug}{$i}.um_value = %s", trim( $single_val ) );
316
 
317
  if ( is_numeric( $single_val ) ) {
318
- $values_array[] = $wpdb->prepare( "{$join_slug}{$i}.um_value LIKE %s", '%' . serialize( intval( trim( $single_val ) ) ) . '%' );
319
  }
320
  }
321
 
@@ -629,7 +629,7 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
629
 
630
  $search_like_string = apply_filters( 'um_member_directory_meta_search_like_type', '%' . $search_line . '%', $search_line );
631
 
632
- $this->where_clauses[] = $wpdb->prepare( "( umm_search.um_value = %s OR umm_search.um_value LIKE %s OR umm_search.um_value LIKE %s OR {$core_search}{$additional_search})", $search_line, $search_like_string, '%' . serialize( strval( $search_line ) ) . '%' );
633
 
634
  $this->is_search = true;
635
  }
308
 
309
  $values_array = array();
310
  foreach ( $value as $single_val ) {
311
+ $single_val = trim( stripslashes( $single_val ) );
312
 
313
+ $values_array[] = $wpdb->prepare( "{$join_slug}{$i}.um_value LIKE %s", '%"' . $single_val . '"%' );
314
+ $values_array[] = $wpdb->prepare( "{$join_slug}{$i}.um_value LIKE %s", '%' . serialize( (string) $single_val ) . '%' );
315
+ $values_array[] = $wpdb->prepare( "{$join_slug}{$i}.um_value = %s", $single_val );
316
 
317
  if ( is_numeric( $single_val ) ) {
318
+ $values_array[] = $wpdb->prepare( "{$join_slug}{$i}.um_value LIKE %s", '%' . serialize( (int) $single_val ) . '%' );
319
  }
320
  }
321
 
629
 
630
  $search_like_string = apply_filters( 'um_member_directory_meta_search_like_type', '%' . $search_line . '%', $search_line );
631
 
632
+ $this->where_clauses[] = $wpdb->prepare( "( umm_search.um_value = %s OR umm_search.um_value LIKE %s OR umm_search.um_value LIKE %s OR {$core_search}{$additional_search})", $search_line, $search_like_string, '%' . serialize( (string) $search_line ) . '%' );
633
 
634
  $this->is_search = true;
635
  }
includes/core/class-member-directory.php CHANGED
@@ -1429,18 +1429,20 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1429
  if ( ! empty( $_POST['search'] ) ) {
1430
  // complex using with change_meta_sql function
1431
 
 
 
1432
  $meta_query = array(
1433
  'relation' => 'OR',
1434
  array(
1435
- 'value' => trim( stripslashes( $_POST['search'] ) ),
1436
  'compare' => '=',
1437
  ),
1438
  array(
1439
- 'value' => trim( stripslashes( $_POST['search'] ) ),
1440
  'compare' => 'LIKE',
1441
  ),
1442
  array(
1443
- 'value' => trim( serialize( strval( stripslashes( $_POST['search'] ) ) ) ),
1444
  'compare' => 'LIKE',
1445
  ),
1446
  );
@@ -1614,22 +1616,22 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1614
  $field_query = array( 'relation' => 'OR' );
1615
 
1616
  foreach ( $value as $single_val ) {
1617
- $single_val = stripslashes( $single_val );
1618
 
1619
  $arr_meta_query = array(
1620
  array(
1621
  'key' => $field,
1622
- 'value' => trim( $single_val ),
1623
  'compare' => '=',
1624
  ),
1625
  array(
1626
  'key' => $field,
1627
- 'value' => serialize( strval( trim( $single_val ) ) ),
1628
  'compare' => 'LIKE',
1629
  ),
1630
  array(
1631
  'key' => $field,
1632
- 'value' => '"' . trim( $single_val ) . '"',
1633
  'compare' => 'LIKE',
1634
  )
1635
  );
@@ -1638,7 +1640,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1638
 
1639
  $arr_meta_query[] = array(
1640
  'key' => $field,
1641
- 'value' => serialize( intval( trim( $single_val ) ) ),
1642
  'compare' => 'LIKE',
1643
  );
1644
 
@@ -1883,20 +1885,22 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1883
  $field_query = array( 'relation' => 'OR' );
1884
 
1885
  foreach ( $value as $single_val ) {
 
 
1886
  $arr_meta_query = array(
1887
  array(
1888
  'key' => $field,
1889
- 'value' => trim( $single_val ),
1890
  'compare' => '=',
1891
  ),
1892
  array(
1893
  'key' => $field,
1894
- 'value' => serialize( strval( trim( $single_val ) ) ),
1895
  'compare' => 'LIKE',
1896
  ),
1897
  array(
1898
  'key' => $field,
1899
- 'value' => '"' . trim( $single_val ) . '"',
1900
  'compare' => 'LIKE',
1901
  )
1902
  );
@@ -1905,7 +1909,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
1905
 
1906
  $arr_meta_query[] = array(
1907
  'key' => $field,
1908
- 'value' => serialize( intval( trim( $single_val ) ) ),
1909
  'compare' => 'LIKE',
1910
  );
1911
 
@@ -2531,8 +2535,11 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
2531
 
2532
  $this->cover_size = UM()->mobile()->isTablet() ? $sizes[1] : end( $sizes );
2533
 
 
 
2534
  $avatar_size = UM()->options()->get( 'profile_photosize' );
2535
  $this->avatar_size = str_replace( 'px', '', $avatar_size );
 
2536
 
2537
  $users = array();
2538
  foreach ( $user_ids as $user_id ) {
1429
  if ( ! empty( $_POST['search'] ) ) {
1430
  // complex using with change_meta_sql function
1431
 
1432
+ $search = trim( stripslashes( $_POST['search'] ) );
1433
+
1434
  $meta_query = array(
1435
  'relation' => 'OR',
1436
  array(
1437
+ 'value' => $search,
1438
  'compare' => '=',
1439
  ),
1440
  array(
1441
+ 'value' => $search,
1442
  'compare' => 'LIKE',
1443
  ),
1444
  array(
1445
+ 'value' => serialize( (string) $search ),
1446
  'compare' => 'LIKE',
1447
  ),
1448
  );
1616
  $field_query = array( 'relation' => 'OR' );
1617
 
1618
  foreach ( $value as $single_val ) {
1619
+ $single_val = trim( stripslashes( $single_val ) );
1620
 
1621
  $arr_meta_query = array(
1622
  array(
1623
  'key' => $field,
1624
+ 'value' => $single_val,
1625
  'compare' => '=',
1626
  ),
1627
  array(
1628
  'key' => $field,
1629
+ 'value' => serialize( (string) $single_val ),
1630
  'compare' => 'LIKE',
1631
  ),
1632
  array(
1633
  'key' => $field,
1634
+ 'value' => '"' . $single_val . '"',
1635
  'compare' => 'LIKE',
1636
  )
1637
  );
1640
 
1641
  $arr_meta_query[] = array(
1642
  'key' => $field,
1643
+ 'value' => serialize( (int) $single_val ),
1644
  'compare' => 'LIKE',
1645
  );
1646
 
1885
  $field_query = array( 'relation' => 'OR' );
1886
 
1887
  foreach ( $value as $single_val ) {
1888
+ $single_val = trim( $single_val );
1889
+
1890
  $arr_meta_query = array(
1891
  array(
1892
  'key' => $field,
1893
+ 'value' => $single_val,
1894
  'compare' => '=',
1895
  ),
1896
  array(
1897
  'key' => $field,
1898
+ 'value' => serialize( (string) $single_val ),
1899
  'compare' => 'LIKE',
1900
  ),
1901
  array(
1902
  'key' => $field,
1903
+ 'value' => '"' . $single_val . '"',
1904
  'compare' => 'LIKE',
1905
  )
1906
  );
1909
 
1910
  $arr_meta_query[] = array(
1911
  'key' => $field,
1912
+ 'value' => serialize( (int) $single_val ),
1913
  'compare' => 'LIKE',
1914
  );
1915
 
2535
 
2536
  $this->cover_size = UM()->mobile()->isTablet() ? $sizes[1] : end( $sizes );
2537
 
2538
+ $this->cover_size = apply_filters( 'um_member_directory_cover_image_size', $this->cover_size, $directory_data );
2539
+
2540
  $avatar_size = UM()->options()->get( 'profile_photosize' );
2541
  $this->avatar_size = str_replace( 'px', '', $avatar_size );
2542
+ $this->avatar_size = apply_filters( 'um_member_directory_avatar_image_size', $this->avatar_size, $directory_data );
2543
 
2544
  $users = array();
2545
  foreach ( $user_ids as $user_id ) {
includes/core/class-password.php CHANGED
@@ -445,7 +445,7 @@ if ( ! class_exists( 'um\core\Password' ) ) {
445
  function um_reset_password_errors_hook( $args ) {
446
 
447
  if ( $_POST[ UM()->honeypot ] != '' ) {
448
- wp_die( 'Hello, spam bot!', 'ultimate-member' );
449
  }
450
 
451
  $user = "";
@@ -471,7 +471,7 @@ if ( ! class_exists( 'um\core\Password' ) ) {
471
  }
472
 
473
  $attempts = (int) get_user_meta( $user_id, 'password_rst_attempts', true );
474
- $is_admin = user_can( intval( $user_id ),'manage_options' );
475
 
476
  if ( UM()->options()->get( 'enable_reset_password_limit' ) ) { // if reset password limit is set
477
 
@@ -527,7 +527,7 @@ if ( ! class_exists( 'um\core\Password' ) ) {
527
  */
528
  function um_change_password_errors_hook( $args ) {
529
  if ( isset( $_POST[ UM()->honeypot ] ) && $_POST[ UM()->honeypot ] != '' ) {
530
- wp_die( 'Hello, spam bot!', 'ultimate-member' );
531
  }
532
 
533
  if ( ! is_user_logged_in() && isset( $args ) && ! um_is_core_page( 'password-reset' ) ||
445
  function um_reset_password_errors_hook( $args ) {
446
 
447
  if ( $_POST[ UM()->honeypot ] != '' ) {
448
+ wp_die( __( 'Hello, spam bot!', 'ultimate-member' ) );
449
  }
450
 
451
  $user = "";
471
  }
472
 
473
  $attempts = (int) get_user_meta( $user_id, 'password_rst_attempts', true );
474
+ $is_admin = user_can( absint( $user_id ),'manage_options' );
475
 
476
  if ( UM()->options()->get( 'enable_reset_password_limit' ) ) { // if reset password limit is set
477
 
527
  */
528
  function um_change_password_errors_hook( $args ) {
529
  if ( isset( $_POST[ UM()->honeypot ] ) && $_POST[ UM()->honeypot ] != '' ) {
530
+ wp_die( __( 'Hello, spam bot!', 'ultimate-member' ) );
531
  }
532
 
533
  if ( ! is_user_logged_in() && isset( $args ) && ! um_is_core_page( 'password-reset' ) ||
includes/core/class-profile.php CHANGED
@@ -192,7 +192,7 @@ if ( ! class_exists( 'um\core\Profile' ) ) {
192
  if ( isset( $tab_data['default_privacy'] ) ) {
193
  $privacy = $tab_data['default_privacy'];
194
  } else {
195
- $privacy = intval( UM()->options()->get( 'profile_tab_' . $tab . '_privacy' ) );
196
  }
197
 
198
  $privacy = apply_filters( 'um_profile_menu_tab_privacy', $privacy, $tab );
192
  if ( isset( $tab_data['default_privacy'] ) ) {
193
  $privacy = $tab_data['default_privacy'];
194
  } else {
195
+ $privacy = (int) UM()->options()->get( 'profile_tab_' . $tab . '_privacy' );
196
  }
197
 
198
  $privacy = apply_filters( 'um_profile_menu_tab_privacy', $privacy, $tab );
includes/core/class-register.php CHANGED
@@ -68,7 +68,8 @@ if ( ! class_exists( 'um\core\Register' ) ) {
68
  }
69
 
70
  if ( ! wp_verify_nonce( $args['_wpnonce'], 'um_register_form' ) || empty( $args['_wpnonce'] ) || ! isset( $args['_wpnonce'] ) ) {
71
- wp_die( __( 'Invalid Nonce.', 'ultimate-member' ) );
 
72
  }
73
 
74
  return $args;
68
  }
69
 
70
  if ( ! wp_verify_nonce( $args['_wpnonce'], 'um_register_form' ) || empty( $args['_wpnonce'] ) || ! isset( $args['_wpnonce'] ) ) {
71
+ $url = apply_filters( 'um_register_invalid_nonce_redirect_url', add_query_arg( [ 'err' => 'invalid_nonce' ] ) );
72
+ exit( wp_redirect( $url ) );
73
  }
74
 
75
  return $args;
includes/core/class-user.php CHANGED
@@ -1228,7 +1228,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
1228
  * Set last login for new registered users
1229
  */
1230
  function set_last_login() {
1231
- update_user_meta( $this->id, '_um_last_login', current_time( 'timestamp' ) );
1232
  }
1233
 
1234
 
@@ -2013,7 +2013,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
2013
  *
2014
  */
2015
  function user_exists_by_id( $user_id ) {
2016
- $aux = get_userdata( intval( $user_id ) );
2017
  if ( $aux == false ) {
2018
  return false;
2019
  } else {
1228
  * Set last login for new registered users
1229
  */
1230
  function set_last_login() {
1231
+ update_user_meta( $this->id, '_um_last_login', current_time( 'timestamp' ) );
1232
  }
1233
 
1234
 
2013
  *
2014
  */
2015
  function user_exists_by_id( $user_id ) {
2016
+ $aux = get_userdata( absint( $user_id ) );
2017
  if ( $aux == false ) {
2018
  return false;
2019
  } else {
includes/core/class-validation.php CHANGED
@@ -162,19 +162,24 @@ if ( ! class_exists( 'um\core\Validation' ) ) {
162
 
163
 
164
  /**
165
- * Password test
166
  *
167
- * @param $candidate
168
  *
169
  * @return bool
170
  */
171
  function strong_pass( $candidate ) {
172
- $r1='/[A-Z]/';
173
- $r2='/[a-z]/';
174
- $r3='/[0-9]/';
175
- if(preg_match_all($r1,$candidate, $o)<1) return false;
176
- if(preg_match_all($r2,$candidate, $o)<1) return false;
177
- if(preg_match_all($r3,$candidate, $o)<1) return false;
 
 
 
 
 
178
  return true;
179
  }
180
 
162
 
163
 
164
  /**
165
+ * Password strength test
166
  *
167
+ * @param string $candidate
168
  *
169
  * @return bool
170
  */
171
  function strong_pass( $candidate ) {
172
+ // are used Unicode Regular Expressions
173
+ $regexps = [
174
+ '/[\p{Lu}]/u', // any Letter Uppercase symbol
175
+ '/[\p{Ll}]/u', // any Letter Lowercase symbol
176
+ '/[\p{N}]/u', // any Number symbol
177
+ ];
178
+ foreach ( $regexps as $regexp ) {
179
+ if ( preg_match_all( $regexp, $candidate, $o ) < 1 ) {
180
+ return false;
181
+ }
182
+ }
183
  return true;
184
  }
185
 
includes/core/um-actions-account.php CHANGED
@@ -526,9 +526,11 @@ function um_after_account_privacy( $args ) {
526
  ARRAY_A );
527
 
528
  if ( ! empty( $completed ) ) {
529
-
 
 
530
  echo '<p>' . esc_html__( 'You could download your previous data:', 'ultimate-member' ) . '</p>';
531
- echo '<a href="' . get_post_meta( $completed['ID'], '_export_file_url', true ) . '">' . esc_html__( 'download personal data', 'ultimate-member' ) . '</a>';
532
  echo '<p>' . esc_html__( 'You could send a new request for an export of personal your data.', 'ultimate-member' ) . '</p>';
533
 
534
  }
526
  ARRAY_A );
527
 
528
  if ( ! empty( $completed ) ) {
529
+
530
+ $exports_url = wp_privacy_exports_url();
531
+
532
  echo '<p>' . esc_html__( 'You could download your previous data:', 'ultimate-member' ) . '</p>';
533
+ echo '<a href="'.esc_attr( $exports_url . get_post_meta( $completed['ID'], '_export_file_name', true ) ) . '">' . esc_html__( 'Download Personal Data', 'ultimate-member' ) . '</a>';
534
  echo '<p>' . esc_html__( 'You could send a new request for an export of personal your data.', 'ultimate-member' ) . '</p>';
535
 
536
  }
includes/core/um-actions-form.php CHANGED
@@ -837,4 +837,20 @@ function um_submit_form_errors_hook_( $args ) {
837
  } // end if ( isset in args array )
838
  }
839
  }
840
- add_action( 'um_submit_form_errors_hook_', 'um_submit_form_errors_hook_', 10 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
837
  } // end if ( isset in args array )
838
  }
839
  }
840
+ add_action( 'um_submit_form_errors_hook_', 'um_submit_form_errors_hook_', 10 );
841
+
842
+
843
+ /**
844
+ * @param string $url
845
+ *
846
+ * @return string
847
+ */
848
+ function um_invalid_nonce_redirect_url( $url ) {
849
+ $url = add_query_arg( [
850
+ 'um-hash' => substr( md5( rand() ), 0, 6 ),
851
+ ], remove_query_arg( 'um-hash', $url ) );
852
+
853
+ return $url;
854
+ }
855
+ add_filter( 'um_login_invalid_nonce_redirect_url', 'um_invalid_nonce_redirect_url', 10, 1 );
856
+ add_filter( 'um_register_invalid_nonce_redirect_url', 'um_invalid_nonce_redirect_url', 10, 1 );
includes/core/um-actions-global.php CHANGED
@@ -24,8 +24,6 @@ function um_add_security_checks( $args ) {
24
  return;
25
  } ?>
26
 
27
- <input type="hidden" name="timestamp" class="um_timestamp" value="<?php echo esc_attr( current_time( 'timestamp' ) ) ?>" />
28
-
29
  <p class="<?php echo esc_attr( UM()->honeypot ); ?>_name">
30
  <label for="<?php echo esc_attr( UM()->honeypot ) . '_' . $args['form_id']; ?>"><?php _e( 'Only fill in if you are not human' ); ?></label>
31
  <input type="hidden" name="<?php echo esc_attr( UM()->honeypot ); ?>" id="<?php echo esc_attr( UM()->honeypot ) . '_' . $args['form_id']; ?>" class="input" value="" size="25" autocomplete="off" />
24
  return;
25
  } ?>
26
 
 
 
27
  <p class="<?php echo esc_attr( UM()->honeypot ); ?>_name">
28
  <label for="<?php echo esc_attr( UM()->honeypot ) . '_' . $args['form_id']; ?>"><?php _e( 'Only fill in if you are not human' ); ?></label>
29
  <input type="hidden" name="<?php echo esc_attr( UM()->honeypot ); ?>" id="<?php echo esc_attr( UM()->honeypot ) . '_' . $args['form_id']; ?>" class="input" value="" size="25" autocomplete="off" />
includes/core/um-actions-misc.php CHANGED
@@ -186,6 +186,10 @@ function um_add_update_notice( $args ) {
186
  $err = __( 'Your membership request has been rejected.', 'ultimate-member' );
187
  break;
188
 
 
 
 
 
189
  }
190
  }
191
 
186
  $err = __( 'Your membership request has been rejected.', 'ultimate-member' );
187
  break;
188
 
189
+ case 'invalid_nonce':
190
+ $err = __( 'An error has been encountered. Probably page was cached. Please try again.', 'ultimate-member' );
191
+ break;
192
+
193
  }
194
  }
195
 
includes/core/um-actions-profile.php CHANGED
@@ -733,9 +733,9 @@ function um_profile_dynamic_meta_desc() {
733
  <meta property="og:title" content="<?php echo esc_attr( $title ); ?>"/>
734
  <meta property="og:description" content="<?php echo esc_attr( $description ); ?>"/>
735
  <meta property="og:image" content="<?php echo esc_url( $image ); ?>"/>
736
- <meta property="og:image:alt" content="<?php echo esc_attr_e( 'Profile photo', 'ultimate-member' ); ?>"/>
737
- <meta property="og:image:height" content="<?php echo intval( $size ); ?>"/>
738
- <meta property="og:image:width" content="<?php echo intval( $size ); ?>"/>
739
  <meta property="og:url" content="<?php echo esc_url( $url ); ?>"/>
740
 
741
  <meta name="twitter:card" content="summary"/>
@@ -743,7 +743,7 @@ function um_profile_dynamic_meta_desc() {
743
  <meta name="twitter:title" content="<?php echo esc_attr( $title ); ?>"/>
744
  <meta name="twitter:description" content="<?php echo esc_attr( $description ); ?>"/>
745
  <meta name="twitter:image" content="<?php echo esc_url( $image ); ?>"/>
746
- <meta name="twitter:image:alt" content="<?php echo esc_attr_e( 'Profile photo', 'ultimate-member' ); ?>"/>
747
  <meta name="twitter:url" content="<?php echo esc_url( $url ); ?>"/>
748
 
749
  <script type="application/ld+json"><?php echo json_encode( $person ); ?></script>
733
  <meta property="og:title" content="<?php echo esc_attr( $title ); ?>"/>
734
  <meta property="og:description" content="<?php echo esc_attr( $description ); ?>"/>
735
  <meta property="og:image" content="<?php echo esc_url( $image ); ?>"/>
736
+ <meta property="og:image:alt" content="<?php esc_attr_e( 'Profile photo', 'ultimate-member' ); ?>"/>
737
+ <meta property="og:image:height" content="<?php echo (int) $size; ?>"/>
738
+ <meta property="og:image:width" content="<?php echo (int) $size; ?>"/>
739
  <meta property="og:url" content="<?php echo esc_url( $url ); ?>"/>
740
 
741
  <meta name="twitter:card" content="summary"/>
743
  <meta name="twitter:title" content="<?php echo esc_attr( $title ); ?>"/>
744
  <meta name="twitter:description" content="<?php echo esc_attr( $description ); ?>"/>
745
  <meta name="twitter:image" content="<?php echo esc_url( $image ); ?>"/>
746
+ <meta name="twitter:image:alt" content="<?php esc_attr_e( 'Profile photo', 'ultimate-member' ); ?>"/>
747
  <meta name="twitter:url" content="<?php echo esc_url( $url ); ?>"/>
748
 
749
  <script type="application/ld+json"><?php echo json_encode( $person ); ?></script>
includes/core/um-actions-register.php CHANGED
@@ -386,6 +386,12 @@ function um_submit_form_register( $args ) {
386
  }
387
 
388
  $args['submitted'] = array_merge( $args['submitted'], $credentials );
 
 
 
 
 
 
389
  $args = array_merge( $args, $credentials );
390
 
391
  //get user role from global or form's settings
386
  }
387
 
388
  $args['submitted'] = array_merge( $args['submitted'], $credentials );
389
+
390
+ // set timestamp
391
+ $timestamp = current_time( 'timestamp' );
392
+ $args['submitted']['timestamp'] = $timestamp;
393
+ $args['timestamp'] = $timestamp;
394
+
395
  $args = array_merge( $args, $credentials );
396
 
397
  //get user role from global or form's settings
includes/core/um-filters-fields.php CHANGED
@@ -763,7 +763,9 @@ function um_profile_field_filter_xss_validation( $value, $data, $type = '' ) {
763
  }
764
 
765
  if ( ! empty( $arr ) && empty( $data['custom_dropdown_options_source'] ) ) {
766
- $value = array_intersect( $value, array_map( 'trim', $arr ) );
 
 
767
  }
768
 
769
  if ( $option_pairs ) {
763
  }
764
 
765
  if ( ! empty( $arr ) && empty( $data['custom_dropdown_options_source'] ) ) {
766
+ $arr = wp_unslash( $arr );
767
+ $arr = wp_slash( array_map( 'trim', $arr ) );
768
+ $value = array_intersect( $value, $arr );
769
  }
770
 
771
  if ( $option_pairs ) {
readme.txt CHANGED
@@ -6,8 +6,8 @@ Donate link:
6
  Tags: community, member, membership, user-profile, user-registration
7
  Requires PHP: 5.6
8
  Requires at least: 5.0
9
- Tested up to: 5.5.1
10
- Stable tag: 2.1.12
11
  License: GNU Version 2 or Any Later Version
12
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
13
 
@@ -155,6 +155,33 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
155
  * To learn more about version 2.1 please see this [docs](https://docs.ultimatemember.com/article/1512-upgrade-2-1-0)
156
  * UM2.1+ is a significant update to the Member Directories' code base from 2.0.x. Please make sure you take a full-site backup with restore point before updating the plugin
157
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
158
  = 2.1.12: October 29, 2020 =
159
 
160
  * Enhancements:
6
  Tags: community, member, membership, user-profile, user-registration
7
  Requires PHP: 5.6
8
  Requires at least: 5.0
9
+ Tested up to: 5.6
10
+ Stable tag: 2.1.13
11
  License: GNU Version 2 or Any Later Version
12
  License URI: http://www.gnu.org/licenses/gpl-3.0.txt
13
 
155
  * To learn more about version 2.1 please see this [docs](https://docs.ultimatemember.com/article/1512-upgrade-2-1-0)
156
  * UM2.1+ is a significant update to the Member Directories' code base from 2.0.x. Please make sure you take a full-site backup with restore point before updating the plugin
157
 
158
+ = 2.1.13: December 8, 2020 =
159
+
160
+ * Enhancements:
161
+
162
+ - Added: `um_member_directory_cover_image_size` hook with ability to change the cover photo size on the member directory
163
+ - Added: `um_member_directory_avatar_image_size` hook with ability to change the profile photo size on the member directory
164
+ - Added: `um_member_directory_get_members_allow` JS hook for 3rd-party integration with the member directory. You could use a time throttle until some data is loaded
165
+ - Added: Notice about the fields' conditional logic rules + small CSS enhancements
166
+ - Added: Invalid nonce validation on Login and Registration pages instead of wp_die()
167
+ - Added: Privacy settings for the Divider field type (#688)
168
+ - Added: Ability for the integration with Gutenberg Block restriction settings (extends the block restriction settings via 3rd-party plugins)
169
+ - Added: Strings translations
170
+
171
+ * Bugfixes:
172
+
173
+ - Fixed: Upgrade process on websites where a hosting locks the frequent AJAX requests (added default JS throttle between requests)
174
+ - Fixed: Getting page content of the GDPR privacy policies
175
+ - Fixed: Password strength validation for Unicode symbols
176
+ - Fixed: Issue with apostrophe options in the multiselect/checkbox fields (#689)
177
+ - Fixed: Translation for Password field's label
178
+ - Fixed: Download Personal Data URL
179
+ - Fixed: Vulnerability with timestamp field on UM Forms (the hidden field with name='timestamp' is deprecated)
180
+
181
+ * Tweaks:
182
+
183
+ - There are changed PHP’s intval(), strval(), floatval(), and boolval() typecasting functions to (int), (string), (float) and (bool) regarding [this doc](https://make.wordpress.org/core/2020/11/20/miscellaneous-developer-focused-changes-in-wordpress-5-6/).
184
+
185
  = 2.1.12: October 29, 2020 =
186
 
187
  * Enhancements:
templates/gdpr-register.php CHANGED
@@ -6,8 +6,9 @@
6
  <div class="um-gdpr-content" style="display:none;">
7
  <?php if ( ! empty( $args['use_gdpr_content_id'] ) ) {
8
  $um_content_query = get_post( $args['use_gdpr_content_id'] );
9
- if ( isset( $um_content_query ) ) {
10
- echo apply_filters( 'um_gdpr_policies_page_content', $um_content_query->post_content, $args );
 
11
  }
12
  } ?>
13
  </div>
6
  <div class="um-gdpr-content" style="display:none;">
7
  <?php if ( ! empty( $args['use_gdpr_content_id'] ) ) {
8
  $um_content_query = get_post( $args['use_gdpr_content_id'] );
9
+ if ( ! empty( $um_content_query ) && ! is_wp_error( $um_content_query ) ) {
10
+ $content = apply_filters( 'um_gdpr_policies_page_content', $um_content_query->post_content, $args );
11
+ echo apply_filters( 'the_content', $content, $um_content_query->ID );
12
  }
13
  } ?>
14
  </div>
templates/message.php CHANGED
@@ -3,7 +3,9 @@
3
  <div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?>">
4
 
5
  <div class="um-postmessage">
6
- <?php printf( __( '%s', 'ultimate-member' ), $this->custom_message ); ?>
 
 
7
  </div>
8
 
9
  </div>
3
  <div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?>">
4
 
5
  <div class="um-postmessage">
6
+ <?php
7
+ // translators: %s: The message after registration process based on a role data and user status after registration
8
+ printf( __( '%s', 'ultimate-member' ), $this->custom_message ); ?>
9
  </div>
10
 
11
  </div>
templates/register.php CHANGED
@@ -135,7 +135,7 @@ if ( ! is_user_logged_in() ) {
135
  * }
136
  * ?>
137
  */
138
- do_action( "um_after_form", $args ); ?>
139
 
140
  </form>
141
 
135
  * }
136
  * ?>
137
  */
138
+ do_action( 'um_after_form', $args ); ?>
139
 
140
  </form>
141
 
templates/restricted-taxonomy.php CHANGED
@@ -2,52 +2,53 @@
2
 
3
  get_header(); ?>
4
 
5
- <div class="wrap">
6
-
7
- <?php if ( have_posts() ) : ?>
8
- <header class="page-header">
9
- <?php
10
- the_archive_title( '<h1 class="page-title">', '</h1>' );
11
- the_archive_description( '<div class="taxonomy-description">', '</div>' );
12
- ?>
13
- </header><!-- .page-header -->
14
- <?php endif; ?>
15
-
16
- <div id="primary" class="content-area">
17
- <main id="main" class="site-main" role="main">
18
-
19
- <?php if ( is_tag() ) {
20
- $tag_id = get_query_var( 'tag_id' );
21
- if ( ! empty( $tag_id ) ) {
22
- $restriction = get_term_meta( $tag_id, 'um_content_restriction', true );
23
- }
24
- } elseif ( is_category() ) {
25
- $um_category = get_category( get_query_var( 'cat' ) );
26
-
27
- if ( ! empty( $um_category->term_id ) ) {
28
- $restriction = get_term_meta( $um_category->term_id, 'um_content_restriction', true );
29
- }
30
- } elseif ( is_tax() ) {
31
- $tax_name = get_query_var( 'taxonomy' );
32
- $term_name = get_query_var( 'term' );
33
- $term = get_term_by( 'slug', $term_name, $tax_name );
34
- if ( ! empty( $term->term_id ) ) {
35
- $restriction = get_term_meta( $term->term_id, 'um_content_restriction', true );
36
- }
37
  }
 
 
38
 
39
- if ( ! isset( $restriction['_um_restrict_by_custom_message'] ) || '0' == $restriction['_um_restrict_by_custom_message'] ) {
40
- $restricted_global_message = UM()->options()->get( 'restricted_access_message' );
41
- $message = stripslashes( $restricted_global_message );
42
- } elseif ( '1' == $restriction['_um_restrict_by_custom_message'] ) {
43
- $message = ! empty( $restriction['_um_restrict_custom_message'] ) ? stripslashes( $restriction['_um_restrict_custom_message'] ) : '';
44
  }
45
-
46
- echo $message; ?>
47
-
48
- </main><!-- #main -->
49
- </div><!-- #primary -->
50
- <?php get_sidebar(); ?>
51
- </div><!-- .wrap -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
 
53
  <?php get_footer();
2
 
3
  get_header(); ?>
4
 
5
+ <div class="wrap">
6
+
7
+ <?php if ( have_posts() ) : ?>
8
+ <header class="page-header">
9
+ <?php
10
+ the_archive_title( '<h1 class="page-title">', '</h1>' );
11
+ the_archive_description( '<div class="taxonomy-description">', '</div>' );
12
+ ?>
13
+ </header><!-- .page-header -->
14
+ <?php endif; ?>
15
+
16
+ <div id="primary" class="content-area">
17
+ <main id="main" class="site-main" role="main">
18
+
19
+ <?php if ( is_tag() ) {
20
+ $tag_id = get_query_var( 'tag_id' );
21
+ if ( ! empty( $tag_id ) ) {
22
+ $restriction = get_term_meta( $tag_id, 'um_content_restriction', true );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  }
24
+ } elseif ( is_category() ) {
25
+ $um_category = get_category( get_query_var( 'cat' ) );
26
 
27
+ if ( ! empty( $um_category->term_id ) ) {
28
+ $restriction = get_term_meta( $um_category->term_id, 'um_content_restriction', true );
 
 
 
29
  }
30
+ } elseif ( is_tax() ) {
31
+ $tax_name = get_query_var( 'taxonomy' );
32
+ $term_name = get_query_var( 'term' );
33
+ $term = get_term_by( 'slug', $term_name, $tax_name );
34
+ if ( ! empty( $term->term_id ) ) {
35
+ $restriction = get_term_meta( $term->term_id, 'um_content_restriction', true );
36
+ }
37
+ }
38
+
39
+ if ( ! isset( $restriction['_um_restrict_by_custom_message'] ) || '0' == $restriction['_um_restrict_by_custom_message'] ) {
40
+ $restricted_global_message = UM()->options()->get( 'restricted_access_message' );
41
+ $message = stripslashes( $restricted_global_message );
42
+ } elseif ( '1' == $restriction['_um_restrict_by_custom_message'] ) {
43
+ $message = ! empty( $restriction['_um_restrict_custom_message'] ) ? stripslashes( $restriction['_um_restrict_custom_message'] ) : '';
44
+ }
45
+
46
+ // translators: %s: Restricted taxonomy message.
47
+ printf( __( '%s', 'ultimate-member' ), $message ); ?>
48
+
49
+ </main><!-- #main -->
50
+ </div><!-- #primary -->
51
+ <?php get_sidebar(); ?>
52
+ </div><!-- .wrap -->
53
 
54
  <?php get_footer();
ultimate-member.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Ultimate Member
4
  Plugin URI: http://ultimatemember.com/
5
  Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
6
- Version: 2.1.12
7
  Author: Ultimate Member
8
  Author URI: http://ultimatemember.com/
9
  Text Domain: ultimate-member
3
  Plugin Name: Ultimate Member
4
  Plugin URI: http://ultimatemember.com/
5
  Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
6
+ Version: 2.1.13
7
  Author: Ultimate Member
8
  Author URI: http://ultimatemember.com/
9
  Text Domain: ultimate-member