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:
nikitasinelnikov
2019-12-12 14:46:20 +02:00
18 changed files with 329 additions and 192 deletions
+1 -1
View File
@@ -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
View File
@@ -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 );
}
}
}
+1 -1
View File
@@ -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 {
+2 -2
View File
@@ -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();
}
+2 -2
View File
@@ -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;
}
+6
View File
@@ -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',
+2 -1
View File
@@ -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',
+1
View File
@@ -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 {
+19 -4
View File
@@ -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 );
+76 -64
View File
@@ -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 */
+44 -4
View File
@@ -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 );
/**
+5 -1
View File
@@ -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();
+67 -63
View File
@@ -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>&nbsp;{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 ""
+7
View File
@@ -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:
+2 -2
View File
@@ -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
View File
@@ -3,7 +3,7 @@
Plugin Name: Ultimate Member
Plugin URI: http://ultimatemember.com/
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
Version: 2.1.3-beta1
Version: 2.1.3-beta2
Author: Ultimate Member
Author URI: http://ultimatemember.com/
Text Domain: ultimate-member