diff --git a/admin/core/um-admin-redux.php b/admin/core/um-admin-redux.php index 7ceab405..95ce2550 100644 --- a/admin/core/um-admin-redux.php +++ b/admin/core/um-admin-redux.php @@ -52,12 +52,12 @@ $this->args = array( 'opt_name' => 'um_options', // This is where your data is stored in the database and also becomes your global variable name. - 'display_name' => 'Settings', // Name that appears at the top of your panel + 'display_name' => __('Settings', 'ultimatemember'), // Name that appears at the top of your panel 'display_version' => ultimatemember_version, // Version that appears at the top of your panel 'menu_type' => 'submenu', //Specify if the admin menu should appear or not. Options: menu or submenu (Under appearance only) 'allow_sub_menu' => false, // Show the sections below the admin menu item or not - 'menu_title' => __('Settings', 'redux-framework-demo'), - 'page_title' => __('Settings', 'redux-framework-demo'), + 'menu_title' => __('Settings', 'ultimatemember'), + 'page_title' => __('Settings', 'ultimatemember'), 'google_api_key' => '', // Must be defined to add google fonts to the typography module 'async_typography' => true, // Use a asynchronous font on the front end or font string diff --git a/assets/js/um-conditional.js b/assets/js/um-conditional.js index e2ef5d6d..c8c326ec 100644 --- a/assets/js/um-conditional.js +++ b/assets/js/um-conditional.js @@ -15,7 +15,14 @@ jQuery(document).ready(function() { live_value = jQuery(this).val(); if ( jQuery(this).is(':checkbox') ) { - live_value = jQuery(this).parents('.um-field').find('input:checked').val(); + if ( jQuery(this).parents('.um-field').find('input:checked').length > 1 ) { + live_value = ''; + jQuery(this).parents('.um-field').find('input:checked').each(function(){ + live_value = live_value + jQuery(this).val() + ' '; + }); + } else { + live_value = jQuery(this).parents('.um-field').find('input:checked').val(); + } } if ( jQuery(this).is(':radio') ) { diff --git a/assets/js/um.min.js b/assets/js/um.min.js index fbe9487f..de934600 100644 --- a/assets/js/um.min.js +++ b/assets/js/um.min.js @@ -121,6 +121,6 @@ jQuery(document).on("click",".um-finish-upload.image",function(){var a=jQuery(th data:{action:"ultimatemember_resize_image",src:f,coord:c,user_id:g,key:b},success:function(e){d=new Date;b=="profile_photo"&&jQuery(".um-profile-photo-img img").attr("src",e+"?"+d.getTime());if(b=="cover_photo"){jQuery(".um-cover-e").empty().html('');jQuery(".um").hasClass("um-editing")&&jQuery(".um-cover-overlay").show()}jQuery(".um-single-image-preview[data-key="+b+"]").fadeIn().find("img").attr("src",e+"?"+d.getTime());um_remove_modal();jQuery(".um-single-image-preview[data-key="+ b+"]").parents(".um-field").find(".um-btn-auto-width").html(a.attr("data-change"));jQuery(".um-single-image-preview[data-key="+b+"]").parents(".um-field").find("input[type=hidden]").val(e)}})}else{d=new Date;jQuery(".um-single-image-preview[data-key="+b+"]").fadeIn().find("img").attr("src",f+"?"+d.getTime());um_remove_modal();jQuery(".um-single-image-preview[data-key="+b+"]").parents(".um-field").find(".um-btn-auto-width").html(a.attr("data-change"));jQuery(".um-single-image-preview[data-key="+b+ "]").parents(".um-field").find("input[type=hidden]").val(f)}});jQuery(document).on("click",'a[data-modal^="um_"], span[data-modal^="um_"]',function(){var a=jQuery(this).attr("data-modal"),b=jQuery(this).data("modal-size")?jQuery(this).data("modal-size"):"normal";if(jQuery(this).data("modal-copy")){jQuery("#"+a).html(jQuery(this).parents(".um-field").find(".um-modal-hidden-content").html());jQuery(this).parents(".um-profile-photo").attr("data-user_id")&&jQuery("#"+a).attr("data-user_id",jQuery(this).parents(".um-profile-photo").attr("data-user_id")); -jQuery(this).parents(".um-cover").attr("data-ratio")&&jQuery("#"+a).attr("data-ratio",jQuery(this).parents(".um-cover").attr("data-ratio"));jQuery(this).parents(".um-cover").attr("data-user_id")&&jQuery("#"+a).attr("data-user_id",jQuery(this).parents(".um-cover").attr("data-user_id"))}um_new_modal(a,b)});jQuery(document).on('input','.um-field input[type=text]',function(){live_field = jQuery(this).parents('.um-field').data('key');live_value = jQuery(this).val();um_conditional()});jQuery('.um-field input[type=text]').trigger('input');jQuery(document).on('change','.um-field select,.um-field input[type=radio],.um-field input[type=checkbox]',function(){live_field = jQuery(this).parents('.um-field').data('key');live_value = jQuery(this).val();if(jQuery(this).is(':checkbox')){live_value = jQuery(this).parents('.um-field').find('input:checked').val()}if(jQuery(this).is(':radio')){live_value = jQuery(this).parents('.um-field').find('input[type=radio]:checked').val()}um_conditional()});jQuery('.um-field select,.um-field input[type=radio],.um-field input[type=checkbox]').trigger('change');jQuery(document).on('click','.um-dropdown a',function(e){return false});jQuery(document).on('click','.um-dropdown a.real_url',function(e){window.location = jQuery(this).attr('href')});jQuery(document).on('click','.um-trigger-menu-on-click',function(e){jQuery('.um-dropdown').hide();menu = jQuery(this).find('.um-dropdown');menu.show();return false});jQuery(document).on('click','.um-dropdown-hide',function(e){UM_hide_menus()});jQuery(document).on('click','a.um-manual-trigger',function(){var child = jQuery(this).attr('data-child');var parent = jQuery(this).attr('data-parent');jQuery(this).parents(parent).find(child).trigger('click')});jQuery('.um-tip-n').tipsy({gravity:'n',opacity:1,live:true,offset:3});jQuery('.um-tip-w').tipsy({gravity:'w',opacity:1,live:true,offset:3});jQuery('.um-tip-e').tipsy({gravity:'e',opacity:1,live:true,offset:3});jQuery('.um-tip-s').tipsy({gravity:'s',opacity:1,live:true,offset:3});jQuery('.um-field input[type=radio]').change(function(){var field = jQuery(this).parents('.um-field');var this_field = jQuery(this).parents('label');field.find('.um-field-radio').removeClass('active');field.find('.um-field-radio').find('i').removeClass().addClass('um-icon-android-radio-button-off');this_field.addClass('active');this_field.find('i').removeClass().addClass('um-icon-android-radio-button-on')});jQuery('.um-field input[type=checkbox]').change(function(){var field = jQuery(this).parents('.um-field');var this_field = jQuery(this).parents('label');if(this_field.hasClass('active')){this_field.removeClass('active');this_field.find('i').removeClass().addClass('um-icon-android-checkbox-outline-blank')}else{this_field.addClass('active');this_field.find('i').removeClass().addClass('um-icon-android-checkbox-outline')}});jQuery('.um-datepicker').each(function(){elem = jQuery(this);if(elem.attr('data-disabled_weekdays')!= ''){var disable = JSON.parse(elem.attr('data-disabled_weekdays'))}else{var disable = false}var years_n = elem.attr('data-years');var min = new Date(elem.attr('data-date_min'));var max = new Date(elem.attr('data-date_max'));elem.pickadate({selectYears:years_n,min:min,max:max,disable:disable,format:elem.attr('data-format'),formatSubmit:'yyyy/mm/dd',hiddenName:true})});jQuery('.um-timepicker').each(function(){elem = jQuery(this);elem.pickatime({format:elem.attr('data-format'),interval:parseInt(elem.attr('data-intervals')),formatSubmit:'HH:i',hiddenName:true})});jQuery('.um-rating').raty({half:false,starType:'i',number:function(){return jQuery(this).attr('data-number')},score:function(){return jQuery(this).attr('data-score')},scoreName:function(){return jQuery(this).attr('data-key')},hints:false,click:function(score,evt){live_field = this.id;live_value = score;um_conditional()}});jQuery('.um-rating-readonly').raty({half:false,starType:'i',number:function(){return jQuery(this).attr('data-number')},score:function(){return jQuery(this).attr('data-score')},scoreName:function(){return jQuery(this).attr('data-key')},hints:false,readOnly:true});jQuery(document).on('click','.um .um-single-image-preview a.cancel',function(e){e.preventDefault();var parent = jQuery(this).parents('.um-field');var src = jQuery(this).parents('.um-field').find('.um-single-image-preview img').attr('src');parent.find('.um-single-image-preview img').attr('src','');parent.find('.um-single-image-preview').hide();parent.find('.um-btn-auto-width').html('Upload');parent.find('input[type=hidden]').val('');jQuery.ajax({url:ultimatemember_ajax_url,type:'post',data:{action:'ultimatemember_remove_file',src:src}});return false});jQuery(document).on('click','.um .um-single-file-preview a.cancel',function(e){e.preventDefault();var parent = jQuery(this).parents('.um-field');var src = jQuery(this).parents('.um-field').find('.um-single-fileinfo a').attr('href');parent.find('.um-single-file-preview').hide();parent.find('.um-btn-auto-width').html('Upload');parent.find('input[type=hidden]').val('');jQuery.ajax({url:ultimatemember_ajax_url,type:'post',data:{action:'ultimatemember_remove_file',src:src}});return false});jQuery(".um-s1").select2({allowClear:true,minimumResultsForSearch:10});jQuery(".um-s2").select2({allowClear:false,minimumResultsForSearch:10});jQuery('.um-s1,.um-s2').css({'display':'block'});jQuery(document).on('click','.um-field-group-head:not(.disabled)',function(){var field = jQuery(this).parents('.um-field-group');var limit = field.data('max_entries');if(field.find('.um-field-group-body').is(':hidden')){field.find('.um-field-group-body').show()}else{field.find('.um-field-group-body:first').clone().appendTo(field)}increase_id = 0;field.find('.um-field-group-body').each(function(){increase_id++;jQuery(this).find('input').each(function(){var input = jQuery(this);input.attr('id',input.data('key')+'-'+increase_id);input.attr('name',input.data('key')+'-'+increase_id);input.parent().parent().find('label').attr('for',input.data('key')+'-'+increase_id)})});if(limit>0 && field.find('.um-field-group-body').length == limit){jQuery(this).addClass('disabled')}});jQuery(document).on('click','.um-field-group-cancel',function(e){e.preventDefault();var field = jQuery(this).parents('.um-field-group');var limit = field.data('max_entries');if(field.find('.um-field-group-body').length>1){jQuery(this).parents('.um-field-group-body').remove()}else{jQuery(this).parents('.um-field-group-body').hide()}if(limit>0 && field.find('.um-field-group-body').length < limit){field.find('.um-field-group-head').removeClass('disabled')}return false});jQuery(document).on('click','.um-ajax-paginate',function(e){e.preventDefault();var parent = jQuery(this).parent();parent.addClass('loading');var args = jQuery(this).data('args');var hook = jQuery(this).data('hook');var container = jQuery(this).parents('.um').find('.um-ajax-items');jQuery.ajax({url:ultimatemember_ajax_url,type:'post',data:{action:'ultimatemember_ajax_paginate',hook:hook,args:args},complete:function(){parent.removeClass('loading')},success:function(data){parent.remove();container.append(data)}});return false});jQuery(document).on('click','.um-ajax-action',function(e){e.preventDefault();var hook = jQuery(this).data('hook');var user_id = jQuery(this).data('user_id');var arguments = jQuery(this).data('arguments');if(jQuery(this).data('js-remove')){jQuery(this).parents('.'+jQuery(this).data('js-remove')).fadeOut('fast')}jQuery.ajax({url:ultimatemember_ajax_url,type:'post',data:{action:'ultimatemember_muted_action',hook:hook,user_id:user_id,arguments:arguments}});return false});jQuery('.um-members').each(function(){UM_Member_Grid(jQuery(this))});jQuery('.um-member-connect').each(function(){if(jQuery(this).find('a').length == 0){jQuery(this).remove()}});jQuery('.um-member-meta-main').each(function(){if(jQuery(this).find('.um-member-metaline').length == 0 && jQuery(this).find('.um-member-connect').find('a').length == 0){jQuery(this).remove()}});jQuery(document).on('click','.um-member-more a',function(e){e.preventDefault();var block = jQuery(this).parents('.um-member');var container = jQuery(this).parents('.um-members');block.find('.um-member-more').hide();block.find('.um-member-meta').slideDown(function(){UM_Member_Grid(container)});block.find('.um-member-less').fadeIn();setTimeout(function(){UM_Member_Grid(container)},100);return false});jQuery(document).on('click','.um-member-less a',function(e){e.preventDefault();var block = jQuery(this).parents('.um-member');var container = jQuery(this).parents('.um-members');block.find('.um-member-less').hide();block.find('.um-member-meta').slideUp(function(){block.find('.um-member-more').fadeIn();UM_Member_Grid(container)});return false});jQuery(document).on('click','.um-do-search',function(e){e.preventDefault();jQuery(this).parents('form').submit();return false});if(jQuery('.um-profile.um-viewing .um-profile-body').length && jQuery('.um-profile.um-viewing .um-profile-body').find('.um-field').length == 0){jQuery('.um-profile-note').show()}jQuery(document).on('click','.um-profile-save',function(e){e.preventDefault();jQuery(this).parents('.um').find('form').submit();return false});jQuery(document).on('click','.um-profile-edit-a',function(e){jQuery(this).addClass('active')});jQuery(document).on('click','.um-cover a,.um-photo a',function(e){e.preventDefault();return false});jQuery(document).on('click','.um-photo-modal',function(e){var photo_src = jQuery(this).attr('data-src');um_new_modal('um_view_photo','fit',true,photo_src)});jQuery(document).on('click','.um-reset-profile-photo',function(e){jQuery('.um-profile-photo-img img').attr('src',jQuery(this).attr('data-default_src'));user_id = jQuery(this).attr('data-user_id');metakey = 'profile_photo';jQuery.ajax({url:ultimatemember_ajax_url,type:'post',data:{action:'ultimatemember_delete_profile_photo',metakey:metakey,user_id:user_id}})});jQuery(document).on('click','.um-reset-cover-photo',function(e){jQuery('.um-cover-overlay').hide();jQuery('.um-cover-e').html('');jQuery('.um-dropdown').hide();um_responsive();user_id = jQuery(this).attr('data-user_id');metakey = 'cover_photo';jQuery.ajax({url:ultimatemember_ajax_url,type:'post',data:{action:'ultimatemember_delete_cover_photo',metakey:metakey,user_id:user_id}})});var g=jQuery(".um-account-main").attr("data-current_tab");g&&jQuery(".um-account-tab[data-tab="+g+"]").show();jQuery(document).on("click",".um-account-side li a",function(a){a.preventDefault();a=jQuery(this);a.parents("ul").find("li a").removeClass("current"); +jQuery(this).parents(".um-cover").attr("data-ratio")&&jQuery("#"+a).attr("data-ratio",jQuery(this).parents(".um-cover").attr("data-ratio"));jQuery(this).parents(".um-cover").attr("data-user_id")&&jQuery("#"+a).attr("data-user_id",jQuery(this).parents(".um-cover").attr("data-user_id"))}um_new_modal(a,b)});jQuery(document).on('input','.um-field input[type=text]',function(){live_field = jQuery(this).parents('.um-field').data('key');live_value = jQuery(this).val();um_conditional()});jQuery('.um-field input[type=text]').trigger('input');jQuery(document).on('change','.um-field select,.um-field input[type=radio],.um-field input[type=checkbox]',function(){live_field = jQuery(this).parents('.um-field').data('key');live_value = jQuery(this).val();if(jQuery(this).is(':checkbox')){if(jQuery(this).parents('.um-field').find('input:checked').length>1){live_value = '';jQuery(this).parents('.um-field').find('input:checked').each(function(){live_value = live_value+jQuery(this).val()+' '})}else{live_value = jQuery(this).parents('.um-field').find('input:checked').val()}}if(jQuery(this).is(':radio')){live_value = jQuery(this).parents('.um-field').find('input[type=radio]:checked').val()}um_conditional()});jQuery('.um-field select,.um-field input[type=radio],.um-field input[type=checkbox]').trigger('change');jQuery(document).on('click','.um-dropdown a',function(e){return false});jQuery(document).on('click','.um-dropdown a.real_url',function(e){window.location = jQuery(this).attr('href')});jQuery(document).on('click','.um-trigger-menu-on-click',function(e){jQuery('.um-dropdown').hide();menu = jQuery(this).find('.um-dropdown');menu.show();return false});jQuery(document).on('click','.um-dropdown-hide',function(e){UM_hide_menus()});jQuery(document).on('click','a.um-manual-trigger',function(){var child = jQuery(this).attr('data-child');var parent = jQuery(this).attr('data-parent');jQuery(this).parents(parent).find(child).trigger('click')});jQuery('.um-tip-n').tipsy({gravity:'n',opacity:1,live:true,offset:3});jQuery('.um-tip-w').tipsy({gravity:'w',opacity:1,live:true,offset:3});jQuery('.um-tip-e').tipsy({gravity:'e',opacity:1,live:true,offset:3});jQuery('.um-tip-s').tipsy({gravity:'s',opacity:1,live:true,offset:3});jQuery('.um-field input[type=radio]').change(function(){var field = jQuery(this).parents('.um-field');var this_field = jQuery(this).parents('label');field.find('.um-field-radio').removeClass('active');field.find('.um-field-radio').find('i').removeClass().addClass('um-icon-android-radio-button-off');this_field.addClass('active');this_field.find('i').removeClass().addClass('um-icon-android-radio-button-on')});jQuery('.um-field input[type=checkbox]').change(function(){var field = jQuery(this).parents('.um-field');var this_field = jQuery(this).parents('label');if(this_field.hasClass('active')){this_field.removeClass('active');this_field.find('i').removeClass().addClass('um-icon-android-checkbox-outline-blank')}else{this_field.addClass('active');this_field.find('i').removeClass().addClass('um-icon-android-checkbox-outline')}});jQuery('.um-datepicker').each(function(){elem = jQuery(this);if(elem.attr('data-disabled_weekdays')!= ''){var disable = JSON.parse(elem.attr('data-disabled_weekdays'))}else{var disable = false}var years_n = elem.attr('data-years');var min = new Date(elem.attr('data-date_min'));var max = new Date(elem.attr('data-date_max'));elem.pickadate({selectYears:years_n,min:min,max:max,disable:disable,format:elem.attr('data-format'),formatSubmit:'yyyy/mm/dd',hiddenName:true})});jQuery('.um-timepicker').each(function(){elem = jQuery(this);elem.pickatime({format:elem.attr('data-format'),interval:parseInt(elem.attr('data-intervals')),formatSubmit:'HH:i',hiddenName:true})});jQuery('.um-rating').raty({half:false,starType:'i',number:function(){return jQuery(this).attr('data-number')},score:function(){return jQuery(this).attr('data-score')},scoreName:function(){return jQuery(this).attr('data-key')},hints:false,click:function(score,evt){live_field = this.id;live_value = score;um_conditional()}});jQuery('.um-rating-readonly').raty({half:false,starType:'i',number:function(){return jQuery(this).attr('data-number')},score:function(){return jQuery(this).attr('data-score')},scoreName:function(){return jQuery(this).attr('data-key')},hints:false,readOnly:true});jQuery(document).on('click','.um .um-single-image-preview a.cancel',function(e){e.preventDefault();var parent = jQuery(this).parents('.um-field');var src = jQuery(this).parents('.um-field').find('.um-single-image-preview img').attr('src');parent.find('.um-single-image-preview img').attr('src','');parent.find('.um-single-image-preview').hide();parent.find('.um-btn-auto-width').html('Upload');parent.find('input[type=hidden]').val('');jQuery.ajax({url:ultimatemember_ajax_url,type:'post',data:{action:'ultimatemember_remove_file',src:src}});return false});jQuery(document).on('click','.um .um-single-file-preview a.cancel',function(e){e.preventDefault();var parent = jQuery(this).parents('.um-field');var src = jQuery(this).parents('.um-field').find('.um-single-fileinfo a').attr('href');parent.find('.um-single-file-preview').hide();parent.find('.um-btn-auto-width').html('Upload');parent.find('input[type=hidden]').val('');jQuery.ajax({url:ultimatemember_ajax_url,type:'post',data:{action:'ultimatemember_remove_file',src:src}});return false});jQuery(".um-s1").select2({allowClear:true,minimumResultsForSearch:10});jQuery(".um-s2").select2({allowClear:false,minimumResultsForSearch:10});jQuery('.um-s1,.um-s2').css({'display':'block'});jQuery(document).on('click','.um-field-group-head:not(.disabled)',function(){var field = jQuery(this).parents('.um-field-group');var limit = field.data('max_entries');if(field.find('.um-field-group-body').is(':hidden')){field.find('.um-field-group-body').show()}else{field.find('.um-field-group-body:first').clone().appendTo(field)}increase_id = 0;field.find('.um-field-group-body').each(function(){increase_id++;jQuery(this).find('input').each(function(){var input = jQuery(this);input.attr('id',input.data('key')+'-'+increase_id);input.attr('name',input.data('key')+'-'+increase_id);input.parent().parent().find('label').attr('for',input.data('key')+'-'+increase_id)})});if(limit>0 && field.find('.um-field-group-body').length == limit){jQuery(this).addClass('disabled')}});jQuery(document).on('click','.um-field-group-cancel',function(e){e.preventDefault();var field = jQuery(this).parents('.um-field-group');var limit = field.data('max_entries');if(field.find('.um-field-group-body').length>1){jQuery(this).parents('.um-field-group-body').remove()}else{jQuery(this).parents('.um-field-group-body').hide()}if(limit>0 && field.find('.um-field-group-body').length < limit){field.find('.um-field-group-head').removeClass('disabled')}return false});jQuery(document).on('click','.um-ajax-paginate',function(e){e.preventDefault();var parent = jQuery(this).parent();parent.addClass('loading');var args = jQuery(this).data('args');var hook = jQuery(this).data('hook');var container = jQuery(this).parents('.um').find('.um-ajax-items');jQuery.ajax({url:ultimatemember_ajax_url,type:'post',data:{action:'ultimatemember_ajax_paginate',hook:hook,args:args},complete:function(){parent.removeClass('loading')},success:function(data){parent.remove();container.append(data)}});return false});jQuery(document).on('click','.um-ajax-action',function(e){e.preventDefault();var hook = jQuery(this).data('hook');var user_id = jQuery(this).data('user_id');var arguments = jQuery(this).data('arguments');if(jQuery(this).data('js-remove')){jQuery(this).parents('.'+jQuery(this).data('js-remove')).fadeOut('fast')}jQuery.ajax({url:ultimatemember_ajax_url,type:'post',data:{action:'ultimatemember_muted_action',hook:hook,user_id:user_id,arguments:arguments}});return false});jQuery('.um-members').each(function(){UM_Member_Grid(jQuery(this))});jQuery('.um-member-connect').each(function(){if(jQuery(this).find('a').length == 0){jQuery(this).remove()}});jQuery('.um-member-meta-main').each(function(){if(jQuery(this).find('.um-member-metaline').length == 0 && jQuery(this).find('.um-member-connect').find('a').length == 0){jQuery(this).remove()}});jQuery(document).on('click','.um-member-more a',function(e){e.preventDefault();var block = jQuery(this).parents('.um-member');var container = jQuery(this).parents('.um-members');block.find('.um-member-more').hide();block.find('.um-member-meta').slideDown(function(){UM_Member_Grid(container)});block.find('.um-member-less').fadeIn();setTimeout(function(){UM_Member_Grid(container)},100);return false});jQuery(document).on('click','.um-member-less a',function(e){e.preventDefault();var block = jQuery(this).parents('.um-member');var container = jQuery(this).parents('.um-members');block.find('.um-member-less').hide();block.find('.um-member-meta').slideUp(function(){block.find('.um-member-more').fadeIn();UM_Member_Grid(container)});return false});jQuery(document).on('click','.um-do-search',function(e){e.preventDefault();jQuery(this).parents('form').submit();return false});if(jQuery('.um-profile.um-viewing .um-profile-body').length && jQuery('.um-profile.um-viewing .um-profile-body').find('.um-field').length == 0){jQuery('.um-profile-note').show()}jQuery(document).on('click','.um-profile-save',function(e){e.preventDefault();jQuery(this).parents('.um').find('form').submit();return false});jQuery(document).on('click','.um-profile-edit-a',function(e){jQuery(this).addClass('active')});jQuery(document).on('click','.um-cover a,.um-photo a',function(e){e.preventDefault();return false});jQuery(document).on('click','.um-photo-modal',function(e){var photo_src = jQuery(this).attr('data-src');um_new_modal('um_view_photo','fit',true,photo_src)});jQuery(document).on('click','.um-reset-profile-photo',function(e){jQuery('.um-profile-photo-img img').attr('src',jQuery(this).attr('data-default_src'));user_id = jQuery(this).attr('data-user_id');metakey = 'profile_photo';jQuery.ajax({url:ultimatemember_ajax_url,type:'post',data:{action:'ultimatemember_delete_profile_photo',metakey:metakey,user_id:user_id}})});jQuery(document).on('click','.um-reset-cover-photo',function(e){jQuery('.um-cover-overlay').hide();jQuery('.um-cover-e').html('');jQuery('.um-dropdown').hide();um_responsive();user_id = jQuery(this).attr('data-user_id');metakey = 'cover_photo';jQuery.ajax({url:ultimatemember_ajax_url,type:'post',data:{action:'ultimatemember_delete_cover_photo',metakey:metakey,user_id:user_id}})});var g=jQuery(".um-account-main").attr("data-current_tab");g&&jQuery(".um-account-tab[data-tab="+g+"]").show();jQuery(document).on("click",".um-account-side li a",function(a){a.preventDefault();a=jQuery(this);a.parents("ul").find("li a").removeClass("current"); a.addClass("current");a=jQuery(this).attr("href");var b=jQuery(this).attr("data-tab");window.history.pushState("","",a);jQuery(".um-account-tab").hide();jQuery(".um-account-tab[data-tab="+b+"]").fadeIn();jQuery(".um-account-nav a").removeClass("current");jQuery(".um-account-nav a[data-tab="+b+"]").addClass("current");return false});jQuery(document).on("click",".um-account-nav a",function(a){a.preventDefault();a=jQuery(this).attr("data-tab");var b=jQuery(this).parents("div"),c=jQuery(this);jQuery(".um-account-tab").hide(); if(c.hasClass("current")){b.next(".um-account-tab").slideUp();c.removeClass("current")}else{b.next(".um-account-tab").slideDown();c.parents("div").find("a").removeClass("current");c.addClass("current")}jQuery(".um-account-side li a").removeClass("current");jQuery(".um-account-side li a[data-tab="+a+"]").addClass("current");return false})}); \ No newline at end of file diff --git a/core/um-actions-form.php b/core/um-actions-form.php index ad56217d..ada8571d 100644 --- a/core/um-actions-form.php +++ b/core/um-actions-form.php @@ -170,13 +170,13 @@ } if ( isset( $array['min_chars'] ) && $array['min_chars'] > 0 ) { - if ( strlen( utf8_decode( $args[$key] ) ) < $array['min_chars'] ) { + if ( $args[$key] && strlen( utf8_decode( $args[$key] ) ) < $array['min_chars'] ) { $ultimatemember->form->add_error($key, sprintf(__('Your %s must contain at least %s characters','ultimatemember'), $array['label'], $array['min_chars']) ); } } if ( isset( $array['max_chars'] ) && $array['max_chars'] > 0 ) { - if ( strlen( utf8_decode( $args[$key] ) ) > $array['max_chars'] ) { + if ( $args[$key] && strlen( utf8_decode( $args[$key] ) ) > $array['max_chars'] ) { $ultimatemember->form->add_error($key, sprintf(__('Your %s must contain less than %s characters','ultimatemember'), $array['label'], $array['max_chars']) ); } } diff --git a/core/um-actions-register.php b/core/um-actions-register.php index 9dd293cf..aac86637 100644 --- a/core/um-actions-register.php +++ b/core/um-actions-register.php @@ -39,14 +39,14 @@ $user_login = $user_email; } - if ( isset( $username ) && !isset($user_login) ) { + if ( isset( $username ) && !isset($args['user_login']) ) { $user_login = $username; } - + if ( isset( $username ) && is_email( $username ) ) { $user_email = $username; } - + if (!isset($user_password)){ $user_password = $ultimatemember->validation->generate(); } diff --git a/core/um-actions-user.php b/core/um-actions-user.php index 9daf6df4..35e28af6 100644 --- a/core/um-actions-user.php +++ b/core/um-actions-user.php @@ -6,16 +6,21 @@ add_action('um_after_user_upload','um_remove_unused_uploads', 10); function um_remove_unused_uploads( $user_id ) { global $ultimatemember; - + um_fetch_user( $user_id ); $array = $ultimatemember->user->profile; - + $files = glob( um_user_uploads_dir() . '*', GLOB_BRACE); - foreach($files as $file) { - $str = basename($file); - if ( !strstr( $str, 'profile_photo') && !strstr( $str, 'cover_photo') && !preg_grep('/' . $str . '/', $array ) ) - unlink( $file ); + + if ( file_exists( um_user_uploads_dir() ) && $files && isset( $array ) && is_array( $array ) ) { + + foreach($files as $file) { + $str = basename($file); + if ( !strstr( $str, 'profile_photo') && !strstr( $str, 'cover_photo') && !preg_grep('/' . $str . '/', $array ) ) + unlink( $file ); + } + } } diff --git a/core/um-fields.php b/core/um-fields.php index 6c2d678f..2871956a 100644 --- a/core/um-fields.php +++ b/core/um-fields.php @@ -342,6 +342,9 @@ class UM_Fields { function field_value( $key, $default = false, $data = null ) { global $ultimatemember; + if ( isset($_SESSION) && isset($_SESSION['um_social_profile'][$key]) ) + return $_SESSION['um_social_profile'][$key]; + $type = (isset($data['type']))?$data['type']:''; // preview in backend @@ -403,6 +406,10 @@ class UM_Fields { return true; } + if ( strstr( $data['default'], ', ') ) { + $data['default'] = explode(', ', $data['default']); + } + if ( isset($data['default']) && !is_array($data['default']) && $data['default'] == $value ) { return true; } @@ -1010,7 +1017,7 @@ class UM_Fields { $output .= '
'; if ( isset( $data['label'] ) ) { - $output .= $this->field_label( sprintf(__('Confirm New %s','ultimatemember'), $data['label'] ), $key, $data); + $output .= $this->field_label( sprintf(__('Confirm %s','ultimatemember'), $data['label'] ), $key, $data); } $output .= '
'; diff --git a/core/um-filters-members.php b/core/um-filters-members.php index 531bba41..ed3d37fe 100644 --- a/core/um-filters-members.php +++ b/core/um-filters-members.php @@ -20,7 +20,7 @@ foreach( $ultimatemember->members->core_search_fields as $key ) { if ( isset( $query[$key] ) ) { $query_args['search'] = '*' . $query[$key] . '*'; - $query_args['search_columns'] = array( 'user_login', 'user_email' ); + $query_args['search_columns'] = array( 'user_login', 'user_email', 'display_name' ); } } diff --git a/core/um-form.php b/core/um-form.php index 170a5417..f5e54abc 100644 --- a/core/um-form.php +++ b/core/um-form.php @@ -81,7 +81,7 @@ class UM_Form { if ( $form_timestamp == '' ) wp_die( __('Hello, spam bot!') ); - if ( $live_timestamp - $form_timestamp < 5 ) + if ( $live_timestamp - $form_timestamp < 3 ) wp_die( __('Whoa, slow down! You\'re seeing this message because you tried to submit a form too fast and we think you might be a spam bot. If you are a real human being please wait a few seconds before submitting the form. Thanks!') ); } diff --git a/core/um-members.php b/core/um-members.php index 5fbf18f1..1c112a55 100644 --- a/core/um-members.php +++ b/core/um-members.php @@ -6,15 +6,26 @@ class UM_Members { add_filter('pre_user_query', array(&$this, 'custom_order_query') ); + add_filter('user_search_columns', array(&$this, 'add_display_name'), 99 ); + add_action('template_redirect', array(&$this, 'access_members'), 555); $this->core_search_fields = array( 'user_login', 'username', + 'display_name', ); } + /*** + *** @Add display name + ***/ + function add_display_name(){ + $search_columns[] = 'display_name'; + return $search_columns; + } + /*** *** @Members page allowed? ***/ diff --git a/core/um-short-functions.php b/core/um-short-functions.php index bb6ec3d4..348d254f 100644 --- a/core/um-short-functions.php +++ b/core/um-short-functions.php @@ -94,7 +94,7 @@ function um_user_ip() { ***/ function um_cap_initials( $name ) { if ( is_email( $name ) ) return $name; - $name = str_replace('\' ', '\'', ucwords(str_replace('\'', '\' ', strtolower($name)))); + $name = str_replace('\' ', '\'', ucwords( str_replace('\'', '\' ', mb_strtolower($name, 'UTF-8') ) ) ); return $name; } diff --git a/index.php b/index.php index 058c57f9..13d1a8f9 100644 --- a/index.php +++ b/index.php @@ -3,7 +3,7 @@ Plugin Name: Ultimate Member Plugin URI: http://ultimatemember.com/ Description: Ultimate Member is a powerful community and membership plugin that allows you to create beautiful community and membership sites with WordPress -Version: 1.0.56 +Version: 1.0.58 Author: Ultimate Member Author URI: http://ultimatemember.com/ */ diff --git a/readme.txt b/readme.txt index c308c8ef..2074d028 100644 --- a/readme.txt +++ b/readme.txt @@ -7,7 +7,7 @@ Tags: access control, author, authors, author profile, comments, community, comm Requires at least: 4.1 Tested up to: 4.1 -Stable Tag: 1.0.56 +Stable Tag: 1.0.58 License: GNU Version 2 or Any Later Version @@ -187,6 +187,20 @@ The plugin works with popular caching plugins by automatically excluding Ultimat == Changelog == += 1.0.58: February 16, 2015 = + +* Fixed: display name as search field in member directory +* Fixed: translation issues in backend settings +* Fixed: issue with non-english letters in display names +* Fixed: bug with multiple default values for multi-select and checkbox fields +* Fixed: bug with multiple conditional logic based on different checkbox values + += 1.0.57: February 16, 2015 = + +* Tweak: Italian language up-to-date +* Fixed: issue with registration where it can trigger a php warning +* Fixed: some translation issues + = 1.0.56: February 15, 2015 = * Fixed: issue with permalink changes diff --git a/um-config.php b/um-config.php index 4b69b998..3adde0ad 100644 --- a/um-config.php +++ b/um-config.php @@ -33,9 +33,9 @@ $this->sections[] = array( 'default' => 'user_login', 'desc' => 'e.g. ' . trailingslashit( um_get_core_page('user') ) .'username/', 'options' => array( - 'user_login' => 'Username', - 'name' => 'First and Last Name', - 'user_id' => 'User ID', + 'user_login' => __('Username','ultimatemember'), + 'name' => __('First and Last Name','ultimatemember'), + 'user_id' => __('User ID','ultimatemember'), ), 'placeholder' => __('Select...','ultimatemember') ), @@ -48,14 +48,14 @@ $this->sections[] = array( 'desc' => __( 'This is the name that will be displayed for users on the front end of your site. Default setting uses first/last name as display name if it exists','ultimatemember' ), 'default' => 'full_name', 'options' => array( - 'username' => 'Username', - 'full_name' => 'First name & last name', - 'sur_name' => 'Last name & first name', - 'initial_name' => 'First name & first initial of last name', - 'initial_name_f' => 'First initial of first name & last name', - 'first_name' => 'First name only', - 'public_name' => 'Display name', - 'field' => 'Custom field(s)', + 'username' => __('Username','ultimatemember'), + 'full_name' => __('First name & last name','ultimatemember'), + 'sur_name' => __('Last name & first name','ultimatemember'), + 'initial_name' => __('First name & first initial of last name','ultimatemember'), + 'initial_name_f' => __('First initial of first name & last name','ultimatemember'), + 'first_name' => __('First name only','ultimatemember'), + 'public_name' => __('Display name','ultimatemember'), + 'field' => __('Custom field(s)','ultimatemember'), ), 'placeholder' => __('Select...') ), @@ -561,7 +561,7 @@ $this->sections[] = array( 'id' => 'inactive_email_sub', 'type' => 'text', 'title' => __( 'Account Deactivated Email','ultimatemember' ), - 'subtitle' => __( 'Subject Line' ), + 'subtitle' => __( 'Subject Line','ultimatemember' ), 'default' => 'Your account has been deactivated', 'required' => array( 'inactive_email_on', '=', 1 ), 'desc' => __('This is the subject line of the e-mail','ultimatemember'), @@ -1548,7 +1548,7 @@ $this->sections[] = array( $this->sections[] = array( 'subsection' => true, - 'title' => __( 'Login Form'), + 'title' => __( 'Login Form','ultimatemember'), 'fields' => array( array(