").append(e.siblings(".um-hidden-multi-selects").clone()).html()+'
'+wp.i18n.__("Remove","ultimate-member")+"",e.append(i),e.find("li:last .um-hidden-multi-selects").attr("name",jQuery(this).data("name")).addClass("um-forms-field um-long-field").removeClass("um-hidden-multi-selects").attr("id",e.data("id_attr")+"-"+t))});var t,e=-(new Date).getTimezoneOffset()/60,i=(jQuery('input[name="um-gmt-offset"]').val(e),jQuery(".um-admin-metabox").find(".um-slider").each(function(){var e=jQuery(this),a=parseInt(e.data("min")),t=parseInt(e.data("max")),a=[a=void 0!==jQuery("#"+e.data("field_name")+"_min").val()?jQuery("#"+e.data("field_name")+"_min").val():a,t=void 0!==jQuery("#"+e.data("field_name")+"_max").val()?jQuery("#"+e.data("field_name")+"_max").val():t];e.slider({range:!0,min:parseInt(e.data("min")),max:parseInt(e.data("max")),values:a,create:function(e,a){},step:1,slide:function(e,a){s(jQuery(this),a)},stop:function(e,a){}}),s(e)}),jQuery(".um-admin-metabox").find(".um-datepicker-filter").each(function(){var e=jQuery(this),a=new Date(1e3*e.data("date_min")),t=new Date(1e3*e.data("date_max"));e.pickadate({selectYears:!0,min:a,max:t,formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){e.blur(),e.siblings(".picker").find(".picker__button--close").addClass("button")},onClose:function(){e.blur()},onSet:function(e){}}).pickadate("picker").set("select",1e3*e.data("value"))}),jQuery(".um-admin-metabox").find(".um-timepicker-filter").each(function(){var e=jQuery(this),a=e.data("min"),t=e.data("max"),a=a.split(":"),t=t.split(":");e.pickatime({format:e.data("format"),interval:parseInt(e.data("intervals")),min:[a[0],a[1]],max:[t[0],t[1]],formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){e.blur()},onClose:function(){e.blur()},onSet:function(e){}})}),!1);function s(e,a){var t,i="",s=e.siblings(".um-slider-range").data("placeholder-s"),l=e.siblings(".um-slider-range").data("placeholder-p"),a=a?(i=(a.values[0]===a.values[1]?s.replace("{value}",a.values[0]):l.replace("{min_range}",a.values[0]).replace("{max_range}",a.values[1])).replace("{field_label}",e.siblings(".um-slider-range").data("label")),t=a.values[0],a.values[1]):(i=(e.slider("values",0)===e.slider("values",1)?s.replace("{value}",e.slider("values",0)):l.replace("{min_range}",e.slider("values",0)).replace("{max_range}",e.slider("values",1))).replace("{field_label}",e.siblings(".um-slider-range").data("label")),t=e.slider("values",0),e.slider("values",1));e.siblings(".um-slider-range").html(i),e.siblings(".um_range_min").val(t),e.siblings(".um_range_max").val(a)}function a(){jQuery(".um-forms-line").removeClass("um-forms-line-conditioned").each(function(){void 0===jQuery(this).data("conditional")||jQuery(this).hasClass("um-forms-line-conditioned")||(!function i(e){e.addClass("um-forms-line-conditioned");var a=e.data("conditional");var t=a[1];var s=a[2];var l=e.data("prefix");var n=!0;{var r,u;"="===t||"!="===t?-1===a[0].indexOf("||")&&void 0!==(u=jQuery("#"+l+"_"+a[0])).parents(".um-forms-line").data("conditional")&&(n=i(u.parents(".um-forms-line"))):"~"===t?(m=a[0].split("|"),r=[],jQuery.each(m,function(e){r.push(jQuery("#"+l+"_"+m[e]))}),void 0!==r[0].parents(".um-forms-line").data("conditional")&&(n=i(r[0].parents(".um-forms-line")))):"><"===t&&void 0!==(u=jQuery("#"+l+"_"+a[0]+"_"+a[2])).parents(".um-forms-line").data("conditional")&&(n=i(u.parents(".um-forms-line")))}var d=!1;{var m,o,c,p,f,_,h,g;if("="===t)return-1!==a[0].indexOf("||")?(m=a[0].split("||"),o=!1,jQuery.each(m,function(e){var a,e=jQuery("#"+l+"_"+m[e]),t=(n=!(d=!1),void 0!==e.parents(".um-forms-line").data("conditional")&&(n=i(e.parents(".um-forms-line"))),e.prop("tagName").toLowerCase());"input"===t?(a=e.attr("type"),d="checkbox"===a?"1"==s?e.is(":checked"):!e.is(":checked"):Array.isArray(s)?-1!==s.indexOf(e.val()):e.val()==s):"select"===t&&(d=Array.isArray(s)?-1!==s.indexOf(e.val()):e.val()==s),d&&n&&(o=!0)}),o):("input"==(h=u.prop("tagName").toLowerCase())?(g=u.attr("type"),d="checkbox"==g?"1"==s?u.is(":checked"):!u.is(":checked"):Array.isArray(s)?-1!==s.indexOf(u.val()):u.val()==s):"select"==h&&(d=Array.isArray(s)?-1!==s.indexOf(u.val()):u.val()==s),d&&n);if("!="===t)return-1!==a[0].indexOf("||")?(m=a[0].split("||"),o=!1,jQuery.each(m,function(e){var a,e=jQuery("#"+l+"_"+m[e]),t=(n=!(d=!1),void 0!==e.parents(".um-forms-line").data("conditional")&&(n=i(e.parents(".um-forms-line"))),e.prop("tagName").toLowerCase());"input"===t?(a=e.attr("type"),d="checkbox"===a?"1"==s?!e.is(":checked"):e.is(":checked"):e.val()!=s):"select"===t&&(d=e.val()!=s),d&&n&&(o=!0)}),o):("input"==(h=u.prop("tagName").toLowerCase())?(g=u.attr("type"),d="checkbox"==g?"1"==s?!u.is(":checked"):u.is(":checked"):u.val()!=s):"select"==h&&(d=u.val()!=s),d&&n);if("~"===t)return p=[],"sortable_items"===e.data("field_type")?(c=e.find(".um-sortable-items-value").data("field_id"),jQuery.each(r,function(e){var e=r[e],a=e.prop("tagName").toLowerCase();"input"===a?"checkbox"===e.attr("type")&&"1"==s&&e.is(":checked")&&p.push(e.data("fill_"+c)):"select"==a&&!s&&e.val()&&(p=(p=p.concat(e.val())).filter(y))}),f=jQuery('[data-field_id="'+c+'"]'),p.length?(f.siblings(".um-sortable-items-field").find("li").addClass("um-hidden-item"),jQuery.each(p,function(e){f.siblings(".um-sortable-items-field").find('li[data-tab-id="'+p[e]+'"]').removeClass("um-hidden-item")}),_=[],f.siblings(".um-sortable-items-field").find("li").each(function(){jQuery(this).hasClass("um-hidden-item")||_.push(jQuery(this).data("tab-id"))}),f.val(_.join(",")),f.siblings(".um-sortable-items-field").sortable("refresh"),d=!0):f.val(null)):(c=e.find(e.data("field_type")).data("field_id"),jQuery.each(r,function(e){var e=r[e],a=e.prop("tagName").toLowerCase();"input"===a?"checkbox"===e.attr("type")&&"1"==s&&e.is(":checked")&&p.push(e.data("fill_"+c)):"select"==a&&!s&&e.val()&&(p=(p=p.concat(e.val())).filter(y))}),f=jQuery('[data-field_id="'+c+'"]'),p.length?(f.find("option").hide(),jQuery.each(p,function(e){f.find('option[value="'+p[e]+'"]').show()}),-1===p.indexOf(f.val())&&(f.val(p[0]),f.find("option").attr("selected",!1).prop("selected",!1),f.find('option[value="'+p[0]+'"]').attr("selected",!0).prop("selected",!0)),d=!0):(f.val(null),f.find("option").attr("selected",!1).prop("selected",!1))),d&&n;if("><"===t)return h=u.prop("tagName").toLowerCase(),(d="input"==h&&"checkbox"==(g=u.attr("type"))?u.is(":checked"):d)&&n}return!1}(jQuery(this))?jQuery(this).hide():(jQuery(this).show(),um_admin_init_users_select()))})}function y(e,a,t){return t.indexOf(e)===a}jQuery(document.body).on("change",".um-md-default-filters-option-line .um-field-wrapper select",function(){var t,e,a;i||(e=(t=jQuery(this)).val(),a=t.data("member_directory"),i=!0,wp.ajax.send("um_member_directory_default_filter_settings",{data:{key:e,directory_id:a,nonce:um_admin_scripts.nonce},success:function(e){var a=t.parents(".um-md-default-filters-option-line").find(".um-field-wrapper2");a.html(e.field_html),i=!1,a.find(".um-slider").each(function(){var e=jQuery(this),a=[parseInt(e.data("min")),parseInt(e.data("max"))];e.slider({range:!0,min:parseInt(e.data("min")),max:parseInt(e.data("max")),values:a,create:function(e,a){},step:1,slide:function(e,a){s(jQuery(this),a)},stop:function(e,a){}}),s(e)}),a.find(".um-datepicker-filter").each(function(){var e=jQuery(this),a=new Date(1e3*e.data("date_min")),t=new Date(1e3*e.data("date_max"));e.pickadate({selectYears:!0,min:a,max:t,formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){e.blur(),e.siblings(".picker").find(".picker__button--close").addClass("button")},onClose:function(){e.blur()},onSet:function(e){}})}),a.find(".um-timepicker-filter").each(function(){var e=jQuery(this),a=e.data("min"),t=e.data("max"),a=a.split(":"),t=t.split(":");e.pickatime({format:e.data("format"),interval:parseInt(e.data("intervals")),min:[a[0],a[1]],max:[t[0],t[1]],formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){e.blur()},onClose:function(){e.blur()},onSet:function(e){}})})},error:function(e){return!1}}))}),jQuery(".um-md-default-filters-add-option").on("click",function(){var e,a,t;i||((e=jQuery(this).siblings("ul.um-md-default-filters-list")).data("field_id"),(a=0)
").append(e.siblings(".um-hidden-md-default-filters").clone()).html(),e.append(''+t+''+wp.i18n.__("Remove","ultimate-member")+''),e.find("li:last .um-hidden-md-default-filters").attr("name",jQuery(this).data("name")).addClass("um-forms-field um-long-field").removeClass("um-hidden-md-default-filters").attr("id",e.data("id_attr")+"-"+a),e.find("li:last .um-field-wrapper select").trigger("change"))}),jQuery(document.body).on("click",".um-text-delete",function(){jQuery(this).parents("li.um-multi-text-option-line").remove()}),jQuery(".um-multi-text-add-option").on("click",function(){var e=jQuery(this).siblings("ul.um-multi-text-list"),a=0,t=(0").append(e.siblings(".um-hidden-multi-text").clone()).html()),i=e.data("item_class");e.append(''+t+''+wp.i18n.__("Remove","ultimate-member")+""),e.find("li:last .um-hidden-multi-text").attr("name",jQuery(this).data("name")).addClass("um-forms-field um-long-field").removeClass("um-hidden-multi-text").attr("id",e.data("id_attr")+"-"+a)}),jQuery(".um-media-upload").each(function(){var e=jQuery(this).find(".um-forms-field"),a=e.data("default");""!=e.val()&&e.val()!=a?(e.siblings(".um-set-image").hide(),e.siblings(".um-clear-image").show(),e.siblings(".icon_preview").show()):(e.val()==a&&e.siblings(".icon_preview").show(),e.siblings(".um-set-image").show(),e.siblings(".um-clear-image").hide())}),"undefined"!=typeof wp&&wp.media&&wp.media.editor&&(jQuery(".um-set-image").on("click",function(e){var a=jQuery(this);e.preventDefault(),t&&t.remove(),(t=wp.media({title:a.data("upload_frame"),button:{text:wp.i18n.__("Select","ultimate-member")},multiple:!1})).on("select",function(){var e=t.state().get("selection").first().toJSON();a.siblings(".icon_preview").attr("src",e.url).show(),a.siblings(".um-forms-field").val(e.url),a.siblings(".um-media-upload-data-id").val(e.id),a.siblings(".um-media-upload-data-width").val(e.width),a.siblings(".um-media-upload-data-height").val(e.height),a.siblings(".um-media-upload-data-thumbnail").val(e.thumbnail),a.siblings(".um-media-upload-data-url").trigger("change"),a.siblings(".um-media-upload-url").val(e.url),a.siblings(".um-clear-image").show(),a.hide(),jQuery(document).trigger("um_media_upload_select",[a,e])}),t.open()}),jQuery(".icon_preview").on("click",function(e){jQuery(this).siblings(".um-set-image").trigger("click")}),jQuery(".um-clear-image").on("click",function(e){var a=jQuery(this),t=a.siblings(".um-forms-field").data("default");a.siblings(".um-set-image").show(),a.hide(),a.siblings(".icon_preview").attr("src",t),a.siblings(".um-media-upload-data-id").val(""),a.siblings(".um-media-upload-data-width").val(""),a.siblings(".um-media-upload-data-height").val(""),a.siblings(".um-media-upload-data-thumbnail").val(""),a.siblings(".um-forms-field").val(t),a.siblings(".um-media-upload-data-url").trigger("change"),a.siblings(".um-media-upload-url").val(t),jQuery(document).trigger("um_media_upload_clear",a)})),jQuery(document.body).on("change",".um-forms-field",function(){(0 0 ) {
+ if ( jQuery('.cropper-container').length > 0 && UM.frontend.cropper.obj ) {
UM.frontend.cropper.obj.destroy(); // destroy Cropper.JS method
UM.frontend.cropper.obj = null; // flush our own object
}
diff --git a/assets/js/common-frontend.min.js b/assets/js/common-frontend.min.js
index 8748e4ea..aae402d3 100644
--- a/assets/js/common-frontend.min.js
+++ b/assets/js/common-frontend.min.js
@@ -1 +1 @@
-"object"!=typeof window.UM&&(window.UM={}),"object"!=typeof UM.frontend&&(UM.frontend={}),UM.frontend={cropper:{obj:null,init:function(){var o=jQuery(".um-modal .um-single-image-preview img").first();if(o.length&&""!==o.attr("src")){UM.frontend.cropper.obj&&UM.frontend.cropper.destroy();var t=jQuery(".um-modal .um-single-image-preview"),r=o.parent().data("crop"),n=o.parent().data("min_width"),i=o.parent().data("min_height"),a=o.parent().data("ratio"),d=jQuery(".um-modal").find("#um_upload_single").data("ratio"),d=(d&&(a=d.split(":")[0]),jQuery(window).height()-(jQuery(".um-modal-footer a").height()+20)-50-jQuery(".um-modal-header:visible").height());o.css({height:"auto"}),t.css({height:"auto"}),jQuery(window).height()<=400?(t.css({height:d+"px","max-height":d+"px"}),o.css({height:"auto"})):(o.css({height:"auto","max-height":d+"px"}),t.css({height:o.height(),"max-height":d+"px"}));let e;"square"===r?e={minWidth:n,minHeight:i,dragCrop:!1,aspectRatio:1,zoomable:!1,rotatable:!1,dashed:!1}:"cover"===r?(0 a").html(r))}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){var e,r;jQuery(this).hasClass("disabled")||um_is_directory_busy(e=jQuery(this).parents(".um-directory"))||(um_members_show_preloader(e),(1===(r="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?+e.data("page")-1:"next"===jQuery(this).data("page")?+e.data("page")+1:"last"===jQuery(this).data("page")?parseInt(e.data("total_pages")):parseInt(jQuery(this).data("page")))?(e.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),e.find('.pagi[data-page="prev"], .pagi[data-page="last"]')):(r===parseInt(e.data("total_pages"))?e.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):e.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),e.find('.pagi[data-page="first"], .pagi[data-page="prev"]'))).removeClass("disabled"),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("change",".um-directory .um-members-pagi-dropdown",function(){var e,r=jQuery(this).parents(".um-directory");um_is_directory_busy(r)||(um_members_show_preloader(r),e=jQuery(this).val(),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("click",".um-directory .um-members.um-members-list .um-member-more a",function(e){e.preventDefault();e=jQuery(this).parents(".um-member");return e.find(".um-member-more").hide(),e.find(".um-member-meta-main").slideDown(),e.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();e=jQuery(this).parents(".um-member");return e.find(".um-member-less").hide(),e.find(".um-member-meta-main").slideUp(),e.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 e=jQuery(this).parents(".um-member"),r=jQuery(this).parents(".um-members");return e.find(".um-member-more").hide(),e.find(".um-member-meta").slideDown(function(){UM_Member_Grid(r)}),e.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(r)},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").on("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(){var e,r,t,a=jQuery(this).val(),i=um_sanitize_value(a);""===i||um_is_directory_busy(e=jQuery(this).parents(".um-directory"))||(um_members_show_preloader(e),t=void 0===(t=um_get_data_for_directory(e,"filter_"+(r=jQuery(this).prop("name"))))?[]:t.split("||"),-1===jQuery.inArray(i,t)&&(t.push(i),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="'+a+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),(i=jQuery(this)).select2("destroy").select2({dropdownParent:i.parent()}),i.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,r,t,a=jQuery(this).parents(".um-directory");um_is_directory_busy(a)||(e=um_sanitize_value(jQuery(this).val()))!==(t=void 0===(t=um_get_data_for_directory(a,"filter_"+(r=jQuery(this).prop("name"))))?"":t)&&(um_members_show_preloader(a),um_set_url_from_data(a,"filter_"+r,e),a.data("page",1),um_set_url_from_data(a,"page",""),um_ajax_get_members(a),um_change_tag(a),a.data("searched",1),a.find(".um-member-directory-sorting-options").prop("disabled",!1),a.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){var r,t,a;13!==e.which||um_is_directory_busy(e=jQuery(this).parents(".um-directory"))||(r=um_sanitize_value(jQuery(this).val()))!==(a=void 0===(a=um_get_data_for_directory(e,"filter_"+(t=jQuery(this).prop("name"))))?"":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("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"),i=("text"===a?(um_set_url_from_data(e,"filter_"+t,""),jQuery('.um-search-filter input[name="'+t+'"]').val("")):"select"===a?(m=void 0===(m=um_get_data_for_directory(e,"filter_"+t))?[]:(m=um_unsanitize_value(m)).split("||"),um_set_url_from_data(e,"filter_"+t,m=(m=-1!==jQuery.inArray(r.toString(),m)?jQuery.grep(m,function(e){return e!==r.toString()}):m).length?m:""),(m=jQuery('.um-search-filter select[name="'+t+'"]')).find('option[value="'+r+'"]').prop("disabled",!1).show(),1a.data("total_pages")&&(t=a.data("total_pages")),a.data("page",t).attr("data-page",t),a.find(".um-member-directory-sorting").length&&(void 0===(t=um_get_data_for_directory(a,"sort"))&&(t=a.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]').find('a[data-default="1"]').data("value")),a.data("sorting",t),(e=a.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]')).find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),e.find('a[data-value="'+t+'"]').data("selected",1).prop("data-selected",1).attr("data-selected",1),a.find(".um-member-directory-sorting-a").find("> a").html(e.find('a[data-value="'+t+'"]').html())),a.find(".um-member-directory-view-type").length&&(void 0===(e=um_get_data_for_directory(a,"view_type"))&&(e=a.find('.um-member-directory-view-type-a[data-default="1"]').data("type")),a.data("view_type",e),a.find(".um-member-directory-view-type .um-member-directory-view-type-a").hide(),a.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="'+e+'"]').show()),a.find(".um-datepicker-filter").each(function(){var e=jQuery(this),r=e.pickadate("picker"),t=e.data("filter_name"),e=e.data("range"),t=um_get_data_for_directory(a,"filter_"+t+"_"+e);void 0!==t?r.set("select",1e3*t):r.clear()}),a.find(".um-slider").each(function(){var e=jQuery(this),r=e.data("field_name"),t=um_get_data_for_directory(a,"filter_"+r+"_from"),r=um_get_data_for_directory(a,"filter_"+r+"_to");void 0===t&&(t=e.data("min")),t=parseInt(t),void 0===r&&(r=e.data("max")),r=parseInt(r),e.slider("values",[t,r]),um_set_range_label(e)}),a.find(".um-timepicker-filter").each(function(){var e=jQuery(this),r=e.pickatime("picker"),t=e.data("filter_name"),e=e.data("range"),t=um_get_data_for_directory(a,"filter_"+t+"_"+e);void 0!==t?(e=t.split(":"),r.set("select",60*e[0])):r.clear()}),wp.hooks.applyFilters("um_member_directory_ignore_after_search",!1,a));if(!t&&1===a.data("must-search")){var i=um_get_search(a);if(!um_get_filters_data(a).length&&!i)return a.data("searched",0),void um_members_hide_preloader(a);a.data("searched",1)}wp.hooks.applyFilters("um_member_directory_prevent_default_first_loading",!1,a,r)||(um_ajax_get_members(a),um_change_tag(a))})})});
\ No newline at end of file
+var um_members_directory_busy=[],um_member_directories=[],um_member_directory_last_data=[];function um_parse_current_url(){var r={},t=window.location.search.substring(1).split("&");return jQuery.each(t,function(e){e=t[e].split("=");r[e[0]]=e[1]}),r}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={},d=(Array.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,t=um_member_directories[e];t!==a&&(r=um_get_data_for_directory(jQuery('.um-directory[data-hash="'+t+'"]')),jQuery.each(r,function(e){m[e+"_"+t]=r[e]}))}),[]),e=(jQuery.each(m,function(e){d.push(e+"="+m[e])}),"?"+(d=wp.hooks.applyFilters("um_member_directory_url_attrs",d)).join("&"));"?"===e&&(e=""),window.history.pushState("string","UM Member Directory",window.location.origin+window.location.pathname+e)}function um_members_get_hash(e){return e.data("hash")}function um_is_directory_busy(e){e=um_members_get_hash(e);return void 0!==um_members_directory_busy[e]&&um_members_directory_busy[e]}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="",i=e.siblings(".um-slider-range").data("placeholder-s"),m=e.siblings(".um-slider-range").data("placeholder-p"),r=r?(a=(r.values[0]===r.values[1]?i.replace("{value}",r.values[0]):m.replace("{min_range}",r.values[0]).replace("{max_range}",r.values[1])).replace("{field_label}",e.siblings(".um-slider-range").data("label")),t=r.values[0],r.values[1]):(a=(e.slider("values",0)===e.slider("values",1)?i.replace("{value}",e.slider("values",0)):m.replace("{min_range}",e.slider("values",0)).replace("{max_range}",e.slider("values",1))).replace("{field_label}",e.siblings(".um-slider-range").data("label")),t=e.slider("values",0),e.slider("values",1));e.siblings(".um-slider-range").html(a),e.siblings(".um_range_min").val(t),e.siblings(".um_range_max").val(r)}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){e=e.data("page");return e=e&&void 0!==e?e:1}function um_time_convert(e,r){var t=Math.floor(e/60),e=e%60;return(t=60<=e&&(e=0,24<=(t+=1))?0:t)+":"+(e=e<10?"0"+e:e)}function um_ajax_get_members(_,e){var r,t,a,i,s,m=um_members_get_hash(_);wp.hooks.applyFilters("um_member_directory_get_members_allow",!0,m,_)?(r=um_get_current_page(_),t=um_get_search(_),a=um_get_sort(_),i=-(new Date).getTimezoneOffset()/60,s={directory_id:m,page:r,search:t,sorting:a,gmt_offset:i,post_refferer:_.data("base-post"),nonce:um_scripts.nonce},_.find(".um-search-filter").length&&_.find(".um-search-filter").each(function(){var e,r,t,a,i,m,d,u=jQuery(this);u.find(".um-slider").length?(m=u.find(".um-slider").data("field_name"),r=um_get_data_for_directory(_,"filter_"+m+"_from"),e=um_get_data_for_directory(_,"filter_"+m+"_to"),void 0===r&&void 0===e||(s[m]=[r,e])):u.find(".um-datepicker-filter").length?(m=u.find(".um-datepicker-filter").data("filter_name"),r=um_get_data_for_directory(_,"filter_"+m+"_from"),e=um_get_data_for_directory(_,"filter_"+m+"_to"),void 0===r&&void 0===e||(s[m]=[r,e])):u.find(".um-timepicker-filter").length?(m=u.find(".um-timepicker-filter").data("filter_name"),r=um_get_data_for_directory(_,"filter_"+m+"_from"),e=um_get_data_for_directory(_,"filter_"+m+"_to"),void 0!==r&&(r=(i=(i=+(r=r.split(":"))[0])<10?"0"+i:i)+":"+(a=(a=+r[1])<10?"0"+a:a)+":00"),void 0!==e&&(a=+(t=e.split(":"))[1],e=(i=(i=+t[0])<10?"0"+i:i)+":"+(a=a<10?"0"+a:a)+":59"),void 0===r&&void 0===e||(s[m]=[r,e])):u.find("select").length?(m=u.find("select").attr("name"),void 0!==(d=um_get_data_for_directory(_,"filter_"+m))&&(d=um_unsanitize_value(d),s[m]=d.split("||"))):u.hasClass("um-text-filter-type")&&u.find('input[type="text"]').length?(m=u.find('input[type="text"]').attr("name"),void 0!==(d=um_get_data_for_directory(_,"filter_"+m))&&(d=um_unsanitize_value(d),s[m]=d)):s=wp.hooks.applyFilters("um_member_directory_custom_filter_handler",s,u,_)}),s=wp.hooks.applyFilters("um_member_directory_filter_request",s),wp.ajax.send("um_get_members",{data:s,success:function(e){um_member_directory_last_data[m]=e,um_build_template(_,e);var r=wp.template("um-members-pagination");_.find(".um-members-pagination-box").html(r(e)),_.data("total_pages",e.pagination.total_pages),e.pagination.total_pages?(_.find(".um-member-directory-sorting-options").prop("disabled",!1),_.find(".um-member-directory-view-type").removeClass("um-disabled")):(_.find(".um-member-directory-sorting-options").prop("disabled",!0),_.find(".um-member-directory-view-type").addClass("um-disabled")),wp.hooks.doAction("um_member_directory_loaded",_,e),um_init_new_dropdown(),um_members_hide_preloader(_)},error:function(e){console.log(e),um_members_hide_preloader(_)}})):setTimeout(um_ajax_get_members,600,_,e)}function um_build_template(e,r){var t,a=e.data("view_type"),a=wp.template("um-member-"+a+"-"+um_members_get_hash(e));jQuery(".um-"+um_members_get_hash(e)).length&&(e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-members-wrapper").prepend(a(r.users)),a=wp.template("um-members-header"),e.find(".um-members-intro").remove(),t=wp.hooks.applyFilters("um_member_directory_generate_header",!1,e),(void 0!==r.is_search&&r.is_search||t)&&e.find(".um-members-wrapper").prepend(a(r)),e.addClass("um-loaded"),wp.hooks.addAction("um_window_resize","um_members",function(){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"),UM.common.tipsy.init())}function UM_Member_Grid(r){r.find(".um-member").length&&r.imagesLoaded(function(){var e=wp.hooks.applyFilters("um_member_directory_grid_masonry_attrs",{itemSelector:".um-member",columnWidth:".um-member",gutter:".um-gutter-sizer"},r);r.masonry(e).on("layoutComplete",function(e,r){jQuery(document).trigger("um_grid_initialized",[e,r])})})}function um_get_filters_data(_){var s=[];return _.find(".um-search-filter").each(function(){var d,t,a,i,e,r,m,u=jQuery(this);u.find("input.um-datepicker-filter").length?(d="datepicker",u.find("input.um-datepicker-filter").each(function(){var e,r,t,a,i,m;"to"!==jQuery(this).data("range")&&(e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(_,"filter_"+e+"_from"),t=um_get_data_for_directory(_,"filter_"+e+"_to"),void 0!==r||void 0!==t)&&((a=jQuery(this).val())===(i=_.find('input.um-datepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val())?m=i:""!==a&&""!==i?m=a+" - "+i:""===a?m="before "+i:""===i&&(m="since "+a),s.push({name:e,label:jQuery(this).data("filter-label"),value_label:m,value:[r,t],type:d}))})):u.find("input.um-timepicker-filter").length?(d="timepicker",u.find("input.um-timepicker-filter").each(function(){var e,r,t,a,i,m;"to"!==jQuery(this).data("range")&&(e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(_,"filter_"+e+"_from"),t=um_get_data_for_directory(_,"filter_"+e+"_to"),void 0!==r||void 0!==t)&&((a=jQuery(this).val())===(i=_.find('input.um-timepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val())?m=i:""!==a&&""!==i?m=a+" - "+i:""===a?m="before "+i:""===i&&(m="since "+a),s.push({name:e,label:jQuery(this).data("filter-label"),value_label:m,value:[r,t],type:d}))})):u.find("select").length?(d="select",t=u.find("select").attr("name"),a=u.find("select").data("placeholder"),i=void 0===(i=um_get_data_for_directory(_,"filter_"+t))?[]:(i=um_unsanitize_value(i)).split("||"),jQuery.each(i,function(e){var r=u.find('select option[value="'+i[e]+'"]').data("value_label");s.push({name:t,label:a,value_label:r,value:i[e],type:d})})):u.hasClass("um-text-filter-type")&&u.find('input[type="text"]').length?(d="text",t=u.find('input[type="text"]').attr("name"),a=u.find('input[type="text"]').attr("placeholder"),""!=(i=void 0===(i=um_get_data_for_directory(_,"filter_"+t))?"":i)&&s.push({name:t,label:a,value_label:i,value:i,type:d})):u.find("div.ui-slider").length?(d="slider",t=u.find("div.ui-slider").data("field_name"),e=um_get_data_for_directory(_,"filter_"+t+"_from"),r=um_get_data_for_directory(_,"filter_"+t+"_to"),void 0===e&&void 0===r||(m=(e===r?u.find("div.um-slider-range").data("placeholder-s").replace("{value}",e):u.find("div.um-slider-range").data("placeholder-p").replace("{min_range}",e).replace("{max_range}",r)).replace("{field_label}",u.find("div.um-slider-range").data("label")),a=u.find("div.um-slider-range").data("label"),s.push({name:t,label:a,value_label:m,value:[e,r],type:d}))):s=wp.hooks.applyFilters("um_member_directory_get_filter_data",s,_,u)}),s}function um_change_tag(e){var r,t=um_get_filters_data(e),a=(e.find(".um-members-filter-tag").remove(),e.find(".um-filtered-line"));a.length&&(r=wp.template("um-members-filtered-line"),a.prepend(r({filters:t})),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=um_sanitize_value(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","");if(!wp.hooks.applyFilters("um_member_directory_ignore_after_search",!1,e)){r=e.data("must-search");if(1===r&&(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)}}}function um_slider_filter_init(e){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"),r=[r=void 0===r?parseInt(e.data("min")):r,i=void 0===i?parseInt(e.data("max")):i];e.slider({range:!0,min:parseInt(e.data("min")),max:parseInt(e.data("max")),values:r,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)})}function um_datepicker_filter_init(e){e.find(".um-datepicker-filter").each(function(){var d=jQuery(this),u=new Date(1e3*d.data("date_min")),_=new Date(1e3*d.data("date_max")),e=d.pickadate({selectYears:!0,min:u,max:_,formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){d.blur()},onClose:function(){d.blur()},onSet:function(e){var r,t,a,i,m;!e.select||um_is_directory_busy(r=d.parents(".um-directory"))||(um_members_show_preloader(r),t=d.data("filter_name"),a=d.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),e=e.select/1e3,d.val(),"from"===a?i=e:"to"===a&&(m=e),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=d.data("filter_name"),t=d.data("range"),r=um_get_data_for_directory(d.parents(".um-directory"),"filter_"+r+"_"+t);void 0!==r&&e.set("select",1e3*r)})}function um_timepicker_filter_init(e){e.find(".um-timepicker-filter").each(function(){var d=jQuery(this),u=d.attr("id"),_=d.data("filter_name"),s=d.attr("data-min"),o=d.attr("data-max"),e=s.split(":"),r=o.split(":"),e=d.pickatime({format:d.data("format"),interval:parseInt(d.data("intervals")),min:[e[0],e[1]],max:[r[0],r[1]],formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){d.blur()},onClose:function(){d.blur()},onSet:function(e){var r,t,a,i,m;!e.select||um_is_directory_busy(r=d.parents(".um-directory"))||(um_members_show_preloader(r),t=d.data("filter_name"),a=d.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=s),void 0===m&&(m=o),void 0!==e.select?(e=um_time_convert(e.select,a),"from"===a?i=e:"to"===a&&(m=e)):"from"===a?i=s:"to"===a&&(m=o),e=jQuery("#"+u).val(),"from"===d.data("range")?jQuery("#"+_+"_to").pickatime("picker").set("min",e):jQuery("#"+_+"_from").pickatime("picker").set("max",e),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"),r=d.data("filter_name"),t=d.data("range"),r=um_get_data_for_directory(d.parents(".um-directory"),"filter_"+r+"_"+t);void 0!==r&&(t=r.split(":"),e.set("select",60*t[0]+ +t[1]))})}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);var e=jQuery(this);e.select2("destroy").select2({dropdownParent:e.parent()})}),jQuery(document.body).on("mouseover",".um-directory .um-member-directory-view-type",function(){var e;jQuery(this).hasClass("um-disabled")||((e=jQuery(this).find(".um-member-directory-view-type-a:visible")).hide(),(e.next().length?e.next():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,t=jQuery(this),a=t.parents(".um-member-directory-view-type");a.hasClass("um-disabled")||(um_members_show_preloader(e),(r=a.find(".um-member-directory-view-type-a:visible")).hide(),(r.next().length?r.next():a.find(".um-member-directory-view-type-a:first")).show().tipsy("show"),null!==(r=um_member_directory_last_data[um_members_get_hash(e)])&&(um_set_url_from_data(e,"view_type",a=t.data("type")),e.data("view_type",a),um_build_template(e,r),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-new-dropdown[data-element=".um-member-directory-sorting-a"] li a',function(){var e,r,t;1===jQuery(this).data("selected")||(e=jQuery(this).data("directory-hash"),um_is_directory_busy(e=jQuery('.um-directory[data-hash="'+e+'"]')))||(um_members_show_preloader(e),r=jQuery(this).html(),t=jQuery(this).data("value"),e.data("sorting",t),um_set_url_from_data(e,"sort",t),um_ajax_get_members(e),e.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]').find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),e.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"] a[data-value="'+t+'"]').data("selected",1).prop("data-selected",1).attr("data-selected",1),e.find(".um-member-directory-sorting-a").find("> a").html(r))}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){var e,r;jQuery(this).hasClass("disabled")||um_is_directory_busy(e=jQuery(this).parents(".um-directory"))||(um_members_show_preloader(e),(1===(r="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?+e.data("page")-1:"next"===jQuery(this).data("page")?+e.data("page")+1:"last"===jQuery(this).data("page")?parseInt(e.data("total_pages")):parseInt(jQuery(this).data("page")))?(e.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),e.find('.pagi[data-page="prev"], .pagi[data-page="last"]')):(r===parseInt(e.data("total_pages"))?e.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):e.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),e.find('.pagi[data-page="first"], .pagi[data-page="prev"]'))).removeClass("disabled"),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("change",".um-directory .um-members-pagi-dropdown",function(){var e,r=jQuery(this).parents(".um-directory");um_is_directory_busy(r)||(um_members_show_preloader(r),e=jQuery(this).val(),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("click",".um-directory .um-members.um-members-list .um-member-more a",function(e){e.preventDefault();e=jQuery(this).parents(".um-member");return e.find(".um-member-more").hide(),e.find(".um-member-meta-main").slideDown(),e.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();e=jQuery(this).parents(".um-member");return e.find(".um-member-less").hide(),e.find(".um-member-meta-main").slideUp(),e.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 e=jQuery(this).parents(".um-member"),r=jQuery(this).parents(".um-members");return e.find(".um-member-more").hide(),e.find(".um-member-meta").slideDown(function(){UM_Member_Grid(r)}),e.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(r)},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").on("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(){var e,r,t,a=jQuery(this).val(),i=um_sanitize_value(a);""===i||um_is_directory_busy(e=jQuery(this).parents(".um-directory"))||(um_members_show_preloader(e),t=void 0===(t=um_get_data_for_directory(e,"filter_"+(r=jQuery(this).prop("name"))))?[]:t.split("||"),-1===jQuery.inArray(i,t)&&(t.push(i),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="'+a+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),(i=jQuery(this)).select2("destroy").select2({dropdownParent:i.parent()}),i.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,r,t,a=jQuery(this).parents(".um-directory");um_is_directory_busy(a)||(e=um_sanitize_value(jQuery(this).val()))!==(t=void 0===(t=um_get_data_for_directory(a,"filter_"+(r=jQuery(this).prop("name"))))?"":t)&&(um_members_show_preloader(a),um_set_url_from_data(a,"filter_"+r,e),a.data("page",1),um_set_url_from_data(a,"page",""),um_ajax_get_members(a),um_change_tag(a),a.data("searched",1),a.find(".um-member-directory-sorting-options").prop("disabled",!1),a.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){var r,t,a;13!==e.which||um_is_directory_busy(e=jQuery(this).parents(".um-directory"))||(r=um_sanitize_value(jQuery(this).val()))!==(a=void 0===(a=um_get_data_for_directory(e,"filter_"+(t=jQuery(this).prop("name"))))?"":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("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"),i=("text"===a?(um_set_url_from_data(e,"filter_"+t,""),jQuery('.um-search-filter input[name="'+t+'"]').val("")):"select"===a?(m=void 0===(m=um_get_data_for_directory(e,"filter_"+t))?[]:(m=um_unsanitize_value(m)).split("||"),um_set_url_from_data(e,"filter_"+t,m=(m=-1!==jQuery.inArray(r.toString(),m)?jQuery.grep(m,function(e){return e!==r.toString()}):m).length?m:""),(m=jQuery('.um-search-filter select[name="'+t+'"]')).find('option[value="'+r+'"]').prop("disabled",!1).show(),1a.data("total_pages")&&(t=a.data("total_pages")),a.data("page",t).attr("data-page",t),a.find(".um-member-directory-sorting").length&&(void 0===(t=um_get_data_for_directory(a,"sort"))&&(t=a.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]').find('a[data-default="1"]').data("value")),a.data("sorting",t),(e=a.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]')).find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),e.find('a[data-value="'+t+'"]').data("selected",1).prop("data-selected",1).attr("data-selected",1),a.find(".um-member-directory-sorting-a").find("> a").html(e.find('a[data-value="'+t+'"]').html())),a.find(".um-member-directory-view-type").length&&(void 0===(e=um_get_data_for_directory(a,"view_type"))&&(e=a.find('.um-member-directory-view-type-a[data-default="1"]').data("type")),a.data("view_type",e),a.find(".um-member-directory-view-type .um-member-directory-view-type-a").hide(),a.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="'+e+'"]').show()),a.find(".um-datepicker-filter").each(function(){var e=jQuery(this),r=e.pickadate("picker"),t=e.data("filter_name"),e=e.data("range"),t=um_get_data_for_directory(a,"filter_"+t+"_"+e);void 0!==t?r.set("select",1e3*t):r.clear()}),a.find(".um-slider").each(function(){var e=jQuery(this),r=e.data("field_name"),t=um_get_data_for_directory(a,"filter_"+r+"_from"),r=um_get_data_for_directory(a,"filter_"+r+"_to");void 0===t&&(t=e.data("min")),t=parseInt(t),void 0===r&&(r=e.data("max")),r=parseInt(r),e.slider("values",[t,r]),um_set_range_label(e)}),a.find(".um-timepicker-filter").each(function(){var e=jQuery(this),r=e.pickatime("picker"),t=e.data("filter_name"),e=e.data("range"),t=um_get_data_for_directory(a,"filter_"+t+"_"+e);void 0!==t?(e=t.split(":"),r.set("select",60*e[0])):r.clear()}),wp.hooks.applyFilters("um_member_directory_ignore_after_search",!1,a));if(!t&&1===a.data("must-search")){var i=um_get_search(a);if(!um_get_filters_data(a).length&&!i)return a.data("searched",0),void um_members_hide_preloader(a);a.data("searched",1)}wp.hooks.applyFilters("um_member_directory_prevent_default_first_loading",!1,a,r)||(um_ajax_get_members(a),um_change_tag(a))})})});
\ No newline at end of file
diff --git a/assets/js/um-responsive.js b/assets/js/um-responsive.js
index 092d571f..c753672f 100644
--- a/assets/js/um-responsive.js
+++ b/assets/js/um-responsive.js
@@ -3,14 +3,17 @@ jQuery( window ).on( 'load',function() {
um_modal_responsive();
});
-jQuery(window).on( 'resize', function() {
+// Resize using debounce.
+// * https://medium.com/geekculture/debounce-handle-browser-resize-like-a-pro-994cd522e14b
+// * https://davidwalsh.name/javascript-debounce-function
+jQuery(window).on( 'resize', _.debounce( function() {
responsive_Modal();
wp.hooks.doAction( 'um_window_resize' );
um_responsive();
um_modal_responsive();
-});
+}, 300 ) );
wp.hooks.addAction( 'um_admin_modal_success_result', 'um_frontend_responsive', function( $adminModal ) {
// Make responsive script only when live preview,
diff --git a/assets/js/um-responsive.min.js b/assets/js/um-responsive.min.js
index d8114ef6..c05ec19e 100644
--- a/assets/js/um-responsive.min.js
+++ b/assets/js/um-responsive.min.js
@@ -1 +1 @@
-jQuery(window).on("load",function(){um_responsive(),um_modal_responsive()}),jQuery(window).on("resize",function(){responsive_Modal(),wp.hooks.doAction("um_window_resize"),um_responsive(),um_modal_responsive()}),wp.hooks.addAction("um_admin_modal_success_result","um_frontend_responsive",function(o){o.find(".um-admin-modal-body").find(".um").length&&um_responsive()});
\ No newline at end of file
+jQuery(window).on("load",function(){um_responsive(),um_modal_responsive()}),jQuery(window).on("resize",_.debounce(function(){responsive_Modal(),wp.hooks.doAction("um_window_resize"),um_responsive(),um_modal_responsive()},300)),wp.hooks.addAction("um_admin_modal_success_result","um_frontend_responsive",function(o){o.find(".um-admin-modal-body").find(".um").length&&um_responsive()});
\ No newline at end of file
diff --git a/includes/admin/core/class-admin-metabox.php b/includes/admin/core/class-admin-metabox.php
index 8605036b..96546ada 100644
--- a/includes/admin/core/class-admin-metabox.php
+++ b/includes/admin/core/class-admin-metabox.php
@@ -466,7 +466,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
array(
'id' => '_um_access_hide_from_queries',
'type' => 'checkbox',
- 'label' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? __( 'Hide from queries', 'ultimate-member' ) : __( 'Would you like to display 404 error on the term\'s archive page and terms\' posts single pages when users haven\'t access?', 'ultimate-member' ),
+ 'label' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? __( 'Hide from queries', 'ultimate-member' ) : __( 'Would you like to display a 404 page for users who do not have access to this term on the term\'s archive page and terms\' posts single pages?', 'ultimate-member' ),
'description' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? __( 'Exclude only from WP queries results', 'ultimate-member' ) : __( 'Recommended to be enabled. Restricted term\'s archive page and all terms\' posts will be hidden by exclusion from WP Query. The safest and most effective method that hides post and its comments from all requests, RSS feeds, etc. on your site', 'ultimate-member' ),
'value' => 1,
'conditional' => array( '_um_accessible', '!=', '0' ),
@@ -618,7 +618,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
array(
'id' => '_um_access_hide_from_queries',
'type' => 'checkbox',
- 'label' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? __( 'Hide from queries', 'ultimate-member' ) : __( 'Would you like to display 404 error on the term\'s archive page and terms\' posts single pages when users haven\'t access?', 'ultimate-member' ),
+ 'label' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? __( 'Hide from queries', 'ultimate-member' ) : __( 'Would you like to display a 404 page for users who do not have access to this term on the term\'s archive page and terms\' posts single pages?', 'ultimate-member' ),
'description' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? __( 'Exclude only from WP queries results', 'ultimate-member' ) : __( 'Recommended to be enabled. Restricted term\'s archive page and all terms\' posts will be hidden by exclusion from WP Query. The safest and most effective method that hides post and its comments from all requests, RSS feeds, etc. on your site', 'ultimate-member' ),
'value' => ! empty( $data['_um_access_hide_from_queries'] ) ? $data['_um_access_hide_from_queries'] : '',
'conditional' => array( '_um_accessible', '!=', '0' ),
@@ -1267,7 +1267,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
}
// Set post meta for legacy support in the future.
- add_post_meta( $post_id, 'um_form_version', UM_VERSION );
+ add_post_meta( $post_id, 'um_form_version', UM_VERSION, true );
if ( empty( $_POST['post_title'] ) ) {
$where = array( 'ID' => $post_id );
diff --git a/includes/admin/core/class-admin-navmenu.php b/includes/admin/core/class-admin-navmenu.php
index 37ca9824..d4a423e7 100644
--- a/includes/admin/core/class-admin-navmenu.php
+++ b/includes/admin/core/class-admin-navmenu.php
@@ -22,7 +22,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) {
/**
* Admin_Navmenu constructor.
*/
- function __construct() {
+ public function __construct() {
self::$fields = array(
'um_nav_public' => __( 'Display Mode', 'ultimate-member' ),
'um_nav_roles' => __( 'By Role', 'ultimate-member' ),
@@ -32,6 +32,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) {
add_action( 'wp_update_nav_menu_item', array( &$this, '_save' ), 10, 3 );
add_action( 'wp_nav_menu_item_custom_fields', array( $this, 'wp_nav_menu_item_custom_fields' ), 20, 5 );
+ // @todo Appearance > Customize > Menus section without UM settings
+ // add_action( 'wp_nav_menu_item_custom_fields_customize_template', array( $this, 'wp_nav_menu_item_custom_fields_customize_template' ), 20, 5 );
}
@@ -47,9 +49,9 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) {
*/
public function wp_nav_menu_item_custom_fields( $item_id, $item, $depth, $args, $id = null ) {
- $um_nav_public = get_post_meta( $item->ID, 'menu-item-um_nav_public', true );
+ $um_nav_public = get_post_meta( $item->ID, 'menu-item-um_nav_public', true );
$_nav_roles_meta = get_post_meta( $item->ID, 'menu-item-um_nav_roles', true );
- $um_nav_roles = array();
+ $um_nav_roles = array();
if ( $_nav_roles_meta ) {
foreach ( $_nav_roles_meta as $key => $value ) {
if ( is_int( $key ) ) {
@@ -61,48 +63,74 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) {
?>
-
+
-
>
+
>
';
foreach ( $section_fields_per_page as $k => $title ) {
- $id_attr = ' id="edit-menu-item-um_nav_roles-' . $item_id . '_' . $k . '" ';
- $for_attr = ' for="edit-menu-item-um_nav_roles-' . $item_id . '_' . $k . '" ';
- $checked_attr = checked( in_array($k,$um_nav_roles), true, false );
- $html .= "";
+ $id_attr = ' id="edit-menu-item-um_nav_roles-' . $item_id . '_' . $k . '" ';
+ $for_attr = ' for="edit-menu-item-um_nav_roles-' . $item_id . '_' . $k . '" ';
+ $checked_attr = checked( in_array( $k, $um_nav_roles, true ), true, false );
+ $html .= "";
}
$html .= '';
$i++;
}
+
echo $html;
?>
+
Customize > Menus section without UM settings
+ * @return void
+ */
+ public function wp_nav_menu_item_custom_fields_customize_template() {
+ ?>
+
+
+
+
+
+
+
+ $label ) {
$key = sprintf( 'menu-item-%s', $_key );
@@ -132,11 +163,15 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) {
// Sanitize
if ( ! empty( $_POST[ $key ][ $menu_item_db_id ] ) ) {
// Do some checks here...
- $value = is_array( $_POST[ $key ][ $menu_item_db_id ] ) ?
- array_map( 'sanitize_key', array_keys( $_POST[ $key ][ $menu_item_db_id ] ) ) : (int) $_POST[ $key ][ $menu_item_db_id ];
+ if ( is_array( $_POST[ $key ][ $menu_item_db_id ] ) ) {
+ $value = array_map( 'sanitize_key', array_keys( $_POST[ $key ][ $menu_item_db_id ] ) );
+ } else {
+ $value = (int) $_POST[ $key ][ $menu_item_db_id ];
+ }
} else {
$value = null;
}
+ // phpcs:enable WordPress.Security.NonceVerification
// Update
if ( ! is_null( $value ) ) {
@@ -148,7 +183,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) {
}
/**
- *
+ * @todo Deprecate
*/
function _wp_template() {
?>
diff --git a/includes/admin/core/class-admin-settings.php b/includes/admin/core/class-admin-settings.php
index d7e1310e..10b60bef 100644
--- a/includes/admin/core/class-admin-settings.php
+++ b/includes/admin/core/class-admin-settings.php
@@ -3731,19 +3731,18 @@ Use Only Cookies: mail()->get_template_file( 'theme', $template );
if ( ! file_exists( $theme_template_path ) ) {
@@ -3751,7 +3750,7 @@ Use Only Cookies: '_um_access_hide_from_queries',
'type' => 'checkbox',
- 'label' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? __( 'Hide from queries', 'ultimate-member' ) : __( 'Would you like to display 404 page when users haven\'t access?', 'ultimate-member' ),
+ 'label' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? __( 'Hide from queries', 'ultimate-member' ) : __( 'Would you like to display a 404 page for users who do not have access to this page?', 'ultimate-member' ),
'tooltip' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? __( 'Exclude only from WP queries results', 'ultimate-member' ) : __( 'Recommended to be enabled. Restricted post will be hidden by exclusion from WP Query. The safest and most effective method that hides post and its comments from all requests, RSS feeds, etc. on your site', 'ultimate-member' ),
'value' => ! empty( $data['_um_access_hide_from_queries'] ) ? $data['_um_access_hide_from_queries'] : '',
'conditional' => array( '_um_accessible', '!=', '0' ),
diff --git a/includes/common/class-enqueue.php b/includes/common/class-enqueue.php
index da7b797e..df9aa407 100644
--- a/includes/common/class-enqueue.php
+++ b/includes/common/class-enqueue.php
@@ -178,6 +178,63 @@ class Enqueue {
return apply_filters( 'um_get_pickadate_locale', $locale, $suffix );
}
+ /**
+ * Select2 JS and CSS assets register function.
+ *
+ *
+ */
+ public function register_select2() {
+ $suffix = self::get_suffix();
+ $libs_url = self::get_url( 'libs' );
+
+ /**
+ * Filters marker for dequeue select2.JS library.
+ *
+ * @since 2.0.0
+ * @hook um_dequeue_select2_scripts
+ *
+ * @param {bool} $dequeue_select2 Dequeue select2 assets marker. Set to `true` for dequeue scripts.
+ *
+ * @return {bool} Dequeue select2 assets. By default `false`.
+ *
+ * @example Dequeue select2 assets.
+ * function custom_um_dequeue_select2_scripts( $dequeue_select2 ) {
+ * $dequeue_select2 = true;
+ * return $dequeue_select2;
+ * }
+ * add_filter( 'um_dequeue_select2_scripts', 'custom_um_dequeue_select2_scripts' );
+ */
+ $dequeue_select2 = apply_filters( 'um_dequeue_select2_scripts', false );
+ if ( class_exists( 'WooCommerce' ) || $dequeue_select2 ) {
+ wp_dequeue_style( 'select2' );
+ wp_deregister_style( 'select2' );
+
+ wp_dequeue_script( 'select2' );
+ wp_deregister_script( 'select2' );
+ }
+ wp_register_script( 'select2', $libs_url . 'select2/select2.full' . $suffix . '.js', array( 'jquery' ), '4.0.13', true );
+ // Load a localized version for Select2.
+ $locale = get_locale();
+ $base_locale = get_locale();
+ if ( $locale ) {
+ if ( ! file_exists( UM_PATH . 'assets/libs/select2/i18n/' . $locale . '.js' ) ) {
+ $locale = explode( '_', $base_locale );
+ $locale = $locale[0];
+
+ if ( ! file_exists( UM_PATH . 'assets/libs/select2/i18n/' . $locale . '.js' ) ) {
+ $locale = explode( '_', $base_locale );
+ $locale = implode( '-', $locale );
+ }
+ }
+
+ if ( file_exists( UM_PATH . 'assets/libs/select2/i18n/' . $locale . '.js' ) ) {
+ wp_register_script( 'um_select2_locale', $libs_url . 'select2/i18n/' . $locale . '.js', array( 'jquery', 'select2' ), '4.0.13', true );
+ self::$select2_handle = 'um_select2_locale';
+ }
+ }
+ wp_register_style( 'select2', $libs_url . 'select2/select2' . $suffix . '.css', array(), '4.0.13' );
+ }
+
/**
* Register common JS/CSS libraries.
*
@@ -204,52 +261,7 @@ class Enqueue {
wp_register_style( 'um_fonticons_fa', $libs_url . 'legacy/fonticons/fonticons-fa' . $suffix . '.css', array(), UM_VERSION ); // FontAwesome
// Select2 JS.
- /**
- * Filters marker for dequeue select2.JS library.
- *
- * @since 2.0.0
- * @hook um_dequeue_select2_scripts
- *
- * @param {bool} $dequeue_select2 Dequeue select2 assets marker. Set to `true` for dequeue scripts.
- *
- * @return {bool} Dequeue select2 assets. By default `false`.
- *
- * @example Dequeue select2 assets.
- * function custom_um_dequeue_select2_scripts( $dequeue_select2 ) {
- * $dequeue_select2 = true;
- * return $dequeue_select2;
- * }
- * add_filter( 'um_dequeue_select2_scripts', 'custom_um_dequeue_select2_scripts' );
- */
- $dequeue_select2 = apply_filters( 'um_dequeue_select2_scripts', false );
- if ( class_exists( 'WooCommerce' ) || $dequeue_select2 ) {
- wp_dequeue_style( self::$select2_handle );
- wp_deregister_style( self::$select2_handle );
-
- wp_dequeue_script( self::$select2_handle );
- wp_deregister_script( self::$select2_handle );
- }
- wp_register_script( self::$select2_handle, $libs_url . 'select2/select2.full' . $suffix . '.js', array( 'jquery' ), '4.0.13', true );
- // Load a localized version for Select2.
- $locale = get_locale();
- $base_locale = get_locale();
- if ( $locale ) {
- if ( ! file_exists( UM_PATH . 'assets/libs/select2/i18n/' . $locale . '.js' ) ) {
- $locale = explode( '_', $base_locale );
- $locale = $locale[0];
-
- if ( ! file_exists( UM_PATH . 'assets/libs/select2/i18n/' . $locale . '.js' ) ) {
- $locale = explode( '_', $base_locale );
- $locale = implode( '-', $locale );
- }
- }
-
- if ( file_exists( UM_PATH . 'assets/libs/select2/i18n/' . $locale . '.js' ) ) {
- wp_register_script( 'um_select2_locale', $libs_url . 'select2/i18n/' . $locale . '.js', array( 'jquery', self::$select2_handle ), '4.0.13', true );
- self::$select2_handle = 'um_select2_locale';
- }
- }
- wp_register_style( 'select2', $libs_url . 'select2/select2' . $suffix . '.css', array(), '4.0.13' );
+ $this->register_select2();
// Date-time picker (Pickadate.JS)
wp_register_script( 'um_datetime', $libs_url . 'pickadate/picker' . $suffix . '.js', array( 'jquery' ), '3.6.2', true );
diff --git a/includes/core/class-access.php b/includes/core/class-access.php
index 60463bf9..1cafc3b9 100644
--- a/includes/core/class-access.php
+++ b/includes/core/class-access.php
@@ -1,19 +1,23 @@
singular_page = false;
$this->redirect_handler = false;
- $this->allow_access = false;
+ $this->allow_access = false;
// NEW HOOKS
// Navigation line below the post content, change query to exclude restricted
@@ -140,7 +140,7 @@ if ( ! class_exists( 'um\core\Access' ) ) {
*
* @return array
*/
- function exclude_posts_array( $force = false, $post_types = false ) {
+ public function exclude_posts_array( $force = false, $post_types = false ) {
if ( $this->ignore_exclude ) {
return array();
}
@@ -335,16 +335,14 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $exclude_posts;
}
-
-
/**
* Get array with restricted terms
*
- * @param \WP_Term_Query $query
+ * @param WP_Term_Query $query
*
* @return array
*/
- function exclude_terms_array( $query ) {
+ public function exclude_terms_array( $query ) {
$exclude = array();
$restricted_taxonomies = UM()->options()->get( 'restricted_access_taxonomy_metabox' );
@@ -415,11 +413,10 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $exclude;
}
-
/**
- * @param \WP_Term_Query $query
+ * @param WP_Term_Query $query
*/
- function exclude_hidden_terms_query( $query ) {
+ public function exclude_hidden_terms_query( $query ) {
if ( current_user_can( 'administrator' ) || ! empty( $query->query_vars['um_ignore_exclude'] ) ) {
return;
}
@@ -430,11 +427,10 @@ if ( ! class_exists( 'um\core\Access' ) ) {
}
}
-
/**
- * @param \WP_Query $query
+ * @param WP_Query $query
*/
- function exclude_posts( $query ) {
+ public function exclude_posts( $query ) {
if ( current_user_can( 'administrator' ) ) {
return;
}
@@ -472,16 +468,15 @@ if ( ! class_exists( 'um\core\Access' ) ) {
}
}
-
/**
- * Exclude restricted post from query if there is a single query that exclude post_not_in by default in \WP_Query
+ * Exclude restricted post from query if there is a single query that exclude post_not_in by default in WP_Query
*
- * @param string $where
- * @param \WP_Query $query
+ * @param string $where
+ * @param WP_Query $query
*
* @return mixed
*/
- function exclude_posts_where( $where, $query ) {
+ public function exclude_posts_where( $where, $query ) {
if ( current_user_can( 'administrator' ) ) {
return $where;
}
@@ -502,18 +497,17 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $where;
}
-
/**
* Change the posts count based on restriction settings
*
* @param object $counts Post counts
- * @param string $type Post type
- * @param string $perm The permission to determine if the posts are 'readable'
- * by the current user.
+ * @param string $type Post type
+ * @param string $perm The permission to determine if the posts are 'readable'
+ * by the current user.
*
* @return object
*/
- function custom_count_posts_handler( $counts, $type = 'post', $perm = '' ) {
+ public function custom_count_posts_handler( $counts, $type = 'post', $perm = '' ) {
if ( current_user_can( 'administrator' ) ) {
return $counts;
}
@@ -565,7 +559,6 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $counts;
}
-
/**
* Exclude restricted posts in Recent Posts widget
*
@@ -573,7 +566,7 @@ if ( ! class_exists( 'um\core\Access' ) ) {
*
* @return array
*/
- function exclude_restricted_posts_widget( $array ) {
+ public function exclude_restricted_posts_widget( $array ) {
if ( current_user_can( 'administrator' ) ) {
return $array;
}
@@ -587,7 +580,6 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $array;
}
-
/**
* Exclude restricted posts in Recent Posts widget
*
@@ -595,7 +587,7 @@ if ( ! class_exists( 'um\core\Access' ) ) {
*
* @return array
*/
- function exclude_restricted_pages( $array ) {
+ public function exclude_restricted_pages( $array ) {
if ( current_user_can( 'administrator' ) ) {
return $array;
}
@@ -608,16 +600,15 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $array;
}
-
/**
* Exclude restricted posts in widgets
*
* @param string $sql_where
- * @param array $parsed_args
+ * @param array $parsed_args
*
* @return string
*/
- function exclude_restricted_posts_archives_widget( $sql_where, $parsed_args = array() ) {
+ public function exclude_restricted_posts_archives_widget( $sql_where, $parsed_args = array() ) {
if ( current_user_can( 'administrator' ) ) {
return $sql_where;
}
@@ -633,7 +624,6 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $sql_where;
}
-
/**
* Exclude posts from next, previous navigation
*
@@ -641,11 +631,11 @@ if ( ! class_exists( 'um\core\Access' ) ) {
* @param bool $in_same_term
* @param string|array $excluded_terms
* @param string $taxonomy
- * @param null|\WP_Post $post
+ * @param null|WP_Post $post
*
* @return string
*/
- function exclude_navigation_posts( $where, $in_same_term = false, $excluded_terms = '', $taxonomy = 'category', $post = null ) {
+ public function exclude_navigation_posts( $where, $in_same_term = false, $excluded_terms = '', $taxonomy = 'category', $post = null ) {
if ( current_user_can( 'administrator' ) ) {
return $where;
}
@@ -663,16 +653,15 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $where;
}
-
/**
- * Replace titles of restricted posts
+ * Replace titles of restricted posts.
*
- * @param string $title
- * @param int|null $id
+ * @param string $title Post title.
+ * @param int|null $id Post ID.
*
* @return string
*/
- function filter_restricted_post_title( $title, $id = null ) {
+ public function filter_restricted_post_title( $title, $id = null ) {
if ( ! UM()->options()->get( 'restricted_post_title_replace' ) ) {
return $title;
}
@@ -689,6 +678,29 @@ if ( ! class_exists( 'um\core\Access' ) ) {
$id = absint( $id );
}
+ /**
+ * Filters a marker for ignoring restricted post title changes.
+ *
+ * @param {bool} $ignore Marker for ignoring restricted post title changes. Default `false`. Set to `true` if you want to ignore and show real title.
+ * @param {int} $post_id Post ID.
+ *
+ * @return {bool} Marker for ignoring restricted post title changes.
+ *
+ * @since 2.2.3
+ * @hook um_ignore_restricted_title
+ *
+ * @example Leave real post titles even they are restricted. By post ID (for ID = 400).
+ * function change_restricted_title( $ignore, $id ) {
+ * // your code here
+ * if ( 400 === $id ) {
+ * $ignore = true;
+ * }
+ * return $ignore;
+ * }
+ * add_filter( 'um_ignore_restricted_title', 'change_restricted_title', 10, 2 );
+ * @example Leave real post titles even they are restricted. For all posts: site-wide logic.
+ * add_filter( 'um_ignore_restricted_title', '__return_true' );
+ */
$ignore = apply_filters( 'um_ignore_restricted_title', false, $id );
if ( $ignore ) {
return $title;
@@ -696,21 +708,20 @@ if ( ! class_exists( 'um\core\Access' ) ) {
if ( $this->is_restricted( $id ) ) {
$restricted_global_title = UM()->options()->get( 'restricted_access_post_title' );
- $title = stripslashes( $restricted_global_title );
+ $title = stripslashes( $restricted_global_title );
}
return $title;
}
-
/**
- * Replace content of restricted posts
+ * Replace content of restricted posts.
*
- * @param string $content
+ * @param string $content Post Content.
*
* @return string
*/
- function filter_restricted_post_content( $content ) {
+ public function filter_restricted_post_content( $content ) {
if ( current_user_can( 'administrator' ) ) {
return $content;
}
@@ -720,6 +731,31 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $content;
}
+ /**
+ * Filters a marker for ignoring restricted post content changes.
+ *
+ * Note: Use with caution! You can make your posts not restricted by using this filter hook.
+ *
+ * @param {bool} $ignore Marker for ignoring restricted post content changes. Default `false`. Set to `true` if you want to ignore and show real content.
+ * @param {int} $post_id Post ID.
+ *
+ * @return {bool} Marker for ignoring restricted post content changes.
+ *
+ * @since 2.2.3
+ * @hook um_ignore_restricted_content
+ *
+ * @example Leave real post content even they are restricted. By post ID (for ID = 400).
+ * function change_restricted_content( $ignore, $id ) {
+ * // your code here
+ * if ( 400 === $id ) {
+ * $ignore = true;
+ * }
+ * return $ignore;
+ * }
+ * add_filter( 'um_ignore_restricted_content', 'change_restricted_content', 10, 2 );
+ * @example Leave real post content even they are restricted. For all posts: site-wide logic.
+ * add_filter( 'um_ignore_restricted_content', '__return_true' );
+ */
$ignore = apply_filters( 'um_ignore_restricted_content', false, $id );
if ( $ignore ) {
return $content;
@@ -741,16 +777,15 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $content;
}
-
/**
- * Replace excerpt of restricted posts
+ * Replace excerpt of restricted posts.
*
- * @param string $post_excerpt
- * @param \WP_Post $post
+ * @param string $post_excerpt Post Excerpt.
+ * @param WP_Post $post WP_Post instance.
*
* @return string
*/
- function filter_restricted_post_excerpt( $post_excerpt = '', $post = null ) {
+ public function filter_restricted_post_excerpt( $post_excerpt = '', $post = null ) {
if ( empty( $post ) ) {
return $post_excerpt;
}
@@ -759,6 +794,31 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $post_excerpt;
}
+ /**
+ * Filters a marker for ignoring restricted post excerpt changes.
+ *
+ * Note: Use with caution! You can make your posts not restricted by using this filter hook.
+ *
+ * @param {bool} $ignore Marker for ignoring restricted post excerpt changes. Default `false`. Set to `true` if you want to ignore and show real content.
+ * @param {int} $post_id Post ID.
+ *
+ * @return {bool} Marker for ignoring restricted post excerpt changes.
+ *
+ * @since 2.2.3
+ * @hook um_ignore_restricted_excerpt
+ *
+ * @example Leave real post excerpt even they are restricted. By post ID (for ID = 400).
+ * function change_restricted_excerpt( $ignore, $id ) {
+ * // your code here
+ * if ( 400 === $id ) {
+ * $ignore = true;
+ * }
+ * return $ignore;
+ * }
+ * add_filter( 'um_ignore_restricted_excerpt', 'change_restricted_excerpt', 10, 2 );
+ * @example Leave real post excerpt even they are restricted. For all posts: site-wide logic.
+ * add_filter( 'um_ignore_restricted_excerpt', '__return_true' );
+ */
$ignore = apply_filters( 'um_ignore_restricted_excerpt', false, $post->ID );
if ( $ignore ) {
return $post_excerpt;
@@ -771,16 +831,15 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $post_excerpt;
}
-
/**
* Hide attachment if the post is restricted
*
* @param string $url
- * @param int $attachment_id
+ * @param int $attachment_id
*
* @return boolean|string
*/
- function filter_attachment( $url, $attachment_id ) {
+ public function filter_attachment( $url, $attachment_id ) {
if ( current_user_can( 'administrator' ) ) {
return $url;
}
@@ -788,7 +847,6 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return ( $attachment_id && $this->is_restricted( $attachment_id ) ) ? false : $url;
}
-
/**
* Hide attachment if the post is restricted
*
@@ -798,7 +856,7 @@ if ( ! class_exists( 'um\core\Access' ) ) {
*
* @return bool
*/
- function filter_post_thumbnail( $has_thumbnail, $post = null, $thumbnail_id = false ) {
+ public function filter_post_thumbnail( $has_thumbnail, $post = null, $thumbnail_id = false ) {
if ( empty( $thumbnail_id ) ) {
return $has_thumbnail;
}
@@ -825,14 +883,12 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $has_thumbnail;
}
-
-
/**
* Exclude comments from restricted posts in widgets
*
- * @param \WP_Comment_Query $query
+ * @param WP_Comment_Query $query
*/
- function exclude_posts_comments( $query ) {
+ public function exclude_posts_comments( $query ) {
if ( current_user_can( 'administrator' ) ) {
return;
}
@@ -862,11 +918,10 @@ if ( ! class_exists( 'um\core\Access' ) ) {
}
}
-
/**
* @return array
*/
- function get_available_comments_post_types() {
+ public function get_available_comments_post_types() {
global $wp_taxonomies, $wpdb;
$restricted_posts = UM()->options()->get( 'restricted_access_post_metabox' );
@@ -907,16 +962,15 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $restricted_posts;
}
-
/**
* Exclude comments from comments feed
*
- * @param string $where
- * @param \WP_Query $query
+ * @param string $where
+ * @param WP_Query $query
*
* @return string
*/
- function exclude_posts_comments_feed( $where, $query ) {
+ public function exclude_posts_comments_feed( $where, $query ) {
if ( current_user_can( 'administrator' ) ) {
return $where;
}
@@ -924,20 +978,19 @@ if ( ! class_exists( 'um\core\Access' ) ) {
$exclude_posts = $this->exclude_posts_array( true, $this->get_available_comments_post_types() );
if ( ! empty( $exclude_posts ) ) {
$exclude_string = implode( ',', $exclude_posts );
- $where .= ' AND comment_post_ID NOT IN ( ' . $exclude_string . ' )';
+ $where .= ' AND comment_post_ID NOT IN ( ' . $exclude_string . ' )';
}
return $where;
}
-
/**
* @param array|object $stats
* @param int $post_id Post ID. Can be 0 for the whole website
*
* @return object
*/
- function custom_comments_count_handler( $stats = array(), $post_id = 0 ) {
+ public function custom_comments_count_handler( $stats = array(), $post_id = 0 ) {
if ( ! empty( $stats ) || current_user_can( 'administrator' ) ) {
return $stats;
}
@@ -963,14 +1016,13 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $stats_object;
}
-
/**
* @param int $post_id
* @param array $exclude_posts
*
* @return array
*/
- function get_comment_count( $post_id = 0, $exclude_posts = array() ) {
+ public function get_comment_count( $post_id = 0, $exclude_posts = array() ) {
static $cache = array();
if ( isset( $cache[ $post_id ] ) ) {
@@ -1044,15 +1096,15 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $comment_count;
}
-
/**
* Disable comments if user has not permission to access this post
*
* @param mixed $open
* @param int $post_id
- * @return boolean
+ *
+ * @return bool
*/
- function disable_comments_open( $open, $post_id ) {
+ public function disable_comments_open( $open, $post_id ) {
if ( current_user_can( 'administrator' ) ) {
return $open;
}
@@ -1074,15 +1126,15 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $open;
}
-
/**
* Disable comments if user has not permission to access this post
*
* @param int $count
* @param int $post_id
- * @return boolean
+ *
+ * @return bool
*/
- function disable_comments_open_number( $count, $post_id = 0 ) {
+ public function disable_comments_open_number( $count, $post_id = 0 ) {
if ( current_user_can( 'administrator' ) ) {
return $count;
}
@@ -1104,15 +1156,15 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $count;
}
-
/**
* Protect Post Types in menu query
* Restrict content new logic
* @param array $menu_items
* @param array $args
+ *
* @return array
*/
- function filter_menu( $menu_items, $args = array() ) {
+ public function filter_menu( $menu_items, $args = array() ) {
//if empty
if ( empty( $menu_items ) ) {
return $menu_items;
@@ -1159,14 +1211,13 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $filtered_items;
}
-
/**
* @param $block_content
* @param $block
*
* @return string
*/
- function restrict_blocks( $block_content, $block ) {
+ public function restrict_blocks( $block_content, $block ) {
if ( is_admin() ) {
return $block_content;
}
@@ -1246,13 +1297,12 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $block_content;
}
-
/**
- * @param \WP_Post $post
+ * @param WP_Post $post
*
- * @return \WP_Post
+ * @return WP_Post
*/
- function maybe_replace_title( $post ) {
+ public function maybe_replace_title( $post ) {
if ( ! UM()->options()->get( 'restricted_post_title_replace' ) ) {
return $post;
}
@@ -1261,28 +1311,28 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $post;
}
- if ( ! is_a( $post, '\WP_Post' ) ) {
+ if ( ! is_a( $post, WP_Post::class ) ) {
return $post;
}
+ /** This filter is documented in includes/core/class-access.php */
$ignore = apply_filters( 'um_ignore_restricted_title', false, $post->ID );
if ( $ignore ) {
return $post;
}
$restricted_global_title = UM()->options()->get( 'restricted_access_post_title' );
- $post->post_title = stripslashes( $restricted_global_title );
+ $post->post_title = stripslashes( $restricted_global_title );
return $post;
}
-
/**
- * @param \WP_Post $nav_item
+ * @param WP_Post $nav_item
*
- * @return \WP_Post
+ * @return WP_Post
*/
- function maybe_replace_nav_menu_title( $nav_item ) {
+ public function maybe_replace_nav_menu_title( $nav_item ) {
if ( ! UM()->options()->get( 'restricted_post_title_replace' ) ) {
return $nav_item;
}
@@ -1291,7 +1341,7 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $nav_item;
}
- if ( ! is_a( $nav_item, '\WP_Post' ) ) {
+ if ( ! is_a( $nav_item, WP_Post::class ) ) {
return $nav_item;
}
@@ -1306,21 +1356,21 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $nav_item;
}
-
/**
* Protect Post Types in query
* Restrict content new logic
*
- * @param array $posts
- * @param array|\WP_Query $query
+ * @param array $posts Posts query result.
+ * @param array|WP_Query $query WP_Query instance.
+ *
* @return array
*/
- function filter_protected_posts( $posts, $query ) {
+ public function filter_protected_posts( $posts, $query ) {
if ( current_user_can( 'administrator' ) ) {
return $posts;
}
- //Woocommerce AJAX fixes....remove filtration on wc-ajax which goes to Front Page
+ // Woocommerce AJAX fixes....remove filtration on wc-ajax which goes to Front Page.
if ( ! empty( $_GET['wc-ajax'] ) && defined( 'WC_DOING_AJAX' ) && WC_DOING_AJAX ) {
return $posts;
}
@@ -1336,8 +1386,8 @@ if ( ! class_exists( 'um\core\Access' ) ) {
$is_singular = ! empty( $query->is_singular ) ? true : false;
}
- if ( is_object( $query ) && is_a( $query, '\WP_Query' ) &&
- ( $query->is_main_query() || ! empty( $query->query_vars['um_main_query'] ) ) ) {
+ if ( is_object( $query ) && is_a( $query, WP_Query::class ) &&
+ ( $query->is_main_query() || ! empty( $query->query_vars['um_main_query'] ) ) ) {
if ( $is_singular ) {
if ( ! UM()->options()->get( 'disable_restriction_pre_queries' ) && $this->is_restricted( $posts[0]->ID ) ) {
$content_restriction = $this->get_post_privacy_settings( $posts[0]->ID );
@@ -1394,7 +1444,30 @@ if ( ! class_exists( 'um\core\Access' ) ) {
*/
do_action( 'um_access_fix_external_post_content' );
- $filtered_posts[] = $this->maybe_replace_title( $post );
+ $filtered_post = $this->maybe_replace_title( $post );
+ /**
+ * Filters restricted via Ultimate Member settings post instance.
+ *
+ * @param {object} $filtered_post Restricted `WP_Post` instance.
+ * @param {object} $post Base `WP_Post` instance before restriction settings apply.
+ * @param {object} $query `WP_Query` for getting posts.
+ *
+ * @return {object} Restricted `WP_Post` instance.
+ *
+ * @since 2.8.2
+ * @hook um_access_restricted_post_instance
+ *
+ * @example Change restricted post title to custom one.
+ * function restricted_post_instance( $filtered_post, $original_post, $query ) {
+ * // your code here
+ * $filtered_post->post_title = 'This post is restricted';
+ * return $filtered_post;
+ * }
+ * add_filter( 'um_access_restricted_post_instance', 'restricted_post_instance', 10, 3 );
+ */
+ $filtered_post = apply_filters( 'um_access_restricted_post_instance', $filtered_post, $post, $query );
+
+ $filtered_posts[] = $filtered_post;
continue;
}
} elseif ( '1' == $restriction['_um_noaccess_action'] ) {
@@ -1417,7 +1490,11 @@ if ( ! class_exists( 'um\core\Access' ) ) {
}
} else {
if ( empty( $restriction['_um_access_hide_from_queries'] ) || UM()->options()->get( 'disable_restriction_pre_queries' ) ) {
- $filtered_posts[] = $this->maybe_replace_title( $post );
+ $filtered_post = $this->maybe_replace_title( $post );
+ /** This filter is documented in includes/core/class-access.php */
+ $filtered_post = apply_filters( 'um_access_restricted_post_instance', $filtered_post, $post, $query );
+
+ $filtered_posts[] = $filtered_post;
continue;
}
}
@@ -1427,13 +1504,12 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $filtered_posts;
}
-
/**
* Set custom access actions and redirection
*
* Old global restrict content logic
*/
- function template_redirect() {
+ public function template_redirect() {
global $post, $wp_query;
//if we logged by administrator it can access to all content
@@ -1532,11 +1608,10 @@ if ( ! class_exists( 'um\core\Access' ) ) {
$this->check_access();
}
-
/**
* Check Blog page Content Restriction settings
*/
- function um_access_check_blog_page_settings() {
+ public function um_access_check_blog_page_settings() {
global $wp_query;
if ( ! empty( $wp_query->is_home ) && ! empty( $wp_query->is_posts_page ) ) {
@@ -1574,7 +1649,7 @@ if ( ! class_exists( 'um\core\Access' ) ) {
/**
* Check individual term Content Restriction settings
*/
- function um_access_check_individual_term_settings() {
+ public function um_access_check_individual_term_settings() {
//check only tax|tags|categories - skip archive, author, and date lists
if ( ! ( is_tax() || is_tag() || is_category() ) ) {
return;
@@ -1627,7 +1702,6 @@ if ( ! class_exists( 'um\core\Access' ) ) {
}
}
-
/**
* @param $template
* @param $type
@@ -1635,7 +1709,7 @@ if ( ! class_exists( 'um\core\Access' ) ) {
*
* @return string
*/
- function taxonomy_message( $template, $type, $templates ) {
+ public function taxonomy_message( $template, $type, $templates ) {
return UM()->locate_template( 'restricted-taxonomy.php' );
}
@@ -1646,15 +1720,14 @@ if ( ! class_exists( 'um\core\Access' ) ) {
*
* @return string
*/
- function blog_message( $template, $type, $templates ) {
+ public function blog_message( $template, $type, $templates ) {
return UM()->locate_template( 'restricted-blog.php' );
}
-
/**
* Check global accessible settings
*/
- function um_access_check_global_settings() {
+ public function um_access_check_global_settings() {
global $post;
$curr = UM()->permalinks()->get_current_url();
@@ -1776,13 +1849,12 @@ if ( ! class_exists( 'um\core\Access' ) ) {
}
}
-
/**
* Check access
*
* @return bool
*/
- function check_access() {
+ public function check_access() {
if ( $this->allow_access === true ) {
return true;
}
@@ -1795,7 +1867,6 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return false;
}
-
/**
* Sends a HTTP header to limit rendering of pages to same origin iframes when loading sensitive pages.
*
@@ -1812,7 +1883,6 @@ if ( ! class_exists( 'um\core\Access' ) ) {
}
}
-
/**
* Sets a custom access referer in a redirect URL
*
@@ -1821,7 +1891,7 @@ if ( ! class_exists( 'um\core\Access' ) ) {
*
* @return string
*/
- function set_referer( $url, $referer ) {
+ public function set_referer( $url, $referer ) {
/**
* UM hook
@@ -1852,13 +1922,13 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $url;
}
-
/**
* Get privacy settings for post
* return false if post is not private
* Restrict content new logic
*
- * @param \WP_Post|int $post Post ID or object
+ * @param WP_Post|int $post Post ID or object
+ *
* @return bool|array
*/
public function get_post_privacy_settings( $post ) {
@@ -1867,7 +1937,7 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return false;
}
- if ( ! is_numeric( $post ) && ! is_a( $post, \WP_Post::class ) ) {
+ if ( ! is_numeric( $post ) && ! is_a( $post, WP_Post::class ) ) {
return false;
}
@@ -2014,15 +2084,15 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return false;
}
-
/**
* Helper for checking if the user can some of the roles array
*
* @param $user_id
* @param $roles
+ *
* @return bool
*/
- function user_can( $user_id, $roles ) {
+ public function user_can( $user_id, $roles ) {
$user_can = false;
if ( ! empty( $roles ) ) {
@@ -2037,7 +2107,6 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $user_can;
}
-
/**
* Helper for 3rd-party integrations with content restriction settings
*
@@ -2045,7 +2114,7 @@ if ( ! class_exists( 'um\core\Access' ) ) {
*
* @return bool
*/
- function um_custom_restriction( $restriction ) {
+ public function um_custom_restriction( $restriction ) {
/**
* UM hook
*
@@ -2070,16 +2139,16 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return apply_filters( 'um_custom_restriction', true, $restriction );
}
-
/**
* Is post restricted?
*
* @param int $post_id
* @param bool $on_single_page
* @param bool $ignore_cache
+ *
* @return bool
*/
- function is_restricted( $post_id, $on_single_page = false, $ignore_cache = false ) {
+ public function is_restricted( $post_id, $on_single_page = false, $ignore_cache = false ) {
// break for incorrect post
if ( empty( $post_id ) ) {
return false;
@@ -2169,16 +2238,16 @@ if ( ! class_exists( 'um\core\Access' ) ) {
return $restricted;
}
-
/**
* Is term restricted?
*
* @param int $term_id
* @param bool $on_term_page
* @param bool $ignore_cache
+ *
* @return bool
*/
- function is_restricted_term( $term_id, $on_term_page = false, $ignore_cache = false ) {
+ public function is_restricted_term( $term_id, $on_term_page = false, $ignore_cache = false ) {
static $cache = array();
if ( isset( $cache[ $term_id ] ) && ! $ignore_cache ) {
diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php
index 59cb850a..5aeae98a 100644
--- a/includes/core/class-fields.php
+++ b/includes/core/class-fields.php
@@ -2963,7 +2963,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
} else {
$img_value = UM()->files()->get_download_link( $this->set_id, $key, um_user( 'ID' ) );
}
- $img = '
';
+ $img = '
';
} else {
$img = '';
}
@@ -2981,7 +2981,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
if ( empty( $disabled ) ) {
$output .= '';
}
- $output .= '![]()
';
+ $output .= '