Merge pull request #1009 from ultimatemember/development/2.3.3

2.4.0 version development cycle
This commit is contained in:
Nikita Sinelnikov
2022-05-24 19:37:48 +03:00
committed by GitHub
33 changed files with 254 additions and 159 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 116 KiB

+1 -1
View File
@@ -41,7 +41,7 @@ GNU Version 2 or Any Later Version
## Releases
[Official Release Version: 2.3.2](https://github.com/ultimatemember/ultimatemember/releases/tag/2.3.2).
[Official Release Version: 2.4.0](https://github.com/ultimatemember/ultimatemember/releases/tag/2.4.0).
## Changelog
+1 -1
View File
@@ -1 +1 @@
function um_init_new_dropdown(){jQuery(".um-new-dropdown").um_dropdownMenu()}!function(u){function d(e){var l={get:function(){return l},show:function(){l.hideAll(),l.$menu=l.$element.find(".um-new-dropdown"),l.$menu.length||(l.$menu=u('div.um-new-dropdown[data-element="'+l.data.element+'"]').first()),l.$dropdown=l.$menu.clone(),l.$dropdown.on("click","li a",l.itemHandler).attr("data-cloned","1"),u(window).on("resize",l.updatePosition);var e=""!==l.data.parent?l.data.parent:document.body;return u(e).append(l.$dropdown),l.$element.trigger("um_new_dropdown_render",{dropdown_layout:l.$dropdown,trigger:l.data.trigger,element:l.data.elemen,obj:l.$element}),l.$dropdown.css(l.calculatePosition()).show(),l.$element.addClass("um-new-dropdown-shown").data("um-new-dropdown-show",!0),l},hide:function(){return l.$dropdown&&l.$dropdown.is(":visible")&&(u(window).off("resize",l.updatePosition),l.$dropdown.remove(),l.$element.removeClass("um-new-dropdown-shown").data("um-new-dropdown-show",!1)),l},hideAll:function(){return l.$element.data("um-new-dropdown-show")&&l.hide(),u('div.um-new-dropdown[data-cloned="1"]').remove(),u(".um-new-dropdown-shown").removeClass("um-new-dropdown-shown").data("um-new-dropdown-show",!1),l},calculatePosition:function(){var e,t=l.$element.get(0).getBoundingClientRect(),n=l.$dropdown.innerHeight()||150,o=l.data.width||150,d="";if(""!==l.data.parent){var r=u(l.data.parent).offset(),a=l.$element.offset();e={top:a.top-r.top,left:a.left-r.left}}else e=l.$element.offset();var i=""!==l.data.parent?u(l.data.parent)[0].offsetWidth:window.innerWidth,p={position:"absolute",width:o+"px"};switch((""!==l.data.parent?u(l.data.parent)[0].offsetHeight:window.innerHeight)-t.bottom>n?(p.top=e.top+t.height+"px",d+="bottom"):(d+="top",p.top=e.top-n+"px"),e.left>o||e.left>i/2?(p.left=e.left+t.width-o+"px",d+="-left"):(p.left=e.left+"px",d+="-right"),d){case"bottom-right":p.borderRadius="0px 5px 5px 5px";break;case"bottom-left":p.borderRadius="5px 0px 5px 5px";break;case"top-right":p.borderRadius="5px 5px 5px 0px";break;case"top-left":p.borderRadius="5px 5px 0px 5px"}return p},updatePosition:function(){return l.$dropdown&&l.$dropdown.is(":visible")&&l.$dropdown.css(l.calculatePosition()),l},itemHandler:function(e){e.stopPropagation();var t=u(e.currentTarget).attr("class");l.$menu.find('li a[class="'+t+'"]').trigger("click"),l.$element.data("um-new-dropdown-show")&&l.hide()},triggerHandler:function(e){e.stopPropagation(),l.$element=u(e.currentTarget),l.$element.data("um-new-dropdown-show")?l.hide():l.show()}};return l.$menu=u(e),l.data=l.$menu.data(),l.$element=l.$menu.closest(l.data.element),l.$element.length||(l.$element=u(l.data.element).first()),l.$dropdown=u(document.body).children('div[data-element="'+l.data.element+'"]'),void 0===l.data.initted&&(l.$menu.data("initted",!0),l.data=l.$menu.data(),void 0===d.screenTriggers&&(d.screenTriggers={}),d.screenTriggers[l.data.element]!==l.data.trigger&&(d.screenTriggers[l.data.element]=l.data.trigger,u(document.body).on(l.data.trigger,l.data.element,l.triggerHandler))),void 0===d.globalHandlersInitted&&(d.globalHandlersInitted=!0,u(document.body).on("click",function(e){u(e.target).closest(".um-new-dropdown").length||l.hideAll()})),l}u.fn.um_dropdownMenu=function(o){return"string"==typeof o&&o?this.map(function(e,t){var n=d(t);return"function"==typeof n[o]?n[o]():n[o]}).toArray():this.each(function(e,t){d(t)})}}(jQuery),jQuery(document).ready(function(e){um_init_new_dropdown()});
function um_init_new_dropdown(){jQuery(".um-new-dropdown").um_dropdownMenu()}!function(p){function o(e){var i={get:function(){return i},show:function(){i.hideAll(),i.$menu=i.$element.find(".um-new-dropdown"),i.$menu.length||(i.$menu=p('div.um-new-dropdown[data-element="'+i.data.element+'"]').first()),i.$dropdown=i.$menu.clone(),i.$dropdown.on("click","li a",i.itemHandler).attr("data-cloned","1"),p(window).on("resize",i.updatePosition);var e=""!==i.data.parent?i.data.parent:document.body;return p(e).append(i.$dropdown),i.$element.trigger("um_new_dropdown_render",{dropdown_layout:i.$dropdown,trigger:i.data.trigger,element:i.data.elemen,obj:i.$element}),i.$dropdown.css(i.calculatePosition()).show(),i.$element.addClass("um-new-dropdown-shown").data("um-new-dropdown-show",!0),i},hide:function(){return i.$dropdown&&i.$dropdown.is(":visible")&&(p(window).off("resize",i.updatePosition),i.$dropdown.remove(),i.$element.removeClass("um-new-dropdown-shown").data("um-new-dropdown-show",!1)),i},hideAll:function(){return i.$element.data("um-new-dropdown-show")&&i.hide(),p('div.um-new-dropdown[data-cloned="1"]').remove(),p(".um-new-dropdown-shown").removeClass("um-new-dropdown-shown").data("um-new-dropdown-show",!1),i},calculatePosition:function(){var e,t=i.$element.get(0).getBoundingClientRect(),n=i.$dropdown.innerHeight()||150,o=i.data.width||150,d="",r=(e=""!==i.data.parent?(r=p(i.data.parent).offset(),{top:(e=i.$element.offset()).top-r.top,left:e.left-r.left}):i.$element.offset(),""!==i.data.parent?p(i.data.parent)[0].offsetWidth:window.innerWidth),a={position:"absolute",width:o+"px"};switch((""!==i.data.parent?p(i.data.parent)[0].offsetHeight:window.innerHeight)-t.bottom>n?(a.top=e.top+t.height+"px",d+="bottom"):(d+="top",a.top=e.top-n+"px"),e.left>o||e.left>r/2?(a.left=e.left+t.width-o+"px",d+="-left"):(a.left=e.left+"px",d+="-right"),d){case"bottom-right":a.borderRadius="0px 5px 5px 5px";break;case"bottom-left":a.borderRadius="5px 0px 5px 5px";break;case"top-right":a.borderRadius="5px 5px 5px 0px";break;case"top-left":a.borderRadius="5px 5px 0px 5px"}return a},updatePosition:function(){return i.$dropdown&&i.$dropdown.is(":visible")&&i.$dropdown.css(i.calculatePosition()),i},itemHandler:function(e){e.stopPropagation();e=p(e.currentTarget).attr("class");i.$menu.find('li a[class="'+e+'"]').trigger("click"),i.$element.data("um-new-dropdown-show")&&i.hide()},triggerHandler:function(e){e.stopPropagation(),i.$element=p(e.currentTarget),i.$element.data("um-new-dropdown-show")?i.hide():i.show()}};return i.$menu=p(e),i.data=i.$menu.data(),i.$element=i.$menu.closest(i.data.element),i.$element.length||(i.$element=p(i.data.element).first()),i.$dropdown=p(document.body).children('div[data-element="'+i.data.element+'"]'),void 0===i.data.initted&&(i.$menu.data("initted",!0),i.data=i.$menu.data(),void 0===o.screenTriggers&&(o.screenTriggers={}),o.screenTriggers[i.data.element]!==i.data.trigger&&(o.screenTriggers[i.data.element]=i.data.trigger,p(document.body).on(i.data.trigger,i.data.element,i.triggerHandler))),void 0===o.globalHandlersInitted&&(o.globalHandlersInitted=!0,p(document.body).on("click",function(e){p(e.target).closest(".um-new-dropdown").length||i.hideAll()})),i}p.fn.um_dropdownMenu=function(n){return"string"==typeof n&&n?this.map(function(e,t){t=o(t);return"function"==typeof t[n]?t[n]():t[n]}).toArray():this.each(function(e,t){o(t)})}}(jQuery),jQuery(document).ready(function(e){um_init_new_dropdown()});
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
jQuery(document).ready(function(){var a=jQuery(".um-account-main").attr("data-current_tab");a&&(jQuery('.um-account-tab[data-tab="'+a+'"]').show(),jQuery(".um-account-tab:not(:visible)").find("input, select, textarea").not(":disabled").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0),wp.hooks.doAction("um_account_active_tab_inited",a)),jQuery(document.body).on("click",".um-account-side li a",function(a){a.preventDefault();var t=jQuery(this);t.parents("ul").find("li a").removeClass("current"),t.addClass("current");var e=jQuery(this).attr("href"),u=jQuery(this).attr("data-tab");return jQuery('input[id="_um_account_tab"]:hidden').val(u),window.history.pushState("","",e),jQuery(".um-account-tab").hide(),jQuery('.um-account-tab[data-tab="'+u+'"]').fadeIn(),jQuery(".um-account-tab:visible").find("input, select, textarea").filter(".um_account_inactive:disabled").removeClass("um_account_inactive").prop("disabled",!1).attr("disabled",!1),jQuery(".um-account-tab:not(:visible)").find("input, select, textarea").not(":disabled").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0),jQuery(".um-account-nav a").removeClass("current"),jQuery('.um-account-nav a[data-tab="'+u+'"]').addClass("current"),wp.hooks.doAction("um_after_account_tab_changed",u),!1}),jQuery(document.body).on("click",".um-account-nav a",function(a){a.preventDefault();var t=jQuery(this).attr("data-tab"),e=jQuery(this).parents("div"),u=jQuery(this);return jQuery('input[id="_um_account_tab"]:hidden').val(t),jQuery(".um-account-tab").hide(),u.hasClass("current")?(e.next(".um-account-tab").slideUp(),u.removeClass("current")):(e.next(".um-account-tab").slideDown(),u.parents("div").find("a").removeClass("current"),u.addClass("current")),jQuery(".um-account-tab:visible").find("input, select, textarea").filter(".um_account_inactive:disabled").removeClass("um_account_inactive").prop("disabled",!1).attr("disabled",!1),jQuery(".um-account-tab:not(:visible)").find("input, select, textarea").not(":disabled").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0),jQuery(".um-account-side li a").removeClass("current"),jQuery('.um-account-side li a[data-tab="'+t+'"]').addClass("current"),wp.hooks.doAction("um_after_account_tab_changed",t),!1}),jQuery(document.body).on("click",".um-request-button",function(a){a.preventDefault();var t=jQuery(this).data("action"),e=jQuery("#"+t).val();if(jQuery(".um-field-area-response."+t).hide(),jQuery("#"+t).length&&""===e)jQuery(".um-field-error."+t).show();else{jQuery(".um-field-error."+t).hide();var u={request_action:t,nonce:um_scripts.nonce};jQuery("#"+t).length&&(u.password=e),wp.ajax.send("um_request_user_data",{data:u,success:function(a){jQuery(".um-field-area-response."+t).text(a.answer).show()},error:function(a){console.log(a)}})}})});
jQuery(document).ready(function(){var t=jQuery(".um-account-main").attr("data-current_tab");t&&(jQuery('.um-account-tab[data-tab="'+t+'"]').show(),jQuery(".um-account-tab:not(:visible)").find("input, select, textarea").not(":disabled").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0),wp.hooks.doAction("um_account_active_tab_inited",t)),jQuery(document.body).on("click",".um-account-side li a",function(t){t.preventDefault();var t=jQuery(this),t=(t.parents("ul").find("li a").removeClass("current"),t.addClass("current"),jQuery(this).attr("href")),a=jQuery(this).attr("data-tab");return jQuery('input[id="_um_account_tab"]:hidden').val(a),window.history.pushState("","",t),jQuery(".um-account-tab").hide(),jQuery('.um-account-tab[data-tab="'+a+'"]').fadeIn(),jQuery(".um-account-tab:visible").find("input, select, textarea").filter(".um_account_inactive:disabled").removeClass("um_account_inactive").prop("disabled",!1).attr("disabled",!1),jQuery(".um-account-tab:not(:visible)").find("input, select, textarea").not(":disabled").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0),jQuery(".um-account-nav a").removeClass("current"),jQuery('.um-account-nav a[data-tab="'+a+'"]').addClass("current"),wp.hooks.doAction("um_after_account_tab_changed",a),!1}),jQuery(document.body).on("click",".um-account-nav a",function(t){t.preventDefault();var t=jQuery(this).attr("data-tab"),a=jQuery(this).parents("div"),e=jQuery(this);return jQuery('input[id="_um_account_tab"]:hidden').val(t),jQuery(".um-account-tab").hide(),e.hasClass("current")?(a.next(".um-account-tab").slideUp(),e.removeClass("current")):(a.next(".um-account-tab").slideDown(),e.parents("div").find("a").removeClass("current"),e.addClass("current")),jQuery(".um-account-tab:visible").find("input, select, textarea").filter(".um_account_inactive:disabled").removeClass("um_account_inactive").prop("disabled",!1).attr("disabled",!1),jQuery(".um-account-tab:not(:visible)").find("input, select, textarea").not(":disabled").addClass("um_account_inactive").prop("disabled",!0).attr("disabled",!0),jQuery(".um-account-side li a").removeClass("current"),jQuery('.um-account-side li a[data-tab="'+t+'"]').addClass("current"),wp.hooks.doAction("um_after_account_tab_changed",t),!1}),jQuery(document.body).on("click",".um-request-button",function(t){t.preventDefault();var a,e=jQuery(this).data("action"),t=jQuery("#"+e).val();jQuery(".um-field-area-response."+e).hide(),jQuery("#"+e).length&&""===t?jQuery(".um-field-error."+e).show():(jQuery(".um-field-error."+e).hide(),a={request_action:e,nonce:um_scripts.nonce},jQuery("#"+e).length&&(a.password=t),wp.ajax.send("um_request_user_data",{data:a,success:function(t){jQuery(".um-field-area-response."+e).text(t.answer).show()},error:function(t){console.log(t)}}))})});
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
jQuery(document).ready(function(){jQuery(".um-profile.um-viewing .um-profile-body .um-row").each(function(){var e=jQuery(this);0==e.find(".um-field").length&&(e.prev(".um-row-heading").remove(),e.remove())}),jQuery(".um-profile.um-viewing .um-profile-body").length&&0==jQuery(".um-profile.um-viewing .um-profile-body").find(".um-field").length&&(jQuery(".um-profile.um-viewing .um-profile-body").find(".um-row-heading,.um-row").remove(),jQuery(".um-profile-note").show()),jQuery(document.body).on("click",".um-profile-save",function(e){return e.preventDefault(),jQuery(this).parents(".um").find("form").trigger("submit"),!1}),jQuery(document.body).on("click",".um-profile-edit-a",function(e){jQuery(this).addClass("active")}),jQuery(document.body).on("click",".um-cover a.um-cover-add, .um-photo a",function(e){e.preventDefault()}),jQuery(document.body).on("click",".um-photo-modal",function(e){e.preventDefault();var r=jQuery(this).attr("data-src");return um_new_modal("um_view_photo","fit",!0,r),!1}),jQuery(document.body).on("click",".um-reset-profile-photo",function(e){return jQuery(".um-profile-photo-img img").attr("src",jQuery(this).attr("data-default_src")),user_id=jQuery(this).attr("data-user_id"),metakey="profile_photo",UM.dropdown.hideAll(),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_delete_profile_photo",metakey:metakey,user_id:user_id,nonce:um_scripts.nonce}}),jQuery(this).parents("li").hide(),!1}),jQuery(document.body).on("click",".um-reset-cover-photo",function(e){var r=jQuery(this);return jQuery(".um-cover-overlay").hide(),jQuery(".um-cover-e").html('<a href="javascript:void(0);" class="um-cover-add" style="height: 370px;"><span class="um-cover-add-i"><i class="um-icon-plus um-tip-n" original-title="Upload a cover photo"></i></span></a>'),um_responsive(),user_id=jQuery(this).attr("data-user_id"),metakey="cover_photo",jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_delete_cover_photo",metakey:metakey,user_id:user_id,nonce:um_scripts.nonce},success:function(e){r.hide()}}),UM.dropdown.hideAll(),!1}),jQuery(document.body).on("change, keyup",'textarea[id="um-meta-bio"]',function(){if(void 0!==jQuery(this).val()){var e=jQuery(this).attr("data-character-limit")-jQuery(this).val().length;jQuery("span.um-meta-bio-character span.um-bio-limit").text(e),e<5?jQuery("span.um-meta-bio-character").css("color","red"):jQuery("span.um-meta-bio-character").css("color","")}}),jQuery('textarea[id="um-meta-bio"]').trigger("change"),jQuery(".um-profile-edit a.um_delete-item").on("click",function(e){if(e.preventDefault(),!confirm(wp.i18n.__("Are you sure that you want to delete this user?","ultimate-member")))return!1}),jQuery(".um-profile-nav a").on("touchend",function(e){jQuery(e.currentTarget).trigger("click")})});
jQuery(document).ready(function(){jQuery(".um-profile.um-viewing .um-profile-body .um-row").each(function(){var e=jQuery(this);0==e.find(".um-field").length&&(e.prev(".um-row-heading").remove(),e.remove())}),jQuery(".um-profile.um-viewing .um-profile-body").length&&0==jQuery(".um-profile.um-viewing .um-profile-body").find(".um-field").length&&(jQuery(".um-profile.um-viewing .um-profile-body").find(".um-row-heading,.um-row").remove(),jQuery(".um-profile-note").show()),jQuery(document.body).on("click",".um-profile-save",function(e){return e.preventDefault(),jQuery(this).parents(".um").find("form").trigger("submit"),!1}),jQuery(document.body).on("click",".um-profile-edit-a",function(e){jQuery(this).addClass("active")}),jQuery(document.body).on("click",".um-cover a.um-cover-add, .um-photo a",function(e){e.preventDefault()}),jQuery(document.body).on("click",".um-photo-modal",function(e){e.preventDefault();e=jQuery(this).attr("data-src");return um_new_modal("um_view_photo","fit",!0,e),!1}),jQuery(document.body).on("click",".um-reset-profile-photo",function(e){return jQuery(".um-profile-photo-img img").attr("src",jQuery(this).attr("data-default_src")),user_id=jQuery(this).attr("data-user_id"),metakey="profile_photo",UM.dropdown.hideAll(),jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_delete_profile_photo",metakey:metakey,user_id:user_id,nonce:um_scripts.nonce}}),jQuery(this).parents("li").hide(),!1}),jQuery(document.body).on("click",".um-reset-cover-photo",function(e){var r=jQuery(this);return jQuery(".um-cover-overlay").hide(),jQuery(".um-cover-e").html('<a href="javascript:void(0);" class="um-cover-add" style="height: 370px;"><span class="um-cover-add-i"><i class="um-icon-plus um-tip-n" original-title="Upload a cover photo"></i></span></a>'),um_responsive(),user_id=jQuery(this).attr("data-user_id"),metakey="cover_photo",jQuery.ajax({url:wp.ajax.settings.url,type:"post",data:{action:"um_delete_cover_photo",metakey:metakey,user_id:user_id,nonce:um_scripts.nonce},success:function(e){r.hide()}}),UM.dropdown.hideAll(),!1}),jQuery(document.body).on("change, keyup",'textarea[id="um-meta-bio"]',function(){var e;void 0!==jQuery(this).val()&&(e=jQuery(this).attr("data-character-limit")-jQuery(this).val().length,jQuery("span.um-meta-bio-character span.um-bio-limit").text(e),e<5?jQuery("span.um-meta-bio-character").css("color","red"):jQuery("span.um-meta-bio-character").css("color",""))}),jQuery('textarea[id="um-meta-bio"]').trigger("change"),jQuery(".um-profile-edit a.um_delete-item").on("click",function(e){if(e.preventDefault(),!confirm(wp.i18n.__("Are you sure that you want to delete this user?","ultimate-member")))return!1}),jQuery(".um-profile-nav a").on("touchend",function(e){jQuery(e.currentTarget).trigger("click")})});
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
!function(l){function f(t,e){return"function"==typeof t?t.call(e):t}function h(t,e){this.$element=l(t),this.options=e,this.enabled=!0,this.fixTitle()}h.prototype={show:function(){var t=this.getTitle();if(t&&this.enabled){var e=this.tip();e.find(".tipsy-inner")[this.options.html?"html":"text"](t),e[0].className="tipsy",e.remove().css({top:0,left:0,visibility:"hidden",display:"block"}).prependTo(document.body);var i,s=l.extend({},this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight}),n=e[0].offsetWidth,o=e[0].offsetHeight,a=f(this.options.gravity,this.$element[0]);switch(a.charAt(0)){case"n":i={top:s.top+s.height+this.options.offset,left:s.left+s.width/2-n/2};break;case"s":i={top:s.top-o-this.options.offset,left:s.left+s.width/2-n/2};break;case"e":i={top:s.top+s.height/2-o/2,left:s.left-n-this.options.offset};break;case"w":(extra_gap=0)<l("body").css("position").length&&"relative"==l("body").css("position")&&l("#wpadminbar").length&&(extra_gap=l("#wpadminbar").height()),i={top:s.top+s.height/2-o/2-extra_gap,left:s.left+s.width+this.options.offset}}2==a.length&&("w"==a.charAt(1)?i.left=s.left+s.width/2-15:i.left=s.left+s.width/2-n+15),e.css(i).addClass("tipsy-"+a),e.find(".tipsy-arrow")[0].className="tipsy-arrow tipsy-arrow-"+a.charAt(0),this.options.className&&e.addClass(f(this.options.className,this.$element[0])),this.options.fade?e.stop().css({opacity:0,display:"block",visibility:"visible"}).animate({opacity:this.options.opacity}):e.css({visibility:"visible",opacity:this.options.opacity})}},hide:function(){this.options.fade?this.tip().stop().fadeOut(function(){l(this).remove()}):this.tip().remove()},fixTitle:function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("original-title"))&&t.attr("original-title",t.attr("title")||"").removeAttr("title")},getTitle:function(){var t,e=this.$element,i=this.options;return this.fixTitle(),"string"==typeof(i=this.options).title?t=e.attr("title"==i.title?"original-title":i.title):"function"==typeof i.title&&(t=i.title.call(e[0])),(t=(""+t).replace(/(^\s*|\s*$)/,""))||i.fallback},tip:function(){return this.$tip||(this.$tip=l('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>'),this.$tip.data("tipsy-pointee",this.$element[0])),this.$tip},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled}},l.fn.tipsy=function(i){if(!0===i)return this.data("tipsy");if("string"==typeof i){var t=this.data("tipsy");return t&&t[i](),this}function e(t){var e=l.data(t,"tipsy");return e||(e=new h(t,l.fn.tipsy.elementOptions(t,i)),l.data(t,"tipsy",e)),e}function s(){var t=e(this);t.hoverState="in",0==i.delayIn?t.show():(t.fixTitle(),setTimeout(function(){"in"==t.hoverState&&t.show()},i.delayIn))}function n(){var t=e(this);t.hoverState="out",0==i.delayOut?t.hide():setTimeout(function(){"out"==t.hoverState&&t.hide()},i.delayOut)}if((i=l.extend({},l.fn.tipsy.defaults,i)).on||this.each(function(){e(this)}),"manual"!=i.trigger){var o="hover"==i.trigger?"mouseenter":"focus",a="hover"==i.trigger?"mouseleave":"blur";i.on?l(document).on(o,this.selector,s).on(a,this.selector,n):this.on(o,s).on(a,n)}return this},l.fn.tipsy.defaults={className:null,delayIn:0,delayOut:0,fade:!1,fallback:"",gravity:"n",html:!1,live:!1,offset:0,opacity:.8,title:"title",trigger:"hover"},l.fn.tipsy.revalidate=function(){l(".tipsy").each(function(){var t=l.data(this,"tipsy-pointee");t&&function(t){for(;t=t.parentNode;)if(t==document)return!0;return!1}(t)||l(this).remove()})},l.fn.tipsy.elementOptions=function(t,e){return l.metadata?l.extend({},e,l(t).metadata()):e},l.fn.tipsy.autoNS=function(){return l(this).offset().top>l(document).scrollTop()+l(window).height()/2?"s":"n"},l.fn.tipsy.autoWE=function(){return l(this).offset().left>l(document).scrollLeft()+l(window).width()/2?"e":"w"},l.fn.tipsy.autoBounds=function(n,o){return function(){var t={ns:o[0],ew:1<o.length&&o[1]},e=l(document).scrollTop()+n,i=l(document).scrollLeft()+n,s=l(this);return s.offset().top<e&&(t.ns="n"),s.offset().left<i&&(t.ew="w"),l(window).width()+l(document).scrollLeft()-s.offset().left<n&&(t.ew="e"),l(window).height()+l(document).scrollTop()-s.offset().top<n&&(t.ns="s"),t.ns+(t.ew?t.ew:"")}}}(jQuery);
!function(a){function l(t,e){return"function"==typeof t?t.call(e):t}function h(t,e){this.$element=a(t),this.options=e,this.enabled=!0,this.fixTitle()}h.prototype={show:function(){var t=this.getTitle();if(t&&this.enabled){var e,i=this.tip(),s=(i.find(".tipsy-inner")[this.options.html?"html":"text"](t),i[0].className="tipsy",i.remove().css({top:0,left:0,visibility:"hidden",display:"block"}).prependTo(document.body),a.extend({},this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})),n=i[0].offsetWidth,o=i[0].offsetHeight,t=l(this.options.gravity,this.$element[0]);switch(t.charAt(0)){case"n":e={top:s.top+s.height+this.options.offset,left:s.left+s.width/2-n/2};break;case"s":e={top:s.top-o-this.options.offset,left:s.left+s.width/2-n/2};break;case"e":e={top:s.top+s.height/2-o/2,left:s.left-n-this.options.offset};break;case"w":(extra_gap=0)<a("body").css("position").length&&"relative"==a("body").css("position")&&a("#wpadminbar").length&&(extra_gap=a("#wpadminbar").height()),e={top:s.top+s.height/2-o/2-extra_gap,left:s.left+s.width+this.options.offset}}2==t.length&&("w"==t.charAt(1)?e.left=s.left+s.width/2-15:e.left=s.left+s.width/2-n+15),i.css(e).addClass("tipsy-"+t),i.find(".tipsy-arrow")[0].className="tipsy-arrow tipsy-arrow-"+t.charAt(0),this.options.className&&i.addClass(l(this.options.className,this.$element[0])),this.options.fade?i.stop().css({opacity:0,display:"block",visibility:"visible"}).animate({opacity:this.options.opacity}):i.css({visibility:"visible",opacity:this.options.opacity})}},hide:function(){this.options.fade?this.tip().stop().fadeOut(function(){a(this).remove()}):this.tip().remove()},fixTitle:function(){var t=this.$element;!t.attr("title")&&"string"==typeof t.attr("original-title")||t.attr("original-title",t.attr("title")||"").removeAttr("title")},getTitle:function(){var t,e=this.$element,i=this.options;return this.fixTitle(),"string"==typeof(i=this.options).title?t=e.attr("title"==i.title?"original-title":i.title):"function"==typeof i.title&&(t=i.title.call(e[0])),(t=(""+t).replace(/(^\s*|\s*$)/,""))||i.fallback},tip:function(){return this.$tip||(this.$tip=a('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>'),this.$tip.data("tipsy-pointee",this.$element[0])),this.$tip},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled}},a.fn.tipsy=function(i){return!0===i?this.data("tipsy"):("string"==typeof i?(t=this.data("tipsy"))&&t[i]():((i=a.extend({},a.fn.tipsy.defaults,i)).on||this.each(function(){s(this)}),"manual"!=i.trigger&&(t="hover"==i.trigger?"mouseenter":"focus",e="hover"==i.trigger?"mouseleave":"blur",i.on?a(document).on(t,this.selector,n).on(e,this.selector,o):this.on(t,n).on(e,o))),this);var t,e;function s(t){var e=a.data(t,"tipsy");return e||(e=new h(t,a.fn.tipsy.elementOptions(t,i)),a.data(t,"tipsy",e)),e}function n(){var t=s(this);t.hoverState="in",0==i.delayIn?t.show():(t.fixTitle(),setTimeout(function(){"in"==t.hoverState&&t.show()},i.delayIn))}function o(){var t=s(this);t.hoverState="out",0==i.delayOut?t.hide():setTimeout(function(){"out"==t.hoverState&&t.hide()},i.delayOut)}},a.fn.tipsy.defaults={className:null,delayIn:0,delayOut:0,fade:!1,fallback:"",gravity:"n",html:!1,live:!1,offset:0,opacity:.8,title:"title",trigger:"hover"},a.fn.tipsy.revalidate=function(){a(".tipsy").each(function(){var t=a.data(this,"tipsy-pointee");t&&function(t){for(;t=t.parentNode;)if(t==document)return 1}(t)||a(this).remove()})},a.fn.tipsy.elementOptions=function(t,e){return a.metadata?a.extend({},e,a(t).metadata()):e},a.fn.tipsy.autoNS=function(){return a(this).offset().top>a(document).scrollTop()+a(window).height()/2?"s":"n"},a.fn.tipsy.autoWE=function(){return a(this).offset().left>a(document).scrollLeft()+a(window).width()/2?"e":"w"},a.fn.tipsy.autoBounds=function(n,o){return function(){var t={ns:o[0],ew:1<o.length&&o[1]},e=a(document).scrollTop()+n,i=a(document).scrollLeft()+n,s=a(this);return s.offset().top<e&&(t.ns="n"),s.offset().left<i&&(t.ew="w"),a(window).width()+a(document).scrollLeft()-s.offset().left<n&&(t.ew="e"),a(window).height()+a(document).scrollTop()-s.offset().top<n&&(t.ns="s"),t.ns+(t.ew||"")}}}(jQuery);
+1 -94
View File
@@ -13,103 +13,10 @@ gulp.task( 'default', function ( done ) {
gulp.src(['assets/sass/*.sass']).pipe( sass().on( 'error', sass.logError ) ).pipe( gulp.dest( 'assets/css' ) );
gulp.src(['assets/js/*.js', '!assets/js/*.min.js', ]) // path to your files
gulp.src(['assets/js/*.js', '!assets/js/*.min.js']) // path to your files
.pipe( uglify() )
.pipe( rename({ suffix: '.min' }) )
.pipe( gulp.dest( 'assets/js/' ) );
done();
});
// function css( path ) {
// sass.compiler = require( 'node-sass' );
//
// var src_array = exclude_css( path );
// return src( src_array )
// .pipe( sass().on( 'error', sass.logError ) )
// .pipe( dest( 'assets/' + path + '/css' ) );
// }
//
// function min_css( path ) {
// sass.compiler = require( 'node-sass' );
//
// var src_array = exclude_css( path );
// return src( src_array )
// .pipe( sass().on( 'error', sass.logError ) )
// .pipe( cleanCSS() )
// .pipe( rename( { suffix: '.min' } ) )
// .pipe( dest( 'assets/' + path + '/css' ) );
// }
/*
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
var minifyCSS = require('gulp-minify-css');
gulp.task('scripts', function() {
// Concat and Minify
gulp.src([
'assets/js/select2/select2.full.min.js',
'assets/js/um-modal.js',
'assets/js/um-jquery-form.js',
'assets/js/um-fileupload.js',
'assets/js/pickadate/picker.js',
'assets/js/pickadate/picker.date.js',
'assets/js/pickadate/picker.time.js',
'assets/js/pickadate/legacy.js',
'assets/js/um-raty.js',
'assets/js/um-scrollto.js',
'assets/js/um-scrollbar.js',
'assets/js/um-crop.js',
'assets/js/um-tipsy.js',
'assets/js/um-functions.js',
'assets/js/um-responsive.js',
'assets/js/um-conditional.js',
'assets/js/um-scripts.js',
'assets/js/um-members.js',
'assets/js/um-profile.js',
'assets/js/um-account.js'
])
.pipe(concat("um.min.js"))
.pipe(uglify())
.pipe(gulp.dest("assets/js"));
});
gulp.task('css', function() {
gulp.src([
'assets/css/um-fonticons-ii.css',
'assets/css/um-fonticons-fa.css',
'assets/css/select2/select2.min.css',
'assets/css/um-modal.css',
'assets/css/um-styles.css',
'assets/css/um-members.css',
'assets/css/um-profile.css',
'assets/css/um-account.css',
'assets/css/um-misc.css',
'assets/css/um-fileupload.css',
'assets/css/pickadate/default.css',
'assets/css/pickadate/default.date.css',
'assets/css/pickadate/default.time.css',
'assets/css/um-raty.css',
'assets/css/um-scrollbar.css',
'assets/css/um-crop.css',
'assets/css/um-tipsy.css',
'assets/css/um-responsive.css',
])
.pipe(minifyCSS())
.pipe(concat("um.min.css"))
.pipe(gulp.dest("assets/css"));
});
// The default task (called when you run `gulp`)
gulp.task('default', function() {
gulp.start('scripts');
gulp.start('css');
});*/
+1 -1
View File
@@ -657,7 +657,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) {
global $wp_version, $current_screen;
if ( version_compare( $wp_version, '5.0', '>=' ) ) {
if ( $current_screen->is_block_editor() ) {
if ( isset( $current_screen ) && $current_screen->is_block_editor() ) {
$this->load_gutenberg_js();
$this->load_gutenberg_shortcode_blocks();
}
@@ -763,6 +763,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
'blocked_words' => array(
'sanitize' => 'textarea',
),
'allowed_choice_callbacks' => array(
'sanitize' => 'textarea',
),
'allow_url_redirect_confirm' => array(
'sanitize' => 'bool',
),
'admin_email' => array(
'sanitize' => 'text',
),
@@ -1289,6 +1295,18 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
'label' => __( 'Blacklist Words (Enter one word per line)', 'ultimate-member' ),
'tooltip' => __( 'This option lets you specify blacklist of words to prevent anyone from signing up with such a word as their username', 'ultimate-member' ),
),
array(
'id' => 'allowed_choice_callbacks',
'type' => 'textarea',
'label' => __( 'Allowed Choice Callbacks (Enter one PHP function per line)', 'ultimate-member' ),
'tooltip' => __( 'This option lets you specify the choice callback functions to prevent anyone from using 3rd-party functions that may put your site at risk.', 'ultimate-member' ),
),
array(
'id' => 'allow_url_redirect_confirm',
'type' => 'checkbox',
'label' => __( 'Allow external link redirect confirm', 'ultimate-member' ),
'tooltip' => __( 'Using JS.confirm alert when you go to an external link.', 'ultimate-member' ),
),
),
),
),
+50
View File
@@ -0,0 +1,50 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit;
function um_upgrade_choice_callbacks240() {
UM()->admin()->check_ajax_nonce();
um_maybe_unset_time_limit();
$functions = array();
// hardcoded for UM:Woocommerce function
if ( function_exists( 'um_woo_directory_get_states' ) ) {
$functions[] = 'um_woo_directory_get_states';
}
$custom_fields = get_option( 'um_fields', array() );
foreach ( $custom_fields as $custom_field ) {
if ( array_key_exists( 'custom_dropdown_options_source', $custom_field ) && function_exists( $custom_field['custom_dropdown_options_source'] ) ) {
$functions[] = $custom_field['custom_dropdown_options_source'];
}
}
$forms_query = new WP_Query;
$forms = $forms_query->query( array(
'post_type' => 'um_form',
'posts_per_page' => -1,
'fields' => 'ids',
) );
foreach ( $forms as $form_id ) {
$forms_fields = get_post_meta( $form_id, '_um_custom_fields', true );
if ( ! is_array( $forms_fields ) ) {
continue;
}
foreach ( $forms_fields as $key => $field ) {
if ( array_key_exists( 'custom_dropdown_options_source', $field ) && function_exists( $field['custom_dropdown_options_source'] ) ) {
$functions[] = $field['custom_dropdown_options_source'];
}
}
}
$functions = array_unique( $functions );
$functions = implode( "\r\n", $functions );
UM()->options()->update( 'allowed_choice_callbacks', $functions );
// delete temporarily option for fields upgrade
update_option( 'um_last_version_upgrade', '2.4.0' );
wp_send_json_success( array( 'message' => __( 'Custom callback functions whitelisted for 2.4.0 version.', 'ultimate-member' ) ) );
}
+5
View File
@@ -0,0 +1,5 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit;
return array(
'choice_callbacks240' => 'choice_callbacks240',
);
+30
View File
@@ -0,0 +1,30 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
<script type="text/javascript">
jQuery( document ).ready( function() {
um_add_upgrade_log( '<?php echo esc_js( __( 'Added custom callback functions for the UM Forms custom fields to the whitelist setting...', 'ultimate-member' ) ) ?>' );
jQuery.ajax({
url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
action: 'um_choice_callbacks240',
nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data.message != 'undefined' ) {
um_add_upgrade_log( response.data.message );
//switch to the next package
um_run_upgrade();
} else {
um_wrong_ajax();
}
},
error: function() {
um_something_wrong();
}
});
});
</script>
+2
View File
@@ -555,6 +555,8 @@ if ( ! class_exists( 'um\Config' ) ) {
'reset_password_limit_number' => 3,
'blocked_emails' => '',
'blocked_words' => 'admin' . "\r\n" . 'administrator' . "\r\n" . 'webmaster' . "\r\n" . 'support' . "\r\n" . 'staff',
'allowed_choice_callbacks' => '',
'allow_url_redirect_confirm' => 1,
'default_avatar' => '',
'default_cover' => '',
'disable_profile_photo_upload' => 0,
+28
View File
@@ -144,6 +144,20 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
$fields[ $id ] = $args;
if ( array_key_exists( 'custom_dropdown_options_source', $args ) && function_exists( $args['custom_dropdown_options_source'] ) ) {
$allowed_callbacks = UM()->options()->get( 'allowed_choice_callbacks' );
if ( ! empty( $allowed_callbacks ) ) {
$allowed_callbacks = array_map( 'rtrim', explode( "\n", $allowed_callbacks ) );
$allowed_callbacks[] = $args['custom_dropdown_options_source'];
} else {
$allowed_callbacks = array( $args['custom_dropdown_options_source'] );
}
$allowed_callbacks = array_unique( $allowed_callbacks );
$allowed_callbacks = implode( "\r\n", $allowed_callbacks );
UM()->options()->update( 'allowed_choice_callbacks', $allowed_callbacks );
}
unset( $fields[ $id ]['in_row'] );
unset( $fields[ $id ]['in_sub_row'] );
unset( $fields[ $id ]['in_column'] );
@@ -185,6 +199,20 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
$fields[ $id ] = $args;
if ( array_key_exists( 'custom_dropdown_options_source', $args ) && function_exists( $args['custom_dropdown_options_source'] ) ) {
$allowed_callbacks = UM()->options()->get( 'allowed_choice_callbacks' );
if ( ! empty( $allowed_callbacks ) ) {
$allowed_callbacks = array_map( 'rtrim', explode( "\n", $allowed_callbacks ) );
$allowed_callbacks[] = $args['custom_dropdown_options_source'];
} else {
$allowed_callbacks = array( $args['custom_dropdown_options_source'] );
}
$allowed_callbacks = array_unique( $allowed_callbacks );
$allowed_callbacks = implode( "\r\n", $allowed_callbacks );
UM()->options()->update( 'allowed_choice_callbacks', $allowed_callbacks );
}
// for group field only
if ( $args['type'] == 'group' ) {
$fields[ $id ]['in_group'] = '';
+56 -31
View File
@@ -114,6 +114,39 @@ if ( ! class_exists( 'um\core\Form' ) ) {
$arr_options['status'] = 'success';
$arr_options['post'] = $_POST;
// Callback validation
if ( empty( $_POST['child_callback'] ) ) {
$arr_options['status'] = 'error';
$arr_options['message'] = __( 'Wrong callback.', 'ultimate-member' );
wp_send_json( $arr_options );
}
$ajax_source_func = sanitize_text_field( $_POST['child_callback'] );
if ( ! function_exists( $ajax_source_func ) ) {
$arr_options['status'] = 'error';
$arr_options['message'] = __( 'Wrong callback.', 'ultimate-member' );
wp_send_json( $arr_options );
}
$allowed_callbacks = UM()->options()->get( 'allowed_choice_callbacks' );
if ( empty( $allowed_callbacks ) ) {
$arr_options['status'] = 'error';
$arr_options['message'] = __( 'This is not possible for security reasons.', 'ultimate-member' );
wp_send_json( $arr_options );
}
$allowed_callbacks = array_map( 'rtrim', explode( "\n", $allowed_callbacks ) );
if ( ! in_array( $ajax_source_func, $allowed_callbacks, true ) ) {
$arr_options['status'] = 'error';
$arr_options['message'] = __( 'This is not possible for security reasons.', 'ultimate-member' );
wp_send_json( $arr_options );
}
if ( isset( $_POST['form_id'] ) ) {
UM()->fields()->set_id = absint( $_POST['form_id'] );
}
@@ -122,37 +155,34 @@ if ( ! class_exists( 'um\core\Form' ) ) {
$arr_options['fields'] = $form_fields;
if ( isset( $arr_options['post']['members_directory'] ) && 'yes' === $arr_options['post']['members_directory'] ) {
$ajax_source_func = $_POST['child_callback'];
if ( function_exists( $ajax_source_func ) ) {
global $wpdb;
global $wpdb;
$values_array = $wpdb->get_col(
$wpdb->prepare(
"SELECT DISTINCT meta_value
FROM $wpdb->usermeta
WHERE meta_key = %s AND
meta_value != ''",
$arr_options['post']['child_name']
)
);
$values_array = $wpdb->get_col(
$wpdb->prepare(
"SELECT DISTINCT meta_value
FROM $wpdb->usermeta
WHERE meta_key = %s AND
meta_value != ''",
$arr_options['post']['child_name']
)
);
if ( ! empty( $values_array ) ) {
$parent_dropdown = isset( $arr_options['field']['parent_dropdown_relationship'] ) ? $arr_options['field']['parent_dropdown_relationship'] : '';
$arr_options['items'] = call_user_func( $ajax_source_func, $parent_dropdown );
if ( ! empty( $values_array ) ) {
$parent_dropdown = isset( $arr_options['field']['parent_dropdown_relationship'] ) ? $arr_options['field']['parent_dropdown_relationship'] : '';
$arr_options['items'] = call_user_func( $ajax_source_func, $parent_dropdown );
if ( array_keys( $arr_options['items'] ) !== range( 0, count( $arr_options['items'] ) - 1 ) ) {
// array with dropdown items is associative
$arr_options['items'] = array_intersect_key( array_map( 'trim', $arr_options['items'] ), array_flip( $values_array ) );
} else {
// array with dropdown items has sequential numeric keys, starting from 0 and there are intersected values with $values_array
$arr_options['items'] = array_intersect( $arr_options['items'], $values_array );
}
if ( array_keys( $arr_options['items'] ) !== range( 0, count( $arr_options['items'] ) - 1 ) ) {
// array with dropdown items is associative
$arr_options['items'] = array_intersect_key( array_map( 'trim', $arr_options['items'] ), array_flip( $values_array ) );
} else {
$arr_options['items'] = array();
// array with dropdown items has sequential numeric keys, starting from 0 and there are intersected values with $values_array
$arr_options['items'] = array_intersect( $arr_options['items'], $values_array );
}
wp_send_json( $arr_options );
} else {
$arr_options['items'] = array();
}
wp_send_json( $arr_options );
} else {
/**
* UM hook
@@ -184,9 +214,6 @@ if ( ! class_exists( 'um\core\Form' ) ) {
}
if ( ! empty( $_POST['child_callback'] ) && isset( $form_fields[ $_POST['child_name'] ] ) ) {
$ajax_source_func = $_POST['child_callback'];
// If the requested callback function is added in the form or added in the field option, execute it with call_user_func.
if ( isset( $form_fields[ $_POST['child_name'] ]['custom_dropdown_options_source'] ) &&
! empty( $form_fields[ $_POST['child_name'] ]['custom_dropdown_options_source'] ) &&
@@ -194,9 +221,7 @@ if ( ! class_exists( 'um\core\Form' ) ) {
$arr_options['field'] = $form_fields[ $_POST['child_name'] ];
if ( function_exists( $ajax_source_func ) ) {
$arr_options['items'] = call_user_func( $ajax_source_func, $arr_options['field']['parent_dropdown_relationship'] );
}
$arr_options['items'] = call_user_func( $ajax_source_func, $arr_options['field']['parent_dropdown_relationship'] );
} else {
$arr_options['status'] = 'error';
$arr_options['message'] = __( 'This is not possible for security reasons.', 'ultimate-member' );
+9
View File
@@ -422,6 +422,15 @@ if ( ! class_exists( 'um\core\Profile' ) ) {
$data['in_profile_meta'] = true;
$value = um_filtered_value( $key, $data );
if ( 'description' === $key ) {
if ( UM()->options()->get( 'profile_show_html_bio' ) ) {
$res = make_clickable( wpautop( wp_kses_post( $value ) ) );
} else {
$res = esc_html( $value );
}
$value = nl2br( $res );
}
if ( ! $value && ( ! array_key_exists( 'type', $data ) || ! in_array( $data['type'], $fields_without_metakey ) ) ) {
continue;
}
+9 -7
View File
@@ -357,15 +357,17 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
function um_loggedin( $args = array(), $content = "" ) {
ob_start();
$defaults = array(
'lock_text' => __( 'This content has been restricted to logged in users only. Please <a href="{login_referrer}">login</a> to view this content.', 'ultimate-member' ),
'show_lock' => 'yes',
$args = shortcode_atts(
array(
'lock_text' => __( 'This content has been restricted to logged in users only. Please <a href="{login_referrer}">login</a> to view this content.', 'ultimate-member' ),
'show_lock' => 'yes',
),
$args,
'um_loggedin'
);
$args = wp_parse_args( $args, $defaults );
if ( ! is_user_logged_in() ) {
if ( $args['show_lock'] == 'no' ) {
if ( 'no' === $args['show_lock'] ) {
echo '';
} else {
$args['lock_text'] = $this->convert_locker_tags( $args['lock_text'] );
@@ -380,7 +382,7 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
}
$output = ob_get_clean();
return htmlspecialchars_decode( $output, ENT_NOQUOTES );
}
+2 -2
View File
@@ -383,7 +383,7 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
?>
*/
$movefile = apply_filters( 'um_upload_image_result', $movefile, $user_id, $field_data );
/**
* Resize and compress images uploaded by the field "Image Upload" without crop.
* Resize and compress images uploaded on Activity wall and Group Discussion wall.
@@ -1361,7 +1361,7 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
}
}
$files = glob( UM()->uploader()->get_upload_base_dir() . $user_id . DIRECTORY_SEPARATOR . '*', GLOB_BRACE );
$files = glob( UM()->uploader()->get_upload_base_dir() . $user_id . DIRECTORY_SEPARATOR . '*' );
if ( ! empty( $files ) ) {
foreach ( $files as $file ) {
$str = basename( $file );
+1 -1
View File
@@ -429,7 +429,7 @@ function um_profile_field_filter_hook__( $value, $data, $type = '' ) {
$value = str_replace('http://https://','https://',$value);
$onclick_alert = '';
if ( $value !== wp_validate_redirect( $value ) ) {
if ( UM()->options()->get( 'allow_url_redirect_confirm' ) && $value !== wp_validate_redirect( $value ) ) {
$onclick_alert = ' onclick="return confirm( \'' . sprintf( __( 'This link leads to a 3rd-party website. Make sure the link is safe and you really want to go to this website: `%s`', 'ultimate-member' ), $value ) . '\' );"';
}
+3
View File
@@ -11,6 +11,9 @@ if ( ! is_admin() ) {
* @return array
*/
function um_add_custom_message_to_menu( $sorted_menu_items, $args ) {
if ( empty( $sorted_menu_items ) ) {
return $sorted_menu_items;
}
if ( is_user_logged_in() ) {
um_fetch_user( get_current_user_id() );
+7 -6
View File
@@ -23,13 +23,14 @@
"node": ">= 0.10.0"
},
"devDependencies": {
"gulp": "^3.9.1",
"gulp-rename": "^1.2.2",
"gulp-uglify": "^3.0.1"
"gulp": "^4.0.2",
"gulp-cli": "^2.3.0",
"gulp-concat": "2.6.1",
"gulp-rename": "^2.0.0",
"gulp-sass": "^4.1.0",
"gulp-uglify": "^3.0.2",
"gulp-clean-css": "^4.3.0"
},
"dependencies": {
"gulp-install": "^1.1.0",
"gulp-sass": "^4.0.2",
"node-sass": "^4.11.0"
}
}
+17 -2
View File
@@ -6,8 +6,8 @@ Donate link:
Tags: community, member, membership, user-profile, user-registration
Requires PHP: 5.6
Requires at least: 5.0
Tested up to: 5.9
Stable tag: 2.3.2
Tested up to: 6.0
Stable tag: 2.4.0
License: GNU Version 2 or Any Later Version
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
@@ -163,6 +163,21 @@ No, you do not need to use our plugins login or registration pages and can us
* To learn more about version 2.1 please see this [docs](https://docs.ultimatemember.com/article/1512-upgrade-2-1-0)
* 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
= 2.4.0: May 25, 2022 =
* Enhancements:
- Added: "Allow external link redirect confirm" setting for the displaying JS.confirm alert before redirect to external link from User Profile links
- Added: "Allowed Choice Callbacks" setting for the security enhancements
* Bugfixes:
- Fixed: PHP warning when nav menu is empty
- Fixed: Security issue related to the User Description field
- Fixed: Security issue related to the [um_loggedin] shortcode
- Fixed: Using $current_screen without checking for existence
- Fixed: `remove_unused_uploads()` function for some PHP installations
= 2.3.2: April 21, 2022 =
* Enhancements:
+1 -1
View File
@@ -3,7 +3,7 @@
Plugin Name: Ultimate Member
Plugin URI: http://ultimatemember.com/
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
Version: 2.3.2
Version: 2.4.0
Author: Ultimate Member
Author URI: http://ultimatemember.com/
Text Domain: ultimate-member