- member directories upgrade;

- user tags integration;
- fixed member directory pagination;
- fixed styles;
This commit is contained in:
nikitasinelnikov
2019-09-30 01:27:01 +03:00
parent 77e3cc608b
commit 245ddd4270
20 changed files with 459 additions and 143 deletions
+57 -28
View File
@@ -373,6 +373,18 @@ body #content .um-directory a {
-moz-border-radius: 0 !important; -moz-border-radius: 0 !important;
-webkit-border-radius: 0 !important; -webkit-border-radius: 0 !important;
border-radius: 0 !important; } border-radius: 0 !important; }
.um-directory .um-members-wrapper .um-members .um-member .um-member-card .um-member-name {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: baseline;
flex-wrap: nowrap; }
.um-directory .um-members-wrapper .um-members .um-member .um-member-card .um-member-name a {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
flex-wrap: nowrap; }
.um-directory .um-members-wrapper .um-members img { .um-directory .um-members-wrapper .um-members img {
display: block; display: block;
overflow: hidden; overflow: hidden;
@@ -448,7 +460,8 @@ body #content .um-directory a {
.um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card.no-photo { .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card.no-photo {
padding-top: 30px; } padding-top: 30px; }
.um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-name { .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-name {
margin: 0 0 4px 0; } margin: 0 0 4px 0;
justify-content: center; }
.um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-name a { .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-name a {
font-size: 16px; font-size: 16px;
line-height: 26px; line-height: 26px;
@@ -564,7 +577,7 @@ body #content .um-directory a {
align-items: flex-start; align-items: flex-start;
flex-wrap: nowrap; flex-wrap: nowrap;
width: 100%; width: 100%;
margin: 0; margin: 0 0 10px 0;
padding: 0; } padding: 0; }
.um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-photo { .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-photo {
width: 100px; width: 100px;
@@ -685,7 +698,8 @@ body #content .um-directory a {
line-height: 1; } line-height: 1; }
.um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions .um-member-cog .um-new-dropdown { .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions .um-member-cog .um-new-dropdown {
width: 180px; width: 180px;
right: 0; } right: 0;
text-align: left; }
.um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions a { .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions a {
box-sizing: border-box; } box-sizing: border-box; }
.um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions div[class$="stats"] { .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions div[class$="stats"] {
@@ -729,7 +743,7 @@ body #content .um-directory a {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: flex-end; justify-content: flex-end;
align-items: baseline; align-items: center;
flex-wrap: nowrap; flex-wrap: nowrap;
width: 100%; } width: 100%; }
.um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons { .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
@@ -740,6 +754,15 @@ body #content .um-directory a {
flex-wrap: nowrap; flex-wrap: nowrap;
width: calc( 100% - 145px); width: calc( 100% - 145px);
margin: 0 10px 0 0; } margin: 0 10px 0 0; }
.um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: baseline;
flex-wrap: nowrap;
margin: 0; }
.um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons > :not(:last-child) {
margin: 0 10px 0 0; }
.um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-reveal-buttons { .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-reveal-buttons {
width: 20px; width: 20px;
text-align: right; } text-align: right; }
@@ -868,14 +891,20 @@ body #content .um-directory a {
height: 50px; } height: 50px; }
.um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card { .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card {
width: calc( 100% - 60px); } width: calc( 100% - 60px); }
.um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons { .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer {
display: flex; align-items: flex-start; }
flex-direction: row; .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
justify-content: flex-start; display: flex;
align-items: baseline; flex-direction: column;
flex-wrap: nowrap; justify-content: flex-start;
width: calc( 100% - 90px); align-items: stretch;
margin: 0 10px 0 0; } flex-wrap: nowrap;
width: calc( 100% - 90px);
margin: 0 10px 0 0; }
.um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
margin: 0 0 5px 0; }
.um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper a.um-button {
width: 100% !important; }
.um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line { .um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line {
width: 100%; } width: 100%; }
.um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row.um-member-directory-search-row { .um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row.um-member-directory-search-row {
@@ -902,14 +931,14 @@ body #content .um-directory a {
height: 70px; } height: 70px; }
.um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card { .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card {
width: calc( 100% - 80px); } width: calc( 100% - 80px); }
.um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons { .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer {
display: flex; align-items: flex-start; }
flex-direction: row; .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
justify-content: flex-start; flex-wrap: wrap;
align-items: baseline; width: calc( 100% - 110px);
flex-wrap: nowrap; margin: 0 10px 0 0; }
width: calc( 100% - 110px); .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
margin: 0 10px 0 0; } margin: 0 10px 5px 0; }
.um-directory.uimob800 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line { .um-directory.uimob800 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line {
width: 100%; } width: 100%; }
.um-directory.uimob800 .um-member-directory-header .um-search { .um-directory.uimob800 .um-member-directory-header .um-search {
@@ -929,14 +958,14 @@ body #content .um-directory a {
height: 80px; } height: 80px; }
.um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card { .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card {
width: calc( 100% - 90px); } width: calc( 100% - 90px); }
.um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons { .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer {
display: flex; align-items: flex-start; }
flex-direction: row; .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons {
justify-content: flex-start; flex-wrap: wrap;
align-items: baseline; width: calc( 100% - 120px);
flex-wrap: nowrap; margin: 0 10px 0 0; }
width: calc( 100% - 120px); .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper {
margin: 0 10px 0 0; } margin: 0 10px 5px 0; }
.um-directory.uimob960 .um-member-directory-header .um-search { .um-directory.uimob960 .um-member-directory-header .um-search {
grid-template-columns: repeat(2, 1fr); } grid-template-columns: repeat(2, 1fr); }
.um-directory.uimob960 .um-members-wrapper .um-members.um-members-grid .um-gutter-sizer { .um-directory.uimob960 .um-members-wrapper .um-members.um-members-grid .um-gutter-sizer {
+10
View File
@@ -62,6 +62,16 @@
line-height: 36px; line-height: 36px;
height: 36px; height: 36px;
font-size: 20px; font-size: 20px;
border-radius: 999px;
color: #fff !important;
opacity: 0.85;
margin: 0 1px;
transition: 0.25s;
display: inline-block;
}
.um-profile-connect.um-member-connect a:hover {
opacity: 1;
} }
/* pop effect */ /* pop effect */
+131 -7
View File
@@ -67,6 +67,9 @@ function um_set_url_from_data( directory, key, value ) {
jQuery.each( new_data, function( data_key ) { jQuery.each( new_data, function( data_key ) {
query_strings.push( data_key + '=' + new_data[ data_key ] ); query_strings.push( data_key + '=' + new_data[ data_key ] );
}); });
query_strings = wp.hooks.applyFilters( 'um_member_directory_url_attrs', query_strings );
var query_string = '?' + query_strings.join( '&' ); var query_string = '?' + query_strings.join( '&' );
if ( query_string === '?' ) { if ( query_string === '?' ) {
@@ -130,12 +133,6 @@ function um_get_search( directory ) {
function um_get_sort( directory ) { function um_get_sort( directory ) {
return directory.data( 'sorting' ); return directory.data( 'sorting' );
/*if ( directory.find('.um-member-directory-sorting-options').length ) {
return directory.find( '.um-member-directory-sorting-options' ).val();
} else {
return '';
}*/
} }
function um_get_current_page( directory ) { function um_get_current_page( directory ) {
@@ -214,6 +211,8 @@ function um_ajax_get_members( directory, args ) {
}); });
} }
request = wp.hooks.applyFilters( 'um_member_directory_filter_request', request );
wp.ajax.send( 'um_get_members', { wp.ajax.send( 'um_get_members', {
data: request, data: request,
success: function( answer ) { success: function( answer ) {
@@ -909,6 +908,8 @@ jQuery(document).ready( function() {
//set 1st page after filtration //set 1st page after filtration
directory.data( 'page', 1 ); directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', '' ); um_set_url_from_data( directory, 'page', '' );
jQuery(this).tipsy('hide');
jQuery(this).parents('.um-members-filter-tag').remove(); jQuery(this).parents('.um-members-filter-tag').remove();
if ( directory.find( '.um-members-filter-remove' ).length === 0 ) { if ( directory.find( '.um-members-filter-remove' ).length === 0 ) {
@@ -997,7 +998,14 @@ jQuery(document).ready( function() {
um_set_url_from_data( directory, 'page', '' ); um_set_url_from_data( directory, 'page', '' );
directory.find('.um-members-filter-tag').remove(); directory.find('.um-members-filter-tag').remove();
jQuery(this).hide(); //jQuery(this).hide();
if ( directory.find( '.um-members-filter-remove' ).length === 0 ) {
directory.find('.um-clear-filters').hide();
directory.find('.um-clear-filters').parents('.um-member-directory-header-row').addClass( 'um-header-row-invisible' );
} else {
directory.find('.um-clear-filters').show();
directory.find('.um-clear-filters').parents('.um-member-directory-header-row').removeClass( 'um-header-row-invisible' );
}
var show_after_search = directory.data('must-search'); var show_after_search = directory.data('must-search');
if ( show_after_search === 1 ) { if ( show_after_search === 1 ) {
@@ -1270,7 +1278,123 @@ jQuery(document).ready( function() {
//history events when back/forward and change window.location.hash //history events when back/forward and change window.location.hash
window.addEventListener( "popstate", function(e) { window.addEventListener( "popstate", function(e) {
jQuery( '.um-directory' ).each( function() {
var directory = jQuery(this);
var hash = um_members_get_hash( directory );
um_member_directories.push( hash );
um_members_show_preloader( directory );
// clear layout and header
directory.find('.um-members-grid, .um-members-list, .um-members-intro').remove();
// set search from history
if ( directory.find( '.um-member-directory-search-line' ).length ) {
var search = um_get_data_for_directory( directory, 'search' );
if ( typeof search == 'undefined' ) {
search = '';
}
directory.data( 'general_search', search );
directory.find('.um-search-line').val( search );
}
//sorting from history
if ( directory.find( '.um-member-directory-sorting' ).length ) {
var sort = um_get_data_for_directory( directory, 'sort' );
if ( typeof sort == 'undefined' ) {
sort = directory.find( '.um-new-dropdown[data-element=".um-member-directory-sorting-a"]' ).find('a[data-default="1"]').data('value');
}
directory.data( 'sorting', sort );
var sort_dropdown = directory.find( '.um-new-dropdown[data-element=".um-member-directory-sorting-a"]' );
sort_dropdown.find('a').data('selected', 0).prop('data-selected', 0).attr('data-selected', 0);
sort_dropdown.find('a[data-value="' + sort + '"]').data('selected', 1).prop('data-selected', 1).attr('data-selected', 1);
directory.find('.um-member-directory-sorting-a').find('> a').html( sort_dropdown.find('a[data-value="' + sort + '"]').html() );
}
//view type from history
if ( directory.find( '.um-member-directory-view-type' ).length ) {
var layout = um_get_data_for_directory( directory, 'view_type' );
if ( typeof layout == 'undefined' ) {
layout = directory.find( '.um-member-directory-view-type-a[data-default="1"]' ).data('type');
}
directory.data( 'view_type', layout );
directory.find('.um-member-directory-view-type .um-member-directory-view-type-a').hide();
directory.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="' + layout + '"]').show();
}
//datepicker filter
directory.find('.um-datepicker-filter').each( function() {
var elem = jQuery(this);
var $picker = elem.pickadate('picker');
var $fname = elem.data('filter_name');
var $frange = elem.data('range');
var query_value = um_get_data_for_directory( directory, 'filter_' + $fname + '_' + $frange );
if ( typeof query_value !== 'undefined' ) {
$picker.set( 'select', query_value*1000 );
} else {
$picker.clear();
}
});
directory.find('.um-slider').each( function() {
var slider = jQuery( this );
var filter_name = slider.data('field_name');
var min_default_value = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
var max_default_value = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
if ( typeof min_default_value == 'undefined' ) {
min_default_value = slider.data('min');
}
min_default_value = parseInt( min_default_value );
if ( typeof max_default_value == 'undefined' ) {
max_default_value = slider.data('max');
}
max_default_value = parseInt( max_default_value );
slider.slider( 'values', [min_default_value, max_default_value] );
um_set_range_label( slider );
});
//timepicker filter
directory.find('.um-timepicker-filter').each( function() {
var elem = jQuery(this);
var $picker = elem.pickatime('picker');
var $fname = elem.data('filter_name');
var $frange = elem.data('range');
var query_value = um_get_data_for_directory( directory, 'filter_' + $fname + '_' + $frange );
if ( typeof query_value !== 'undefined' ) {
var arr = query_value.split(':');
$picker.set( 'select', arr[0]*60 );
} else {
$picker.clear();
}
});
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 );
}
}
um_ajax_get_members( directory );
um_change_tag( directory );
});
}); });
}); });
+1 -1
View File
File diff suppressed because one or more lines are too long
+31 -5
View File
@@ -339,6 +339,12 @@ body
-moz-border-radius: 0 !important -moz-border-radius: 0 !important
-webkit-border-radius: 0 !important -webkit-border-radius: 0 !important
border-radius: 0 !important border-radius: 0 !important
.um-member-card
.um-member-name
+flex( row, flex-start, baseline, nowrap )
a
+flex( row, flex-start, center, nowrap )
img img
display: block display: block
@@ -424,6 +430,7 @@ body
.um-member-name .um-member-name
margin: 0 0 4px 0 margin: 0 0 4px 0
justify-content: center
a a
font-size: 16px font-size: 16px
line-height: 26px line-height: 26px
@@ -544,7 +551,7 @@ body
.um-member-card-container .um-member-card-container
+flex( row, flex-start, flex-start, nowrap ) +flex( row, flex-start, flex-start, nowrap )
width: 100% width: 100%
margin: 0 margin: 0 0 10px 0
padding: 0 padding: 0
.um-member-photo .um-member-photo
width: 100px width: 100px
@@ -659,6 +666,7 @@ body
.um-new-dropdown .um-new-dropdown
width: 180px width: 180px
right: 0 right: 0
text-align: left
a a
box-sizing: border-box box-sizing: border-box
@@ -703,13 +711,20 @@ body
content: "\f013" content: "\f013"
.um-member-card-footer .um-member-card-footer
+flex( row, flex-end, baseline, nowrap ) +flex( row, flex-end, center, nowrap )
width: 100% width: 100%
.um-member-card-footer-buttons .um-member-card-footer-buttons
+flex( row, flex-start, baseline, nowrap ) +flex( row, flex-start, baseline, nowrap )
width: calc( 100% - 145px ) width: calc( 100% - 145px )
margin: 0 10px 0 0 margin: 0 10px 0 0
.um-members-list-footer-button-wrapper
+flex( row, flex-start, baseline, nowrap )
margin: 0
//flex: 1 0 calc( ( 100% - 20px ) / 3 )
& > :not(:last-child)
margin: 0 10px 0 0
.um-member-card-reveal-buttons .um-member-card-reveal-buttons
width: 20px width: 20px
text-align: right text-align: right
@@ -865,10 +880,15 @@ body
width: calc( 100% - 60px ) width: calc( 100% - 60px )
.um-member-card-footer .um-member-card-footer
align-items: flex-start
.um-member-card-footer-buttons .um-member-card-footer-buttons
+flex( row, flex-start, baseline, nowrap ) +flex( column, flex-start, stretch, nowrap )
width: calc( 100% - 90px ) width: calc( 100% - 90px )
margin: 0 10px 0 0 margin: 0 10px 0 0
.um-members-list-footer-button-wrapper
margin: 0 0 5px 0
a.um-button
width: 100% !important
&.uimob500 &.uimob500
@@ -908,10 +928,13 @@ body
.um-member-card .um-member-card
width: calc( 100% - 80px ) width: calc( 100% - 80px )
.um-member-card-footer .um-member-card-footer
align-items: flex-start
.um-member-card-footer-buttons .um-member-card-footer-buttons
+flex( row, flex-start, baseline, nowrap ) flex-wrap: wrap
width: calc( 100% - 110px ) width: calc( 100% - 110px )
margin: 0 10px 0 0 margin: 0 10px 0 0
.um-members-list-footer-button-wrapper
margin: 0 10px 5px 0
&.uimob800 &.uimob800
.um-member-directory-header .um-member-directory-header
.um-member-directory-header-row .um-member-directory-header-row
@@ -942,10 +965,13 @@ body
.um-member-card .um-member-card
width: calc( 100% - 90px ) width: calc( 100% - 90px )
.um-member-card-footer .um-member-card-footer
align-items: flex-start
.um-member-card-footer-buttons .um-member-card-footer-buttons
+flex( row, flex-start, baseline, nowrap ) flex-wrap: wrap
width: calc( 100% - 120px ) width: calc( 100% - 120px )
margin: 0 10px 0 0 margin: 0 10px 0 0
.um-members-list-footer-button-wrapper
margin: 0 10px 5px 0
&.uimob960 &.uimob960
.um-member-directory-header .um-member-directory-header
.um-search .um-search
@@ -1,14 +0,0 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit;
function um_upgrade_metadata210alpha3() {
UM()->admin()->check_ajax_nonce();
um_maybe_unset_time_limit();
include 'metadata.php';
update_option( 'um_last_version_upgrade', '2.1.0-alpha3' );
wp_send_json_success( array( 'message' => __( 'Usermeta was upgraded successfully', 'ultimate-member' ) ) );
}
@@ -1,5 +0,0 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit;
return array(
'metadata210alpha3' => 'metadata210alpha3',
);
@@ -1,31 +0,0 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
<script type="text/javascript">
jQuery( document ).ready( function() {
//upgrade styles
um_add_upgrade_log( '<?php echo esc_js( __( 'Upgrade user metadata...', 'ultimate-member' ) ) ?>' );
jQuery.ajax({
url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
action: 'um_metadata210alpha3',
nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
//switch to the next package
um_run_upgrade();
} else {
um_wrong_ajax();
}
},
error: function() {
um_something_wrong();
}
});
});
</script>
@@ -0,0 +1,25 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit;
function um_upgrade_metadata210alpha4() {
UM()->admin()->check_ajax_nonce();
um_maybe_unset_time_limit();
include 'metadata.php';
wp_send_json_success( array( 'message' => __( 'Usermeta was upgraded successfully', 'ultimate-member' ) ) );
}
function um_upgrade_memberdir210alpha4() {
UM()->admin()->check_ajax_nonce();
um_maybe_unset_time_limit();
include 'member-directory.php';
update_option( 'um_last_version_upgrade', '2.1.0-alpha4' );
wp_send_json_success( array( 'message' => __( 'Member directories were upgraded successfully', 'ultimate-member' ) ) );
}
@@ -0,0 +1,6 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit;
return array(
'metadata210alpha4' => 'metadata210alpha4',
'memberdir210alpha4' => 'memberdir210alpha4',
);
@@ -0,0 +1,57 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
<script type="text/javascript">
jQuery( document ).ready( function() {
//upgrade styles
um_add_upgrade_log( '<?php echo esc_js( __( 'Upgrade user metadata...', 'ultimate-member' ) ) ?>' );
jQuery.ajax({
url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
action: 'um_metadata210alpha4',
nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
um_memberdir210();
} else {
um_wrong_ajax();
}
},
error: function() {
um_something_wrong();
}
});
//clear users cache
function um_memberdir210() {
um_add_upgrade_log( '<?php echo esc_js( __( 'Upgrade Member Directories...', 'ultimate-member' ) ) ?>' );
jQuery.ajax({
url: wp.ajax.settings.url,
type: 'POST',
dataType: 'json',
data: {
action: 'um_memberdir210alpha4',
nonce: um_admin_scripts.nonce
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
//switch to the next package
um_run_upgrade();
} else {
um_wrong_ajax();
}
},
error: function() {
um_something_wrong();
}
});
}
});
</script>
@@ -0,0 +1,93 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit;
global $wpdb;
//update show messages button setting to hide messages button
$postmeta = $wpdb->get_results( "SELECT * FROM {$wpdb->postmeta} WHERE meta_key='_um_show_pm_button'", ARRAY_A );
if ( ! empty( $postmeta ) ) {
foreach ( $postmeta as $row ) {
$value = ( $row['meta_value'] == 0 ) ? 1 : 0;
update_post_meta( $row['post_id'], '_um_hide_pm_button', $value );
}
$wpdb->delete( "{$wpdb->postmeta}",
array(
'meta_value' => '_um_show_pm_button',
),
array(
'%s'
)
);
}
// Update role_select and role_radio filters to role
$postmeta = $wpdb->get_results( "SELECT * FROM {$wpdb->postmeta} WHERE meta_key='_um_search_fields'", ARRAY_A );
if ( ! empty( $postmeta ) ) {
foreach ( $postmeta as $row ) {
$meta_value = maybe_unserialize( $row['meta_value'] );
if ( is_array( $meta_value ) ) {
$update = false;
if ( false !== ( $index = array_search( 'role_select', $meta_value ) ) ) {
unset( $meta_value[ array_search( 'role_select', $meta_value ) ] );
$meta_value[] = 'role';
$update = true;
}
if ( false !== ( $index = array_search( 'role_radio', $meta_value ) ) ) {
unset( $meta_value[ array_search( 'role_radio', $meta_value ) ] );
$meta_value[] = 'role';
$update = true;
}
if ( $update ) {
update_post_meta( $row['post_id'], '_um_search_fields', array_unique( $meta_value ) );
}
}
}
}
$forms_query = new WP_Query;
$member_directories = $forms_query->query( array(
'post_type' => 'um_directory',
'posts_per_page' => -1,
'fields' => 'ids',
) );
if ( ! empty( $member_directories ) && ! is_wp_error( $member_directories ) ) {
foreach ( $member_directories as $id ) {
update_post_meta( $id, '_um_view_types', array( 'grid' ) );
update_post_meta( $id, '_um_default_view', 'grid' );
$search_enabled = get_post_meta( $id, '_um_search', true );
if ( $search_enabled ) {
$search_fields = $search_fields_old = get_post_meta( $id, '_um_search_fields', true );
if ( ! empty( $search_fields ) ) {
$can_search_roles = get_post_meta( $id, '_um_roles_can_search', true );
if ( false !== ( $last_login_key = array_search( '_um_last_login', $search_fields ) ) ) {
unset( $search_fields[ $last_login_key ] );
$search_fields[] = 'last_login';
}
$filter_fields = array_intersect( $search_fields, array_keys( UM()->member_directory()->filter_fields ) );
$general_search_fields = array_diff( $search_fields, array_keys( UM()->member_directory()->filter_fields ) );
$search_active = count( $general_search_fields ) > 0 ? 1 : 0;
update_post_meta( $id, '_um_search', $search_active );
update_post_meta( $id, '_um_filters', 1 );
update_post_meta( $id, '_um_roles_can_filter', $can_search_roles );
update_post_meta( $id, '_um_search_fields', $filter_fields );
update_post_meta( $id, '_um_search_fields_old', $search_fields_old );
} else {
update_post_meta( $id, '_um_search', 0 );
update_post_meta( $id, '_um_filters', 0 );
}
}
update_post_meta( $id, '_um_search_old', $search_enabled );
}
}
+2 -11
View File
@@ -2,14 +2,6 @@
global $post_id; global $post_id;
$meta = get_post_custom( get_the_ID() );
foreach( $meta as $k => $v ) {
if ( strstr( $k, '_um_' ) && !is_array( $v[0] ) ) {
//print "'$k' => '" . $v[0] . "',<br />";
}
}
$_um_roles_value = get_post_meta( $post_id, '_um_roles', true ); $_um_roles_value = get_post_meta( $post_id, '_um_roles', true );
$_um_roles_value = empty( $_um_roles_value ) ? array() : $_um_roles_value; $_um_roles_value = empty( $_um_roles_value ) ? array() : $_um_roles_value;
@@ -19,7 +11,7 @@ if ( $show_these_users ) {
} }
$_um_view_types_value = get_post_meta( $post_id, '_um_view_types', true ); $_um_view_types_value = get_post_meta( $post_id, '_um_view_types', true );
$_um_view_types_value = empty( $_um_view_types_value ) ? array( 'grid', 'list' ) : $_um_view_types_value; $_um_view_types_value = empty( $_um_view_types_value ) ? array( 'grid', 'list' ) : $_um_view_types_value;
$view_types_options = array_map( function( $item ) { $view_types_options = array_map( function( $item ) {
return $item['title']; return $item['title'];
@@ -28,8 +20,7 @@ $view_types_options = array_map( function( $item ) {
$conditional = array(); $conditional = array();
foreach ( $view_types_options as $key => $value ) { foreach ( $view_types_options as $key => $value ) {
$conditional[] = '_um_view_types_' . $key; $conditional[] = '_um_view_types_' . $key;
} } ?>
?>
<div class="um-admin-metabox"> <div class="um-admin-metabox">
+1 -1
View File
@@ -137,7 +137,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_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' ), 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' ), ultimatemember_version, true );
wp_register_script('um_profile', $this->js_baseurl . 'um-profile' . $this->suffix . '.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true ); wp_register_script('um_profile', $this->js_baseurl . 'um-profile' . $this->suffix . '.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true );
wp_register_script('um_account', $this->js_baseurl . 'um-account' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true ); wp_register_script('um_account', $this->js_baseurl . 'um-account' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
+13 -10
View File
@@ -292,6 +292,9 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
} }
/**
*
*/
function init_filter_types() { function init_filter_types() {
$this->filter_types = apply_filters( 'um_members_directory_filter_types', array( $this->filter_types = apply_filters( 'um_members_directory_filter_types', array(
'country' => 'select', 'country' => 'select',
@@ -386,7 +389,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
* } * }
* ?> * ?>
*/ */
$attrs = apply_filters( "um_custom_search_field_{$filter}", array() ); $attrs = apply_filters( "um_custom_search_field_{$filter}", array(), $field_key );
} }
/** /**
@@ -410,7 +413,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
* } * }
* ?> * ?>
*/ */
$attrs = apply_filters( 'um_search_fields', $attrs ); $attrs = apply_filters( 'um_search_fields', $attrs, $field_key );
$unique_hash = substr( md5( $directory_data['form_id'] ), 10, 5 ); $unique_hash = substr( md5( $directory_data['form_id'] ), 10, 5 );
@@ -583,7 +586,6 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
*/ */
function slider_filters_range( $filter, $directory_data ) { function slider_filters_range( $filter, $directory_data ) {
switch ( $filter ) { switch ( $filter ) {
default: { default: {
@@ -638,10 +640,10 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
if ( ! $placeholder ) { if ( ! $placeholder ) {
switch ( $attrs['type'] ) { switch ( $attrs['type'] ) {
default: default:
$placeholder = "<strong>$label:</strong> {min_range} - {max_range}"; $placeholder = "<strong>$label:</strong>&nbsp;{min_range} - {max_range}";
break; break;
case 'rating': case 'rating':
$placeholder = "<strong>$label:</strong> {min_range} - {max_range}" . __( ' stars', 'ultimate-member' ); $placeholder = "<strong>$label:</strong>&nbsp;{min_range} - {max_range}" . __( ' stars', 'ultimate-member' );
break; break;
} }
} }
@@ -649,7 +651,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
break; break;
} }
case 'birth_date': { case 'birth_date': {
$placeholder = __( '<strong>Age:</strong> {min_range} - {max_range} years old', 'ultimate-member' ); $placeholder = __( '<strong>Age:</strong>&nbsp;{min_range} - {max_range} years old', 'ultimate-member' );
break; break;
} }
} }
@@ -1250,7 +1252,9 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
} }
} }
if ( empty( $filter_query ) ) { $ignore_empty_filters = apply_filters( 'um_member_directory_ignore_empty_filters', false );
if ( empty( $filter_query ) && ! $ignore_empty_filters ) {
add_filter( 'um_member_directory_organic_search_replacement', array( &$this, 'organic_replacement' ) ); add_filter( 'um_member_directory_organic_search_replacement', array( &$this, 'organic_replacement' ) );
return; return;
} }
@@ -1484,7 +1488,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
$current_page = ! empty( $_POST['page'] ) ? $_POST['page'] : 1; $current_page = ! empty( $_POST['page'] ) ? $_POST['page'] : 1;
$total_users = ( ! empty( $max_users ) && $max_users <= $result->total_users ) ? $max_users : $result->total_users; $total_users = ( ! empty( $directory_data['max_users'] ) && $directory_data['max_users'] <= $result->total_users ) ? $directory_data['max_users'] : $result->total_users;
$total_pages = ceil( $total_users / $directory_data['profiles_per_page'] ); $total_pages = ceil( $total_users / $directory_data['profiles_per_page'] );
if ( ! empty( $total_pages ) ) { if ( ! empty( $total_pages ) ) {
@@ -1732,6 +1736,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
wp_send_json_success( array( 'users' => array(), 'pagination' => $pagination_data ) ); wp_send_json_success( array( 'users' => array(), 'pagination' => $pagination_data ) );
} }
do_action( 'um_member_directory_before_query' );
// Prepare for BIG SELECT query // Prepare for BIG SELECT query
$wpdb->query( 'SET SQL_BIG_SELECTS=1' ); $wpdb->query( 'SET SQL_BIG_SELECTS=1' );
@@ -1818,8 +1823,6 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
$user_query = new \WP_User_Query( $this->query_args ); $user_query = new \WP_User_Query( $this->query_args );
//var_dump( $user_query->request );
remove_filter( 'get_meta_sql', array( &$this, 'change_meta_sql' ), 10 ); remove_filter( 'get_meta_sql', array( &$this, 'change_meta_sql' ), 10 );
/** /**
+7 -6
View File
@@ -542,21 +542,22 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
*/ */
function load( $args ) { function load( $args ) {
$defaults = array(); $defaults = array();
$args = wp_parse_args($args, $defaults); $args = wp_parse_args( $args, $defaults );
// when to not continue // when to not continue
$this->form_id = (isset($args['form_id'])) ? $args['form_id'] : null; $this->form_id = isset( $args['form_id'] ) ? $args['form_id'] : null;
if (!$this->form_id) { if ( ! $this->form_id ) {
return; return;
} }
$this->form_status = get_post_status($this->form_id); $this->form_status = get_post_status( $this->form_id );
if ($this->form_status != 'publish') { if ( $this->form_status != 'publish' ) {
return; return;
} }
// get data into one global array // get data into one global array
$post_data = UM()->query()->post_data( $this->form_id ); $post_data = UM()->query()->post_data( $this->form_id );
$args = array_merge( $args, $post_data );
ob_start(); ob_start();
@@ -581,7 +582,7 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
* } * }
* ?> * ?>
*/ */
$args = apply_filters( 'um_pre_args_setup', $post_data ); $args = apply_filters( 'um_pre_args_setup', $args );
if ( ! isset( $args['template'] ) ) { if ( ! isset( $args['template'] ) ) {
$args['template'] = ''; $args['template'] = '';
+2 -2
View File
@@ -4,9 +4,9 @@ Plugin URI: https://ultimatemember.com/
Contributors: ultimatemember, champsupertramp, nsinelnikov Contributors: ultimatemember, champsupertramp, nsinelnikov
Donate link: Donate link:
Tags: community, member, membership, user-profile, user-registration Tags: community, member, membership, user-profile, user-registration
Requires at least: 4.9 Requires at least: 5.0
Tested up to: 5.2 Tested up to: 5.2
Stable tag: 2.0.56 Stable tag: 2.1.0
License: GNU Version 2 or Any Later Version License: GNU Version 2 or Any Later Version
License URI: http://www.gnu.org/licenses/gpl-3.0.txt License URI: http://www.gnu.org/licenses/gpl-3.0.txt
+22 -21
View File
@@ -13,17 +13,14 @@ $unique_hash = substr( md5( $args['form_id'] ), 10, 5 );
$args = array_merge( $def_args, $args ); $args = array_merge( $def_args, $args );
//current user priority role //current user priority role
$priority_user_role = false; $priority_user_role = false;
if ( is_user_logged_in() ) { if ( is_user_logged_in() ) {
$priority_user_role = UM()->roles()->get_priority_user_role( um_user( 'ID' ) ); $priority_user_role = UM()->roles()->get_priority_user_role( um_user( 'ID' ) );
} }
$args = apply_filters( 'um_member_directory_agruments_on_load', $args ); $args = apply_filters( 'um_member_directory_agruments_on_load', $args );
// Views // Views
$single_view = false; $single_view = false;
$current_view = 'grid'; $current_view = 'grid';
@@ -44,8 +41,10 @@ if ( empty( $args['view_types'] ) || ! is_array( $args['view_types'] ) ) {
if ( count( $args['view_types'] ) == 1 ) { if ( count( $args['view_types'] ) == 1 ) {
$single_view = true; $single_view = true;
$current_view = $args['view_types'][0]; $current_view = $args['view_types'][0];
$default_view = $current_view;
} else { } else {
$args['default_view'] = ! empty( $args['default_view'] ) ? $args['default_view'] : $args['view_types'][0]; $args['default_view'] = ! empty( $args['default_view'] ) ? $args['default_view'] : $args['view_types'][0];
$default_view = $args['default_view'];
$current_view = ( ! empty( $_GET[ 'view_type_' . $unique_hash ] ) && in_array( $_GET[ 'view_type_' . $unique_hash ], $args['view_types'] ) ) ? $_GET[ 'view_type_' . $unique_hash ] : $args['default_view']; $current_view = ( ! empty( $_GET[ 'view_type_' . $unique_hash ] ) && in_array( $_GET[ 'view_type_' . $unique_hash ], $args['view_types'] ) ) ? $_GET[ 'view_type_' . $unique_hash ] : $args['default_view'];
} }
@@ -178,7 +177,8 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea
<div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( substr( md5( $form_id ), 10, 5 ) ); ?>" <div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( substr( md5( $form_id ), 10, 5 ) ); ?>"
data-hash="<?php echo esc_attr( substr( md5( $form_id ), 10, 5 ) ) ?>" data-base-post="<?php echo esc_attr( $post->ID ) ?>" data-hash="<?php echo esc_attr( substr( md5( $form_id ), 10, 5 ) ) ?>" data-base-post="<?php echo esc_attr( $post->ID ) ?>"
data-must-search="<?php echo esc_attr( $must_search ); ?>" data-searched="<?php echo $not_searched ? '0' : '1'; ?>" data-must-search="<?php echo esc_attr( $must_search ); ?>" data-searched="<?php echo $not_searched ? '0' : '1'; ?>"
data-view_type="<?php echo esc_attr( $current_view ) ?>" data-page="<?php echo esc_attr( $current_page ) ?>"> data-view_type="<?php echo esc_attr( $current_view ) ?>" data-page="<?php echo esc_attr( $current_page ) ?>"
data-sorting="<?php echo esc_attr( $sort_from_url ) ?>">
<div class="um-members-overlay"><div class="um-ajax-loading"></div></div> <div class="um-members-overlay"><div class="um-ajax-loading"></div></div>
<div class="um-member-directory-header"> <div class="um-member-directory-header">
@@ -213,6 +213,7 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea
<a href="javascript:void(0)" <a href="javascript:void(0)"
class="um-member-directory-view-type-a<?php if ( ! $not_searched ) {?> um-tip-n<?php } ?>" class="um-member-directory-view-type-a<?php if ( ! $not_searched ) {?> um-tip-n<?php } ?>"
data-type="<?php echo $key; ?>" data-type="<?php echo $key; ?>"
data-default="<?php echo ( $default_view == $key ) ? 1 : 0; ?>"
title="<?php printf( esc_attr__( 'Change to %s', 'ultimate-member' ), $value['title'] ) ?>" title="<?php printf( esc_attr__( 'Change to %s', 'ultimate-member' ), $value['title'] ) ?>"
default-title="<?php echo esc_attr( $value['title'] ); ?>" default-title="<?php echo esc_attr( $value['title'] ); ?>"
next-item="" ><i class="<?php echo $value['icon']; ?>"></i></a> next-item="" ><i class="<?php echo $value['icon']; ?>"></i></a>
@@ -235,7 +236,7 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea
<?php $items = array(); <?php $items = array();
foreach ( $sorting_options as $value => $title ) { foreach ( $sorting_options as $value => $title ) {
$items[] = '<a href="javascript:void(0);" data-value="' . esc_attr( $value ) . '" data-selected="' . ( ( $sort_from_url == $value ) ? '1' : '0' ) . '">' . $title . '</a>'; ?> $items[] = '<a href="javascript:void(0);" data-value="' . esc_attr( $value ) . '" data-selected="' . ( ( $sort_from_url == $value ) ? '1' : '0' ) . '" data-default="' . ( ( $default_sorting == $value ) ? '1' : '0' ) . '">' . $title . '</a>'; ?>
<?php } <?php }
UM()->member_directory()->dropdown_menu( '.um-member-directory-sorting-a', 'click', $items ); ?> UM()->member_directory()->dropdown_menu( '.um-member-directory-sorting-a', 'click', $items ); ?>
@@ -262,22 +263,22 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea
if ( is_array( $search_filters ) ) { ?> if ( is_array( $search_filters ) ) { ?>
<script type="text/template" id="tmpl-um-members-filtered-line"> <script type="text/template" id="tmpl-um-members-filtered-line">
<# if ( data.filters.length > 0 ) { #> <# if ( data.filters.length > 0 ) { #>
<# _.each( data.filters, function( filter, key, list ) { #> <# _.each( data.filters, function( filter, key, list ) { #>
<div class="um-members-filter-tag"> <div class="um-members-filter-tag">
<# if ( filter.type == 'slider' ) { #> <# if ( filter.type == 'slider' ) { #>
<# if ( filter.value[0] == filter.value[1] ) { #> <# if ( filter.value[0] == filter.value[1] ) { #>
<strong>{{{filter.label}}}</strong>: {{{filter.value[0]}}} <strong>{{{filter.label}}}</strong>: {{{filter.value[0]}}}
<# } else { #> <# } else { #>
{{{filter.value_label}}} {{{filter.value_label}}}
<# } #> <# } #>
<# } else { #> <# } else { #>
<strong>{{{filter.label}}}</strong>: {{{filter.value_label}}} <strong>{{{filter.label}}}</strong>: {{{filter.value_label}}}
<# } #> <# } #>
<div class="um-members-filter-remove um-tip-n" data-name="{{{filter.name}}}" <div class="um-members-filter-remove um-tip-n" data-name="{{{filter.name}}}"
data-value="{{{filter.value}}}" data-range="{{{filter.range}}}" data-value="{{{filter.value}}}" data-range="{{{filter.range}}}"
data-type="{{{filter.type}}}" title="<?php esc_attr_e( 'Remove filter', 'ultimate-member' ) ?>">&times;</div> data-type="{{{filter.type}}}" title="<?php esc_attr_e( 'Remove filter', 'ultimate-member' ) ?>">&times;</div>
</div> </div>
<# }); #> <# }); #>
<# } #> <# } #>
</script> </script>
+1 -1
View File
@@ -3,7 +3,7 @@
Plugin Name: Ultimate Member Plugin Name: Ultimate Member
Plugin URI: http://ultimatemember.com/ Plugin URI: http://ultimatemember.com/
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
Version: 2.1.0-alpha3 Version: 2.1.0-alpha4
Author: Ultimate Member Author: Ultimate Member
Author URI: http://ultimatemember.com/ Author URI: http://ultimatemember.com/
Text Domain: ultimate-member Text Domain: ultimate-member