Version Description
Download this release
Release Info
Developer | nsinelnikov |
Plugin | Ultimate Member – User Profile & Membership Plugin |
Version | 2.1.8 |
Comparing to | |
See all releases |
Code changes from version 2.1.7 to 2.1.8
- assets/img/extensions/user-notes.png +0 -0
- assets/js/um-members.js +3 -0
- assets/js/um-members.min.js +1 -1
- includes/admin/core/class-admin-builder.php +8 -0
- includes/admin/core/class-admin-users.php +81 -3
- includes/admin/core/list-tables/roles-list-table.php +1 -1
- includes/admin/templates/extensions.php +12 -0
- includes/admin/templates/role/general.php +13 -13
- includes/admin/templates/role/profile.php +28 -28
- includes/admin/templates/role/role-edit.php +1 -1
- includes/class-dependencies.php +3 -6
- includes/class-init.php +1 -0
- includes/core/class-fields.php +1 -1
- includes/core/class-permalinks.php +16 -12
- includes/core/class-plugin-updater.php +11 -11
- includes/core/class-roles-capabilities.php +3 -1
- includes/core/class-uploader.php +15 -1
- includes/core/um-actions-profile.php +1 -1
- includes/core/um-actions-register.php +6 -8
- includes/core/um-actions-save-profile.php +9 -8
- includes/core/um-filters-profile.php +1 -1
- includes/um-deprecated-functions.php +106 -0
- includes/um-short-functions.php +70 -166
- readme.txt +22 -2
- ultimate-member.php +1 -1
assets/img/extensions/user-notes.png
ADDED
Binary file
|
assets/js/um-members.js
CHANGED
@@ -1374,6 +1374,9 @@ jQuery(document.body).ready( function() {
|
|
1374 |
},
|
1375 |
stop: function( event, ui ) {
|
1376 |
if ( ! um_is_directory_busy( directory ) ) {
|
|
|
|
|
|
|
1377 |
um_set_url_from_data( directory, 'filter_' + filter_name + '_from', ui.values[0] );
|
1378 |
um_set_url_from_data( directory, 'filter_' + filter_name + '_to', ui.values[1] );
|
1379 |
|
1374 |
},
|
1375 |
stop: function( event, ui ) {
|
1376 |
if ( ! um_is_directory_busy( directory ) ) {
|
1377 |
+
|
1378 |
+
um_members_show_preloader( directory );
|
1379 |
+
|
1380 |
um_set_url_from_data( directory, 'filter_' + filter_name + '_from', ui.values[0] );
|
1381 |
um_set_url_from_data( directory, 'filter_' + filter_name + '_to', ui.values[1] );
|
1382 |
|
assets/js/um-members.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var um_members_directory_busy=[],um_member_directories=[],um_member_directory_last_data=[];function um_parse_current_url(){var t={},a=window.location.search.substring(1).split("&");return jQuery.each(a,function(e){var r=a[e].split("=");t[r[0]]=r[1]}),t}function um_get_data_for_directory(e,r){var t=um_members_get_hash(e),a={},i=um_parse_current_url();if(jQuery.each(i,function(e){-1!==e.indexOf("_"+t)&&""!==i[e]&&(a[e.replace("_"+t,"")]=i[e])}),r){if(void 0!==a[r])try{a[r]=decodeURIComponent(a[r])}catch(e){console.error(e)}return a[r]}return a}function um_set_url_from_data(e,r,t){var a=um_members_get_hash(e),i=um_get_data_for_directory(e),m={};jQuery.isArray(t)?(jQuery.each(t,function(e){t[e]=encodeURIComponent(t[e])}),t=t.join("||")):jQuery.isNumeric(t)||(t=t.split("||"),jQuery.each(t,function(e){t[e]=encodeURIComponent(t[e])}),t=t.join("||")),""!==t&&(m[r+"_"+a]=t),jQuery.each(i,function(e){r===e?""!==t&&(m[e+"_"+a]=t):m[e+"_"+a]=i[e]}),jQuery.each(um_member_directories,function(e){var r=um_member_directories[e];if(r!==a){var t=um_get_data_for_directory(jQuery('.um-directory[data-hash="'+r+'"]'));jQuery.each(t,function(e){m[e+"_"+r]=t[e]})}});var d=[];jQuery.each(m,function(e){d.push(e+"="+m[e])});var s="?"+(d=wp.hooks.applyFilters("um_member_directory_url_attrs",d)).join("&");"?"===s&&(s=""),window.history.pushState("string","UM Member Directory",window.location.origin+window.location.pathname+s)}function um_members_get_hash(e){return e.data("hash")}function um_is_directory_busy(e){var r=um_members_get_hash(e);return void 0!==um_members_directory_busy[r]&&um_members_directory_busy[r]}function um_members_show_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!0,e.find(".um-members-overlay").show()}function um_members_hide_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!1,e.find(".um-members-overlay").hide()}function um_set_range_label(e,r){var t="",a=e.siblings(".um-slider-range").data("placeholder-s"),i=e.siblings(".um-slider-range").data("placeholder-p");t=r?r.values[0]===r.values[1]?a.replace("{value}",r.values[0]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):i.replace("{min_range}",r.values[0]).replace("{max_range}",r.values[1]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):e.slider("values",0)===e.slider("values",1)?a.replace("{value}",e.slider("values",0)).replace("{field_label}",e.siblings(".um-slider-range").data("label")):i.replace("{min_range}",e.slider("values",0)).replace("{max_range}",e.slider("values",1)).replace("{field_label}",e.siblings(".um-slider-range").data("label")),e.siblings(".um-slider-range").html(t),e.siblings(".um_range_min").val(e.slider("values",0)),e.siblings(".um_range_max").val(e.slider("values",1))}function um_get_search(e){return e.find(".um-search-line").length?e.find(".um-search-line").val():""}function um_get_sort(e){return e.data("sorting")}function um_get_current_page(e){var r=e.data("page");return r&&void 0!==r||(r=1),r}function um_time_convert(e,r){var t=Math.floor(e/60),a=e%60;return 60<=a&&(a=0,24<=(t+=1)&&(t=0)),a<10&&(a="0"+a),t+":"+a}function um_ajax_get_members(u,e){var t=um_members_get_hash(u),r=um_get_current_page(u),a=um_get_search(u),i=um_get_sort(u),m=-(new Date).getTimezoneOffset()/60,_={directory_id:t,page:r,search:a,sorting:i,gmt_offset:m,post_refferer:u.data("base-post"),nonce:um_scripts.nonce};u.find(".um-search-filter").length&&u.find(".um-search-filter").each(function(){var e=jQuery(this);if(e.find(".um-slider").length){var r=e.find(".um-slider").data("field_name"),t=um_get_data_for_directory(u,"filter_"+r+"_from"),a=um_get_data_for_directory(u,"filter_"+r+"_to");void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find(".um-datepicker-filter").length){r=e.find(".um-datepicker-filter").data("filter_name"),t=um_get_data_for_directory(u,"filter_"+r+"_from"),a=um_get_data_for_directory(u,"filter_"+r+"_to");void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find(".um-timepicker-filter").length){r=e.find(".um-timepicker-filter").data("filter_name"),t=um_get_data_for_directory(u,"filter_"+r+"_from"),a=um_get_data_for_directory(u,"filter_"+r+"_to");if(void 0!==t)(i=1*(t=t.split(":"))[0])<10&&(i="0"+i),(d=1*t[1])<10&&(d="0"+d),t=i+":"+d+":00";if(void 0!==a){var i,m=a.split(":"),d=1*m[1];(i=1*m[0])<10&&(i="0"+i),d<10&&(d="0"+d),a=i+":"+d+":59"}void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find("select").length){r=e.find("select").attr("name");void 0!==(s=um_get_data_for_directory(u,"filter_"+r))&&(_[r]=s.split("||"))}else if(e.hasClass("um-text-filter-type")&&e.find('input[type="text"]').length){var s;r=e.find('input[type="text"]').attr("name");void 0!==(s=um_get_data_for_directory(u,"filter_"+r))&&(_[r]=s)}else _=wp.hooks.applyFilters("um_member_directory_custom_filter_handler",_,e,u)}),_=wp.hooks.applyFilters("um_member_directory_filter_request",_),wp.ajax.send("um_get_members",{data:_,success:function(e){um_member_directory_last_data[t]=e,um_build_template(u,e);var r=wp.template("um-members-pagination");u.find(".um-members-pagination-box").html(r(e)),u.data("total_pages",e.pagination.total_pages),e.pagination.total_pages?(u.find(".um-member-directory-sorting-options").prop("disabled",!1),u.find(".um-member-directory-view-type").removeClass("um-disabled")):(u.find(".um-member-directory-sorting-options").prop("disabled",!0),u.find(".um-member-directory-view-type").addClass("um-disabled")),wp.hooks.doAction("um_member_directory_loaded",u,e),um_init_new_dropdown(),um_members_hide_preloader(u)},error:function(e){console.log(e),um_members_hide_preloader(u)}})}function um_build_template(e,r){var t=e.data("view_type"),a=wp.template("um-member-"+t+"-"+um_members_get_hash(e));e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-members-wrapper").prepend(a(r.users));var i=wp.template("um-members-header");e.find(".um-members-intro").remove();var m=wp.hooks.applyFilters("um_member_directory_generate_header",!1,e);(void 0!==r.is_search&&r.is_search||m)&&e.find(".um-members-wrapper").prepend(i(r)),e.addClass("um-loaded"),e.find(".um-members.um-members-grid").length&&UM_Member_Grid(e.find(".um-members.um-members-grid")),jQuery(document).trigger("um_build_template",[e,r]),jQuery(window).trigger("resize"),init_tipsy()}function UM_Member_Grid(e){e.find(".um-member").length&&e.imagesLoaded(function(){e.masonry({itemSelector:".um-member",columnWidth:".um-member",gutter:".um-gutter-sizer"}).on("layoutComplete",function(e,r){jQuery(document).trigger("um_grid_initialized",[e,r])})})}function um_get_filters_data(u){var _=[];return u.find(".um-search-filter").each(function(){var t,a,d,i=jQuery(this);if(i.find("input.um-datepicker-filter").length)d="datepicker",i.find("input.um-datepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(u,"filter_"+e+"_from"),t=um_get_data_for_directory(u,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=u.find('input.um-datepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("input.um-timepicker-filter").length)d="timepicker",i.find("input.um-timepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(u,"filter_"+e+"_from"),t=um_get_data_for_directory(u,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=u.find('input.um-timepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("select").length){d="select",t=i.find("select").attr("name"),a=i.find("select").data("placeholder"),m=void 0===(m=um_get_data_for_directory(u,"filter_"+t))?[]:m.split("||"),jQuery.each(m,function(e){var r=i.find('select option[value="'+m[e]+'"]').data("value_label");_.push({name:t,label:a,value_label:r,value:m[e],type:d})})}else if(i.hasClass("um-text-filter-type")&&i.find('input[type="text"]').length){var m;d="text",t=i.find('input[type="text"]').attr("name"),a=i.find('input[type="text"]').attr("placeholder"),void 0===(m=um_get_data_for_directory(u,"filter_"+t))&&(m=""),""!=m&&_.push({name:t,label:a,value_label:m,value:m,type:d})}else if(i.find("div.ui-slider").length){d="slider",t=i.find("div.ui-slider").data("field_name");var e,r=um_get_data_for_directory(u,"filter_"+t+"_from"),s=um_get_data_for_directory(u,"filter_"+t+"_to");if(void 0===r&&void 0===s)return;e=r===s?i.find("div.um-slider-range").data("placeholder-s").replace("{value}",r).replace("{field_label}",i.find("div.um-slider-range").data("label")):i.find("div.um-slider-range").data("placeholder-p").replace("{min_range}",r).replace("{max_range}",s).replace("{field_label}",i.find("div.um-slider-range").data("label")),a=i.find("div.um-slider-range").data("label"),_.push({name:t,label:a,value_label:e,value:[r,s],type:d})}else _=wp.hooks.applyFilters("um_member_directory_get_filter_data",_,u,i)}),_}function um_change_tag(e){var r=um_get_filters_data(e);e.find(".um-members-filter-tag").remove();var t=e.find(".um-filtered-line");if(t.length){var a=wp.template("um-members-filtered-line");t.prepend(a({filters:r})),0===e.find(".um-members-filter-remove").length?(e.find(".um-clear-filters").hide(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(e.find(".um-clear-filters").show(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"))}}function um_run_search(e){if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=um_get_data_for_directory(e,"search"),t=e.find(".um-search-line").val();if(t===r||""===t&&void 0===r)um_members_hide_preloader(e);else{e.data("general_search",t),um_set_url_from_data(e,"search",t),e.data("page",1),um_set_url_from_data(e,"page","");var a=!1;if(!(a=wp.hooks.applyFilters("um_member_directory_ignore_after_search",a,e)))if(1===e.data("must-search")&&(t=um_get_search(e),0===e.find(".um-members-filter-remove").length&&!t))return e.data("searched",0),e.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),wp.hooks.doAction("um_member_directory_clear_not_searched",e),void um_members_hide_preloader(e);e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}}jQuery(document.body).ready(function(){jQuery(".um-directory .um-search-filter select").each(function(){1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2()}),jQuery(document.body).on("mouseover",".um-directory .um-member-directory-view-type",function(){if(!jQuery(this).hasClass("um-disabled")){var e=jQuery(this).find(".um-member-directory-view-type-a:visible");e.hide(),e.next().length?e.next().show().tipsy("show"):jQuery(this).find(".um-member-directory-view-type-a:first").show().tipsy("show")}}).on("mouseout",".um-directory .um-member-directory-view-type",function(){jQuery(this).hasClass("um-disabled")||(jQuery(this).find(".um-member-directory-view-type-a").hide().tipsy("hide"),jQuery(this).find('.um-member-directory-view-type-a[data-type="'+jQuery(this).parents(".um-directory").data("view_type")+'"]').show())}),jQuery(document.body).on("click",".um-directory .um-member-directory-view-type-a",function(){var e=jQuery(this).parents(".um-directory");if(um_is_directory_busy(e))return!1;var r=jQuery(this),t=r.parents(".um-member-directory-view-type");if(!t.hasClass("um-disabled")){um_members_show_preloader(e);var a=t.find(".um-member-directory-view-type-a:visible");a.hide(),a.next().length?a.next().show().tipsy("show"):t.find(".um-member-directory-view-type-a:first").show().tipsy("show");var i=um_member_directory_last_data[um_members_get_hash(e)];if(null!==i){var m=r.data("type");um_set_url_from_data(e,"view_type",m),e.data("view_type",m),um_build_template(e,i),um_init_new_dropdown()}um_members_hide_preloader(e)}}),jQuery(document.body).on("click",".um-directory .um-do-search",function(){um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("keypress",".um-directory .um-search-line",function(e){13===e.which&&um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("click",".um-directory .um-member-directory-sorting-a .um-new-dropdown li a",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&1!==jQuery(this).data("selected")){um_members_show_preloader(e);var r=jQuery(this).data("value");e.data("sorting",r),um_set_url_from_data(e,"sort",r),um_ajax_get_members(e),jQuery(this).parents(".um-new-dropdown").find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),jQuery(this).data("selected",1).prop("data-selected",1).attr("data-selected",1),jQuery(this).parents(".um-member-directory-sorting-a").find("> a").html(jQuery(this).html())}}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){if(!jQuery(this).hasClass("disabled")){var e,r=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(r))um_members_show_preloader(r),1===(e="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?1*r.data("page")-1:"next"===jQuery(this).data("page")?1*r.data("page")+1:"last"===jQuery(this).data("page")?parseInt(r.data("total_pages")):parseInt(jQuery(this).data("page")))?(r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled")):(e===parseInt(r.data("total_pages"))?r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass("disabled")),r.find(".pagi").removeClass("current"),r.find('.pagi[data-page="'+e+'"]').addClass("current"),r.data("page",e),um_set_url_from_data(r,"page",1===e?"":e),um_ajax_get_members(r)}}),jQuery(document.body).on("change",".um-directory .um-members-pagi-dropdown",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).val();e.find(".pagi").removeClass("current"),e.find('.pagi[data-page="'+r+'"]').addClass("current"),e.data("page",r),um_set_url_from_data(e,"page",1===r?"":r),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-more").hide(),r.find(".um-member-meta-main").slideDown(),r.find(".um-member-less").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-less").hide(),r.find(".um-member-meta-main").slideUp(),r.find(".um-member-more").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-more").hide(),r.find(".um-member-meta").slideDown(function(){UM_Member_Grid(t)}),r.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(t)},100),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-less").hide(),r.find(".um-member-meta").slideUp(function(){r.find(".um-member-more").fadeIn(),UM_Member_Grid(t)}),!1}),jQuery(".um-member-directory-filters-a").click(function(){var e=jQuery(this),r=e.parents(".um-directory").find(".um-search");r.is(":visible")?r.slideUp(250,function(){e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}):r.slideDown({duration:250,start:function(){jQuery(this).css({display:"grid"}),e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}})}),jQuery(document.body).on("change",".um-directory .um-search-filter select",function(){if(""!==jQuery(this).val()){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).prop("name"),t=um_get_data_for_directory(e,"filter_"+r);t=void 0===t?[]:t.split("||"),-1===jQuery.inArray(jQuery(this).val(),t)&&(t.push(jQuery(this).val()),um_set_url_from_data(e,"filter_"+r,t=t.join("||")),e.data("page",1),um_set_url_from_data(e,"page","")),jQuery(this).find('option[value="'+jQuery(this).val()+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2(),jQuery(this).val("").trigger("change"),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled")}}}),jQuery(document.body).on("blur",'.um-directory .um-search-filter.um-text-filter-type input[type="text"]',function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){var r=jQuery(this).val(),t=jQuery(this).prop("name"),a=um_get_data_for_directory(e,"filter_"+t);void 0===a&&(a=""),r!==a&&(um_members_show_preloader(e),um_set_url_from_data(e,"filter_"+t,r),e.data("page",1),um_set_url_from_data(e,"page",""),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),jQuery(document.body).on("keypress",'.um-directory .um-search-filter.um-text-filter-type input[type="text"]',function(e){if(13===e.which){var r=jQuery(this).parents(".um-directory");if(um_is_directory_busy(r))return;var t=jQuery(this).val(),a=jQuery(this).prop("name"),i=um_get_data_for_directory(r,"filter_"+a);if(void 0===i&&(i=""),t===i)return;um_members_show_preloader(r),um_set_url_from_data(r,"filter_"+a,t),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}),jQuery(document.body).on("click",".um-directory .um-members-filter-remove",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&e){um_members_show_preloader(e);var r=jQuery(this).data("value"),t=jQuery(this).data("name"),a=jQuery(this).data("type");if("text"===a)um_set_url_from_data(e,"filter_"+t,""),jQuery('.um-search-filter input[name="'+t+'"]').val("");else if("select"===a){var i=um_get_data_for_directory(e,"filter_"+t);i=void 0===i?[]:i.split("||"),-1!==jQuery.inArray(r.toString(),i)&&(i=jQuery.grep(i,function(e){return e!==r.toString()})),i.length||(i=""),um_set_url_from_data(e,"filter_"+t,i);var m=jQuery('.um-search-filter select[name="'+t+'"]');m.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<m.find("option:not(:disabled)").length&&m.prop("disabled",!1),m.select2("destroy").select2(),0<e.find('.um-search-filter select[data-um-parent="'+t+'"]').length&&m.trigger("change")}else if("slider"===a){um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to","");var d=jQuery(".um-search-filter #"+t+"_min").siblings(".um-slider"),s=d.slider("option");d.slider("values",[s.min,s.max]),jQuery(".um-search-filter #"+t+"_min").val(""),jQuery(".um-search-filter #"+t+"_max").val(""),um_set_range_label(d)}else"datepicker"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to",""),jQuery(".um-search-filter #"+t+"_from").val(""),jQuery(".um-search-filter #"+t+"_to").val("")):"timepicker"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to",""),jQuery(".um-search-filter #"+t+"_from").val(""),jQuery(".um-search-filter #"+t+"_to").val("")):wp.hooks.doAction("um_member_directory_filter_remove",a,e,t,r);e.data("page",1),um_set_url_from_data(e,"page",""),jQuery(this).tipsy("hide"),jQuery(this).parents(".um-members-filter-tag").remove(),0===e.find(".um-members-filter-remove").length?e.find(".um-clear-filters").hide():e.find(".um-clear-filters").show();var u=!1;if(!(u=wp.hooks.applyFilters("um_member_directory_ignore_after_search",u,e)))if(1===e.data("must-search")){var _=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!_)return e.data("searched",0),e.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),wp.hooks.doAction("um_member_directory_clear_not_searched",e),void um_members_hide_preloader(e)}e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-clear-filters-a",function(){var s=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(s)){um_members_show_preloader(s),s.find(".um-members-filter-remove").each(function(){var r=jQuery(this).data("value"),e=jQuery(this).data("name"),t=jQuery(this).data("type");if("text"===t)um_set_url_from_data(s,"filter_"+e,""),jQuery('.um-search-filter input[name="'+e+'"]').val("");else if("select"===t){var a=um_get_data_for_directory(s,"filter_"+e);a=void 0===a?[]:a.split("||"),-1!==jQuery.inArray(r.toString(),a)&&(a=jQuery.grep(a,function(e){return e!==r.toString()})),a.length||(a=""),um_set_url_from_data(s,"filter_"+e,a);var i=jQuery('.um-search-filter select[name="'+e+'"]');i.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<i.find("option:not(:disabled)").length&&i.prop("disabled",!1),i.select2("destroy").select2(),0<s.find('.um-search-filter select[data-um-parent="'+e+'"]').length&&i.trigger("change")}else if("slider"===t){um_set_url_from_data(s,"filter_"+e+"_from",""),um_set_url_from_data(s,"filter_"+e+"_to","");var m=jQuery(".um-search-filter #"+e+"_min").siblings(".um-slider"),d=m.slider("option");m.slider("values",[d.min,d.max]),jQuery(".um-search-filter #"+e+"_min").val(""),jQuery(".um-search-filter #"+e+"_max").val(""),um_set_range_label(m)}else"datepicker"===t?(um_set_url_from_data(s,"filter_"+e+"_from",""),um_set_url_from_data(s,"filter_"+e+"_to",""),jQuery(".um-search-filter #"+e+"_from").val(""),jQuery(".um-search-filter #"+e+"_to").val("")):"timepicker"===t?(um_set_url_from_data(s,"filter_"+e+"_from",""),um_set_url_from_data(s,"filter_"+e+"_to",""),jQuery(".um-search-filter #"+e+"_from").val(""),jQuery(".um-search-filter #"+e+"_to").val("")):wp.hooks.doAction("um_member_directory_clear_filters",t,s,e,r)}),s.data("page",1),um_set_url_from_data(s,"page",""),s.find(".um-members-filter-tag").remove(),0===s.find(".um-members-filter-remove").length?(s.find(".um-clear-filters").hide(),s.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(s.find(".um-clear-filters").show(),s.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"));var e=!1;if(!(e=wp.hooks.applyFilters("um_member_directory_ignore_after_search",e,s)))if(1===s.data("must-search"))if(!um_get_search(s))return s.data("searched",0),s.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),s.find(".um-member-directory-sorting-options").prop("disabled",!0),s.find(".um-member-directory-view-type").addClass("um-disabled"),wp.hooks.doAction("um_member_directory_clear_not_searched",s),void um_members_hide_preloader(s);s.find(".um-member-directory-sorting-options").prop("disabled",!1),s.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(s)}}),wp.hooks.doAction("um_member_directory_on_first_pages_loading"),jQuery(".um-directory").each(function(){var e=jQuery(this),r=um_members_get_hash(e);um_member_directories.push(r),e.find(".um-search").length&&(e.find(".um-search").is(":visible")||e.find(".um-search").css({display:"grid"}).slideUp(1)),e.find(".um-slider").each(function(){var e=jQuery(this),t=e.parents(".um-directory"),a=e.data("field_name"),r=um_get_data_for_directory(t,"filter_"+a+"_from"),i=um_get_data_for_directory(t,"filter_"+a+"_to");void 0===r&&(r=parseInt(e.data("min"))),void 0===i&&(i=parseInt(e.data("max")));var m=[r,i];e.slider({range:!0,min:parseInt(e.data("min")),max:parseInt(e.data("max")),values:m,create:function(e,r){},step:1,slide:function(e,r){um_set_range_label(jQuery(this),r)},stop:function(e,r){um_is_directory_busy(t)||(um_set_url_from_data(t,"filter_"+a+"_from",r.values[0]),um_set_url_from_data(t,"filter_"+a+"_to",r.values[1]),t.data("page",1),um_set_url_from_data(t,"page",""),um_ajax_get_members(t),um_change_tag(t),t.data("searched",1),t.find(".um-member-directory-sorting-options").prop("disabled",!1),t.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),um_set_range_label(e)}),e.find(".um-datepicker-filter").each(function(){var s=jQuery(this),u=new Date(1e3*s.data("date_min")),_=new Date(1e3*s.data("date_max")),e=s.pickadate({selectYears:!0,min:u,max:_,formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){s.blur()},onClose:function(){s.blur()},onSet:function(e){if(e.select){var r=s.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=s.data("filter_name"),a=s.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");void 0===i&&(i=u/1e3),void 0===m&&(m=_/1e3);var d=e.select/1e3;s.val();"from"===a?i=d:"to"===a&&(m=d),um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}}).pickadate("picker"),r=s.data("filter_name"),t=s.data("range"),a=um_get_data_for_directory(s.parents(".um-directory"),"filter_"+r+"_"+t);void 0!==a&&e.set("select",1e3*a)}),e.find(".um-timepicker-filter").each(function(){var u=jQuery(this),_=u.attr("id"),o=u.data("filter_name"),n=u.attr("data-min"),l=u.attr("data-max"),e=n.split(":"),r=l.split(":"),t=u.pickatime({format:u.data("format"),interval:parseInt(u.data("intervals")),min:[e[0],e[1]],max:[r[0],r[1]],formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){u.blur()},onClose:function(){u.blur()},onSet:function(e){if(e.select){var r=u.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=u.data("filter_name"),a=u.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");if(void 0===i&&(i=n),void 0===m&&(m=l),void 0!==e.select){var d=um_time_convert(e.select,a);"from"===a?i=d:"to"===a&&(m=d)}else"from"===a?i=n:"to"===a&&(m=l);var s=jQuery("#"+_).val();"from"===u.data("range")?jQuery("#"+o+"_to").pickatime("picker").set("min",s):jQuery("#"+o+"_from").pickatime("picker").set("max",s),um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}}).pickatime("picker"),a=u.data("filter_name"),i=u.data("range"),m=um_get_data_for_directory(u.parents(".um-directory"),"filter_"+a+"_"+i);if(void 0!==m){var d=m.split(":");t.set("select",60*d[0]+1*d[1])}}),wp.hooks.doAction("um_member_directory_on_init",e,r);var t=!1;if(!(t=wp.hooks.applyFilters("um_member_directory_ignore_after_search",t,e))&&1===e.data("must-search")){var a=um_get_search(e);if(!um_get_filters_data(e).length&&!a)return}wp.hooks.applyFilters("um_member_directory_prevent_default_first_loading",!1,e,r)||(um_members_show_preloader(e),um_ajax_get_members(e,{first_load:!0}),um_change_tag(e))}),window.addEventListener("popstate",function(e){jQuery(".um-directory").each(function(){var d=jQuery(this),e=um_members_get_hash(d);(um_member_directories.push(e),um_members_show_preloader(d),d.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),d.find(".um-member-directory-search-line").length)&&(void 0===(s=um_get_data_for_directory(d,"search"))&&(s=""),d.data("general_search",s),d.find(".um-search-line").val(s));var r=um_get_data_for_directory(d,"page");if(void 0===r?r=1:r>d.data("total_pages")&&(r=d.data("total_pages")),d.data("page",r).attr("data-page",r),d.find(".um-member-directory-sorting").length){var t=um_get_data_for_directory(d,"sort");void 0===t&&(t=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]').find('a[data-default="1"]').data("value")),d.data("sorting",t);var a=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]');a.find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),a.find('a[data-value="'+t+'"]').data("selected",1).prop("data-selected",1).attr("data-selected",1),d.find(".um-member-directory-sorting-a").find("> a").html(a.find('a[data-value="'+t+'"]').html())}if(d.find(".um-member-directory-view-type").length){var i=um_get_data_for_directory(d,"view_type");void 0===i&&(i=d.find('.um-member-directory-view-type-a[data-default="1"]').data("type")),d.data("view_type",i),d.find(".um-member-directory-view-type .um-member-directory-view-type-a").hide(),d.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="'+i+'"]').show()}d.find(".um-datepicker-filter").each(function(){var e=jQuery(this),r=e.pickadate("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);void 0!==i?r.set("select",1e3*i):r.clear()}),d.find(".um-slider").each(function(){var e=jQuery(this),r=e.data("field_name"),t=um_get_data_for_directory(d,"filter_"+r+"_from"),a=um_get_data_for_directory(d,"filter_"+r+"_to");void 0===t&&(t=e.data("min")),t=parseInt(t),void 0===a&&(a=e.data("max")),a=parseInt(a),e.slider("values",[t,a]),um_set_range_label(e)}),d.find(".um-timepicker-filter").each(function(){var e=jQuery(this),r=e.pickatime("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);if(void 0!==i){var m=i.split(":");r.set("select",60*m[0])}else r.clear()});var m=!1;if(!(m=wp.hooks.applyFilters("um_member_directory_ignore_after_search",m,d))&&1===d.data("must-search")){var s=um_get_search(d);if(!um_get_filters_data(d).length&&!s)return d.data("searched",0),void um_members_hide_preloader(d);d.data("searched",1)}wp.hooks.applyFilters("um_member_directory_prevent_default_first_loading",!1,d,e)||(um_ajax_get_members(d),um_change_tag(d))})})});
|
1 |
+
var um_members_directory_busy=[],um_member_directories=[],um_member_directory_last_data=[];function um_parse_current_url(){var t={},a=window.location.search.substring(1).split("&");return jQuery.each(a,function(e){var r=a[e].split("=");t[r[0]]=r[1]}),t}function um_get_data_for_directory(e,r){var t=um_members_get_hash(e),a={},i=um_parse_current_url();if(jQuery.each(i,function(e){-1!==e.indexOf("_"+t)&&""!==i[e]&&(a[e.replace("_"+t,"")]=i[e])}),r){if(void 0!==a[r])try{a[r]=decodeURIComponent(a[r])}catch(e){console.error(e)}return a[r]}return a}function um_set_url_from_data(e,r,t){var a=um_members_get_hash(e),i=um_get_data_for_directory(e),m={};jQuery.isArray(t)?(jQuery.each(t,function(e){t[e]=encodeURIComponent(t[e])}),t=t.join("||")):jQuery.isNumeric(t)||(t=t.split("||"),jQuery.each(t,function(e){t[e]=encodeURIComponent(t[e])}),t=t.join("||")),""!==t&&(m[r+"_"+a]=t),jQuery.each(i,function(e){r===e?""!==t&&(m[e+"_"+a]=t):m[e+"_"+a]=i[e]}),jQuery.each(um_member_directories,function(e){var r=um_member_directories[e];if(r!==a){var t=um_get_data_for_directory(jQuery('.um-directory[data-hash="'+r+'"]'));jQuery.each(t,function(e){m[e+"_"+r]=t[e]})}});var d=[];jQuery.each(m,function(e){d.push(e+"="+m[e])});var s="?"+(d=wp.hooks.applyFilters("um_member_directory_url_attrs",d)).join("&");"?"===s&&(s=""),window.history.pushState("string","UM Member Directory",window.location.origin+window.location.pathname+s)}function um_members_get_hash(e){return e.data("hash")}function um_is_directory_busy(e){var r=um_members_get_hash(e);return void 0!==um_members_directory_busy[r]&&um_members_directory_busy[r]}function um_members_show_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!0,e.find(".um-members-overlay").show()}function um_members_hide_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!1,e.find(".um-members-overlay").hide()}function um_set_range_label(e,r){var t="",a=e.siblings(".um-slider-range").data("placeholder-s"),i=e.siblings(".um-slider-range").data("placeholder-p");t=r?r.values[0]===r.values[1]?a.replace("{value}",r.values[0]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):i.replace("{min_range}",r.values[0]).replace("{max_range}",r.values[1]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):e.slider("values",0)===e.slider("values",1)?a.replace("{value}",e.slider("values",0)).replace("{field_label}",e.siblings(".um-slider-range").data("label")):i.replace("{min_range}",e.slider("values",0)).replace("{max_range}",e.slider("values",1)).replace("{field_label}",e.siblings(".um-slider-range").data("label")),e.siblings(".um-slider-range").html(t),e.siblings(".um_range_min").val(e.slider("values",0)),e.siblings(".um_range_max").val(e.slider("values",1))}function um_get_search(e){return e.find(".um-search-line").length?e.find(".um-search-line").val():""}function um_get_sort(e){return e.data("sorting")}function um_get_current_page(e){var r=e.data("page");return r&&void 0!==r||(r=1),r}function um_time_convert(e,r){var t=Math.floor(e/60),a=e%60;return 60<=a&&(a=0,24<=(t+=1)&&(t=0)),a<10&&(a="0"+a),t+":"+a}function um_ajax_get_members(u,e){var t=um_members_get_hash(u),r=um_get_current_page(u),a=um_get_search(u),i=um_get_sort(u),m=-(new Date).getTimezoneOffset()/60,_={directory_id:t,page:r,search:a,sorting:i,gmt_offset:m,post_refferer:u.data("base-post"),nonce:um_scripts.nonce};u.find(".um-search-filter").length&&u.find(".um-search-filter").each(function(){var e=jQuery(this);if(e.find(".um-slider").length){var r=e.find(".um-slider").data("field_name"),t=um_get_data_for_directory(u,"filter_"+r+"_from"),a=um_get_data_for_directory(u,"filter_"+r+"_to");void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find(".um-datepicker-filter").length){r=e.find(".um-datepicker-filter").data("filter_name"),t=um_get_data_for_directory(u,"filter_"+r+"_from"),a=um_get_data_for_directory(u,"filter_"+r+"_to");void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find(".um-timepicker-filter").length){r=e.find(".um-timepicker-filter").data("filter_name"),t=um_get_data_for_directory(u,"filter_"+r+"_from"),a=um_get_data_for_directory(u,"filter_"+r+"_to");if(void 0!==t)(i=1*(t=t.split(":"))[0])<10&&(i="0"+i),(d=1*t[1])<10&&(d="0"+d),t=i+":"+d+":00";if(void 0!==a){var i,m=a.split(":"),d=1*m[1];(i=1*m[0])<10&&(i="0"+i),d<10&&(d="0"+d),a=i+":"+d+":59"}void 0===t&&void 0===a||(_[r]=[t,a])}else if(e.find("select").length){r=e.find("select").attr("name");void 0!==(s=um_get_data_for_directory(u,"filter_"+r))&&(_[r]=s.split("||"))}else if(e.hasClass("um-text-filter-type")&&e.find('input[type="text"]').length){var s;r=e.find('input[type="text"]').attr("name");void 0!==(s=um_get_data_for_directory(u,"filter_"+r))&&(_[r]=s)}else _=wp.hooks.applyFilters("um_member_directory_custom_filter_handler",_,e,u)}),_=wp.hooks.applyFilters("um_member_directory_filter_request",_),wp.ajax.send("um_get_members",{data:_,success:function(e){um_member_directory_last_data[t]=e,um_build_template(u,e);var r=wp.template("um-members-pagination");u.find(".um-members-pagination-box").html(r(e)),u.data("total_pages",e.pagination.total_pages),e.pagination.total_pages?(u.find(".um-member-directory-sorting-options").prop("disabled",!1),u.find(".um-member-directory-view-type").removeClass("um-disabled")):(u.find(".um-member-directory-sorting-options").prop("disabled",!0),u.find(".um-member-directory-view-type").addClass("um-disabled")),wp.hooks.doAction("um_member_directory_loaded",u,e),um_init_new_dropdown(),um_members_hide_preloader(u)},error:function(e){console.log(e),um_members_hide_preloader(u)}})}function um_build_template(e,r){var t=e.data("view_type"),a=wp.template("um-member-"+t+"-"+um_members_get_hash(e));e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-members-wrapper").prepend(a(r.users));var i=wp.template("um-members-header");e.find(".um-members-intro").remove();var m=wp.hooks.applyFilters("um_member_directory_generate_header",!1,e);(void 0!==r.is_search&&r.is_search||m)&&e.find(".um-members-wrapper").prepend(i(r)),e.addClass("um-loaded"),e.find(".um-members.um-members-grid").length&&UM_Member_Grid(e.find(".um-members.um-members-grid")),jQuery(document).trigger("um_build_template",[e,r]),jQuery(window).trigger("resize"),init_tipsy()}function UM_Member_Grid(e){e.find(".um-member").length&&e.imagesLoaded(function(){e.masonry({itemSelector:".um-member",columnWidth:".um-member",gutter:".um-gutter-sizer"}).on("layoutComplete",function(e,r){jQuery(document).trigger("um_grid_initialized",[e,r])})})}function um_get_filters_data(u){var _=[];return u.find(".um-search-filter").each(function(){var t,a,d,i=jQuery(this);if(i.find("input.um-datepicker-filter").length)d="datepicker",i.find("input.um-datepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(u,"filter_"+e+"_from"),t=um_get_data_for_directory(u,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=u.find('input.um-datepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("input.um-timepicker-filter").length)d="timepicker",i.find("input.um-timepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(u,"filter_"+e+"_from"),t=um_get_data_for_directory(u,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=u.find('input.um-timepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("select").length){d="select",t=i.find("select").attr("name"),a=i.find("select").data("placeholder"),m=void 0===(m=um_get_data_for_directory(u,"filter_"+t))?[]:m.split("||"),jQuery.each(m,function(e){var r=i.find('select option[value="'+m[e]+'"]').data("value_label");_.push({name:t,label:a,value_label:r,value:m[e],type:d})})}else if(i.hasClass("um-text-filter-type")&&i.find('input[type="text"]').length){var m;d="text",t=i.find('input[type="text"]').attr("name"),a=i.find('input[type="text"]').attr("placeholder"),void 0===(m=um_get_data_for_directory(u,"filter_"+t))&&(m=""),""!=m&&_.push({name:t,label:a,value_label:m,value:m,type:d})}else if(i.find("div.ui-slider").length){d="slider",t=i.find("div.ui-slider").data("field_name");var e,r=um_get_data_for_directory(u,"filter_"+t+"_from"),s=um_get_data_for_directory(u,"filter_"+t+"_to");if(void 0===r&&void 0===s)return;e=r===s?i.find("div.um-slider-range").data("placeholder-s").replace("{value}",r).replace("{field_label}",i.find("div.um-slider-range").data("label")):i.find("div.um-slider-range").data("placeholder-p").replace("{min_range}",r).replace("{max_range}",s).replace("{field_label}",i.find("div.um-slider-range").data("label")),a=i.find("div.um-slider-range").data("label"),_.push({name:t,label:a,value_label:e,value:[r,s],type:d})}else _=wp.hooks.applyFilters("um_member_directory_get_filter_data",_,u,i)}),_}function um_change_tag(e){var r=um_get_filters_data(e);e.find(".um-members-filter-tag").remove();var t=e.find(".um-filtered-line");if(t.length){var a=wp.template("um-members-filtered-line");t.prepend(a({filters:r})),0===e.find(".um-members-filter-remove").length?(e.find(".um-clear-filters").hide(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(e.find(".um-clear-filters").show(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"))}}function um_run_search(e){if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=um_get_data_for_directory(e,"search"),t=e.find(".um-search-line").val();if(t===r||""===t&&void 0===r)um_members_hide_preloader(e);else{e.data("general_search",t),um_set_url_from_data(e,"search",t),e.data("page",1),um_set_url_from_data(e,"page","");var a=!1;if(!(a=wp.hooks.applyFilters("um_member_directory_ignore_after_search",a,e)))if(1===e.data("must-search")&&(t=um_get_search(e),0===e.find(".um-members-filter-remove").length&&!t))return e.data("searched",0),e.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),wp.hooks.doAction("um_member_directory_clear_not_searched",e),void um_members_hide_preloader(e);e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}}jQuery(document.body).ready(function(){jQuery(".um-directory .um-search-filter select").each(function(){1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2()}),jQuery(document.body).on("mouseover",".um-directory .um-member-directory-view-type",function(){if(!jQuery(this).hasClass("um-disabled")){var e=jQuery(this).find(".um-member-directory-view-type-a:visible");e.hide(),e.next().length?e.next().show().tipsy("show"):jQuery(this).find(".um-member-directory-view-type-a:first").show().tipsy("show")}}).on("mouseout",".um-directory .um-member-directory-view-type",function(){jQuery(this).hasClass("um-disabled")||(jQuery(this).find(".um-member-directory-view-type-a").hide().tipsy("hide"),jQuery(this).find('.um-member-directory-view-type-a[data-type="'+jQuery(this).parents(".um-directory").data("view_type")+'"]').show())}),jQuery(document.body).on("click",".um-directory .um-member-directory-view-type-a",function(){var e=jQuery(this).parents(".um-directory");if(um_is_directory_busy(e))return!1;var r=jQuery(this),t=r.parents(".um-member-directory-view-type");if(!t.hasClass("um-disabled")){um_members_show_preloader(e);var a=t.find(".um-member-directory-view-type-a:visible");a.hide(),a.next().length?a.next().show().tipsy("show"):t.find(".um-member-directory-view-type-a:first").show().tipsy("show");var i=um_member_directory_last_data[um_members_get_hash(e)];if(null!==i){var m=r.data("type");um_set_url_from_data(e,"view_type",m),e.data("view_type",m),um_build_template(e,i),um_init_new_dropdown()}um_members_hide_preloader(e)}}),jQuery(document.body).on("click",".um-directory .um-do-search",function(){um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("keypress",".um-directory .um-search-line",function(e){13===e.which&&um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("click",".um-directory .um-member-directory-sorting-a .um-new-dropdown li a",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&1!==jQuery(this).data("selected")){um_members_show_preloader(e);var r=jQuery(this).data("value");e.data("sorting",r),um_set_url_from_data(e,"sort",r),um_ajax_get_members(e),jQuery(this).parents(".um-new-dropdown").find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),jQuery(this).data("selected",1).prop("data-selected",1).attr("data-selected",1),jQuery(this).parents(".um-member-directory-sorting-a").find("> a").html(jQuery(this).html())}}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){if(!jQuery(this).hasClass("disabled")){var e,r=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(r))um_members_show_preloader(r),1===(e="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?1*r.data("page")-1:"next"===jQuery(this).data("page")?1*r.data("page")+1:"last"===jQuery(this).data("page")?parseInt(r.data("total_pages")):parseInt(jQuery(this).data("page")))?(r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled")):(e===parseInt(r.data("total_pages"))?r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass("disabled")),r.find(".pagi").removeClass("current"),r.find('.pagi[data-page="'+e+'"]').addClass("current"),r.data("page",e),um_set_url_from_data(r,"page",1===e?"":e),um_ajax_get_members(r)}}),jQuery(document.body).on("change",".um-directory .um-members-pagi-dropdown",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).val();e.find(".pagi").removeClass("current"),e.find('.pagi[data-page="'+r+'"]').addClass("current"),e.data("page",r),um_set_url_from_data(e,"page",1===r?"":r),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-more").hide(),r.find(".um-member-meta-main").slideDown(),r.find(".um-member-less").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-less").hide(),r.find(".um-member-meta-main").slideUp(),r.find(".um-member-more").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-more").hide(),r.find(".um-member-meta").slideDown(function(){UM_Member_Grid(t)}),r.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(t)},100),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-less").hide(),r.find(".um-member-meta").slideUp(function(){r.find(".um-member-more").fadeIn(),UM_Member_Grid(t)}),!1}),jQuery(".um-member-directory-filters-a").click(function(){var e=jQuery(this),r=e.parents(".um-directory").find(".um-search");r.is(":visible")?r.slideUp(250,function(){e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}):r.slideDown({duration:250,start:function(){jQuery(this).css({display:"grid"}),e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}})}),jQuery(document.body).on("change",".um-directory .um-search-filter select",function(){if(""!==jQuery(this).val()){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).prop("name"),t=um_get_data_for_directory(e,"filter_"+r);t=void 0===t?[]:t.split("||"),-1===jQuery.inArray(jQuery(this).val(),t)&&(t.push(jQuery(this).val()),um_set_url_from_data(e,"filter_"+r,t=t.join("||")),e.data("page",1),um_set_url_from_data(e,"page","")),jQuery(this).find('option[value="'+jQuery(this).val()+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2(),jQuery(this).val("").trigger("change"),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled")}}}),jQuery(document.body).on("blur",'.um-directory .um-search-filter.um-text-filter-type input[type="text"]',function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){var r=jQuery(this).val(),t=jQuery(this).prop("name"),a=um_get_data_for_directory(e,"filter_"+t);void 0===a&&(a=""),r!==a&&(um_members_show_preloader(e),um_set_url_from_data(e,"filter_"+t,r),e.data("page",1),um_set_url_from_data(e,"page",""),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),jQuery(document.body).on("keypress",'.um-directory .um-search-filter.um-text-filter-type input[type="text"]',function(e){if(13===e.which){var r=jQuery(this).parents(".um-directory");if(um_is_directory_busy(r))return;var t=jQuery(this).val(),a=jQuery(this).prop("name"),i=um_get_data_for_directory(r,"filter_"+a);if(void 0===i&&(i=""),t===i)return;um_members_show_preloader(r),um_set_url_from_data(r,"filter_"+a,t),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}),jQuery(document.body).on("click",".um-directory .um-members-filter-remove",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&e){um_members_show_preloader(e);var r=jQuery(this).data("value"),t=jQuery(this).data("name"),a=jQuery(this).data("type");if("text"===a)um_set_url_from_data(e,"filter_"+t,""),jQuery('.um-search-filter input[name="'+t+'"]').val("");else if("select"===a){var i=um_get_data_for_directory(e,"filter_"+t);i=void 0===i?[]:i.split("||"),-1!==jQuery.inArray(r.toString(),i)&&(i=jQuery.grep(i,function(e){return e!==r.toString()})),i.length||(i=""),um_set_url_from_data(e,"filter_"+t,i);var m=jQuery('.um-search-filter select[name="'+t+'"]');m.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<m.find("option:not(:disabled)").length&&m.prop("disabled",!1),m.select2("destroy").select2(),0<e.find('.um-search-filter select[data-um-parent="'+t+'"]').length&&m.trigger("change")}else if("slider"===a){um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to","");var d=jQuery(".um-search-filter #"+t+"_min").siblings(".um-slider"),s=d.slider("option");d.slider("values",[s.min,s.max]),jQuery(".um-search-filter #"+t+"_min").val(""),jQuery(".um-search-filter #"+t+"_max").val(""),um_set_range_label(d)}else"datepicker"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to",""),jQuery(".um-search-filter #"+t+"_from").val(""),jQuery(".um-search-filter #"+t+"_to").val("")):"timepicker"===a?(um_set_url_from_data(e,"filter_"+t+"_from",""),um_set_url_from_data(e,"filter_"+t+"_to",""),jQuery(".um-search-filter #"+t+"_from").val(""),jQuery(".um-search-filter #"+t+"_to").val("")):wp.hooks.doAction("um_member_directory_filter_remove",a,e,t,r);e.data("page",1),um_set_url_from_data(e,"page",""),jQuery(this).tipsy("hide"),jQuery(this).parents(".um-members-filter-tag").remove(),0===e.find(".um-members-filter-remove").length?e.find(".um-clear-filters").hide():e.find(".um-clear-filters").show();var u=!1;if(!(u=wp.hooks.applyFilters("um_member_directory_ignore_after_search",u,e)))if(1===e.data("must-search")){var _=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!_)return e.data("searched",0),e.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),wp.hooks.doAction("um_member_directory_clear_not_searched",e),void um_members_hide_preloader(e)}e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-clear-filters-a",function(){var s=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(s)){um_members_show_preloader(s),s.find(".um-members-filter-remove").each(function(){var r=jQuery(this).data("value"),e=jQuery(this).data("name"),t=jQuery(this).data("type");if("text"===t)um_set_url_from_data(s,"filter_"+e,""),jQuery('.um-search-filter input[name="'+e+'"]').val("");else if("select"===t){var a=um_get_data_for_directory(s,"filter_"+e);a=void 0===a?[]:a.split("||"),-1!==jQuery.inArray(r.toString(),a)&&(a=jQuery.grep(a,function(e){return e!==r.toString()})),a.length||(a=""),um_set_url_from_data(s,"filter_"+e,a);var i=jQuery('.um-search-filter select[name="'+e+'"]');i.find('option[value="'+r+'"]').prop("disabled",!1).show(),1<i.find("option:not(:disabled)").length&&i.prop("disabled",!1),i.select2("destroy").select2(),0<s.find('.um-search-filter select[data-um-parent="'+e+'"]').length&&i.trigger("change")}else if("slider"===t){um_set_url_from_data(s,"filter_"+e+"_from",""),um_set_url_from_data(s,"filter_"+e+"_to","");var m=jQuery(".um-search-filter #"+e+"_min").siblings(".um-slider"),d=m.slider("option");m.slider("values",[d.min,d.max]),jQuery(".um-search-filter #"+e+"_min").val(""),jQuery(".um-search-filter #"+e+"_max").val(""),um_set_range_label(m)}else"datepicker"===t?(um_set_url_from_data(s,"filter_"+e+"_from",""),um_set_url_from_data(s,"filter_"+e+"_to",""),jQuery(".um-search-filter #"+e+"_from").val(""),jQuery(".um-search-filter #"+e+"_to").val("")):"timepicker"===t?(um_set_url_from_data(s,"filter_"+e+"_from",""),um_set_url_from_data(s,"filter_"+e+"_to",""),jQuery(".um-search-filter #"+e+"_from").val(""),jQuery(".um-search-filter #"+e+"_to").val("")):wp.hooks.doAction("um_member_directory_clear_filters",t,s,e,r)}),s.data("page",1),um_set_url_from_data(s,"page",""),s.find(".um-members-filter-tag").remove(),0===s.find(".um-members-filter-remove").length?(s.find(".um-clear-filters").hide(),s.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(s.find(".um-clear-filters").show(),s.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"));var e=!1;if(!(e=wp.hooks.applyFilters("um_member_directory_ignore_after_search",e,s)))if(1===s.data("must-search"))if(!um_get_search(s))return s.data("searched",0),s.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),s.find(".um-member-directory-sorting-options").prop("disabled",!0),s.find(".um-member-directory-view-type").addClass("um-disabled"),wp.hooks.doAction("um_member_directory_clear_not_searched",s),void um_members_hide_preloader(s);s.find(".um-member-directory-sorting-options").prop("disabled",!1),s.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(s)}}),wp.hooks.doAction("um_member_directory_on_first_pages_loading"),jQuery(".um-directory").each(function(){var e=jQuery(this),r=um_members_get_hash(e);um_member_directories.push(r),e.find(".um-search").length&&(e.find(".um-search").is(":visible")||e.find(".um-search").css({display:"grid"}).slideUp(1)),e.find(".um-slider").each(function(){var e=jQuery(this),t=e.parents(".um-directory"),a=e.data("field_name"),r=um_get_data_for_directory(t,"filter_"+a+"_from"),i=um_get_data_for_directory(t,"filter_"+a+"_to");void 0===r&&(r=parseInt(e.data("min"))),void 0===i&&(i=parseInt(e.data("max")));var m=[r,i];e.slider({range:!0,min:parseInt(e.data("min")),max:parseInt(e.data("max")),values:m,create:function(e,r){},step:1,slide:function(e,r){um_set_range_label(jQuery(this),r)},stop:function(e,r){um_is_directory_busy(t)||(um_members_show_preloader(t),um_set_url_from_data(t,"filter_"+a+"_from",r.values[0]),um_set_url_from_data(t,"filter_"+a+"_to",r.values[1]),t.data("page",1),um_set_url_from_data(t,"page",""),um_ajax_get_members(t),um_change_tag(t),t.data("searched",1),t.find(".um-member-directory-sorting-options").prop("disabled",!1),t.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),um_set_range_label(e)}),e.find(".um-datepicker-filter").each(function(){var s=jQuery(this),u=new Date(1e3*s.data("date_min")),_=new Date(1e3*s.data("date_max")),e=s.pickadate({selectYears:!0,min:u,max:_,formatSubmit:"yyyy/mm/dd",hiddenName:!0,onOpen:function(){s.blur()},onClose:function(){s.blur()},onSet:function(e){if(e.select){var r=s.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=s.data("filter_name"),a=s.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");void 0===i&&(i=u/1e3),void 0===m&&(m=_/1e3);var d=e.select/1e3;s.val();"from"===a?i=d:"to"===a&&(m=d),um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}}).pickadate("picker"),r=s.data("filter_name"),t=s.data("range"),a=um_get_data_for_directory(s.parents(".um-directory"),"filter_"+r+"_"+t);void 0!==a&&e.set("select",1e3*a)}),e.find(".um-timepicker-filter").each(function(){var u=jQuery(this),_=u.attr("id"),o=u.data("filter_name"),n=u.attr("data-min"),l=u.attr("data-max"),e=n.split(":"),r=l.split(":"),t=u.pickatime({format:u.data("format"),interval:parseInt(u.data("intervals")),min:[e[0],e[1]],max:[r[0],r[1]],formatSubmit:"HH:i",hiddenName:!0,onOpen:function(){u.blur()},onClose:function(){u.blur()},onSet:function(e){if(e.select){var r=u.parents(".um-directory");if(!um_is_directory_busy(r)){um_members_show_preloader(r);var t=u.data("filter_name"),a=u.data("range"),i=um_get_data_for_directory(r,"filter_"+t+"_from"),m=um_get_data_for_directory(r,"filter_"+t+"_to");if(void 0===i&&(i=n),void 0===m&&(m=l),void 0!==e.select){var d=um_time_convert(e.select,a);"from"===a?i=d:"to"===a&&(m=d)}else"from"===a?i=n:"to"===a&&(m=l);var s=jQuery("#"+_).val();"from"===u.data("range")?jQuery("#"+o+"_to").pickatime("picker").set("min",s):jQuery("#"+o+"_from").pickatime("picker").set("max",s),um_set_url_from_data(r,"filter_"+t+"_from",i),um_set_url_from_data(r,"filter_"+t+"_to",m),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}}}).pickatime("picker"),a=u.data("filter_name"),i=u.data("range"),m=um_get_data_for_directory(u.parents(".um-directory"),"filter_"+a+"_"+i);if(void 0!==m){var d=m.split(":");t.set("select",60*d[0]+1*d[1])}}),wp.hooks.doAction("um_member_directory_on_init",e,r);var t=!1;if(!(t=wp.hooks.applyFilters("um_member_directory_ignore_after_search",t,e))&&1===e.data("must-search")){var a=um_get_search(e);if(!um_get_filters_data(e).length&&!a)return}wp.hooks.applyFilters("um_member_directory_prevent_default_first_loading",!1,e,r)||(um_members_show_preloader(e),um_ajax_get_members(e,{first_load:!0}),um_change_tag(e))}),window.addEventListener("popstate",function(e){jQuery(".um-directory").each(function(){var d=jQuery(this),e=um_members_get_hash(d);(um_member_directories.push(e),um_members_show_preloader(d),d.find(".um-members-grid, .um-members-list, .um-members-intro").remove(),d.find(".um-member-directory-search-line").length)&&(void 0===(s=um_get_data_for_directory(d,"search"))&&(s=""),d.data("general_search",s),d.find(".um-search-line").val(s));var r=um_get_data_for_directory(d,"page");if(void 0===r?r=1:r>d.data("total_pages")&&(r=d.data("total_pages")),d.data("page",r).attr("data-page",r),d.find(".um-member-directory-sorting").length){var t=um_get_data_for_directory(d,"sort");void 0===t&&(t=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]').find('a[data-default="1"]').data("value")),d.data("sorting",t);var a=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]');a.find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),a.find('a[data-value="'+t+'"]').data("selected",1).prop("data-selected",1).attr("data-selected",1),d.find(".um-member-directory-sorting-a").find("> a").html(a.find('a[data-value="'+t+'"]').html())}if(d.find(".um-member-directory-view-type").length){var i=um_get_data_for_directory(d,"view_type");void 0===i&&(i=d.find('.um-member-directory-view-type-a[data-default="1"]').data("type")),d.data("view_type",i),d.find(".um-member-directory-view-type .um-member-directory-view-type-a").hide(),d.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="'+i+'"]').show()}d.find(".um-datepicker-filter").each(function(){var e=jQuery(this),r=e.pickadate("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);void 0!==i?r.set("select",1e3*i):r.clear()}),d.find(".um-slider").each(function(){var e=jQuery(this),r=e.data("field_name"),t=um_get_data_for_directory(d,"filter_"+r+"_from"),a=um_get_data_for_directory(d,"filter_"+r+"_to");void 0===t&&(t=e.data("min")),t=parseInt(t),void 0===a&&(a=e.data("max")),a=parseInt(a),e.slider("values",[t,a]),um_set_range_label(e)}),d.find(".um-timepicker-filter").each(function(){var e=jQuery(this),r=e.pickatime("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);if(void 0!==i){var m=i.split(":");r.set("select",60*m[0])}else r.clear()});var m=!1;if(!(m=wp.hooks.applyFilters("um_member_directory_ignore_after_search",m,d))&&1===d.data("must-search")){var s=um_get_search(d);if(!um_get_filters_data(d).length&&!s)return d.data("searched",0),void um_members_hide_preloader(d);d.data("searched",1)}wp.hooks.applyFilters("um_member_directory_prevent_default_first_loading",!1,d,e)||(um_ajax_get_members(d),um_change_tag(d))})})});
|
includes/admin/core/class-admin-builder.php
CHANGED
@@ -1066,6 +1066,14 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
|
|
1066 |
|
1067 |
case 'um_admin_review_registration':
|
1068 |
//$user_id = $arg1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1069 |
um_fetch_user( $arg1 );
|
1070 |
|
1071 |
UM()->user()->preview = true;
|
1066 |
|
1067 |
case 'um_admin_review_registration':
|
1068 |
//$user_id = $arg1;
|
1069 |
+
|
1070 |
+
if ( ! current_user_can( 'administrator' ) ) {
|
1071 |
+
if ( ! um_can_view_profile( $arg1 ) ) {
|
1072 |
+
$output = '';
|
1073 |
+
break;
|
1074 |
+
}
|
1075 |
+
}
|
1076 |
+
|
1077 |
um_fetch_user( $arg1 );
|
1078 |
|
1079 |
UM()->user()->preview = true;
|
includes/admin/core/class-admin-users.php
CHANGED
@@ -26,6 +26,10 @@ if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) {
|
|
26 |
|
27 |
add_filter( 'user_row_actions', array( &$this, 'user_row_actions' ), 10, 2 );
|
28 |
|
|
|
|
|
|
|
|
|
29 |
add_filter( 'pre_user_query', array( &$this, 'sort_by_newest' ) );
|
30 |
|
31 |
add_filter( 'pre_user_query', array( &$this, 'filter_users_by_status' ) );
|
@@ -38,6 +42,41 @@ if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) {
|
|
38 |
}
|
39 |
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
/**
|
42 |
* Does an action to user asap
|
43 |
*
|
@@ -200,13 +239,21 @@ if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) {
|
|
200 |
function user_row_actions( $actions, $user_object ) {
|
201 |
$user_id = $user_object->ID;
|
202 |
|
203 |
-
|
204 |
-
$actions['frontend_profile'] = "<a class='' href='" . um_user_profile_url( $user_id ) . "'>" . __( 'View profile', 'ultimate-member' ) . "</a>";
|
205 |
|
206 |
$submitted = get_user_meta( $user_id, 'submitted', true );
|
207 |
-
if ( ! empty( $submitted ) )
|
208 |
$actions['view_info'] = '<a href="javascript:void(0);" data-modal="UM_preview_registration" data-modal-size="smaller"
|
209 |
data-dynamic-content="um_admin_review_registration" data-arg1="' . esc_attr( $user_id ) . '" data-arg2="edit_registration">' . __( 'Info', 'ultimate-member' ) . '</a>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
|
211 |
/**
|
212 |
* UM hook
|
@@ -235,6 +282,24 @@ if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) {
|
|
235 |
}
|
236 |
|
237 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
/**
|
239 |
* Change default sorting at WP Users list table
|
240 |
*
|
@@ -363,6 +428,19 @@ if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) {
|
|
363 |
$views[ $key ] = $view;
|
364 |
}
|
365 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
return $views;
|
367 |
}
|
368 |
|
26 |
|
27 |
add_filter( 'user_row_actions', array( &$this, 'user_row_actions' ), 10, 2 );
|
28 |
|
29 |
+
add_filter( 'user_has_cap', array( &$this, 'map_caps_by_role' ), 10, 4 );
|
30 |
+
|
31 |
+
add_filter( 'users_list_table_query_args', array( &$this, 'hide_by_caps' ), 1, 1 );
|
32 |
+
|
33 |
add_filter( 'pre_user_query', array( &$this, 'sort_by_newest' ) );
|
34 |
|
35 |
add_filter( 'pre_user_query', array( &$this, 'filter_users_by_status' ) );
|
42 |
}
|
43 |
|
44 |
|
45 |
+
/**
|
46 |
+
* Restrict the edit/delete users via wp-admin screen by the UM role capabilities
|
47 |
+
*
|
48 |
+
* @param $allcaps
|
49 |
+
* @param $cap
|
50 |
+
* @param $args
|
51 |
+
* @param $user
|
52 |
+
*
|
53 |
+
* @return mixed
|
54 |
+
*/
|
55 |
+
function map_caps_by_role( $allcaps, $cap, $args, $user ) {
|
56 |
+
if ( isset( $cap[0] ) && $cap[0] == 'edit_users' ) {
|
57 |
+
if ( ! user_can( $args[1], 'administrator' ) && $args[0] == 'edit_user' ) {
|
58 |
+
if ( ! UM()->roles()->um_current_user_can( 'edit', $args[2] ) ) {
|
59 |
+
$allcaps[ $cap[0] ] = false;
|
60 |
+
}
|
61 |
+
}
|
62 |
+
} elseif ( isset( $cap[0] ) && $cap[0] == 'delete_users' ) {
|
63 |
+
if ( ! user_can( $args[1], 'administrator' ) && $args[0] == 'delete_user' ) {
|
64 |
+
if ( ! UM()->roles()->um_current_user_can( 'delete', $args[2] ) ) {
|
65 |
+
$allcaps[ $cap[0] ] = false;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
} elseif ( isset( $cap[0] ) && $cap[0] == 'list_users' ) {
|
69 |
+
if ( ! user_can( $args[1], 'administrator' ) && $args[0] == 'list_users' ) {
|
70 |
+
if ( ! um_user( 'can_view_all' ) ) {
|
71 |
+
$allcaps[ $cap[0] ] = false;
|
72 |
+
}
|
73 |
+
}
|
74 |
+
}
|
75 |
+
|
76 |
+
return $allcaps;
|
77 |
+
}
|
78 |
+
|
79 |
+
|
80 |
/**
|
81 |
* Does an action to user asap
|
82 |
*
|
239 |
function user_row_actions( $actions, $user_object ) {
|
240 |
$user_id = $user_object->ID;
|
241 |
|
242 |
+
$actions['frontend_profile'] = '<a href="' . um_user_profile_url( $user_id ) . '">' . __( 'View profile', 'ultimate-member' ) . '</a>';
|
|
|
243 |
|
244 |
$submitted = get_user_meta( $user_id, 'submitted', true );
|
245 |
+
if ( ! empty( $submitted ) ) {
|
246 |
$actions['view_info'] = '<a href="javascript:void(0);" data-modal="UM_preview_registration" data-modal-size="smaller"
|
247 |
data-dynamic-content="um_admin_review_registration" data-arg1="' . esc_attr( $user_id ) . '" data-arg2="edit_registration">' . __( 'Info', 'ultimate-member' ) . '</a>';
|
248 |
+
}
|
249 |
+
|
250 |
+
if ( ! current_user_can( 'administrator' ) ) {
|
251 |
+
if ( ! um_can_view_profile( $user_id ) ) {
|
252 |
+
unset( $actions['frontend_profile'] );
|
253 |
+
unset( $actions['view_info'] );
|
254 |
+
unset( $actions['view'] );
|
255 |
+
}
|
256 |
+
}
|
257 |
|
258 |
/**
|
259 |
* UM hook
|
282 |
}
|
283 |
|
284 |
|
285 |
+
/**
|
286 |
+
* Change default sorting at WP Users list table
|
287 |
+
*
|
288 |
+
* @param array $args
|
289 |
+
* @return array
|
290 |
+
*/
|
291 |
+
function hide_by_caps( $args ) {
|
292 |
+
if ( ! current_user_can( 'administrator' ) ) {
|
293 |
+
$can_view_roles = um_user( 'can_view_roles' );
|
294 |
+
if ( um_user( 'can_view_all' ) && ! empty( $can_view_roles ) ) {
|
295 |
+
$args['role__in'] = $can_view_roles;
|
296 |
+
}
|
297 |
+
}
|
298 |
+
|
299 |
+
return $args;
|
300 |
+
}
|
301 |
+
|
302 |
+
|
303 |
/**
|
304 |
* Change default sorting at WP Users list table
|
305 |
*
|
428 |
$views[ $key ] = $view;
|
429 |
}
|
430 |
|
431 |
+
// hide filters with not accessible roles
|
432 |
+
if ( ! current_user_can( 'administrator' ) ) {
|
433 |
+
$wp_roles = wp_roles();
|
434 |
+
$can_view_roles = um_user( 'can_view_roles' );
|
435 |
+
if ( ! empty( $can_view_roles ) ) {
|
436 |
+
foreach ( $wp_roles->get_names() as $this_role => $name ) {
|
437 |
+
if ( ! in_array( $this_role, $can_view_roles ) ) {
|
438 |
+
unset( $views[ $this_role ] );
|
439 |
+
}
|
440 |
+
}
|
441 |
+
}
|
442 |
+
}
|
443 |
+
|
444 |
return $views;
|
445 |
}
|
446 |
|
includes/admin/core/list-tables/roles-list-table.php
CHANGED
@@ -350,7 +350,7 @@ class UM_Roles_List_Table extends WP_List_Table {
|
|
350 |
|
351 |
|
352 |
|
353 |
-
return sprintf('%1$s %2$s', '<strong><a class="row-title" href="admin.php?page=um_roles&tab=edit&id=' . $item['key'] . '">' . $item['name'] . '</a></strong>', $this->row_actions( $actions ) );
|
354 |
}
|
355 |
|
356 |
|
350 |
|
351 |
|
352 |
|
353 |
+
return sprintf('%1$s %2$s', '<strong><a class="row-title" href="admin.php?page=um_roles&tab=edit&id=' . $item['key'] . '">' . stripslashes( $item['name'] ) . '</a></strong>', $this->row_actions( $actions ) );
|
354 |
}
|
355 |
|
356 |
|
includes/admin/templates/extensions.php
CHANGED
@@ -134,6 +134,18 @@ $premium['user-locations'] = array(
|
|
134 |
'desc' => 'Using the Google Maps API, display users on a map on the member directory page and allow users to add their location via their profile',
|
135 |
);
|
136 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
$free['jobboardwp'] = array(
|
138 |
'url' => 'https://wordpress.org/plugins/um-jobboardwp',
|
139 |
'name' => 'JobBoardWP',
|
134 |
'desc' => 'Using the Google Maps API, display users on a map on the member directory page and allow users to add their location via their profile',
|
135 |
);
|
136 |
|
137 |
+
$premium['user-notes'] = array(
|
138 |
+
'url' => 'https://ultimatemember.com/extensions/user-notes/',
|
139 |
+
'name' => 'User Notes',
|
140 |
+
'desc' => 'Allow users to create public and private notes from their profile',
|
141 |
+
);
|
142 |
+
|
143 |
+
$premium['profile-tabs'] = array(
|
144 |
+
'url' => 'https://ultimatemember.com/extensions/profile-tabs/',
|
145 |
+
'name' => 'Profile Tabs',
|
146 |
+
'desc' => 'Add custom tabs to profiles',
|
147 |
+
);
|
148 |
+
|
149 |
$free['jobboardwp'] = array(
|
150 |
'url' => 'https://wordpress.org/plugins/um-jobboardwp',
|
151 |
'name' => 'JobBoardWP',
|
includes/admin/templates/role/general.php
CHANGED
@@ -5,22 +5,22 @@
|
|
5 |
<?php $role = $object['data'];
|
6 |
|
7 |
UM()->admin_forms( array(
|
8 |
-
'class'
|
9 |
-
'prefix_id'
|
10 |
-
'fields'
|
11 |
array(
|
12 |
-
'id'
|
13 |
-
'type'
|
14 |
-
'label'
|
15 |
-
'tooltip'
|
16 |
-
'value'
|
17 |
),
|
18 |
array(
|
19 |
-
'id'
|
20 |
-
'type'
|
21 |
-
'label'
|
22 |
-
'tooltip'
|
23 |
-
'value'
|
24 |
)
|
25 |
)
|
26 |
) )->render_form(); ?>
|
5 |
<?php $role = $object['data'];
|
6 |
|
7 |
UM()->admin_forms( array(
|
8 |
+
'class' => 'um-role-general um-half-column',
|
9 |
+
'prefix_id' => 'role',
|
10 |
+
'fields' => array(
|
11 |
array(
|
12 |
+
'id' => '_um_can_edit_profile',
|
13 |
+
'type' => 'checkbox',
|
14 |
+
'label' => __( 'Can edit their profile?', 'ultimate-member' ),
|
15 |
+
'tooltip' => __( 'Can this role edit his own profile?', 'ultimate-member' ),
|
16 |
+
'value' => ! empty( $role['_um_can_edit_profile'] ) ? $role['_um_can_edit_profile'] : 0,
|
17 |
),
|
18 |
array(
|
19 |
+
'id' => '_um_can_delete_profile',
|
20 |
+
'type' => 'checkbox',
|
21 |
+
'label' => __( 'Can delete their account?', 'ultimate-member' ),
|
22 |
+
'tooltip' => __( 'Allow this role to delete their account and end their membership on your site', 'ultimate-member' ),
|
23 |
+
'value' => ! empty( $role['_um_can_delete_profile'] ) ? $role['_um_can_delete_profile'] : 0,
|
24 |
)
|
25 |
)
|
26 |
) )->render_form(); ?>
|
includes/admin/templates/role/profile.php
CHANGED
@@ -5,41 +5,41 @@
|
|
5 |
<?php $role = $object['data'];
|
6 |
|
7 |
UM()->admin_forms( array(
|
8 |
-
'class'
|
9 |
-
'prefix_id'
|
10 |
-
'fields'
|
11 |
array(
|
12 |
-
'id'
|
13 |
-
'type'
|
14 |
-
'label'
|
15 |
-
'tooltip'
|
16 |
-
'value'
|
17 |
),
|
18 |
array(
|
19 |
-
'id'
|
20 |
-
'type'
|
21 |
-
'label'
|
22 |
-
'tooltip'
|
23 |
-
'options'
|
24 |
-
'multi'
|
25 |
-
'value'
|
26 |
-
'conditional'
|
27 |
),
|
28 |
array(
|
29 |
-
'id'
|
30 |
-
'type'
|
31 |
-
'name'
|
32 |
-
'label'
|
33 |
-
'tooltip'
|
34 |
-
'value'
|
35 |
),
|
36 |
array(
|
37 |
-
'id'
|
38 |
-
'type'
|
39 |
-
'name'
|
40 |
-
'label'
|
41 |
-
'tooltip'
|
42 |
-
'value'
|
43 |
)
|
44 |
)
|
45 |
) )->render_form(); ?>
|
5 |
<?php $role = $object['data'];
|
6 |
|
7 |
UM()->admin_forms( array(
|
8 |
+
'class' => 'um-role-profile um-half-column',
|
9 |
+
'prefix_id' => 'role',
|
10 |
+
'fields' => array(
|
11 |
array(
|
12 |
+
'id' => '_um_can_view_all',
|
13 |
+
'type' => 'checkbox',
|
14 |
+
'label' => __( 'Can view other member profiles?', 'ultimate-member' ),
|
15 |
+
'tooltip' => __( 'Can this role view all member profiles?', 'ultimate-member' ),
|
16 |
+
'value' => ! empty( $role['_um_can_view_all'] ) ? $role['_um_can_view_all'] : 0,
|
17 |
),
|
18 |
array(
|
19 |
+
'id' => '_um_can_view_roles',
|
20 |
+
'type' => 'select',
|
21 |
+
'label' => __( 'Can view these user roles only', 'ultimate-member' ),
|
22 |
+
'tooltip' => __( 'Which roles that role can view, choose none to allow role to view all member roles', 'ultimate-member' ),
|
23 |
+
'options' => UM()->roles()->get_roles(),
|
24 |
+
'multi' => true,
|
25 |
+
'value' => ! empty( $role['_um_can_view_roles'] ) ? $role['_um_can_view_roles'] : array(),
|
26 |
+
'conditional' => array( '_um_can_view_all', '=', '1' )
|
27 |
),
|
28 |
array(
|
29 |
+
'id' => '_um_can_make_private_profile',
|
30 |
+
'type' => 'checkbox',
|
31 |
+
'name' => '_um_can_make_private_profile',
|
32 |
+
'label' => __( 'Can make their profile private?', 'ultimate-member' ),
|
33 |
+
'tooltip' => __( 'Can this role make their profile private?', 'ultimate-member' ),
|
34 |
+
'value' => ! empty( $role['_um_can_make_private_profile'] ) ? $role['_um_can_make_private_profile'] : 0,
|
35 |
),
|
36 |
array(
|
37 |
+
'id' => '_um_can_access_private_profile',
|
38 |
+
'type' => 'checkbox',
|
39 |
+
'name' => '_um_can_access_private_profile',
|
40 |
+
'label' => __( 'Can view/access private profiles?', 'ultimate-member' ),
|
41 |
+
'tooltip' => __( 'Can this role view private profiles?', 'ultimate-member' ),
|
42 |
+
'value' => ! empty( $role['_um_can_access_private_profile'] ) ? $role['_um_can_access_private_profile'] : 0,
|
43 |
)
|
44 |
)
|
45 |
) )->render_form(); ?>
|
includes/admin/templates/role/role-edit.php
CHANGED
@@ -193,7 +193,7 @@ $screen_id = $current_screen->id; ?>
|
|
193 |
<label for="title" class="screen-reader-text"><?php _e( 'Title', 'ultimate-member' ) ?></label>
|
194 |
<input type="text" name="role[name]" placeholder="<?php esc_attr_e( 'Enter Title Here', 'ultimate-member' ) ?>" id="title" value="<?php echo isset( $data['name'] ) ? $data['name'] : '' ?>" />
|
195 |
<?php } else { ?>
|
196 |
-
<span style="float: left;width:100%;"><?php echo isset( $data['name'] ) ? $data['name'] : '' ?></span>
|
197 |
<?php } ?>
|
198 |
</div>
|
199 |
</div>
|
193 |
<label for="title" class="screen-reader-text"><?php _e( 'Title', 'ultimate-member' ) ?></label>
|
194 |
<input type="text" name="role[name]" placeholder="<?php esc_attr_e( 'Enter Title Here', 'ultimate-member' ) ?>" id="title" value="<?php echo isset( $data['name'] ) ? $data['name'] : '' ?>" />
|
195 |
<?php } else { ?>
|
196 |
+
<span style="float: left;width:100%;"><?php echo isset( $data['name'] ) ? stripslashes( $data['name'] ) : '' ?></span>
|
197 |
<?php } ?>
|
198 |
</div>
|
199 |
</div>
|
includes/class-dependencies.php
CHANGED
@@ -37,6 +37,8 @@ if ( ! class_exists( 'um\Dependencies' ) ) {
|
|
37 |
'followers' => '2.1.6',
|
38 |
'forumwp' => '2.0.4',
|
39 |
'friends' => '2.1.4',
|
|
|
|
|
40 |
'groups' => '2.1.7',
|
41 |
'instagram' => '2.0.5',
|
42 |
'jobboardwp' => '1.0.0',
|
@@ -57,6 +59,7 @@ if ( ! class_exists( 'um\Dependencies' ) ) {
|
|
57 |
'unsplash' => '2.0.2',
|
58 |
'user-bookmarks' => '2.0.2',
|
59 |
'user-locations' => '1.0.0',
|
|
|
60 |
'user-photos' => '2.0.4',
|
61 |
'user-tags' => '2.1.0',
|
62 |
'verified-users' => '2.0.5',
|
@@ -65,12 +68,6 @@ if ( ! class_exists( 'um\Dependencies' ) ) {
|
|
65 |
/*????*/
|
66 |
'restrict-content' => '2.0',
|
67 |
|
68 |
-
/*rc*/
|
69 |
-
'user-notes' => '2.0',
|
70 |
-
|
71 |
-
|
72 |
-
/*beta*/
|
73 |
-
'frontend-posting' => '1.0',
|
74 |
/*alpha*/
|
75 |
'user-exporter' => '1.0.0',
|
76 |
|
37 |
'followers' => '2.1.6',
|
38 |
'forumwp' => '2.0.4',
|
39 |
'friends' => '2.1.4',
|
40 |
+
'frontend-posting' => '1.0.0',
|
41 |
+
'google-authenticator' => '1.0.0',
|
42 |
'groups' => '2.1.7',
|
43 |
'instagram' => '2.0.5',
|
44 |
'jobboardwp' => '1.0.0',
|
59 |
'unsplash' => '2.0.2',
|
60 |
'user-bookmarks' => '2.0.2',
|
61 |
'user-locations' => '1.0.0',
|
62 |
+
'user-notes' => '1.0.0',
|
63 |
'user-photos' => '2.0.4',
|
64 |
'user-tags' => '2.1.0',
|
65 |
'verified-users' => '2.0.5',
|
68 |
/*????*/
|
69 |
'restrict-content' => '2.0',
|
70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
/*alpha*/
|
72 |
'user-exporter' => '1.0.0',
|
73 |
|
includes/class-init.php
CHANGED
@@ -39,6 +39,7 @@ if ( ! class_exists( 'UM' ) ) {
|
|
39 |
* @method UM_ForumWP ForumWP()
|
40 |
* @method UM_Profile_Tabs Profile_Tabs()
|
41 |
* @method UM_JobBoardWP JobBoardWP()
|
|
|
42 |
*/
|
43 |
final class UM extends UM_Functions {
|
44 |
|
39 |
* @method UM_ForumWP ForumWP()
|
40 |
* @method UM_Profile_Tabs Profile_Tabs()
|
41 |
* @method UM_JobBoardWP JobBoardWP()
|
42 |
+
* @method UM_Google_Authenticator Google_Authenticator()
|
43 |
*/
|
44 |
final class UM extends UM_Functions {
|
45 |
|
includes/core/class-fields.php
CHANGED
@@ -4111,7 +4111,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
|
4111 |
$res = apply_filters( "um_view_field_value_{$type}", $res, $data );
|
4112 |
|
4113 |
$output .= '<div class="um-field-area">';
|
4114 |
-
$output .= '<div class="um-field-value">' . $res . '</div>';
|
4115 |
$output .= '</div>';
|
4116 |
|
4117 |
$output .= '</div>';
|
4111 |
$res = apply_filters( "um_view_field_value_{$type}", $res, $data );
|
4112 |
|
4113 |
$output .= '<div class="um-field-area">';
|
4114 |
+
$output .= '<div class="um-field-value" id="' . esc_attr( $key . UM()->form()->form_suffix ) . '">' . $res . '</div>';
|
4115 |
$output .= '</div>';
|
4116 |
|
4117 |
$output .= '</div>';
|
includes/core/class-permalinks.php
CHANGED
@@ -182,20 +182,22 @@ if ( ! class_exists( 'um\core\Permalinks' ) ) {
|
|
182 |
$user_id = absint( $_REQUEST['user_id'] );
|
183 |
delete_option( "um_cache_userdata_{$user_id}" );
|
184 |
|
185 |
-
|
186 |
-
|
187 |
-
if ( strtolower( $_REQUEST['hash'] ) !== strtolower( um_user( 'account_secret_hash' ) ) ) {
|
188 |
wp_die( __( 'This activation link is expired or have already been used.', 'ultimate-member' ) );
|
189 |
}
|
190 |
|
|
|
191 |
UM()->user()->approve();
|
192 |
-
|
193 |
-
|
|
|
|
|
194 |
|
195 |
// log in automatically
|
|
|
196 |
if ( ! is_user_logged_in() && $login ) {
|
197 |
$user = get_userdata( $user_id );
|
198 |
-
$user_id = $user->ID;
|
199 |
|
200 |
// update wp user
|
201 |
wp_set_current_user( $user_id, $user->user_login );
|
@@ -206,7 +208,6 @@ if ( ! class_exists( 'um\core\Permalinks' ) ) {
|
|
206 |
ob_end_clean();
|
207 |
}
|
208 |
|
209 |
-
um_reset_user();
|
210 |
/**
|
211 |
* UM hook
|
212 |
*
|
@@ -228,6 +229,9 @@ if ( ! class_exists( 'um\core\Permalinks' ) ) {
|
|
228 |
*/
|
229 |
do_action( 'um_after_email_confirmation', $user_id );
|
230 |
|
|
|
|
|
|
|
231 |
exit( wp_redirect( $redirect ) );
|
232 |
|
233 |
}
|
@@ -238,10 +242,10 @@ if ( ! class_exists( 'um\core\Permalinks' ) ) {
|
|
238 |
/**
|
239 |
* Makes an activate link for any user
|
240 |
*
|
241 |
-
* @return bool|
|
242 |
*/
|
243 |
function activate_url() {
|
244 |
-
if ( !um_user('account_secret_hash') ) {
|
245 |
return false;
|
246 |
}
|
247 |
|
@@ -268,8 +272,8 @@ if ( ! class_exists( 'um\core\Permalinks' ) ) {
|
|
268 |
*/
|
269 |
$url = apply_filters( 'um_activate_url', home_url() );
|
270 |
$url = add_query_arg( 'act', 'activate_via_email', $url );
|
271 |
-
$url = add_query_arg( 'hash', um_user('account_secret_hash'), $url );
|
272 |
-
$url = add_query_arg( 'user_id', um_user('ID'), $url );
|
273 |
|
274 |
return $url;
|
275 |
}
|
@@ -375,7 +379,7 @@ if ( ! class_exists( 'um\core\Permalinks' ) ) {
|
|
375 |
*/
|
376 |
$profile_url = apply_filters( 'um_localize_permalink_filter', $profile_url, $page_id );
|
377 |
|
378 |
-
if ( get_option('permalink_structure') ) {
|
379 |
|
380 |
$profile_url = trailingslashit( untrailingslashit( $profile_url ) );
|
381 |
$profile_url = $profile_url . strtolower( $slug ). '/';
|
182 |
$user_id = absint( $_REQUEST['user_id'] );
|
183 |
delete_option( "um_cache_userdata_{$user_id}" );
|
184 |
|
185 |
+
$account_secret_hash = get_user_meta( $user_id, 'account_secret_hash', true );
|
186 |
+
if ( empty( $account_secret_hash ) || strtolower( $_REQUEST['hash'] ) !== strtolower( $account_secret_hash ) ) {
|
|
|
187 |
wp_die( __( 'This activation link is expired or have already been used.', 'ultimate-member' ) );
|
188 |
}
|
189 |
|
190 |
+
um_fetch_user( $user_id );
|
191 |
UM()->user()->approve();
|
192 |
+
um_reset_user();
|
193 |
+
|
194 |
+
$user_role = UM()->roles()->get_priority_user_role( $user_id );
|
195 |
+
$user_role_data = UM()->roles()->role_data( $user_role );
|
196 |
|
197 |
// log in automatically
|
198 |
+
$login = ! empty( $user_role_data['login_email_activate'] ); // Role setting "Login user after validating the activation link?"
|
199 |
if ( ! is_user_logged_in() && $login ) {
|
200 |
$user = get_userdata( $user_id );
|
|
|
201 |
|
202 |
// update wp user
|
203 |
wp_set_current_user( $user_id, $user->user_login );
|
208 |
ob_end_clean();
|
209 |
}
|
210 |
|
|
|
211 |
/**
|
212 |
* UM hook
|
213 |
*
|
229 |
*/
|
230 |
do_action( 'um_after_email_confirmation', $user_id );
|
231 |
|
232 |
+
$redirect = empty( $user_role_data['url_email_activate'] ) ? um_get_core_page( 'login', 'account_active' ) : trim( $user_role_data['url_email_activate'] ); // Role setting "URL redirect after e-mail activation"
|
233 |
+
$redirect = apply_filters( 'um_after_email_confirmation_redirect', $redirect, $user_id, $login );
|
234 |
+
|
235 |
exit( wp_redirect( $redirect ) );
|
236 |
|
237 |
}
|
242 |
/**
|
243 |
* Makes an activate link for any user
|
244 |
*
|
245 |
+
* @return bool|string
|
246 |
*/
|
247 |
function activate_url() {
|
248 |
+
if ( ! um_user( 'account_secret_hash' ) ) {
|
249 |
return false;
|
250 |
}
|
251 |
|
272 |
*/
|
273 |
$url = apply_filters( 'um_activate_url', home_url() );
|
274 |
$url = add_query_arg( 'act', 'activate_via_email', $url );
|
275 |
+
$url = add_query_arg( 'hash', um_user( 'account_secret_hash' ), $url );
|
276 |
+
$url = add_query_arg( 'user_id', um_user( 'ID' ), $url );
|
277 |
|
278 |
return $url;
|
279 |
}
|
379 |
*/
|
380 |
$profile_url = apply_filters( 'um_localize_permalink_filter', $profile_url, $page_id );
|
381 |
|
382 |
+
if ( get_option( 'permalink_structure' ) ) {
|
383 |
|
384 |
$profile_url = trailingslashit( untrailingslashit( $profile_url ) );
|
385 |
$profile_url = $profile_url . strtolower( $slug ). '/';
|
includes/core/class-plugin-updater.php
CHANGED
@@ -147,6 +147,14 @@ if ( ! class_exists( 'um\core\Plugin_Updater' ) ) {
|
|
147 |
'key' => 'unsplash',
|
148 |
'title' => 'Unsplash',
|
149 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
'um-user-notes/um-user-notes.php' => array(
|
151 |
'key' => 'user_notes',
|
152 |
'title' => 'User Notes',
|
@@ -155,17 +163,9 @@ if ( ! class_exists( 'um\core\Plugin_Updater' ) ) {
|
|
155 |
'key' => 'frontend_posting',
|
156 |
'title' => 'Frontend Posting',
|
157 |
),
|
158 |
-
'um-
|
159 |
-
'key' => '
|
160 |
-
'title' => '
|
161 |
-
),
|
162 |
-
'um-user-locations/um-user-locations.php' => array(
|
163 |
-
'key' => 'user-locations',
|
164 |
-
'title' => 'User Locations',
|
165 |
-
),
|
166 |
-
'um-profile-tabs/um-profile-tabs.php' => array(
|
167 |
-
'key' => 'profile_tabs',
|
168 |
-
'title' => 'Profile tabs',
|
169 |
),
|
170 |
);
|
171 |
|
147 |
'key' => 'unsplash',
|
148 |
'title' => 'Unsplash',
|
149 |
),
|
150 |
+
'um-user-locations/um-user-locations.php' => array(
|
151 |
+
'key' => 'user-locations',
|
152 |
+
'title' => 'User Locations',
|
153 |
+
),
|
154 |
+
'um-profile-tabs/um-profile-tabs.php' => array(
|
155 |
+
'key' => 'profile_tabs',
|
156 |
+
'title' => 'Profile tabs',
|
157 |
+
),
|
158 |
'um-user-notes/um-user-notes.php' => array(
|
159 |
'key' => 'user_notes',
|
160 |
'title' => 'User Notes',
|
163 |
'key' => 'frontend_posting',
|
164 |
'title' => 'Frontend Posting',
|
165 |
),
|
166 |
+
'um-google-authenticator/um-google-authenticator.php' => array(
|
167 |
+
'key' => 'google_authenticator',
|
168 |
+
'title' => 'Google Authenticator',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
),
|
170 |
);
|
171 |
|
includes/core/class-roles-capabilities.php
CHANGED
@@ -597,7 +597,7 @@ if ( ! class_exists( 'um\core\Roles_Capabilities' ) ) {
|
|
597 |
*
|
598 |
* @return array
|
599 |
*/
|
600 |
-
function get_roles( $add_default = false, $exclude = null ){
|
601 |
global $wp_roles;
|
602 |
|
603 |
if ( empty( $wp_roles ) ) {
|
@@ -616,6 +616,8 @@ if ( ! class_exists( 'um\core\Roles_Capabilities' ) ) {
|
|
616 |
}
|
617 |
}
|
618 |
|
|
|
|
|
619 |
return $roles;
|
620 |
}
|
621 |
|
597 |
*
|
598 |
* @return array
|
599 |
*/
|
600 |
+
function get_roles( $add_default = false, $exclude = null ) {
|
601 |
global $wp_roles;
|
602 |
|
603 |
if ( empty( $wp_roles ) ) {
|
616 |
}
|
617 |
}
|
618 |
|
619 |
+
$roles = array_map( 'stripslashes', $roles );
|
620 |
+
|
621 |
return $roles;
|
622 |
}
|
623 |
|
includes/core/class-uploader.php
CHANGED
@@ -1350,7 +1350,21 @@ if ( ! class_exists( 'um\core\Uploader' ) ) {
|
|
1350 |
continue;
|
1351 |
}
|
1352 |
|
1353 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1354 |
}
|
1355 |
}
|
1356 |
}
|
1350 |
continue;
|
1351 |
}
|
1352 |
|
1353 |
+
// Don't delete photo that belongs to the Social Activity post or Groups post
|
1354 |
+
if ( strstr( $str, 'stream_photo' ) ) {
|
1355 |
+
global $wpdb;
|
1356 |
+
$is_post_image = $wpdb->get_var( "
|
1357 |
+
SELECT COUNT(*) FROM {$wpdb->postmeta}
|
1358 |
+
WHERE `meta_key`='_photo' AND `meta_value`='{$str}';" );
|
1359 |
+
if ( $is_post_image ) {
|
1360 |
+
continue;
|
1361 |
+
}
|
1362 |
+
}
|
1363 |
+
|
1364 |
+
$can_unlink = apply_filters( 'um_can_remove_uploaded_file', true, $user_id, $str );
|
1365 |
+
if ( $can_unlink ) {
|
1366 |
+
unlink( $file );
|
1367 |
+
}
|
1368 |
}
|
1369 |
}
|
1370 |
}
|
includes/core/um-actions-profile.php
CHANGED
@@ -668,7 +668,7 @@ function um_profile_dynamic_meta_desc() {
|
|
668 |
"@context" => "http://schema.org",
|
669 |
"@type" => "Person",
|
670 |
"name" => esc_attr( $title ),
|
671 |
-
"description" => esc_attr( $description ),
|
672 |
"image" => esc_url( $image ),
|
673 |
"url" => esc_url( $url ),
|
674 |
);
|
668 |
"@context" => "http://schema.org",
|
669 |
"@type" => "Person",
|
670 |
"name" => esc_attr( $title ),
|
671 |
+
"description" => esc_attr( stripslashes( $description ) ),
|
672 |
"image" => esc_url( $image ),
|
673 |
"url" => esc_url( $url ),
|
674 |
);
|
includes/core/um-actions-register.php
CHANGED
@@ -175,11 +175,6 @@ function um_check_user_status( $user_id, $args ) {
|
|
175 |
|
176 |
do_action( "track_{$status}_user_registration" );
|
177 |
|
178 |
-
// Priority redirect
|
179 |
-
if ( isset( $args['redirect_to'] ) ) {
|
180 |
-
exit( wp_safe_redirect( urldecode( $args['redirect_to'] ) ) );
|
181 |
-
}
|
182 |
-
|
183 |
if ( $status == 'approved' ) {
|
184 |
|
185 |
UM()->user()->auto_login( $user_id );
|
@@ -206,6 +201,11 @@ function um_check_user_status( $user_id, $args ) {
|
|
206 |
*/
|
207 |
do_action( 'um_registration_after_auto_login', $user_id );
|
208 |
|
|
|
|
|
|
|
|
|
|
|
209 |
if ( um_user( 'auto_approve_act' ) == 'redirect_url' && um_user( 'auto_approve_url' ) !== '' ) {
|
210 |
exit( wp_redirect( um_user( 'auto_approve_url' ) ) );
|
211 |
}
|
@@ -214,9 +214,7 @@ function um_check_user_status( $user_id, $args ) {
|
|
214 |
exit( wp_redirect( um_user_profile_url() ) );
|
215 |
}
|
216 |
|
217 |
-
}
|
218 |
-
|
219 |
-
if ( $status != 'approved' ) {
|
220 |
|
221 |
if ( um_user( $status . '_action' ) == 'redirect_url' && um_user( $status . '_url' ) != '' ) {
|
222 |
/**
|
175 |
|
176 |
do_action( "track_{$status}_user_registration" );
|
177 |
|
|
|
|
|
|
|
|
|
|
|
178 |
if ( $status == 'approved' ) {
|
179 |
|
180 |
UM()->user()->auto_login( $user_id );
|
201 |
*/
|
202 |
do_action( 'um_registration_after_auto_login', $user_id );
|
203 |
|
204 |
+
// Priority redirect
|
205 |
+
if ( isset( $args['redirect_to'] ) ) {
|
206 |
+
exit( wp_safe_redirect( urldecode( $args['redirect_to'] ) ) );
|
207 |
+
}
|
208 |
+
|
209 |
if ( um_user( 'auto_approve_act' ) == 'redirect_url' && um_user( 'auto_approve_url' ) !== '' ) {
|
210 |
exit( wp_redirect( um_user( 'auto_approve_url' ) ) );
|
211 |
}
|
214 |
exit( wp_redirect( um_user_profile_url() ) );
|
215 |
}
|
216 |
|
217 |
+
} else {
|
|
|
|
|
218 |
|
219 |
if ( um_user( $status . '_action' ) == 'redirect_url' && um_user( $status . '_url' ) != '' ) {
|
220 |
/**
|
includes/core/um-actions-save-profile.php
CHANGED
@@ -31,12 +31,12 @@ function um_update_profile_full_name( $user_id, $changes ) {
|
|
31 |
case 'initial_name':
|
32 |
$fname = get_user_meta( $user_id, 'first_name', true );
|
33 |
$lname = get_user_meta( $user_id, 'last_name', true );
|
34 |
-
$update_name = $fname . ' ' . ( !empty( $lname ) ? $lname[0] : '' );
|
35 |
break;
|
36 |
case 'initial_name_f':
|
37 |
$fname = get_user_meta( $user_id, 'first_name', true );
|
38 |
$lname = get_user_meta( $user_id, 'last_name', true );
|
39 |
-
$update_name = ( !empty($fname) ? $fname[0] : '' ) . ' ' . $lname;
|
40 |
break;
|
41 |
case 'nickname':
|
42 |
$update_name = get_user_meta( $user_id, 'nickname', true );
|
@@ -48,19 +48,20 @@ function um_update_profile_full_name( $user_id, $changes ) {
|
|
48 |
$arr_user = array( 'ID' => $user_id, 'display_name' => $update_name );
|
49 |
$return = wp_update_user( $arr_user );
|
50 |
|
51 |
-
if( is_wp_error( $return ) ) {
|
52 |
wp_die( '<pre>' . var_export( array( 'message' => $return->get_error_message(), 'dump' => $arr_user, 'changes' => $changes ), true ) . '</pre>' );
|
53 |
}
|
54 |
|
55 |
}
|
56 |
|
57 |
if ( isset( $changes['first_name'] ) && isset( $changes['last_name'] ) ) {
|
|
|
|
|
|
|
|
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
update_user_meta( UM()->user()->id, 'full_name', $full_name );
|
63 |
-
|
64 |
}
|
65 |
|
66 |
// regenerate slug
|
31 |
case 'initial_name':
|
32 |
$fname = get_user_meta( $user_id, 'first_name', true );
|
33 |
$lname = get_user_meta( $user_id, 'last_name', true );
|
34 |
+
$update_name = $fname . ' ' . ( ! empty( $lname ) ? $lname[0] : '' );
|
35 |
break;
|
36 |
case 'initial_name_f':
|
37 |
$fname = get_user_meta( $user_id, 'first_name', true );
|
38 |
$lname = get_user_meta( $user_id, 'last_name', true );
|
39 |
+
$update_name = ( ! empty( $fname ) ? $fname[0] : '' ) . ' ' . $lname;
|
40 |
break;
|
41 |
case 'nickname':
|
42 |
$update_name = get_user_meta( $user_id, 'nickname', true );
|
48 |
$arr_user = array( 'ID' => $user_id, 'display_name' => $update_name );
|
49 |
$return = wp_update_user( $arr_user );
|
50 |
|
51 |
+
if ( is_wp_error( $return ) ) {
|
52 |
wp_die( '<pre>' . var_export( array( 'message' => $return->get_error_message(), 'dump' => $arr_user, 'changes' => $changes ), true ) . '</pre>' );
|
53 |
}
|
54 |
|
55 |
}
|
56 |
|
57 |
if ( isset( $changes['first_name'] ) && isset( $changes['last_name'] ) ) {
|
58 |
+
$user = get_userdata( $user_id );
|
59 |
+
if ( ! empty( $user ) && ! is_wp_error( $user ) ) {
|
60 |
+
$full_name = $user->display_name;
|
61 |
+
$full_name = UM()->validation()->safe_name_in_url( $full_name );
|
62 |
|
63 |
+
update_user_meta( UM()->user()->id, 'full_name', $full_name );
|
64 |
+
}
|
|
|
|
|
|
|
65 |
}
|
66 |
|
67 |
// regenerate slug
|
includes/core/um-filters-profile.php
CHANGED
@@ -32,7 +32,7 @@ function um_dynamic_user_profile_pagetitle( $title, $sep = '' ) {
|
|
32 |
|
33 |
$profile_title = um_convert_tags( $profile_title );
|
34 |
|
35 |
-
$title = $profile_title;
|
36 |
|
37 |
um_reset_user();
|
38 |
|
32 |
|
33 |
$profile_title = um_convert_tags( $profile_title );
|
34 |
|
35 |
+
$title = stripslashes( $profile_title );
|
36 |
|
37 |
um_reset_user();
|
38 |
|
includes/um-deprecated-functions.php
CHANGED
@@ -576,4 +576,110 @@ function um_select_if_in_query_params( $filter, $val ) {
|
|
576 |
}
|
577 |
|
578 |
echo $selected ? 'selected="selected"' : '';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
579 |
}
|
576 |
}
|
577 |
|
578 |
echo $selected ? 'selected="selected"' : '';
|
579 |
+
}
|
580 |
+
|
581 |
+
|
582 |
+
/**
|
583 |
+
* Get submitted user information
|
584 |
+
*
|
585 |
+
* @param bool $style
|
586 |
+
*
|
587 |
+
* @return null|string
|
588 |
+
*
|
589 |
+
* @deprecated 2.1.3
|
590 |
+
*/
|
591 |
+
function um_user_submitted_registration( $style = false ) {
|
592 |
+
$output = null;
|
593 |
+
|
594 |
+
$data = um_user( 'submitted' );
|
595 |
+
|
596 |
+
if ( $style ) {
|
597 |
+
$output .= '<div class="um-admin-infobox">';
|
598 |
+
}
|
599 |
+
|
600 |
+
if ( isset( $data ) && is_array( $data ) ) {
|
601 |
+
|
602 |
+
/**
|
603 |
+
* UM hook
|
604 |
+
*
|
605 |
+
* @type filter
|
606 |
+
* @title um_email_registration_data
|
607 |
+
* @description Prepare Registration data to email
|
608 |
+
* @input_vars
|
609 |
+
* [{"var":"$data","type":"array","desc":"Registration Data"}]
|
610 |
+
* @change_log
|
611 |
+
* ["Since: 2.0"]
|
612 |
+
* @usage add_filter( 'um_email_registration_data', 'function_name', 10, 1 );
|
613 |
+
* @example
|
614 |
+
* <?php
|
615 |
+
* add_filter( 'um_email_registration_data', 'my_email_registration_data', 10, 1 );
|
616 |
+
* function my_email_registration_data( $data ) {
|
617 |
+
* // your code here
|
618 |
+
* return $data;
|
619 |
+
* }
|
620 |
+
* ?>
|
621 |
+
*/
|
622 |
+
$data = apply_filters( 'um_email_registration_data', $data );
|
623 |
+
|
624 |
+
$pw_fields = array();
|
625 |
+
foreach ( $data as $k => $v ) {
|
626 |
+
|
627 |
+
if ( strstr( $k, 'user_pass' ) || in_array( $k, array( 'g-recaptcha-response', 'request', '_wpnonce', '_wp_http_referer' ) ) ) {
|
628 |
+
continue;
|
629 |
+
}
|
630 |
+
|
631 |
+
if ( UM()->fields()->get_field_type( $k ) == 'password' ) {
|
632 |
+
$pw_fields[] = $k;
|
633 |
+
$pw_fields[] = 'confirm_' . $k;
|
634 |
+
continue;
|
635 |
+
}
|
636 |
+
|
637 |
+
if ( ! empty( $pw_fields ) && in_array( $k, $pw_fields ) ) {
|
638 |
+
continue;
|
639 |
+
}
|
640 |
+
|
641 |
+
if ( UM()->fields()->get_field_type( $k ) == 'image' || UM()->fields()->get_field_type( $k ) == 'file' ) {
|
642 |
+
$file = basename( $v );
|
643 |
+
$filedata = get_user_meta( um_user( 'ID' ), $k . "_metadata", true );
|
644 |
+
|
645 |
+
$baseurl = UM()->uploader()->get_upload_base_url();
|
646 |
+
if ( ! file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . $file ) ) {
|
647 |
+
if ( is_multisite() ) {
|
648 |
+
//multisite fix for old customers
|
649 |
+
$baseurl = str_replace( '/sites/' . get_current_blog_id() . '/', '/', $baseurl );
|
650 |
+
}
|
651 |
+
}
|
652 |
+
|
653 |
+
if ( ! empty( $filedata['original_name'] ) ) {
|
654 |
+
$v = '<a href="' . esc_attr( $baseurl . um_user( 'ID' ) . '/' . $file ) . '">' . esc_html( $filedata['original_name'] ) . '</a>';
|
655 |
+
} else {
|
656 |
+
$v = $baseurl . um_user( 'ID' ) . '/' . $file;
|
657 |
+
}
|
658 |
+
}
|
659 |
+
|
660 |
+
if ( is_array( $v ) ) {
|
661 |
+
$v = implode( ',', $v );
|
662 |
+
}
|
663 |
+
|
664 |
+
if ( $k == 'timestamp' ) {
|
665 |
+
$k = __( 'date submitted', 'ultimate-member' );
|
666 |
+
$v = date( "d M Y H:i", $v );
|
667 |
+
}
|
668 |
+
|
669 |
+
if ( $style ) {
|
670 |
+
if ( ! $v ) {
|
671 |
+
$v = __( '(empty)', 'ultimate-member' );
|
672 |
+
}
|
673 |
+
$output .= "<p><label>$k</label><span>$v</span></p>";
|
674 |
+
} else {
|
675 |
+
$output .= "$k: $v" . "<br />";
|
676 |
+
}
|
677 |
+
}
|
678 |
+
}
|
679 |
+
|
680 |
+
if ( $style ) {
|
681 |
+
$output .= '</div>';
|
682 |
+
}
|
683 |
+
|
684 |
+
return $output;
|
685 |
}
|
includes/um-short-functions.php
CHANGED
@@ -310,31 +310,31 @@ function um_user_ip() {
|
|
310 |
*/
|
311 |
function um_field_conditions_are_met( $data ) {
|
312 |
|
|
|
|
|
|
|
313 |
|
314 |
-
|
315 |
-
if (!isset( $data['conditions'] )) return true;
|
316 |
-
|
317 |
-
$state = ( $data['conditional_action'] == 'show' ) ? 1 : 0;
|
318 |
-
|
319 |
|
320 |
$first_group = 0;
|
321 |
$state_array = array();
|
322 |
-
$count = count($state_array);
|
323 |
-
foreach ($data['conditions'] as $k => $arr){
|
324 |
|
325 |
$val = $arr[3];
|
326 |
$op = $arr[2];
|
327 |
|
328 |
-
if (strstr($arr[1], 'role_'))
|
329 |
$arr[1] = 'role';
|
|
|
330 |
|
331 |
-
$field = um_profile($arr[1]);
|
332 |
|
333 |
|
334 |
-
if( ! isset( $arr[5] ) || $arr[5] != $first_group ){
|
335 |
|
336 |
|
337 |
-
if ($arr[0] == 'show') {
|
338 |
|
339 |
switch ($op) {
|
340 |
case 'equals to':
|
@@ -389,32 +389,34 @@ function um_field_conditions_are_met( $data ) {
|
|
389 |
}
|
390 |
break;
|
391 |
}
|
392 |
-
}
|
393 |
|
394 |
-
switch ($op) {
|
395 |
case 'equals to':
|
396 |
|
397 |
$field = maybe_unserialize( $field );
|
398 |
|
399 |
-
if (is_array( $field ))
|
400 |
$state = in_array( $val, $field ) ? 'hide' : 'show';
|
401 |
-
else
|
402 |
$state = ( $field == $val ) ? 'hide' : 'show';
|
|
|
403 |
|
404 |
break;
|
405 |
case 'not equals':
|
406 |
|
407 |
$field = maybe_unserialize( $field );
|
408 |
|
409 |
-
if (is_array( $field ))
|
410 |
-
$state = !in_array( $val, $field ) ? 'hide' : 'show';
|
411 |
-
else
|
412 |
$state = ( $field != $val ) ? 'hide' : 'show';
|
|
|
413 |
|
414 |
break;
|
415 |
case 'empty':
|
416 |
|
417 |
-
$state = (
|
418 |
|
419 |
break;
|
420 |
case 'not empty':
|
@@ -423,21 +425,21 @@ function um_field_conditions_are_met( $data ) {
|
|
423 |
|
424 |
break;
|
425 |
case 'greater than':
|
426 |
-
if ($field <= $val) {
|
427 |
$state = 'hide';
|
428 |
} else {
|
429 |
$state = 'show';
|
430 |
}
|
431 |
break;
|
432 |
case 'less than':
|
433 |
-
if ($field >= $val) {
|
434 |
$state = 'hide';
|
435 |
} else {
|
436 |
$state = 'show';
|
437 |
}
|
438 |
break;
|
439 |
case 'contains':
|
440 |
-
if (strstr( $field, $val )) {
|
441 |
$state = 'hide';
|
442 |
} else {
|
443 |
$state = 'show';
|
@@ -446,35 +448,35 @@ function um_field_conditions_are_met( $data ) {
|
|
446 |
}
|
447 |
}
|
448 |
$first_group++;
|
449 |
-
array_push($state_array, $state);
|
450 |
} else {
|
451 |
|
452 |
-
if ($arr[0] == 'show') {
|
453 |
|
454 |
-
switch ($op) {
|
455 |
case 'equals to':
|
456 |
-
|
457 |
$field = maybe_unserialize( $field );
|
458 |
|
459 |
-
if (is_array( $field ))
|
460 |
$state = in_array( $val, $field ) ? 'show' : 'not_show';
|
461 |
-
else
|
462 |
$state = ( $field == $val ) ? 'show' : 'not_show';
|
|
|
463 |
|
464 |
break;
|
465 |
case 'not equals':
|
466 |
-
|
467 |
$field = maybe_unserialize( $field );
|
468 |
|
469 |
-
if (is_array( $field ))
|
470 |
-
$state = !in_array( $val, $field ) ? 'show' : 'not_show';
|
471 |
-
else
|
472 |
$state = ( $field != $val ) ? 'show' : 'not_show';
|
|
|
473 |
|
474 |
break;
|
475 |
case 'empty':
|
476 |
|
477 |
-
$state = (
|
478 |
|
479 |
break;
|
480 |
case 'not empty':
|
@@ -483,53 +485,54 @@ function um_field_conditions_are_met( $data ) {
|
|
483 |
|
484 |
break;
|
485 |
case 'greater than':
|
486 |
-
if ($field > $val) {
|
487 |
$state = 'show';
|
488 |
} else {
|
489 |
$state = 'not_show';
|
490 |
}
|
491 |
break;
|
492 |
case 'less than':
|
493 |
-
if ($field < $val) {
|
494 |
$state = 'show';
|
495 |
} else {
|
496 |
$state = 'not_show';
|
497 |
}
|
498 |
break;
|
499 |
case 'contains':
|
500 |
-
if (strstr( $field, $val )) {
|
501 |
$state = 'show';
|
502 |
} else {
|
503 |
$state = 'not_show';
|
504 |
}
|
505 |
break;
|
506 |
}
|
507 |
-
}
|
508 |
|
509 |
-
switch ($op) {
|
510 |
case 'equals to':
|
511 |
-
|
512 |
$field = maybe_unserialize( $field );
|
513 |
|
514 |
-
if (is_array( $field ))
|
515 |
$state = in_array( $val, $field ) ? 'hide' : 'not_hide';
|
516 |
-
else
|
517 |
$state = ( $field == $val ) ? 'hide' : 'not_hide';
|
|
|
518 |
|
519 |
break;
|
520 |
case 'not equals':
|
521 |
|
522 |
$field = maybe_unserialize( $field );
|
523 |
|
524 |
-
if (is_array( $field ))
|
525 |
-
$state = !in_array( $val, $field ) ? 'hide' : 'not_hide';
|
526 |
-
else
|
527 |
$state = ( $field != $val ) ? 'hide' : 'not_hide';
|
|
|
528 |
|
529 |
break;
|
530 |
case 'empty':
|
531 |
|
532 |
-
$state = (
|
533 |
|
534 |
break;
|
535 |
case 'not empty':
|
@@ -538,21 +541,21 @@ function um_field_conditions_are_met( $data ) {
|
|
538 |
|
539 |
break;
|
540 |
case 'greater than':
|
541 |
-
if ($field <= $val) {
|
542 |
$state = 'hide';
|
543 |
} else {
|
544 |
$state = 'not_hide';
|
545 |
}
|
546 |
break;
|
547 |
case 'less than':
|
548 |
-
if ($field >= $val) {
|
549 |
$state = 'hide';
|
550 |
} else {
|
551 |
$state = 'not_hide';
|
552 |
}
|
553 |
break;
|
554 |
case 'contains':
|
555 |
-
if (strstr( $field, $val )) {
|
556 |
$state = 'hide';
|
557 |
} else {
|
558 |
$state = 'not_hide';
|
@@ -560,25 +563,25 @@ function um_field_conditions_are_met( $data ) {
|
|
560 |
break;
|
561 |
}
|
562 |
}
|
563 |
-
if( isset($state_array[$count]) ){
|
564 |
-
if( $state_array[$count] == 'show' || $state_array[$count] == 'not_hide' ){
|
565 |
-
if ( $state == 'show' || $state == 'not_hide' ){
|
566 |
-
$state_array[$count] = 'show';
|
567 |
} else {
|
568 |
-
$state_array[$count] = 'hide';
|
569 |
}
|
570 |
} else {
|
571 |
-
if ( $state == 'hide' || $state == 'not_show' ){
|
572 |
-
$state_array[$count] = 'hide';
|
573 |
} else {
|
574 |
-
$state_array[$count] = 'hide';
|
575 |
}
|
576 |
}
|
577 |
} else {
|
578 |
-
if ( $state == 'show' || $state == 'not_hide' ){
|
579 |
-
$state_array[$count] = 'show';
|
580 |
} else {
|
581 |
-
$state_array[$count] = 'hide';
|
582 |
}
|
583 |
}
|
584 |
}
|
@@ -666,111 +669,6 @@ function um_get_snippet( $str, $wordCount = 10 ) {
|
|
666 |
}
|
667 |
|
668 |
|
669 |
-
/**
|
670 |
-
* Get submitted user information
|
671 |
-
*
|
672 |
-
* @param bool $style
|
673 |
-
*
|
674 |
-
* @return null|string
|
675 |
-
*
|
676 |
-
* @deprecated 2.1.3
|
677 |
-
*/
|
678 |
-
function um_user_submitted_registration( $style = false ) {
|
679 |
-
$output = null;
|
680 |
-
|
681 |
-
$data = um_user( 'submitted' );
|
682 |
-
|
683 |
-
if ( $style ) {
|
684 |
-
$output .= '<div class="um-admin-infobox">';
|
685 |
-
}
|
686 |
-
|
687 |
-
if ( isset( $data ) && is_array( $data ) ) {
|
688 |
-
|
689 |
-
/**
|
690 |
-
* UM hook
|
691 |
-
*
|
692 |
-
* @type filter
|
693 |
-
* @title um_email_registration_data
|
694 |
-
* @description Prepare Registration data to email
|
695 |
-
* @input_vars
|
696 |
-
* [{"var":"$data","type":"array","desc":"Registration Data"}]
|
697 |
-
* @change_log
|
698 |
-
* ["Since: 2.0"]
|
699 |
-
* @usage add_filter( 'um_email_registration_data', 'function_name', 10, 1 );
|
700 |
-
* @example
|
701 |
-
* <?php
|
702 |
-
* add_filter( 'um_email_registration_data', 'my_email_registration_data', 10, 1 );
|
703 |
-
* function my_email_registration_data( $data ) {
|
704 |
-
* // your code here
|
705 |
-
* return $data;
|
706 |
-
* }
|
707 |
-
* ?>
|
708 |
-
*/
|
709 |
-
$data = apply_filters( 'um_email_registration_data', $data );
|
710 |
-
|
711 |
-
$pw_fields = array();
|
712 |
-
foreach ( $data as $k => $v ) {
|
713 |
-
|
714 |
-
if ( strstr( $k, 'user_pass' ) || in_array( $k, array( 'g-recaptcha-response', 'request', '_wpnonce', '_wp_http_referer' ) ) ) {
|
715 |
-
continue;
|
716 |
-
}
|
717 |
-
|
718 |
-
if ( UM()->fields()->get_field_type( $k ) == 'password' ) {
|
719 |
-
$pw_fields[] = $k;
|
720 |
-
$pw_fields[] = 'confirm_' . $k;
|
721 |
-
continue;
|
722 |
-
}
|
723 |
-
|
724 |
-
if ( ! empty( $pw_fields ) && in_array( $k, $pw_fields ) ) {
|
725 |
-
continue;
|
726 |
-
}
|
727 |
-
|
728 |
-
if ( UM()->fields()->get_field_type( $k ) == 'image' || UM()->fields()->get_field_type( $k ) == 'file' ) {
|
729 |
-
$file = basename( $v );
|
730 |
-
$filedata = get_user_meta( um_user( 'ID' ), $k . "_metadata", true );
|
731 |
-
|
732 |
-
$baseurl = UM()->uploader()->get_upload_base_url();
|
733 |
-
if ( ! file_exists( UM()->uploader()->get_upload_base_dir() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . $file ) ) {
|
734 |
-
if ( is_multisite() ) {
|
735 |
-
//multisite fix for old customers
|
736 |
-
$baseurl = str_replace( '/sites/' . get_current_blog_id() . '/', '/', $baseurl );
|
737 |
-
}
|
738 |
-
}
|
739 |
-
|
740 |
-
if ( ! empty( $filedata['original_name'] ) ) {
|
741 |
-
$v = '<a href="' . esc_attr( $baseurl . um_user( 'ID' ) . '/' . $file ) . '">' . esc_html( $filedata['original_name'] ) . '</a>';
|
742 |
-
} else {
|
743 |
-
$v = $baseurl . um_user( 'ID' ) . '/' . $file;
|
744 |
-
}
|
745 |
-
}
|
746 |
-
|
747 |
-
if ( is_array( $v ) ) {
|
748 |
-
$v = implode( ',', $v );
|
749 |
-
}
|
750 |
-
|
751 |
-
if ( $k == 'timestamp' ) {
|
752 |
-
$k = __( 'date submitted', 'ultimate-member' );
|
753 |
-
$v = date( "d M Y H:i", $v );
|
754 |
-
}
|
755 |
-
|
756 |
-
if ( $style ) {
|
757 |
-
if ( ! $v ) {
|
758 |
-
$v = __( '(empty)', 'ultimate-member' );
|
759 |
-
}
|
760 |
-
$output .= "<p><label>$k</label><span>$v</span></p>";
|
761 |
-
} else {
|
762 |
-
$output .= "$k: $v" . "<br />";
|
763 |
-
}
|
764 |
-
}
|
765 |
-
}
|
766 |
-
|
767 |
-
if ( $style ) {
|
768 |
-
$output .= '</div>';
|
769 |
-
}
|
770 |
-
|
771 |
-
return $output;
|
772 |
-
}
|
773 |
-
|
774 |
/**
|
775 |
* Format submitted data for Info preview & Email template
|
776 |
* @param boolean $style
|
@@ -941,7 +839,7 @@ function um_user_submitted_registration_formatted( $style = false ) {
|
|
941 |
function um_user_submited_display( $k, $title, $data = array(), $style = true ) {
|
942 |
$output = '';
|
943 |
|
944 |
-
if ( 'form_id' == $k && isset(
|
945 |
$v = sprintf( __( '%s - Form ID#: %s', 'ultimate-member' ), get_the_title( $data['form_id'] ), $data['form_id'] );
|
946 |
} else {
|
947 |
$v = um_user( $k );
|
@@ -951,6 +849,12 @@ function um_user_submited_display( $k, $title, $data = array(), $style = true )
|
|
951 |
return '';
|
952 |
}
|
953 |
|
|
|
|
|
|
|
|
|
|
|
|
|
954 |
if ( ! $v ) {
|
955 |
if ( $style ) {
|
956 |
return "<p><label>$title: </label><span>" . __( '(empty)', 'ultimate-member' ) ."</span></p>";
|
@@ -959,7 +863,7 @@ function um_user_submited_display( $k, $title, $data = array(), $style = true )
|
|
959 |
}
|
960 |
}
|
961 |
|
962 |
-
if (
|
963 |
$file = basename( $v );
|
964 |
|
965 |
$filedata = get_user_meta( um_user( 'ID' ), $k . "_metadata", true );
|
310 |
*/
|
311 |
function um_field_conditions_are_met( $data ) {
|
312 |
|
313 |
+
if ( ! isset( $data['conditions'] ) ) {
|
314 |
+
return true;
|
315 |
+
}
|
316 |
|
317 |
+
$state = ( isset( $data['conditional_action'] ) && $data['conditional_action'] == 'show' ) ? 1 : 0;
|
|
|
|
|
|
|
|
|
318 |
|
319 |
$first_group = 0;
|
320 |
$state_array = array();
|
321 |
+
$count = count( $state_array );
|
322 |
+
foreach ( $data['conditions'] as $k => $arr ) {
|
323 |
|
324 |
$val = $arr[3];
|
325 |
$op = $arr[2];
|
326 |
|
327 |
+
if ( strstr( $arr[1], 'role_' ) ) {
|
328 |
$arr[1] = 'role';
|
329 |
+
}
|
330 |
|
331 |
+
$field = um_profile( $arr[1] );
|
332 |
|
333 |
|
334 |
+
if ( ! isset( $arr[5] ) || $arr[5] != $first_group ) {
|
335 |
|
336 |
|
337 |
+
if ( $arr[0] == 'show' ) {
|
338 |
|
339 |
switch ($op) {
|
340 |
case 'equals to':
|
389 |
}
|
390 |
break;
|
391 |
}
|
392 |
+
} elseif ( $arr[0] == 'hide' ) {
|
393 |
|
394 |
+
switch ( $op ) {
|
395 |
case 'equals to':
|
396 |
|
397 |
$field = maybe_unserialize( $field );
|
398 |
|
399 |
+
if ( is_array( $field ) ) {
|
400 |
$state = in_array( $val, $field ) ? 'hide' : 'show';
|
401 |
+
} else {
|
402 |
$state = ( $field == $val ) ? 'hide' : 'show';
|
403 |
+
}
|
404 |
|
405 |
break;
|
406 |
case 'not equals':
|
407 |
|
408 |
$field = maybe_unserialize( $field );
|
409 |
|
410 |
+
if ( is_array( $field ) ) {
|
411 |
+
$state = ! in_array( $val, $field ) ? 'hide' : 'show';
|
412 |
+
} else {
|
413 |
$state = ( $field != $val ) ? 'hide' : 'show';
|
414 |
+
}
|
415 |
|
416 |
break;
|
417 |
case 'empty':
|
418 |
|
419 |
+
$state = ( ! $field ) ? 'hide' : 'show';
|
420 |
|
421 |
break;
|
422 |
case 'not empty':
|
425 |
|
426 |
break;
|
427 |
case 'greater than':
|
428 |
+
if ( $field <= $val ) {
|
429 |
$state = 'hide';
|
430 |
} else {
|
431 |
$state = 'show';
|
432 |
}
|
433 |
break;
|
434 |
case 'less than':
|
435 |
+
if ( $field >= $val ) {
|
436 |
$state = 'hide';
|
437 |
} else {
|
438 |
$state = 'show';
|
439 |
}
|
440 |
break;
|
441 |
case 'contains':
|
442 |
+
if ( strstr( $field, $val ) ) {
|
443 |
$state = 'hide';
|
444 |
} else {
|
445 |
$state = 'show';
|
448 |
}
|
449 |
}
|
450 |
$first_group++;
|
451 |
+
array_push( $state_array, $state );
|
452 |
} else {
|
453 |
|
454 |
+
if ( $arr[0] == 'show' ) {
|
455 |
|
456 |
+
switch ( $op ) {
|
457 |
case 'equals to':
|
|
|
458 |
$field = maybe_unserialize( $field );
|
459 |
|
460 |
+
if ( is_array( $field ) ) {
|
461 |
$state = in_array( $val, $field ) ? 'show' : 'not_show';
|
462 |
+
} else {
|
463 |
$state = ( $field == $val ) ? 'show' : 'not_show';
|
464 |
+
}
|
465 |
|
466 |
break;
|
467 |
case 'not equals':
|
|
|
468 |
$field = maybe_unserialize( $field );
|
469 |
|
470 |
+
if ( is_array( $field ) ) {
|
471 |
+
$state = ! in_array( $val, $field ) ? 'show' : 'not_show';
|
472 |
+
} else {
|
473 |
$state = ( $field != $val ) ? 'show' : 'not_show';
|
474 |
+
}
|
475 |
|
476 |
break;
|
477 |
case 'empty':
|
478 |
|
479 |
+
$state = ( ! $field ) ? 'show' : 'not_show';
|
480 |
|
481 |
break;
|
482 |
case 'not empty':
|
485 |
|
486 |
break;
|
487 |
case 'greater than':
|
488 |
+
if ( $field > $val ) {
|
489 |
$state = 'show';
|
490 |
} else {
|
491 |
$state = 'not_show';
|
492 |
}
|
493 |
break;
|
494 |
case 'less than':
|
495 |
+
if ( $field < $val ) {
|
496 |
$state = 'show';
|
497 |
} else {
|
498 |
$state = 'not_show';
|
499 |
}
|
500 |
break;
|
501 |
case 'contains':
|
502 |
+
if ( strstr( $field, $val ) ) {
|
503 |
$state = 'show';
|
504 |
} else {
|
505 |
$state = 'not_show';
|
506 |
}
|
507 |
break;
|
508 |
}
|
509 |
+
} elseif ( $arr[0] == 'hide' ) {
|
510 |
|
511 |
+
switch ( $op ) {
|
512 |
case 'equals to':
|
|
|
513 |
$field = maybe_unserialize( $field );
|
514 |
|
515 |
+
if ( is_array( $field ) ) {
|
516 |
$state = in_array( $val, $field ) ? 'hide' : 'not_hide';
|
517 |
+
} else {
|
518 |
$state = ( $field == $val ) ? 'hide' : 'not_hide';
|
519 |
+
}
|
520 |
|
521 |
break;
|
522 |
case 'not equals':
|
523 |
|
524 |
$field = maybe_unserialize( $field );
|
525 |
|
526 |
+
if ( is_array( $field ) ) {
|
527 |
+
$state = ! in_array( $val, $field ) ? 'hide' : 'not_hide';
|
528 |
+
} else {
|
529 |
$state = ( $field != $val ) ? 'hide' : 'not_hide';
|
530 |
+
}
|
531 |
|
532 |
break;
|
533 |
case 'empty':
|
534 |
|
535 |
+
$state = ( ! $field ) ? 'hide' : 'not_hide';
|
536 |
|
537 |
break;
|
538 |
case 'not empty':
|
541 |
|
542 |
break;
|
543 |
case 'greater than':
|
544 |
+
if ( $field <= $val ) {
|
545 |
$state = 'hide';
|
546 |
} else {
|
547 |
$state = 'not_hide';
|
548 |
}
|
549 |
break;
|
550 |
case 'less than':
|
551 |
+
if ( $field >= $val ) {
|
552 |
$state = 'hide';
|
553 |
} else {
|
554 |
$state = 'not_hide';
|
555 |
}
|
556 |
break;
|
557 |
case 'contains':
|
558 |
+
if ( strstr( $field, $val ) ) {
|
559 |
$state = 'hide';
|
560 |
} else {
|
561 |
$state = 'not_hide';
|
563 |
break;
|
564 |
}
|
565 |
}
|
566 |
+
if ( isset( $state_array[ $count ] ) ) {
|
567 |
+
if ( $state_array[ $count ] == 'show' || $state_array[ $count ] == 'not_hide' ) {
|
568 |
+
if ( $state == 'show' || $state == 'not_hide' ) {
|
569 |
+
$state_array[ $count ] = 'show';
|
570 |
} else {
|
571 |
+
$state_array[ $count ] = 'hide';
|
572 |
}
|
573 |
} else {
|
574 |
+
if ( $state == 'hide' || $state == 'not_show' ) {
|
575 |
+
$state_array[ $count ] = 'hide';
|
576 |
} else {
|
577 |
+
$state_array[ $count ] = 'hide';
|
578 |
}
|
579 |
}
|
580 |
} else {
|
581 |
+
if ( $state == 'show' || $state == 'not_hide' ) {
|
582 |
+
$state_array[ $count ] = 'show';
|
583 |
} else {
|
584 |
+
$state_array[ $count ] = 'hide';
|
585 |
}
|
586 |
}
|
587 |
}
|
669 |
}
|
670 |
|
671 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
672 |
/**
|
673 |
* Format submitted data for Info preview & Email template
|
674 |
* @param boolean $style
|
839 |
function um_user_submited_display( $k, $title, $data = array(), $style = true ) {
|
840 |
$output = '';
|
841 |
|
842 |
+
if ( 'form_id' == $k && isset( $data['form_id'] ) && ! empty( $data['form_id'] ) ) {
|
843 |
$v = sprintf( __( '%s - Form ID#: %s', 'ultimate-member' ), get_the_title( $data['form_id'] ), $data['form_id'] );
|
844 |
} else {
|
845 |
$v = um_user( $k );
|
849 |
return '';
|
850 |
}
|
851 |
|
852 |
+
$fields_without_metakey = UM()->builtin()->get_fields_without_metakey();
|
853 |
+
$type = UM()->fields()->get_field_type( $k );
|
854 |
+
if ( in_array( $type, $fields_without_metakey ) ) {
|
855 |
+
return '';
|
856 |
+
}
|
857 |
+
|
858 |
if ( ! $v ) {
|
859 |
if ( $style ) {
|
860 |
return "<p><label>$title: </label><span>" . __( '(empty)', 'ultimate-member' ) ."</span></p>";
|
863 |
}
|
864 |
}
|
865 |
|
866 |
+
if ( $type == 'image' || $type == 'file' ) {
|
867 |
$file = basename( $v );
|
868 |
|
869 |
$filedata = get_user_meta( um_user( 'ID' ), $k . "_metadata", true );
|
readme.txt
CHANGED
@@ -7,7 +7,7 @@ Tags: community, member, membership, user-profile, user-registration
|
|
7 |
Requires PHP: 5.6
|
8 |
Requires at least: 5.0
|
9 |
Tested up to: 5.5
|
10 |
-
Stable tag: 2.1.
|
11 |
License: GNU Version 2 or Any Later Version
|
12 |
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
|
13 |
|
@@ -42,6 +42,8 @@ Read about all of the plugin's features at [Ultimate Member](https://ultimatemem
|
|
42 |
|
43 |
Ultimate Member has a range of extensions that allow you to extend the power of the plugin. You can purchase all of these extensions at a significant discount with our [All Access Pass](https://ultimatemember.com/pricing/) or you can purchase extensions individually.
|
44 |
|
|
|
|
|
45 |
* [User Locations](https://ultimatemember.com/extensions/user-locations/) - Allow to display users on a map on the member directory page and allow users to add their location via their profile
|
46 |
* [Unsplash](https://ultimatemember.com/extensions/unsplash/) - Allow users to select a profile cover photo from [Unsplash](https://unsplash.com/) from their profile
|
47 |
* [User Bookmarks](https://ultimatemember.com/extensions/user-bookmarks/) - Allow users to bookmark content from your website
|
@@ -67,7 +69,7 @@ Ultimate Member has a range of extensions that allow you to extend the power of
|
|
67 |
|
68 |
= Free Extensions =
|
69 |
|
70 |
-
* [JobsBoardWP](https://
|
71 |
* [ForumWP](https://ultimatemember.com/extensions/forumwp/) - This free extension integrates Ultimate Member with the forum plugin [ForumWP](https://forumwpplugin.com).
|
72 |
* [Terms & Conditions](https://ultimatemember.com/extensions/terms-conditions/) - Add a terms and condition checkbox to your registration forms & require users to agree to your T&Cs before registering on your site.
|
73 |
* [Google reCAPTCHA](https://ultimatemember.com/extensions/google-recaptcha/) - Stop bots on your registration & login forms with Google reCAPTCHA
|
@@ -154,6 +156,24 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
|
|
154 |
* To learn more about version 2.1 please see this [docs](https://docs.ultimatemember.com/article/1512-upgrade-2-1-0)
|
155 |
* 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
|
156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
= 2.1.7: August 12, 2020 =
|
158 |
|
159 |
* Enhancements:
|
7 |
Requires PHP: 5.6
|
8 |
Requires at least: 5.0
|
9 |
Tested up to: 5.5
|
10 |
+
Stable tag: 2.1.8
|
11 |
License: GNU Version 2 or Any Later Version
|
12 |
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
|
13 |
|
42 |
|
43 |
Ultimate Member has a range of extensions that allow you to extend the power of the plugin. You can purchase all of these extensions at a significant discount with our [All Access Pass](https://ultimatemember.com/pricing/) or you can purchase extensions individually.
|
44 |
|
45 |
+
* [User Notes](https://ultimatemember.com/extensions/user-notes/) - Allow users to create public and private notes from their profile
|
46 |
+
* [Profile Tabs](https://ultimatemember.com/extensions/profile-tabs/) - Allow to add the custom tabs to profiles
|
47 |
* [User Locations](https://ultimatemember.com/extensions/user-locations/) - Allow to display users on a map on the member directory page and allow users to add their location via their profile
|
48 |
* [Unsplash](https://ultimatemember.com/extensions/unsplash/) - Allow users to select a profile cover photo from [Unsplash](https://unsplash.com/) from their profile
|
49 |
* [User Bookmarks](https://ultimatemember.com/extensions/user-bookmarks/) - Allow users to bookmark content from your website
|
69 |
|
70 |
= Free Extensions =
|
71 |
|
72 |
+
* [JobsBoardWP](https://ultimatemember.com/extensions/jobboardwp/) - This free extension integrates Ultimate Member with the job board plugin [JobBoardWP](https://wordpress.org/plugins/jobboardwp).
|
73 |
* [ForumWP](https://ultimatemember.com/extensions/forumwp/) - This free extension integrates Ultimate Member with the forum plugin [ForumWP](https://forumwpplugin.com).
|
74 |
* [Terms & Conditions](https://ultimatemember.com/extensions/terms-conditions/) - Add a terms and condition checkbox to your registration forms & require users to agree to your T&Cs before registering on your site.
|
75 |
* [Google reCAPTCHA](https://ultimatemember.com/extensions/google-recaptcha/) - Stop bots on your registration & login forms with Google reCAPTCHA
|
156 |
* To learn more about version 2.1 please see this [docs](https://docs.ultimatemember.com/article/1512-upgrade-2-1-0)
|
157 |
* 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
|
158 |
|
159 |
+
= 2.1.8: September 2, 2020 =
|
160 |
+
|
161 |
+
* Enhancements:
|
162 |
+
|
163 |
+
- Added dependency functions for extensions: [Ultimate Member - User Notes](https://ultimatemember.com/extensions/user-notes/) & [Ultimate Member - Profile Tabs](https://ultimatemember.com/extensions/profile-tabs/)
|
164 |
+
- Added unique IDs to the form fields at the Profile's view mode
|
165 |
+
- Added restrictions for WP > Users list table based on UM Roles capabilities
|
166 |
+
|
167 |
+
* Bugfixes:
|
168 |
+
|
169 |
+
- Removed additional slashes in the UM custom roles titles
|
170 |
+
- Fixed cleaning user old uploads and integration with Social activity & Groups files
|
171 |
+
- Fixed Info window fields (hide fields without metakeys)
|
172 |
+
- Fixed PHP warning in conditional logic function
|
173 |
+
- Fixed member directory preloader when using a slider filter
|
174 |
+
- Fixed 'redirect_to' attribute and approving user on registration
|
175 |
+
- Fixed activate an account via email
|
176 |
+
|
177 |
= 2.1.7: August 12, 2020 =
|
178 |
|
179 |
* Enhancements:
|
ultimate-member.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Ultimate Member
|
4 |
Plugin URI: http://ultimatemember.com/
|
5 |
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
|
6 |
-
Version: 2.1.
|
7 |
Author: Ultimate Member
|
8 |
Author URI: http://ultimatemember.com/
|
9 |
Text Domain: ultimate-member
|
3 |
Plugin Name: Ultimate Member
|
4 |
Plugin URI: http://ultimatemember.com/
|
5 |
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
|
6 |
+
Version: 2.1.8
|
7 |
Author: Ultimate Member
|
8 |
Author URI: http://ultimatemember.com/
|
9 |
Text Domain: ultimate-member
|