mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-11 18:56:10 +09:00
Merge branch 'master' of https://github.com/ultimatemember/ultimatemember into feature/map_layout
# Conflicts: # assets/js/um-members.min.js
This commit is contained in:
@@ -161,7 +161,7 @@ body #content .um-directory a {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: baseline;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
width: 60%; }
|
||||
.um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line label {
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.1 KiB |
+71
-46
@@ -559,16 +559,22 @@ function um_run_search( directory ) {
|
||||
directory.data( 'page', 1 );
|
||||
um_set_url_from_data( directory, 'page', '' );
|
||||
|
||||
var show_after_search = directory.data('must-search');
|
||||
if ( show_after_search === 1 ) {
|
||||
var search = um_get_search( directory );
|
||||
if ( directory.find( '.um-members-filter-remove' ).length === 0 && ! search ) {
|
||||
directory.data( 'searched', 0 );
|
||||
directory.find('.um-members-grid, .um-members-list').remove();
|
||||
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
|
||||
directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
|
||||
um_members_hide_preloader( directory );
|
||||
return;
|
||||
|
||||
var ignore_after_search = false;
|
||||
ignore_after_search = wp.hooks.applyFilters( 'um_member_directory_ignore_after_search', ignore_after_search );
|
||||
|
||||
if ( ! ignore_after_search ) {
|
||||
var show_after_search = directory.data('must-search');
|
||||
if ( show_after_search === 1 ) {
|
||||
var search = um_get_search( directory );
|
||||
if ( directory.find( '.um-members-filter-remove' ).length === 0 && ! search ) {
|
||||
directory.data( 'searched', 0 );
|
||||
directory.find('.um-members-grid, .um-members-list').remove();
|
||||
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
|
||||
directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
|
||||
um_members_hide_preloader( directory );
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1108,16 +1114,21 @@ jQuery(document.body).ready( function() {
|
||||
directory.find('.um-clear-filters').show();
|
||||
}
|
||||
|
||||
var show_after_search = directory.data('must-search');
|
||||
if ( show_after_search === 1 ) {
|
||||
var search = um_get_search( directory );
|
||||
if ( directory.find( '.um-members-filter-remove' ).length === 0 && ! search ) {
|
||||
directory.data( 'searched', 0 );
|
||||
directory.find('.um-members-grid, .um-members-list').remove();
|
||||
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
|
||||
directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
|
||||
um_members_hide_preloader( directory );
|
||||
return;
|
||||
var ignore_after_search = false;
|
||||
ignore_after_search = wp.hooks.applyFilters( 'um_member_directory_ignore_after_search', ignore_after_search );
|
||||
|
||||
if ( ! ignore_after_search ) {
|
||||
var show_after_search = directory.data('must-search');
|
||||
if ( show_after_search === 1 ) {
|
||||
var search = um_get_search( directory );
|
||||
if ( directory.find( '.um-members-filter-remove' ).length === 0 && ! search ) {
|
||||
directory.data( 'searched', 0 );
|
||||
directory.find('.um-members-grid, .um-members-list').remove();
|
||||
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
|
||||
directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
|
||||
um_members_hide_preloader( directory );
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1211,16 +1222,21 @@ jQuery(document.body).ready( function() {
|
||||
directory.find('.um-clear-filters').parents('.um-member-directory-header-row').removeClass( 'um-header-row-invisible' );
|
||||
}
|
||||
|
||||
var show_after_search = directory.data('must-search');
|
||||
if ( show_after_search === 1 ) {
|
||||
var search = um_get_search( directory );
|
||||
if ( ! search ) {
|
||||
directory.data( 'searched', 0 );
|
||||
directory.find('.um-members-grid, .um-members-list').remove();
|
||||
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
|
||||
directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
|
||||
um_members_hide_preloader( directory );
|
||||
return;
|
||||
var ignore_after_search = false;
|
||||
ignore_after_search = wp.hooks.applyFilters( 'um_member_directory_ignore_after_search', ignore_after_search );
|
||||
|
||||
if ( ! ignore_after_search ) {
|
||||
var show_after_search = directory.data('must-search');
|
||||
if ( show_after_search === 1 ) {
|
||||
var search = um_get_search( directory );
|
||||
if ( ! search ) {
|
||||
directory.data( 'searched', 0 );
|
||||
directory.find('.um-members-grid, .um-members-list').remove();
|
||||
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
|
||||
directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
|
||||
um_members_hide_preloader( directory );
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1486,12 +1502,17 @@ jQuery(document.body).ready( function() {
|
||||
|
||||
});
|
||||
|
||||
var show_after_search = directory.data('must-search');
|
||||
if ( show_after_search === 1 ) {
|
||||
var search = um_get_search( directory );
|
||||
var filters_data = um_get_filters_data( directory );
|
||||
if ( ! filters_data.length && ! search ) {
|
||||
return;
|
||||
var ignore_after_search = false;
|
||||
ignore_after_search = wp.hooks.applyFilters( 'um_member_directory_ignore_after_search', ignore_after_search );
|
||||
|
||||
if ( ! ignore_after_search ) {
|
||||
var show_after_search = directory.data('must-search');
|
||||
if ( show_after_search === 1 ) {
|
||||
var search = um_get_search( directory );
|
||||
var filters_data = um_get_filters_data( directory );
|
||||
if ( ! filters_data.length && ! search ) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1611,17 +1632,21 @@ jQuery(document.body).ready( function() {
|
||||
}
|
||||
});
|
||||
|
||||
var ignore_after_search = false;
|
||||
ignore_after_search = wp.hooks.applyFilters( 'um_member_directory_ignore_after_search', ignore_after_search );
|
||||
|
||||
var show_after_search = directory.data('must-search');
|
||||
if ( show_after_search === 1 ) {
|
||||
var search = um_get_search( directory );
|
||||
var filters_data = um_get_filters_data( directory );
|
||||
if ( ! filters_data.length && ! search ) {
|
||||
directory.data( 'searched', 0 );
|
||||
um_members_hide_preloader( directory );
|
||||
return;
|
||||
} else {
|
||||
directory.data( 'searched', 1 );
|
||||
if ( ! ignore_after_search ) {
|
||||
var show_after_search = directory.data('must-search');
|
||||
if ( show_after_search === 1 ) {
|
||||
var search = um_get_search( directory );
|
||||
var filters_data = um_get_filters_data( directory );
|
||||
if ( ! filters_data.length && ! search ) {
|
||||
directory.data( 'searched', 0 );
|
||||
um_members_hide_preloader( directory );
|
||||
return;
|
||||
} else {
|
||||
directory.data( 'searched', 1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@ body
|
||||
&.um-member-directory-search-row
|
||||
justify-content: flex-end
|
||||
.um-member-directory-search-line
|
||||
+flex( row, flex-start, baseline, nowrap )
|
||||
+flex( row, flex-start, center, nowrap )
|
||||
width: 60%
|
||||
label
|
||||
flex: 1
|
||||
|
||||
@@ -14,6 +14,28 @@
|
||||
padding: 0 0 15px 0;
|
||||
}
|
||||
|
||||
.um-form-table.um-top-label .um-forms-line[data-field_type="icon"] td label {
|
||||
width: 100%;
|
||||
display: block;
|
||||
margin: 0 0 5px 0;
|
||||
}
|
||||
|
||||
.um_admin_fonticon_wrapper {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.um-admin-icon-value {
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.um_admin_fonticon_wrapper .um-admin-icon-value i {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
input[type=text].um-forms-field.um-long-field,
|
||||
select.um-forms-field.um-long-field,
|
||||
textarea.um-forms-field.um-long-field {
|
||||
|
||||
@@ -387,13 +387,13 @@ jQuery(document).ready(function() {
|
||||
jQuery(document.body).on('click', '#UM_fonticons a.um-admin-modal-back:not(.um-admin-modal-cancel)', function(){
|
||||
var v_id = '';
|
||||
var icon_selected = jQuery(this).attr('data-code');
|
||||
if (icon_selected != ''){
|
||||
if ( icon_selected != '' ) {
|
||||
if ( jQuery(this).attr('data-modal') ) {
|
||||
v_id = '#' + jQuery(this).attr('data-modal');
|
||||
} else {
|
||||
v_id = '.postbox';
|
||||
}
|
||||
jQuery( v_id ).find('input#_icon,input#_um_icon,input#notice__um_icon').val( icon_selected );
|
||||
jQuery( v_id ).find('input#_icon,input#_um_icon,input#notice__um_icon,input#um_profile_tab__icon').val( icon_selected );
|
||||
jQuery( v_id ).find('span.um-admin-icon-value').html('<i class="'+icon_selected+'"></i>');
|
||||
jQuery( v_id ).find('.um-admin-icon-clear').show();
|
||||
}
|
||||
|
||||
@@ -523,7 +523,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
|
||||
$value = $this->get_field_value( $field_data );
|
||||
$value_attr = ' value="' . $value . '" ';
|
||||
|
||||
$html = '<a href="javascript:void(0);" class="button" data-modal="UM_fonticons" data-modal-size="normal" data-dynamic-content="um_admin_fonticon_selector" data-arg1="" data-arg2="" data-back="">' . __( 'Choose Icon', 'ultimate-member' ) . '</a>
|
||||
$html = '<span class="um_admin_fonticon_wrapper"><a href="javascript:void(0);" class="button" data-modal="UM_fonticons" data-modal-size="normal" data-dynamic-content="um_admin_fonticon_selector" data-arg1="" data-arg2="" data-back="">' . __( 'Choose Icon', 'ultimate-member' ) . '</a>
|
||||
<span class="um-admin-icon-value">';
|
||||
|
||||
if ( ! empty( $value ) ) {
|
||||
@@ -540,7 +540,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
|
||||
$html .= '<span class="um-admin-icon-clear"><i class="um-icon-android-cancel"></i></span>';
|
||||
}
|
||||
|
||||
$html .= '</span>';
|
||||
$html .= '</span></span>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
@@ -128,6 +128,12 @@ $premium['unsplash'] = array(
|
||||
'desc' => 'Allow users to select a profile cover photo from <a href="https://unsplash.com/" target="_blank">Unsplash</a> from their profile',
|
||||
);
|
||||
|
||||
$premium['profile-tabs'] = array(
|
||||
'url' => 'https://ultimatemember.com/extensions/profile-tabs/',
|
||||
'name' => 'Profile Tabs',
|
||||
'desc' => 'Allow users to add custom tabs to profiles',
|
||||
);
|
||||
|
||||
$free['forumwp'] = array(
|
||||
'url' => 'https://ultimatemember.com/extensions/forumwp/',
|
||||
'name' => 'ForumWP',
|
||||
|
||||
@@ -47,6 +47,7 @@ if ( ! class_exists( 'um\Dependencies' ) ) {
|
||||
'online' => '2.1.1',
|
||||
'private-content' => '2.0.5',
|
||||
'profile-completeness' => '2.1.2',
|
||||
'profile-tabs' => '1.0.0',
|
||||
'recaptcha' => '2.1.2',
|
||||
'reviews' => '2.1.5',
|
||||
'social-activity' => '2.2.0',
|
||||
@@ -64,7 +65,7 @@ if ( ! class_exists( 'um\Dependencies' ) ) {
|
||||
|
||||
/*rc*/
|
||||
'user-notes' => '2.0',
|
||||
'profile-tabs' => '1.6',
|
||||
|
||||
|
||||
/*beta*/
|
||||
'frontend-posting' => '1.0',
|
||||
|
||||
@@ -37,6 +37,7 @@ if ( ! class_exists( 'UM' ) ) {
|
||||
* @method UM_User_Bookmarks User_Bookmarks()
|
||||
* @method UM_Unsplash Unsplash()
|
||||
* @method UM_ForumWP ForumWP()
|
||||
* @method UM_Profile_Tabs Profile_Tabs()
|
||||
*/
|
||||
final class UM extends UM_Functions {
|
||||
|
||||
|
||||
@@ -43,6 +43,22 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
|
||||
$this->js_baseurl = um_url . 'assets/js/';
|
||||
$this->css_baseurl = um_url . 'assets/css/';
|
||||
|
||||
add_action( 'init', array( &$this, 'scripts_enqueue_priority' ) );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function scripts_enqueue_priority() {
|
||||
add_action( 'wp_enqueue_scripts', array( &$this, 'wp_enqueue_scripts' ), $this->get_priority() );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
function get_priority() {
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
@@ -63,8 +79,7 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
$priority = apply_filters( 'um_core_enqueue_priority', 100 );
|
||||
add_action( 'wp_enqueue_scripts', array( &$this, 'wp_enqueue_scripts' ), $priority );
|
||||
return apply_filters( 'um_core_enqueue_priority', 100 );
|
||||
}
|
||||
|
||||
|
||||
@@ -80,7 +95,7 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
|
||||
wp_dequeue_script( 'select2');
|
||||
wp_deregister_script('select2');
|
||||
}
|
||||
wp_register_script( 'select2', $this->js_baseurl . 'select2/select2.full.min.js', array( 'jquery', 'jquery-masonry' ), ultimatemember_version, true );
|
||||
wp_register_script( 'select2', $this->js_baseurl . 'select2/select2.full.min.js', array( 'jquery' ), ultimatemember_version, true );
|
||||
|
||||
wp_register_script( 'um_scrollbar', $this->js_baseurl . 'simplebar' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
|
||||
|
||||
@@ -141,7 +156,7 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
|
||||
|
||||
wp_register_script('um_dropdown', $this->js_baseurl . 'dropdown' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
|
||||
|
||||
wp_register_script('um_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown', 'wp-hooks', 'jquery-masonry' ), ultimatemember_version, true );
|
||||
wp_register_script('um_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown', 'wp-hooks', 'jquery-masonry', 'um_scripts' ), ultimatemember_version, true );
|
||||
wp_register_script('um_profile', $this->js_baseurl . 'um-profile' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'wp-i18n' ), ultimatemember_version, true );
|
||||
wp_register_script('um_account', $this->js_baseurl . 'um-account' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
|
||||
|
||||
|
||||
@@ -21,6 +21,12 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
var $set_mode = '';
|
||||
|
||||
|
||||
/**
|
||||
* @var int form_id
|
||||
*/
|
||||
public $set_id = null;
|
||||
|
||||
|
||||
/**
|
||||
* Fields constructor.
|
||||
*/
|
||||
@@ -3869,76 +3875,82 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
/* Default */
|
||||
default:
|
||||
|
||||
$output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
|
||||
$_field_value = $this->field_value( $key, $default, $data );
|
||||
|
||||
if ( isset( $data['label'] ) || ! empty( $data['icon'] ) ) {
|
||||
if ( ! isset( $_field_value ) || $_field_value == '' ) {
|
||||
$output = '';
|
||||
} else {
|
||||
$output .= '<div ' . $this->get_atts( $key, $classes, $conditional, $data ) . '>';
|
||||
|
||||
if ( ! isset( $data['label'] ) ) {
|
||||
$data['label'] = '';
|
||||
if ( isset( $data['label'] ) || ! empty( $data['icon'] ) ) {
|
||||
|
||||
if ( ! isset( $data['label'] ) ) {
|
||||
$data['label'] = '';
|
||||
}
|
||||
|
||||
$output .= $this->field_label( $data['label'], $key, $data );
|
||||
}
|
||||
|
||||
$output .= $this->field_label( $data['label'], $key, $data );
|
||||
$res = $this->field_value( $key, $default, $data );
|
||||
|
||||
if ( ! empty( $res ) ) {
|
||||
$res = stripslashes( $res );
|
||||
}
|
||||
|
||||
$data['is_view_field'] = true;
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type filter
|
||||
* @title um_view_field
|
||||
* @description Change field HTML on view mode
|
||||
* @input_vars
|
||||
* [{"var":"$output","type":"string","desc":"Field HTML"},
|
||||
* {"var":"$data","type":"string","desc":"Field Data"},
|
||||
* {"var":"$type","type":"string","desc":"Field Type"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_filter( 'um_view_field', 'function_name', 10, 3 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_view_field', 'my_view_field', 10, 3 );
|
||||
* function my_form_edit_field( $output, $data, $type ) {
|
||||
* // your code here
|
||||
* return $output;
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
$res = apply_filters( 'um_view_field', $res, $data, $type );
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type filter
|
||||
* @title um_view_field_value_{$type}
|
||||
* @description Change field HTML on view mode by field type
|
||||
* @input_vars
|
||||
* [{"var":"$output","type":"string","desc":"Field HTML"},
|
||||
* {"var":"$data","type":"string","desc":"Field Data"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_filter( 'um_view_field_value_{$type}', 'function_name', 10, 2 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_view_field_value_{$type}', 'my_view_field', 10, 2 );
|
||||
* function my_form_edit_field( $output, $data ) {
|
||||
* // your code here
|
||||
* return $output;
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
$res = apply_filters( "um_view_field_value_{$type}", $res, $data );
|
||||
|
||||
$output .= '<div class="um-field-area">';
|
||||
$output .= '<div class="um-field-value">' . $res . '</div>';
|
||||
$output .= '</div>';
|
||||
|
||||
$output .= '</div>';
|
||||
}
|
||||
|
||||
$res = $this->field_value( $key, $default, $data );
|
||||
|
||||
if ( ! empty( $res ) ) {
|
||||
$res = stripslashes( $res );
|
||||
}
|
||||
|
||||
$data['is_view_field'] = true;
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type filter
|
||||
* @title um_view_field
|
||||
* @description Change field HTML on view mode
|
||||
* @input_vars
|
||||
* [{"var":"$output","type":"string","desc":"Field HTML"},
|
||||
* {"var":"$data","type":"string","desc":"Field Data"},
|
||||
* {"var":"$type","type":"string","desc":"Field Type"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_filter( 'um_view_field', 'function_name', 10, 3 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_view_field', 'my_view_field', 10, 3 );
|
||||
* function my_form_edit_field( $output, $data, $type ) {
|
||||
* // your code here
|
||||
* return $output;
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
$res = apply_filters( 'um_view_field', $res, $data, $type );
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type filter
|
||||
* @title um_view_field_value_{$type}
|
||||
* @description Change field HTML on view mode by field type
|
||||
* @input_vars
|
||||
* [{"var":"$output","type":"string","desc":"Field HTML"},
|
||||
* {"var":"$data","type":"string","desc":"Field Data"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage add_filter( 'um_view_field_value_{$type}', 'function_name', 10, 2 );
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_view_field_value_{$type}', 'my_view_field', 10, 2 );
|
||||
* function my_form_edit_field( $output, $data ) {
|
||||
* // your code here
|
||||
* return $output;
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
$res = apply_filters( "um_view_field_value_{$type}", $res, $data );
|
||||
|
||||
$output .= '<div class="um-field-area">';
|
||||
$output .= '<div class="um-field-value">' . $res . '</div>';
|
||||
$output .= '</div>';
|
||||
|
||||
$output .= '</div>';
|
||||
|
||||
break;
|
||||
|
||||
/* HTML */
|
||||
|
||||
@@ -490,7 +490,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
$values_array = ( ! empty( $users_roles['avail_roles'] ) && is_array( $users_roles['avail_roles'] ) ) ? array_keys( array_filter( $users_roles['avail_roles'] ) ) : array();
|
||||
}
|
||||
|
||||
if ( ! empty( $values_array ) && in_array( $attrs['type'], array( 'select','multiselect', 'checkbox', 'radio' ) ) ) {
|
||||
if ( ! empty( $values_array ) && in_array( $attrs['type'], array( 'select', 'multiselect', 'checkbox', 'radio' ) ) ) {
|
||||
$values_array = array_map( 'maybe_unserialize', $values_array );
|
||||
$temp_values = array();
|
||||
foreach ( $values_array as $values ) {
|
||||
@@ -546,7 +546,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
}
|
||||
|
||||
if ( $attrs['metakey'] != 'role_select' && empty( $custom_dropdown ) ) {
|
||||
$attrs['options'] = array_intersect( $attrs['options'], $values_array );
|
||||
$attrs['options'] = array_intersect( array_map( 'stripslashes', $attrs['options'] ), $values_array );
|
||||
} elseif ( ! empty( $custom_dropdown ) ) {
|
||||
$attrs['options'] = array_intersect_key( $attrs['options'], array_flip( $values_array ) );
|
||||
} else {
|
||||
@@ -568,7 +568,9 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
$attrs['label'] = strip_tags( $attrs['label'] );
|
||||
}
|
||||
|
||||
ksort( $attrs['options'] ); ?>
|
||||
ksort( $attrs['options'] );
|
||||
|
||||
$attrs['options'] = apply_filters( 'um_member_directory_filter_select_options_sorted', $attrs['options'], $attrs ); ?>
|
||||
|
||||
<select class="um-s1" id="<?php echo esc_attr( $filter ); ?>" name="<?php echo esc_attr( $filter ); ?>"
|
||||
data-placeholder="<?php esc_attr_e( stripslashes( $attrs['label'] ), 'ultimate-member' ); ?>"
|
||||
@@ -989,7 +991,12 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
// add roles to appear in directory
|
||||
if ( ! empty( $directory_data['roles'] ) ) {
|
||||
//since WP4.4 use 'role__in' argument
|
||||
$this->query_args['role__in'] = maybe_unserialize( $directory_data['roles'] );
|
||||
if ( ! empty( $this->query_args['role__in'] ) ) {
|
||||
$this->query_args['role__in'] = is_array( $this->query_args['role__in'] ) ? $this->query_args['role__in'] : array( $this->query_args['role__in'] );
|
||||
$this->query_args['role__in'] = array_intersect( $this->query_args['role__in'], maybe_unserialize( $directory_data['roles'] ) );
|
||||
} else {
|
||||
$this->query_args['role__in'] = maybe_unserialize( $directory_data['roles'] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2125,6 +2132,35 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update limit query
|
||||
*
|
||||
* @param $user_query
|
||||
*/
|
||||
function pagination_changes( $user_query ) {
|
||||
global $wpdb;
|
||||
|
||||
$directory_id = $this->get_directory_by_hash( $_POST['directory_id'] );
|
||||
$directory_data = UM()->query()->post_data( $directory_id );
|
||||
|
||||
$qv = $user_query->query_vars;
|
||||
|
||||
$number = $qv['number'];
|
||||
if ( ! empty( $directory_data['max_users'] ) && $qv['paged']*$qv['number'] > $directory_data['max_users'] ) {
|
||||
$number = ( $qv['paged']*$qv['number'] - ( $qv['paged']*$qv['number'] - $directory_data['max_users'] ) ) % $qv['number'];
|
||||
}
|
||||
|
||||
// limit
|
||||
if ( isset( $qv['number'] ) && $qv['number'] > 0 ) {
|
||||
if ( $qv['offset'] ) {
|
||||
$user_query->query_limit = $wpdb->prepare( 'LIMIT %d, %d', $qv['offset'], $number );
|
||||
} else {
|
||||
$user_query->query_limit = $wpdb->prepare( 'LIMIT %d, %d', $qv['number'] * ( $qv['paged'] - 1 ), $number );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Main Query function for getting members via AJAX
|
||||
*/
|
||||
@@ -2239,8 +2275,12 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
|
||||
add_filter( 'get_meta_sql', array( &$this, 'change_meta_sql' ), 10, 6 );
|
||||
|
||||
add_filter( 'pre_user_query', array( &$this, 'pagination_changes' ), 10, 1 );
|
||||
|
||||
$user_query = new \WP_User_Query( $this->query_args );
|
||||
|
||||
remove_filter( 'pre_user_query', array( &$this, 'pagination_changes' ), 10 );
|
||||
|
||||
remove_filter( 'get_meta_sql', array( &$this, 'change_meta_sql' ), 10 );
|
||||
|
||||
/**
|
||||
|
||||
@@ -159,10 +159,14 @@ if ( ! class_exists( 'um\core\Plugin_Updater' ) ) {
|
||||
'key' => 'filesharing',
|
||||
'title' => 'File Sharing',
|
||||
),
|
||||
'um-user-location/um-user-location.php' => array(
|
||||
'um-user-location/um-user-location.php' => array(
|
||||
'key' => 'user-location',
|
||||
'title' => 'User Location',
|
||||
),
|
||||
'um-profile-tabs/um-profile-tabs.php' => array(
|
||||
'key' => 'profile_tabs',
|
||||
'title' => 'Profile tabs',
|
||||
),
|
||||
);
|
||||
|
||||
$active_um_plugins = array();
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Ultimate Member\n"
|
||||
"POT-Creation-Date: 2019-12-04 11:13+0200\n"
|
||||
"PO-Revision-Date: 2019-12-04 11:13+0200\n"
|
||||
"POT-Creation-Date: 2019-12-09 14:29+0200\n"
|
||||
"PO-Revision-Date: 2019-12-09 14:29+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: en_US\n"
|
||||
@@ -103,7 +103,7 @@ msgstr ""
|
||||
#: includes/admin/core/class-admin-builder.php:765
|
||||
#: includes/admin/core/class-admin-dragdrop.php:33
|
||||
#: includes/admin/core/class-admin-menu.php:106
|
||||
#: includes/core/class-fields.php:4382
|
||||
#: includes/core/class-fields.php:4394
|
||||
msgid "Please login as administrator"
|
||||
msgstr ""
|
||||
|
||||
@@ -183,7 +183,7 @@ msgstr ""
|
||||
|
||||
#: includes/admin/core/class-admin-builder.php:1169
|
||||
#: includes/core/class-form.php:176 includes/core/class-form.php:350
|
||||
#: includes/core/class-password.php:533
|
||||
#: includes/core/class-password.php:535
|
||||
msgid "This is not possible for security reasons."
|
||||
msgstr ""
|
||||
|
||||
@@ -274,7 +274,7 @@ msgstr ""
|
||||
#: includes/admin/templates/form/register_customize.php:80
|
||||
#: includes/admin/templates/form/register_gdpr.php:27
|
||||
#: includes/core/class-builtin.php:1135 includes/core/class-builtin.php:1150
|
||||
#: includes/core/class-member-directory.php:952
|
||||
#: includes/core/class-member-directory.php:953
|
||||
#: includes/core/um-filters-members.php:40
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
@@ -1297,7 +1297,7 @@ msgid "The text that appears on the button. e.g. Upload"
|
||||
msgstr ""
|
||||
|
||||
#: includes/admin/core/class-admin-metabox.php:1959
|
||||
#: includes/core/class-fields.php:1638 includes/core/class-fields.php:1679
|
||||
#: includes/core/class-fields.php:1644 includes/core/class-fields.php:1685
|
||||
msgid "Upload"
|
||||
msgstr ""
|
||||
|
||||
@@ -2076,7 +2076,7 @@ msgstr ""
|
||||
#: includes/admin/core/class-admin-settings.php:409
|
||||
#: includes/core/class-builtin.php:732 includes/core/class-builtin.php:735
|
||||
#: includes/core/class-member-directory.php:244
|
||||
#: includes/core/class-member-directory.php:272
|
||||
#: includes/core/class-member-directory.php:273
|
||||
msgid "Nickname"
|
||||
msgstr ""
|
||||
|
||||
@@ -3161,7 +3161,7 @@ msgid "UM Action"
|
||||
msgstr ""
|
||||
|
||||
#: includes/admin/core/class-admin-users.php:124
|
||||
#: includes/core/class-fields.php:2544
|
||||
#: includes/core/class-fields.php:2550
|
||||
msgid "Apply"
|
||||
msgstr ""
|
||||
|
||||
@@ -3271,7 +3271,7 @@ msgstr ""
|
||||
#: includes/admin/core/list-tables/roles-list-table.php:22
|
||||
#: includes/admin/core/list-tables/roles-list-table.php:89
|
||||
#: includes/admin/core/list-tables/roles-list-table.php:402
|
||||
#: includes/core/class-member-directory.php:266
|
||||
#: includes/core/class-member-directory.php:267
|
||||
msgid "Roles"
|
||||
msgstr ""
|
||||
|
||||
@@ -4201,7 +4201,7 @@ msgstr ""
|
||||
#: includes/admin/templates/modal/dynamic_new_group.php:18
|
||||
#: includes/admin/templates/modal/fonticons.php:14
|
||||
#: includes/admin/templates/role/publish.php:24 includes/class-config.php:252
|
||||
#: includes/core/class-fields.php:2545 includes/core/class-fields.php:2642
|
||||
#: includes/core/class-fields.php:2551 includes/core/class-fields.php:2648
|
||||
#: includes/core/um-actions-profile.php:674
|
||||
#: includes/core/um-actions-profile.php:686
|
||||
#: includes/core/um-actions-profile.php:874
|
||||
@@ -4571,7 +4571,7 @@ msgid "Register"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-config.php:135 includes/class-config.php:789
|
||||
#: includes/core/class-member-directory.php:1996
|
||||
#: includes/core/class-member-directory.php:2013
|
||||
#: includes/core/um-actions-profile.php:1258
|
||||
#: includes/core/um-actions-user.php:19
|
||||
msgid "Logout"
|
||||
@@ -4866,12 +4866,12 @@ msgid "Username or E-mail"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-builtin.php:712 includes/core/class-builtin.php:715
|
||||
#: includes/core/class-member-directory.php:270
|
||||
#: includes/core/class-member-directory.php:271
|
||||
msgid "First Name"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-builtin.php:722 includes/core/class-builtin.php:725
|
||||
#: includes/core/class-member-directory.php:271
|
||||
#: includes/core/class-member-directory.php:272
|
||||
msgid "Last Name"
|
||||
msgstr ""
|
||||
|
||||
@@ -4885,7 +4885,7 @@ msgid "Registration Date"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-builtin.php:764 includes/core/class-builtin.php:767
|
||||
#: includes/core/class-member-directory.php:268
|
||||
#: includes/core/class-member-directory.php:269
|
||||
msgid "Last Login"
|
||||
msgstr ""
|
||||
|
||||
@@ -4894,12 +4894,12 @@ msgid "E-mail Address"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-builtin.php:786 includes/core/class-builtin.php:789
|
||||
#: includes/core/class-member-directory.php:273
|
||||
#: includes/core/class-member-directory.php:274
|
||||
msgid "Secondary E-mail Address"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-builtin.php:798 includes/core/class-builtin.php:801
|
||||
#: includes/core/class-member-directory.php:274
|
||||
#: includes/core/class-member-directory.php:275
|
||||
msgid "Biography"
|
||||
msgstr ""
|
||||
|
||||
@@ -4912,7 +4912,7 @@ msgid "Birth Date"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-builtin.php:825 includes/core/class-builtin.php:828
|
||||
#: includes/core/class-member-directory.php:264
|
||||
#: includes/core/class-member-directory.php:265
|
||||
msgid "Gender"
|
||||
msgstr ""
|
||||
|
||||
@@ -4925,7 +4925,7 @@ msgid "Female"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-builtin.php:836 includes/core/class-builtin.php:839
|
||||
#: includes/core/class-member-directory.php:263
|
||||
#: includes/core/class-member-directory.php:264
|
||||
msgid "Country"
|
||||
msgstr ""
|
||||
|
||||
@@ -4983,7 +4983,7 @@ msgid "Roles (Radio)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-builtin.php:1030
|
||||
#: includes/core/class-member-directory.php:265
|
||||
#: includes/core/class-member-directory.php:266
|
||||
msgid "Languages"
|
||||
msgstr ""
|
||||
|
||||
@@ -4997,12 +4997,12 @@ msgstr ""
|
||||
|
||||
#: includes/core/class-builtin.php:1042 includes/core/class-builtin.php:1045
|
||||
#: includes/core/class-builtin.php:1341
|
||||
#: includes/core/class-member-directory.php:275
|
||||
#: includes/core/class-member-directory.php:276
|
||||
msgid "Phone Number"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-builtin.php:1054 includes/core/class-builtin.php:1057
|
||||
#: includes/core/class-member-directory.php:276
|
||||
#: includes/core/class-member-directory.php:277
|
||||
msgid "Mobile Number"
|
||||
msgstr ""
|
||||
|
||||
@@ -6946,101 +6946,101 @@ msgstr ""
|
||||
msgid "Add translation to %s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:1263 templates/message.php:6
|
||||
#: includes/core/class-fields.php:1269 templates/message.php:6
|
||||
#, php-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:1284
|
||||
#: includes/core/class-fields.php:1290
|
||||
msgid "Custom Field"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:1627
|
||||
#: includes/core/class-fields.php:1633
|
||||
msgid "Please upload a valid image!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:1641
|
||||
#: includes/core/class-fields.php:1647
|
||||
msgid "Sorry this is not a valid image."
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:1644
|
||||
#: includes/core/class-fields.php:1650
|
||||
msgid "This image is too large!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:1647
|
||||
#: includes/core/class-fields.php:1653
|
||||
msgid "This image is too small!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:1650
|
||||
#: includes/core/class-fields.php:1656
|
||||
msgid "You can only upload one image"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:1682
|
||||
#: includes/core/class-fields.php:1688
|
||||
msgid "Sorry this is not a valid file."
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:1685
|
||||
#: includes/core/class-fields.php:1691
|
||||
msgid "This file is too large!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:1688
|
||||
#: includes/core/class-fields.php:1694
|
||||
msgid "This file is too small!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:1691
|
||||
#: includes/core/class-fields.php:1697
|
||||
msgid "You can only upload one file"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:2204
|
||||
#: includes/core/class-fields.php:2210
|
||||
msgid "Current Password"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:2233
|
||||
#: includes/core/class-fields.php:2239
|
||||
msgid "New Password"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:2265
|
||||
#: includes/core/class-fields.php:2271
|
||||
#, php-format
|
||||
msgid "Confirm %s"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:2499
|
||||
#: includes/core/class-fields.php:2505
|
||||
msgid "Upload Photo"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:2520 includes/core/class-fields.php:2544
|
||||
#: includes/core/class-fields.php:2526 includes/core/class-fields.php:2550
|
||||
#: includes/core/um-actions-profile.php:905
|
||||
msgid "Change photo"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:2544 includes/core/class-fields.php:2641
|
||||
#: includes/core/class-fields.php:2550 includes/core/class-fields.php:2647
|
||||
msgid "Processing..."
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:2566
|
||||
#: includes/core/class-fields.php:2572
|
||||
msgid "Upload File"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:2608 includes/core/um-filters-fields.php:267
|
||||
#: includes/core/class-fields.php:2614 includes/core/um-filters-fields.php:267
|
||||
msgid "This file has been removed."
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:2611 includes/core/class-fields.php:2641
|
||||
#: includes/core/class-fields.php:2617 includes/core/class-fields.php:2647
|
||||
msgid "Change file"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:2641
|
||||
#: includes/core/class-fields.php:2647
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:4115
|
||||
#: includes/core/class-fields.php:4127
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some "
|
||||
"information!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-fields.php:4117
|
||||
#: includes/core/class-fields.php:4129
|
||||
msgid "This user has not added any information to their profile yet."
|
||||
msgstr ""
|
||||
|
||||
@@ -7077,7 +7077,7 @@ msgstr ""
|
||||
msgid "You can not edit this user"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-mail.php:615 includes/core/class-password.php:701
|
||||
#: includes/core/class-mail.php:615 includes/core/class-password.php:703
|
||||
#: includes/core/class-profile.php:470
|
||||
msgid "Your set password"
|
||||
msgstr ""
|
||||
@@ -7111,83 +7111,87 @@ msgid "Display name"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-member-directory.php:248
|
||||
msgid "Last & First name"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-member-directory.php:249
|
||||
msgid "Last login"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-member-directory.php:255
|
||||
#: includes/core/class-member-directory.php:256
|
||||
msgid "Random"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-member-directory.php:256
|
||||
#: includes/core/class-member-directory.php:257
|
||||
msgid "Other (Custom Field)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-member-directory.php:267
|
||||
#: includes/core/class-member-directory.php:268
|
||||
msgid "Age"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-member-directory.php:269
|
||||
#: includes/core/class-member-directory.php:270
|
||||
msgid "User Registered"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-member-directory.php:750
|
||||
#: includes/core/class-member-directory.php:751
|
||||
msgid " stars"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-member-directory.php:758
|
||||
#: includes/core/class-member-directory.php:759
|
||||
msgid "<strong>Age:</strong> {min_range} - {max_range} years old"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-member-directory.php:1941
|
||||
#: includes/core/class-member-directory.php:1985
|
||||
#: includes/core/class-member-directory.php:1958
|
||||
#: includes/core/class-member-directory.php:2002
|
||||
#: includes/core/um-actions-profile.php:1225
|
||||
#: includes/core/um-actions-profile.php:1256
|
||||
msgid "Edit Profile"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-member-directory.php:1991
|
||||
#: includes/core/class-member-directory.php:2008
|
||||
#: includes/core/um-actions-profile.php:1257
|
||||
msgid "My Account"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-password.php:458
|
||||
#: includes/core/class-password.php:460
|
||||
msgid "Please provide your username or email"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-password.php:462
|
||||
#: includes/core/class-password.php:464
|
||||
msgid "We can't find an account registered with that address or username"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-password.php:481
|
||||
#: includes/core/class-password.php:483
|
||||
msgid ""
|
||||
"You have reached the limit for requesting password change for this user "
|
||||
"already. Contact support if you cannot open the email"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-password.php:537
|
||||
#: includes/core/class-password.php:539
|
||||
msgid "You must enter a new password"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-password.php:543 includes/core/um-actions-account.php:58
|
||||
#: includes/core/class-password.php:545 includes/core/um-actions-account.php:58
|
||||
msgid "Your password must contain at least 8 characters"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-password.php:547 includes/core/um-actions-account.php:62
|
||||
#: includes/core/class-password.php:549 includes/core/um-actions-account.php:62
|
||||
msgid "Your password must contain less than 30 characters"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-password.php:551 includes/core/um-actions-account.php:66
|
||||
#: includes/core/class-password.php:553 includes/core/um-actions-account.php:66
|
||||
#: includes/core/um-actions-form.php:531
|
||||
msgid ""
|
||||
"Your password must contain at least one lowercase letter, one capital letter "
|
||||
"and one number"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-password.php:557
|
||||
#: includes/core/class-password.php:559
|
||||
msgid "You must confirm your new password"
|
||||
msgstr ""
|
||||
|
||||
#: includes/core/class-password.php:561 includes/core/um-actions-form.php:540
|
||||
#: includes/core/class-password.php:563 includes/core/um-actions-form.php:540
|
||||
msgid "Your passwords do not match"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ Read about all of the plugin's features at [Ultimate Member](https://ultimatemem
|
||||
|
||||
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.
|
||||
|
||||
* [Profile Tabs](https://ultimatemember.com/extensions/profile-tabs/) - Allow users to add custom tabs to profiles
|
||||
* [Unsplash](https://ultimatemember.com/extensions/unsplash/) - Allow users to select a profile cover photo from [Unsplash](https://unsplash.com/) from their profile
|
||||
* [User Bookmarks](https://ultimatemember.com/extensions/user-bookmarks/) - Allow users to bookmark content from your website
|
||||
* [User Photos](https://ultimatemember.com/extensions/user-photos/) - Allow users to upload photos to their profile
|
||||
@@ -150,6 +151,12 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
|
||||
|
||||
- Added sorting by Last & First name
|
||||
|
||||
* Bugfixes:
|
||||
|
||||
- Fixed issues with pagination settings
|
||||
- Fixed issues with member results JS template
|
||||
- Fixed small CSS issues
|
||||
|
||||
= 2.1.2: December 4, 2019 =
|
||||
|
||||
* Enhancements:
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
<script type="text/template" id="tmpl-um-members-header">
|
||||
<div class="um-members-intro">
|
||||
<div class="um-members-total">
|
||||
<# if ( data.users.length == 1 ) { #>
|
||||
<# if ( data.pagination.total_users == 1 ) { #>
|
||||
{{{data.pagination.header_single}}}
|
||||
<# } else if ( data.users.length > 1 ) { #>
|
||||
<# } else if ( data.pagination.total_users > 1 ) { #>
|
||||
{{{data.pagination.header}}}
|
||||
<# } #>
|
||||
</div>
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
Plugin Name: Ultimate Member
|
||||
Plugin URI: http://ultimatemember.com/
|
||||
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
|
||||
Version: 2.1.3-beta1
|
||||
Version: 2.1.3-beta2
|
||||
Author: Ultimate Member
|
||||
Author URI: http://ultimatemember.com/
|
||||
Text Domain: ultimate-member
|
||||
|
||||
Reference in New Issue
Block a user