mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
- added ability to use metatable;
This commit is contained in:
+34
-14
@@ -132,18 +132,32 @@ function um_members_hide_preloader( directory ) {
|
||||
|
||||
|
||||
function um_set_range_label( slider, ui ) {
|
||||
var placeholder = slider.siblings( '.um-slider-range' ).data( 'placeholder' );
|
||||
var placeholder = '';
|
||||
var placeholder_s = slider.siblings( '.um-slider-range' ).data( 'placeholder-s' );
|
||||
var placeholder_p = slider.siblings( '.um-slider-range' ).data( 'placeholder-p' );
|
||||
|
||||
if( ui ) {
|
||||
placeholder = placeholder.replace( '\{min_range\}', ui.values[ 0 ] )
|
||||
.replace( '\{max_range\}', ui.values[ 1 ] )
|
||||
.replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
|
||||
.data('label') );
|
||||
if ( ui ) {
|
||||
if ( ui.values[ 0 ] === ui.values[ 1 ] ) {
|
||||
placeholder = placeholder_s.replace( '\{value\}', ui.values[ 0 ] )
|
||||
.replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
|
||||
.data('label') );
|
||||
} else {
|
||||
placeholder = placeholder_p.replace( '\{min_range\}', ui.values[ 0 ] )
|
||||
.replace( '\{max_range\}', ui.values[ 1 ] )
|
||||
.replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
|
||||
.data('label') );
|
||||
}
|
||||
} else {
|
||||
placeholder = placeholder.replace( '\{min_range\}', slider.slider( "values", 0 ) )
|
||||
.replace( '\{max_range\}', slider.slider( "values", 1 ) )
|
||||
.replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
|
||||
.data('label') );
|
||||
if ( slider.slider( "values", 0 ) === slider.slider( "values", 1 ) ) {
|
||||
placeholder = placeholder_s.replace( '\{value\}', slider.slider( "values", 0 ) )
|
||||
.replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
|
||||
.data('label') );
|
||||
} else {
|
||||
placeholder = placeholder_p.replace( '\{min_range\}', slider.slider( "values", 0 ) )
|
||||
.replace( '\{max_range\}', slider.slider( "values", 1 ) )
|
||||
.replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
|
||||
.data('label') );
|
||||
}
|
||||
}
|
||||
slider.siblings( '.um-slider-range' ).html( placeholder );
|
||||
|
||||
@@ -500,11 +514,17 @@ function um_get_filters_data( directory ) {
|
||||
return;
|
||||
}
|
||||
|
||||
filter_title = filter.find('div.um-slider-range').data('label');
|
||||
var filter_value_title;
|
||||
if ( filter_value_from === filter_value_to ) {
|
||||
filter_value_title = filter.find('div.um-slider-range').data( 'placeholder-s' ).replace( '\{value\}', filter_value_from )
|
||||
.replace( '\{field_label\}', filter.find('div.um-slider-range').data('label') );
|
||||
} else {
|
||||
filter_value_title = filter.find('div.um-slider-range').data( 'placeholder-p' ).replace( '\{min_range\}', filter_value_from )
|
||||
.replace( '\{max_range\}', filter_value_to )
|
||||
.replace( '\{field_label\}', filter.find('div.um-slider-range').data('label') );
|
||||
}
|
||||
|
||||
var filter_value_title = filter.find('div.um-slider-range').data( 'placeholder' ).replace( '\{min_range\}', filter_value_from )
|
||||
.replace( '\{max_range\}', filter_value_to )
|
||||
.replace( '\{field_label\}', filter.find('div.um-slider-range').data('label') );
|
||||
filter_title = filter.find('div.um-slider-range').data('label');
|
||||
|
||||
filters_data.push( {'name':filter_name, 'label':filter_title, 'value_label':filter_value_title, 'value':[filter_value_from, filter_value_to], 'type':filter_type} );
|
||||
}
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -291,4 +291,33 @@ textarea.um-forms-field.um-small-field {
|
||||
|
||||
.um-forms-line[data-conditional] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Same page update field */
|
||||
.um-forms-line td .um-same-page-update-wrapper {
|
||||
display: none;
|
||||
margin: 7px 0 0 0;
|
||||
}
|
||||
|
||||
.um-forms-line td .um-same-page-update-wrapper input.um-admin-form-same-page-update {
|
||||
margin: 7px 0 0 0;
|
||||
}
|
||||
|
||||
.um-forms-line td .um-same-page-update-wrapper .upgrade_log {
|
||||
margin: 7px 0 0 0;
|
||||
width:100%;
|
||||
height:150px;
|
||||
overflow: auto;
|
||||
border: 1px solid #a1a1a1;
|
||||
}
|
||||
|
||||
.um-forms-line[data-field_type="same_page_update"] {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
.um-forms-line[data-field_type="same_page_update"] th,
|
||||
.um-forms-line[data-field_type="same_page_update"] td {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
@@ -1,6 +1,146 @@
|
||||
jQuery(document).ready( function() {
|
||||
|
||||
|
||||
/**
|
||||
* Same page upgrade field
|
||||
*/
|
||||
jQuery( document.body ).on( 'click', '.um-forms-field[data-log-object]', function() {
|
||||
var obj = jQuery( this ).data( 'log-object' );
|
||||
if ( jQuery( this ).is( ':checked' ) ) {
|
||||
jQuery( this ).siblings( '.um-same-page-update-' + obj ).show();
|
||||
} else {
|
||||
jQuery( this ).siblings( '.um-same-page-update-' + obj ).hide();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
jQuery( document.body ).on( 'click', '.um-admin-form-same-page-update', function() {
|
||||
var field_key = jQuery(this).data('upgrade_cb');
|
||||
jQuery(this).prop( 'disabled', true );
|
||||
|
||||
um_add_same_page_log( field_key, wp.i18n.__( 'Upgrade Process Started...', 'ultimate-member' ) );
|
||||
|
||||
if ( field_key === 'sync_metatable' ) {
|
||||
var metadata_pages = 0;
|
||||
var metadata_per_page = 50;
|
||||
var current_page;
|
||||
|
||||
jQuery.ajax({
|
||||
url: wp.ajax.settings.url,
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
action: 'um_same_page_update',
|
||||
cb_func: 'um_usermeta_fields',
|
||||
nonce: um_admin_scripts.nonce
|
||||
},
|
||||
success: function( response ) {
|
||||
get_metadata();
|
||||
},
|
||||
error: function() {
|
||||
um_same_page_something_wrong( field_key );
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function get_metadata() {
|
||||
current_page = 1;
|
||||
|
||||
um_add_same_page_log( field_key, wp.i18n.__( 'Getting metadata', 'ultimate-member' ) );
|
||||
jQuery.ajax({
|
||||
url: wp.ajax.settings.url,
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
action: 'um_same_page_update',
|
||||
cb_func: 'um_get_metadata',
|
||||
nonce: um_admin_scripts.nonce
|
||||
},
|
||||
success: function( response ) {
|
||||
if ( typeof response.data.count != 'undefined' ) {
|
||||
um_add_same_page_log( field_key, wp.i18n.__( 'There are ', 'ultimate-member' ) + response.data.count + wp.i18n.__( ' metadata rows...', 'ultimate-member' ) );
|
||||
um_add_same_page_log( field_key, wp.i18n.__( 'Start metadata upgrading...', 'ultimate-member' ) );
|
||||
|
||||
metadata_pages = Math.ceil( response.data.count / metadata_per_page );
|
||||
|
||||
update_metadata_per_page();
|
||||
} else {
|
||||
um_same_page_wrong_ajax( field_key );
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
um_same_page_something_wrong( field_key );
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
function update_metadata_per_page() {
|
||||
if ( current_page <= metadata_pages ) {
|
||||
jQuery.ajax({
|
||||
url: wp.ajax.settings.url,
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
action: 'um_same_page_update',
|
||||
cb_func: 'um_update_metadata_per_page',
|
||||
page: current_page,
|
||||
nonce: um_admin_scripts.nonce
|
||||
},
|
||||
success: function( response ) {
|
||||
if ( typeof response.data != 'undefined' ) {
|
||||
um_add_same_page_log( field_key, response.data.message );
|
||||
current_page++;
|
||||
update_metadata_per_page();
|
||||
} else {
|
||||
um_same_page_wrong_ajax( field_key );
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
um_same_page_something_wrong( field_key );
|
||||
}
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param field_key
|
||||
* @param line
|
||||
*/
|
||||
function um_add_same_page_log( field_key, line ) {
|
||||
var log_field = jQuery( '.um-same-page-update-' + field_key ).find( '.upgrade_log' );
|
||||
var previous_html = log_field.html();
|
||||
log_field.html( previous_html + line + "<br />" );
|
||||
}
|
||||
|
||||
|
||||
function um_same_page_wrong_ajax( field_key ) {
|
||||
um_add_same_page_log( field_key, wp.i18n.__( 'Wrong AJAX response...', 'ultimate-member' ) );
|
||||
um_add_same_page_log( field_key, wp.i18n.__( 'Your upgrade was crashed, please contact with support', 'ultimate-member' ) );
|
||||
}
|
||||
|
||||
|
||||
function um_same_page_something_wrong( field_key ) {
|
||||
um_add_same_page_log( field_key, wp.i18n.__( 'Something went wrong with AJAX request...', 'ultimate-member' ) );
|
||||
um_add_same_page_log( field_key, wp.i18n.__( 'Your upgrade was crashed, please contact with support', 'ultimate-member' ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Multi-selects sort
|
||||
*/
|
||||
|
||||
@@ -28,6 +28,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Ajax_Hooks' ) ) {
|
||||
add_action( 'wp_ajax_um_populate_dropdown_options', array( UM()->builder(), 'populate_dropdown_options' ) );
|
||||
add_action( 'wp_ajax_um_rated', array( UM()->admin_menu(), 'ultimatemember_rated' ) );
|
||||
add_action( 'wp_ajax_um_member_directory_default_filter_settings', array( UM()->member_directory(), 'default_filter_settings' ) );
|
||||
|
||||
add_action( 'wp_ajax_um_same_page_update', array( UM()->admin_settings(), 'same_page_update_ajax' ) );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -773,6 +773,60 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $field_data
|
||||
*
|
||||
* @return bool|string
|
||||
*/
|
||||
function render_same_page_update( $field_data ) {
|
||||
|
||||
if ( empty( $field_data['id'] ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$id = ( ! empty( $this->form_data['prefix_id'] ) ? $this->form_data['prefix_id'] : '' ) . '_' . $field_data['id'];
|
||||
$id_attr = ' id="' . esc_attr( $id ) . '" ';
|
||||
$id_attr_hidden = ' id="' . esc_attr( $id ) . '_hidden" ';
|
||||
|
||||
$class = ! empty( $field_data['class'] ) ? $field_data['class'] : '';
|
||||
$class .= ! empty( $field_data['size'] ) ? $field_data['size'] : 'um-long-field';
|
||||
$class_attr = ' class="um-forms-field ' . esc_attr( $class ) . '" ';
|
||||
|
||||
$data = array(
|
||||
'field_id' => $field_data['id']
|
||||
);
|
||||
|
||||
if ( ! empty( $field_data['data'] ) ) {
|
||||
$data = array_merge( $data, $field_data['data'] );
|
||||
}
|
||||
|
||||
$data_attr = '';
|
||||
foreach ( $data as $key => $value ) {
|
||||
$data_attr .= ' data-' . $key . '="' . esc_attr( $value ) . '" ';
|
||||
}
|
||||
|
||||
if ( ! empty( $field_data['upgrade_cb'] ) ) {
|
||||
$data_attr .= ' data-log-object="' . esc_attr( $field_data['upgrade_cb'] ) . '" ';
|
||||
}
|
||||
|
||||
$name = $field_data['id'];
|
||||
$name = ! empty( $this->form_data['prefix_id'] ) ? $this->form_data['prefix_id'] . '[' . $name . ']' : $name;
|
||||
$name_attr = ' name="' . $name . '" ';
|
||||
|
||||
$value = $this->get_field_value( $field_data );
|
||||
|
||||
$html = "<input type=\"hidden\" $id_attr_hidden $name_attr value=\"0\" />
|
||||
<input type=\"checkbox\" $id_attr $class_attr $name_attr $data_attr " . checked( $value, true, false ) . " value=\"1\" />";
|
||||
|
||||
if ( ! empty( $field_data['upgrade_cb'] ) ) {
|
||||
$html .= '<div class="um-same-page-update-wrapper um-same-page-update-' . esc_attr( $field_data['upgrade_cb'] ) . '"><div class="um-same-page-update-description">' . $field_data['upgrade_description'] . '</div><input type="button" data-upgrade_cb="' . $field_data['upgrade_cb'] . '" class="button button-primary um-admin-form-same-page-update" value="' . esc_attr__( 'Run', 'ultimate-member' ) . '"/>
|
||||
<div class="upgrade_log"></div></div>';
|
||||
}
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $field_data
|
||||
*
|
||||
|
||||
@@ -80,6 +80,113 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
function same_page_update_ajax() {
|
||||
UM()->admin()->check_ajax_nonce();
|
||||
|
||||
if ( empty( $_POST['cb_func'] ) ) {
|
||||
wp_send_json_error( __( 'Wrong callback', 'ultimate-member' ) );
|
||||
}
|
||||
|
||||
if ( 'um_usermeta_fields' == $_POST['cb_func'] ) {
|
||||
//first install metatable
|
||||
global $wpdb;
|
||||
|
||||
$metakeys = array();
|
||||
foreach ( UM()->builtin()->all_user_fields as $all_user_field ) {
|
||||
if ( $all_user_field['type'] == 'user_location' ) {
|
||||
$metakeys[] = $all_user_field['metakey'] . '_lat';
|
||||
$metakeys[] = $all_user_field['metakey'] . '_lng';
|
||||
$metakeys[] = $all_user_field['metakey'] . '_url';
|
||||
} else {
|
||||
$metakeys[] = $all_user_field['metakey'];
|
||||
}
|
||||
}
|
||||
|
||||
if ( is_multisite() ) {
|
||||
|
||||
$sites = get_sites( array( 'fields' => 'ids' ) );
|
||||
foreach ( $sites as $blog_id ) {
|
||||
$metakeys[] = $wpdb->get_blog_prefix( $blog_id ) . 'capabilities';
|
||||
}
|
||||
|
||||
} else {
|
||||
$blog_id = get_current_blog_id();
|
||||
$metakeys[] = $wpdb->get_blog_prefix( $blog_id ) . 'capabilities';
|
||||
}
|
||||
|
||||
//member directory data
|
||||
$metakeys[] = 'um_member_directory_data';
|
||||
|
||||
$skip_fields = UM()->builtin()->get_fields_without_metakey();
|
||||
$skip_fields = array_merge( $skip_fields, UM()->member_directory()->core_search_fields );
|
||||
|
||||
$real_usermeta = $wpdb->get_col( "SELECT DISTINCT meta_key FROM {$wpdb->usermeta}" );
|
||||
$real_usermeta = ! empty( $real_usermeta ) ? $real_usermeta : array();
|
||||
$real_usermeta = array_merge( $real_usermeta, array( 'um_member_directory_data' ) );
|
||||
|
||||
$wp_usermeta_option = array_intersect( array_diff( $metakeys, $skip_fields ), $real_usermeta );
|
||||
|
||||
update_option( 'um_usermeta_fields', $wp_usermeta_option );
|
||||
|
||||
update_option( 'um_member_directory_update_meta', time() );
|
||||
|
||||
wp_send_json_success();
|
||||
} elseif ( 'um_get_metadata' == $_POST['cb_func'] ) {
|
||||
global $wpdb;
|
||||
|
||||
$wp_usermeta_option = get_option( 'um_usermeta_fields', array() );
|
||||
|
||||
$count = $wpdb->get_var(
|
||||
"SELECT COUNT(*)
|
||||
FROM {$wpdb->usermeta}
|
||||
WHERE meta_key IN ('" . implode( "','", $wp_usermeta_option ) . "')"
|
||||
);
|
||||
|
||||
wp_send_json_success( array( 'count' => $count ) );
|
||||
} elseif ( 'um_update_metadata_per_page' == $_POST['cb_func'] ) {
|
||||
|
||||
if ( empty( $_POST['page'] ) ) {
|
||||
wp_send_json_error( __( 'Wrong data', 'ultimate-member' ) );
|
||||
}
|
||||
|
||||
$per_page = 50;
|
||||
$wp_usermeta_option = get_option( 'um_usermeta_fields', array() );
|
||||
|
||||
global $wpdb;
|
||||
$metadata = $wpdb->get_results( $wpdb->prepare(
|
||||
"SELECT *
|
||||
FROM {$wpdb->usermeta}
|
||||
WHERE meta_key IN ('" . implode( "','", $wp_usermeta_option ) . "')
|
||||
LIMIT %d, %d",
|
||||
( $_POST['page'] - 1 ) * $per_page,
|
||||
$per_page
|
||||
), ARRAY_A );
|
||||
|
||||
foreach ( $metadata as $metarow ) {
|
||||
$wpdb->insert(
|
||||
"{$wpdb->prefix}um_metadata",
|
||||
array(
|
||||
'user_id' => $metarow['user_id'],
|
||||
'um_key' => $metarow['meta_key'],
|
||||
'um_value' => $metarow['meta_value'],
|
||||
),
|
||||
array(
|
||||
'%d',
|
||||
'%s',
|
||||
'%s',
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$from = ( $_POST['page'] * $per_page ) - $per_page + 1;
|
||||
$to = $_POST['page'] * $per_page;
|
||||
|
||||
wp_send_json_success( array( 'message' => sprintf( __( 'Metadata from %s to %s was upgraded successfully...', 'ultimate-member' ), $from, $to ) ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@@ -351,6 +458,22 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
|
||||
'default' => UM()->options()->get_default( 'restricted_access_taxonomy_metabox' ),
|
||||
) ) );
|
||||
|
||||
$latest_update = get_option( 'um_member_directory_update_meta', false );
|
||||
$latest_truncate = get_option( 'um_member_directory_truncated', false );
|
||||
|
||||
$same_page_update = array(
|
||||
'id' => 'member_directory_own_table',
|
||||
'type' => 'same_page_update',
|
||||
'label' => __( 'Enable custom table for usermeta', 'ultimate-member' ),
|
||||
'tooltip' => __( 'Check this box if you would like to enable the use of a custom table for user metadata. Improved performance for member directory searches.', 'ultimate-member' ),
|
||||
);
|
||||
|
||||
if ( empty( $latest_update ) || ( ! empty( $latest_truncate ) && $latest_truncate > $latest_update ) ) {
|
||||
$same_page_update['upgrade_cb'] = 'sync_metatable';
|
||||
$same_page_update['upgrade_description'] = '<p>' . __( 'We recommend creating a backup of your site before running the update process. Do not exit the page before the update process has complete.', 'ultimate-member' ) . '</p>
|
||||
<p>' . __( 'After clicking the <strong>"Run"</strong> button, the update process will start. All information will be displayed in the field below.', 'ultimate-member' ) . '</p>
|
||||
<p>' . __( 'If the update was successful, you will see a corresponding message. Otherwise, contact technical support if the update failed.', 'ultimate-member' ) . '</p>';
|
||||
}
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
@@ -1143,12 +1266,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
|
||||
'2.0' => __( '2.0 version', 'ultimate-member' ),
|
||||
),
|
||||
),
|
||||
array(
|
||||
'id' => 'member_directory_own_table',
|
||||
'type' => 'checkbox',
|
||||
'label' => __( 'Enable custom table for usermeta', 'ultimate-member' ),
|
||||
'tooltip' => __( 'Check this box if you would like to enable the using custom table with user metadata. It can be solution for the complex search.', 'ultimate-member' ),
|
||||
),
|
||||
$same_page_update,
|
||||
array(
|
||||
'id' => 'uninstall_on_delete',
|
||||
'type' => 'checkbox',
|
||||
@@ -1669,6 +1787,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
|
||||
*/
|
||||
function on_settings_save() {
|
||||
if ( ! empty( $_POST['um_options'] ) ) {
|
||||
|
||||
if ( ! empty( $_POST['um_options']['pages_settings'] ) ) {
|
||||
$post_ids = new \WP_Query( array(
|
||||
'post_type' => 'page',
|
||||
@@ -1709,184 +1828,16 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
|
||||
}
|
||||
}
|
||||
}
|
||||
} elseif ( ! empty( $_POST['um_options']['member_directory_own_table'] ) ) {
|
||||
//first install metatable
|
||||
global $wpdb;
|
||||
} elseif ( isset( $_POST['um_options']['member_directory_own_table'] ) ) {
|
||||
if ( empty( $_POST['um_options']['member_directory_own_table'] ) ) {
|
||||
global $wpdb;
|
||||
|
||||
$metakeys = array();
|
||||
foreach ( UM()->builtin()->all_user_fields as $all_user_field ) {
|
||||
if ( $all_user_field['type'] == 'user_location' ) {
|
||||
$metakeys[] = $all_user_field['metakey'] . '_lat';
|
||||
$metakeys[] = $all_user_field['metakey'] . '_lng';
|
||||
$metakeys[] = $all_user_field['metakey'] . '_url';
|
||||
} else {
|
||||
$metakeys[] = $all_user_field['metakey'];
|
||||
$results = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}um_metadata LIMIT 1", ARRAY_A );
|
||||
if ( ! empty( $results ) ) {
|
||||
$wpdb->query("TRUNCATE TABLE IF EXISTS {$wpdb->prefix}um_metadata" );
|
||||
update_option( 'um_member_directory_truncated', time() );
|
||||
}
|
||||
}
|
||||
|
||||
if ( is_multisite() ) {
|
||||
|
||||
$sites = get_sites( array( 'fields' => 'ids' ) );
|
||||
foreach ( $sites as $blog_id ) {
|
||||
$metakeys[] = $wpdb->get_blog_prefix( $blog_id ) . 'capabilities';
|
||||
}
|
||||
|
||||
} else {
|
||||
$blog_id = get_current_blog_id();
|
||||
$metakeys[] = $wpdb->get_blog_prefix( $blog_id ) . 'capabilities';
|
||||
}
|
||||
|
||||
//member directory data
|
||||
$metakeys[] = 'um_member_directory_data';
|
||||
|
||||
$skip_fields = UM()->builtin()->get_fields_without_metakey();
|
||||
$skip_fields = array_merge( $skip_fields, UM()->member_directory()->core_search_fields );
|
||||
|
||||
$real_usermeta = $wpdb->get_col( "SELECT DISTINCT meta_key FROM {$wpdb->usermeta}" );
|
||||
|
||||
$wp_usermeta_option = array();
|
||||
foreach ( $metakeys as $metakey ) {
|
||||
if ( in_array( $metakey, $skip_fields ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( ! in_array( $metakey, $real_usermeta ) && $metakey != 'um_member_directory_data' ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$wp_usermeta_option[] = $metakey;
|
||||
}
|
||||
|
||||
update_option( 'um_usermeta_fields', $wp_usermeta_option );
|
||||
|
||||
$charset_collate = $wpdb->get_charset_collate();
|
||||
|
||||
$sql = "CREATE TABLE {$wpdb->prefix}um_metadata (
|
||||
umeta_id bigint(20) unsigned NOT NULL auto_increment,
|
||||
user_id bigint(20) unsigned NOT NULL default '0',
|
||||
um_key varchar(255) default NULL,
|
||||
um_value longtext default NULL,
|
||||
PRIMARY KEY (umeta_id),
|
||||
KEY user_id_indx (user_id),
|
||||
KEY meta_key_indx (um_key),
|
||||
KEY meta_value_indx (um_value(191))
|
||||
) $charset_collate;";
|
||||
|
||||
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
|
||||
dbDelta( $sql );
|
||||
|
||||
$md_metadata = $wpdb->get_results(
|
||||
"SELECT u.ID as user_id, um.meta_value AS account_status, um2.meta_value AS hide_in_members
|
||||
FROM {$wpdb->users} u
|
||||
LEFT JOIN {$wpdb->usermeta} um ON ( um.user_id = u.ID AND um.meta_key = 'account_status' )
|
||||
LEFT JOIN {$wpdb->usermeta} um2 ON ( um2.user_id = u.ID AND um2.meta_key = 'hide_in_members' )",
|
||||
ARRAY_A );
|
||||
|
||||
$md_metadata2 = $wpdb->get_results(
|
||||
"SELECT u.ID as user_id, um.meta_value AS synced_gravatar_hashed_id, um2.meta_value AS synced_profile_photo
|
||||
FROM {$wpdb->users} u
|
||||
LEFT JOIN {$wpdb->usermeta} um ON ( um.user_id = u.ID AND um.meta_key = 'synced_gravatar_hashed_id' )
|
||||
LEFT JOIN {$wpdb->usermeta} um2 ON ( um2.user_id = u.ID AND um2.meta_key = 'synced_profile_photo' )",
|
||||
ARRAY_A );
|
||||
|
||||
$md_metadata3 = $wpdb->get_results(
|
||||
"SELECT u.ID as user_id, um.meta_value AS profile_photo, um2.meta_value AS cover_photo
|
||||
FROM {$wpdb->users} u
|
||||
LEFT JOIN {$wpdb->usermeta} um ON ( um.user_id = u.ID AND um.meta_key = 'profile_photo' )
|
||||
LEFT JOIN {$wpdb->usermeta} um2 ON ( um2.user_id = u.ID AND um2.meta_key = 'cover_photo' )",
|
||||
ARRAY_A );
|
||||
|
||||
$md_metadata4 = $wpdb->get_results(
|
||||
"SELECT u.ID as user_id, um.meta_value AS verified
|
||||
FROM {$wpdb->users} u
|
||||
LEFT JOIN {$wpdb->usermeta} um ON ( um.user_id = u.ID AND um.meta_key = '_um_verified' )",
|
||||
ARRAY_A );
|
||||
|
||||
|
||||
$users_map = array();
|
||||
foreach ( $md_metadata as $md_metadatarow ) {
|
||||
$hide_in_members = false;
|
||||
if ( ! empty( $md_metadatarow['hide_in_members'] ) ) {
|
||||
if ( $md_metadatarow['hide_in_members'] == 'Yes' || $md_metadatarow['hide_in_members'] == __( 'Yes', 'ultimate-member' ) ||
|
||||
$md_metadatarow['hide_in_members'] == serialize( array( 'Yes' ) ) || $md_metadatarow['hide_in_members'] == serialize( array( __( 'Yes', 'ultimate-member' ) ) ) ) {
|
||||
$hide_in_members = true;
|
||||
}
|
||||
}
|
||||
|
||||
$users_map[ $md_metadatarow['user_id'] ] = array(
|
||||
'account_status' => $md_metadatarow['account_status'],
|
||||
'hide_in_members' => $hide_in_members,
|
||||
);
|
||||
}
|
||||
|
||||
foreach ( $md_metadata3 as $md_metadatarow ) {
|
||||
if ( ! isset( $users_map[ $md_metadatarow['user_id'] ] ) ) {
|
||||
$users_map[ $md_metadatarow['user_id'] ] = array();
|
||||
}
|
||||
|
||||
$users_map[ $md_metadatarow['user_id'] ] = array_merge( $users_map[ $md_metadatarow['user_id'] ], array(
|
||||
'profile_photo' => ! empty( $md_metadatarow['profile_photo'] ),
|
||||
'cover_photo' => ! empty( $md_metadatarow['cover_photo'] ),
|
||||
) );
|
||||
}
|
||||
|
||||
foreach ( $md_metadata2 as $md_metadatarow ) {
|
||||
if ( ! isset( $users_map[ $md_metadatarow['user_id'] ] ) ) {
|
||||
$users_map[ $md_metadatarow['user_id'] ] = array();
|
||||
}
|
||||
|
||||
if ( ! empty( $users_map[ $md_metadatarow['user_id'] ]['profile_photo'] ) ) {
|
||||
continue;
|
||||
} else {
|
||||
$users_map[ $md_metadatarow['user_id'] ]['profile_photo'] = ( ! empty( $md_metadatarow['synced_gravatar_hashed_id'] ) || ! empty( $md_metadatarow['synced_profile_photo'] ) );
|
||||
}
|
||||
}
|
||||
|
||||
foreach ( $md_metadata4 as $md_metadatarow ) {
|
||||
if ( ! isset( $users_map[ $md_metadatarow['user_id'] ] ) ) {
|
||||
$users_map[ $md_metadatarow['user_id'] ] = array();
|
||||
}
|
||||
$users_map[ $md_metadatarow['user_id'] ] = array_merge( $users_map[ $md_metadatarow['user_id'] ], array(
|
||||
'verified' => $md_metadatarow['verified'] == 'verified' ? true : false,
|
||||
) );
|
||||
}
|
||||
|
||||
|
||||
if ( ! empty( $users_map ) ) {
|
||||
|
||||
remove_action( 'updated_user_meta', array( UM()->member_directory(), 'on_update_usermeta' ), 10 );
|
||||
remove_action( 'added_user_meta', array( UM()->member_directory(), 'on_update_usermeta' ), 10 );
|
||||
|
||||
foreach ( $users_map as $user_id => $metavalue ) {
|
||||
update_user_meta( $user_id, 'um_member_directory_data', $metavalue );
|
||||
}
|
||||
|
||||
add_action( 'updated_user_meta', array( UM()->member_directory(), 'on_update_usermeta' ), 10, 4 );
|
||||
add_action( 'added_user_meta', array( UM()->member_directory(), 'on_update_usermeta' ), 10, 4 );
|
||||
}
|
||||
|
||||
|
||||
$metadata = $wpdb->get_results(
|
||||
"SELECT *
|
||||
FROM {$wpdb->usermeta}
|
||||
WHERE meta_key IN ('" . implode( "','", $wp_usermeta_option ) . "')",
|
||||
ARRAY_A );
|
||||
|
||||
foreach ( $metadata as $metarow ) {
|
||||
$wpdb->insert(
|
||||
"{$wpdb->prefix}um_metadata",
|
||||
array(
|
||||
'user_id' => $metarow['user_id'],
|
||||
'um_key' => $metarow['meta_key'],
|
||||
'um_value' => $metarow['meta_value'],
|
||||
),
|
||||
array(
|
||||
'%d',
|
||||
'%s',
|
||||
'%s',
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -246,15 +246,10 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
|
||||
|
||||
<div class="wrap">
|
||||
<h2><?php printf( __( '%s - Upgrade Process', 'ultimate-member' ), ultimatemember_plugin_name ) ?></h2>
|
||||
<p><?php printf( __( 'You have installed %s version. Your latest DB version is %s. Before the click to "Run" button make sure that did the following:', 'ultimate-member' ), ultimatemember_version, $um_last_version_upgrade ) ?></p>
|
||||
<ul style="list-style: inside;">
|
||||
<li><?php _e( 'Create full site\'s backup.', 'ultimate-member' ) ?></li>
|
||||
<li><?php _e( 'Set maintenance mode (if you need)', 'ultimate-member' ) ?></li>
|
||||
<li><?php _e( 'You have nice Internet connection', 'ultimate-member' ) ?></li>
|
||||
</ul>
|
||||
<p><?php _e( 'After the click to "Run" button, the update process will be started. All information will be displayed in "Upgrade Log" field.', 'ultimate-member' ); ?></p>
|
||||
<p><?php printf( __( 'You have installed <strong>%s</strong> version. Your latest DB version is <strong>%s</strong>. We recommend creating a backup of your site before running the update process. Do not exit the page before the update process has complete.', 'ultimate-member' ), ultimatemember_version, $um_last_version_upgrade ) ?></p>
|
||||
<p><?php _e( 'After clicking the <strong>"Run"</strong> button, the update process will start. All information will be displayed in the <strong>"Upgrade Log"</strong> field.', 'ultimate-member' ); ?></p>
|
||||
<p><?php _e( 'If the update was successful, you will see a corresponding message. Otherwise, contact technical support if the update failed.', 'ultimate-member' ); ?></p>
|
||||
<h4><?php printf( __( 'Upgrade Log' ), ultimatemember_plugin_name ) ?></h4>
|
||||
<h4><?php _e( 'Upgrade Log', 'ultimate-member' ) ?></h4>
|
||||
<div id="upgrade_log" style="width: 100%;height:300px; overflow: auto;border: 1px solid #a1a1a1;margin: 0 0 10px 0;"></div>
|
||||
<div>
|
||||
<input type="button" id="run_upgrade" class="button button-primary" value="<?php esc_attr_e( 'Run', 'ultimate-member' ) ?>"/>
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
<?php if ( ! defined( 'ABSPATH' ) ) exit;
|
||||
|
||||
|
||||
function um_upgrade_users_count213beta3() {
|
||||
UM()->admin()->check_ajax_nonce();
|
||||
|
||||
um_maybe_unset_time_limit();
|
||||
|
||||
$users = get_users( array(
|
||||
'number' => '',
|
||||
'fields' => 'ids'
|
||||
) );
|
||||
$count = count( $users );
|
||||
|
||||
wp_send_json_success( array( 'count' => $count ) );
|
||||
}
|
||||
|
||||
|
||||
function um_upgrade_metadata_per_user213beta3() {
|
||||
UM()->admin()->check_ajax_nonce();
|
||||
|
||||
um_maybe_unset_time_limit();
|
||||
|
||||
|
||||
if ( empty( $_POST['page'] ) ) {
|
||||
wp_send_json_error( __( 'Wrong data', 'ultimate-member' ) );
|
||||
}
|
||||
|
||||
$per_page = 50;
|
||||
|
||||
global $wpdb;
|
||||
|
||||
$min_max = $wpdb->get_row( $wpdb->prepare(
|
||||
"SELECT MIN(ID) AS MinID, MAX(ID) AS MaxID
|
||||
FROM (
|
||||
SELECT u.ID
|
||||
FROM wpbultimate_users as u
|
||||
ORDER BY u.ID
|
||||
LIMIT %d, %d
|
||||
) as dt",
|
||||
( $_POST['page'] - 1 ) * $per_page,
|
||||
$per_page
|
||||
), ARRAY_A );
|
||||
|
||||
$metadata = $wpdb->get_results( $wpdb->prepare(
|
||||
"SELECT u.ID as user_id,
|
||||
um.meta_key as meta_key,
|
||||
um.meta_value as meta_value
|
||||
FROM wpbultimate_users u
|
||||
LEFT JOIN wpbultimate_usermeta um ON ( um.user_id = u.ID AND um.meta_key IN( 'account_status','hide_in_members','synced_gravatar_hashed_id','synced_profile_photo','profile_photo','cover_photo','_um_verified' ) )
|
||||
WHERE u.ID >= %d AND
|
||||
u.ID <= %d",
|
||||
$min_max['MinID'],
|
||||
$min_max['MaxID']
|
||||
), ARRAY_A );
|
||||
|
||||
$users_map = array();
|
||||
foreach ( $metadata as $metadatarow ) {
|
||||
if ( ! isset( $users_map[ $metadatarow['user_id'] ] ) ) {
|
||||
$users_map[ $metadatarow['user_id'] ] = array(
|
||||
'account_status' => 'approved',
|
||||
'hide_in_members' => false,
|
||||
'profile_photo' => false,
|
||||
'cover_photo' => false,
|
||||
'verified' => false,
|
||||
);
|
||||
}
|
||||
|
||||
switch ( $metadatarow['meta_key'] ) {
|
||||
case 'account_status':
|
||||
$users_map[ $metadatarow['user_id'] ]['account_status'] = $metadatarow['meta_value'];
|
||||
break;
|
||||
case 'hide_in_members':
|
||||
|
||||
$hide_in_members = false;
|
||||
if ( ! empty( $metadatarow['meta_value'] ) ) {
|
||||
if ( $metadatarow['meta_value'] == 'Yes' || $metadatarow['meta_value'] == __( 'Yes', 'ultimate-member' ) ||
|
||||
$metadatarow['meta_value'] == serialize( array( 'Yes' ) ) || $metadatarow['meta_value'] == serialize( array( __( 'Yes', 'ultimate-member' ) ) ) ) {
|
||||
$hide_in_members = true;
|
||||
}
|
||||
}
|
||||
|
||||
$users_map[ $metadatarow['user_id'] ]['hide_in_members'] = $hide_in_members;
|
||||
|
||||
break;
|
||||
case 'synced_gravatar_hashed_id':
|
||||
case 'synced_profile_photo':
|
||||
|
||||
if ( empty( $users_map[ $metadatarow['user_id'] ]['profile_photo'] ) ) {
|
||||
$users_map[ $metadatarow['user_id'] ]['profile_photo'] = ! empty( $metadatarow['meta_value'] );
|
||||
}
|
||||
|
||||
break;
|
||||
case 'profile_photo':
|
||||
$users_map[ $metadatarow['user_id'] ]['profile_photo'] = ! empty( $metadatarow['meta_value'] );
|
||||
break;
|
||||
case 'cover_photo':
|
||||
$users_map[ $metadatarow['user_id'] ]['cover_photo'] = ! empty( $metadatarow['meta_value'] );
|
||||
break;
|
||||
case '_um_verified':
|
||||
$users_map[ $metadatarow['user_id'] ]['verified'] = $metadatarow['meta_value'] == 'verified' ? true : false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! empty( $users_map ) ) {
|
||||
foreach ( $users_map as $user_id => $metavalue ) {
|
||||
update_user_meta( $user_id, 'um_member_directory_data', $metavalue );
|
||||
}
|
||||
}
|
||||
|
||||
$from = ( $_POST['page'] * $per_page ) - $per_page + 1;
|
||||
$to = $_POST['page'] * $per_page;
|
||||
|
||||
wp_send_json_success( array( 'message' => sprintf( __( 'Metadata from %s to %s users were upgraded successfully...', 'ultimate-member' ), $from, $to ) ) );
|
||||
}
|
||||
|
||||
|
||||
function um_upgrade_metatable213beta3() {
|
||||
UM()->admin()->check_ajax_nonce();
|
||||
|
||||
um_maybe_unset_time_limit();
|
||||
|
||||
global $wpdb;
|
||||
|
||||
$charset_collate = $wpdb->get_charset_collate();
|
||||
|
||||
$sql = "CREATE TABLE {$wpdb->prefix}um_metadata (
|
||||
umeta_id bigint(20) unsigned NOT NULL auto_increment,
|
||||
user_id bigint(20) unsigned NOT NULL default '0',
|
||||
um_key varchar(255) default NULL,
|
||||
um_value longtext default NULL,
|
||||
PRIMARY KEY (umeta_id),
|
||||
KEY user_id_indx (user_id),
|
||||
KEY meta_key_indx (um_key),
|
||||
KEY meta_value_indx (um_value(191))
|
||||
) $charset_collate;";
|
||||
|
||||
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
|
||||
dbDelta( $sql );
|
||||
|
||||
update_option( 'um_last_version_upgrade', '2.1.3-beta3' );
|
||||
wp_send_json_success( array( 'message' => __( 'Usermeta table was upgraded successfully', 'ultimate-member' ) ) );
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php if ( ! defined( 'ABSPATH' ) ) exit;
|
||||
|
||||
return array(
|
||||
'users_count213beta3' => 'users_count213beta3',
|
||||
'metadata_per_user213beta3' => 'metadata_per_user213beta3',
|
||||
'metatable213beta3' => 'metatable213beta3',
|
||||
);
|
||||
@@ -0,0 +1,93 @@
|
||||
<?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery( document ).ready( function() {
|
||||
var users_pages;
|
||||
var current_page = 1;
|
||||
var users_per_page = 50;
|
||||
|
||||
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_users_count213beta3',
|
||||
nonce: um_admin_scripts.nonce
|
||||
},
|
||||
success: function( response ) {
|
||||
if ( typeof response.data.count != 'undefined' ) {
|
||||
um_add_upgrade_log( '<?php echo esc_js( __( 'There are ', 'ultimate-member' ) ) ?>' + response.data.count + '<?php echo esc_js( __( ' users...', 'ultimate-member' ) ) ?>' );
|
||||
um_add_upgrade_log( '<?php echo esc_js( __( 'Start metadata upgrading...', 'ultimate-member' ) ) ?>' );
|
||||
|
||||
users_pages = Math.ceil( response.data.count / users_per_page );
|
||||
|
||||
um_update_metadata_per_user213beta3();
|
||||
} else {
|
||||
um_wrong_ajax();
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
um_something_wrong();
|
||||
}
|
||||
});
|
||||
|
||||
function um_update_metadata_per_user213beta3() {
|
||||
if ( current_page <= users_pages ) {
|
||||
jQuery.ajax({
|
||||
url: wp.ajax.settings.url,
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
action: 'um_metadata_per_user213beta3',
|
||||
page: current_page,
|
||||
nonce: um_admin_scripts.nonce
|
||||
},
|
||||
success: function( response ) {
|
||||
if ( typeof response.data != 'undefined' ) {
|
||||
um_add_upgrade_log( response.data.message );
|
||||
current_page++;
|
||||
um_update_metadata_per_user213beta3();
|
||||
} else {
|
||||
um_wrong_ajax();
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
um_something_wrong();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
um_metatable213beta3();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//clear users cache
|
||||
function um_metatable213beta3() {
|
||||
um_add_upgrade_log( '<?php echo esc_js( __( 'Create additional metadata table...', 'ultimate-member' ) ) ?>' );
|
||||
jQuery.ajax({
|
||||
url: wp.ajax.settings.url,
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
action: 'um_metatable213beta3',
|
||||
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>
|
||||
@@ -12,36 +12,6 @@ global $post_id; ?>
|
||||
$_um_roles_filter_value = get_post_meta( $post_id, '_um_roles_can_filter', true );
|
||||
$_um_roles_filter_value = empty( $_um_roles_filter_value ) ? array() : $_um_roles_filter_value;
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
*
|
||||
* @type filter
|
||||
* @title um_admin_custom_search_filters
|
||||
* @description Custom Search Filters
|
||||
* @input_vars
|
||||
* [{"var":"$custom_search","type":"array","desc":"Filters"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage
|
||||
* <?php add_filter( 'um_admin_custom_search_filters', 'function_name', 10, 1 ); ?>
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_admin_custom_search_filters', 'my_admin_custom_search_filters', 10, 1 );
|
||||
* function my_upload_file_name( $custom_search ) {
|
||||
* // your code here
|
||||
* return $custom_search;
|
||||
* }
|
||||
* ?>
|
||||
*/
|
||||
$custom_search = apply_filters( 'um_admin_custom_search_filters', array() );
|
||||
$searchable_fields = UM()->builtin()->all_user_fields( 'date,time,url' );
|
||||
$searchable_fields = $searchable_fields + $custom_search;
|
||||
$user_fields = array();
|
||||
foreach ( $searchable_fields as $key => $arr ) {
|
||||
$user_fields[ $key ] = isset( $arr['title'] ) ? $arr['title'] : '';
|
||||
}
|
||||
|
||||
//$post_id = get_the_ID();
|
||||
$_um_search_fields = get_post_meta( $post_id, '_um_search_fields', true );
|
||||
$_um_search_filters = get_post_meta( $post_id, '_um_search_filters', true );
|
||||
|
||||
|
||||
@@ -79,22 +79,22 @@ if ( ! class_exists( 'um\core\Date_Time' ) ) {
|
||||
}
|
||||
|
||||
if ( $days == 1 ) {
|
||||
$since = sprintf( __( 'Yesterday at %s', 'ultimate-member' ), date_i18n( 'g:ia', $from ) );
|
||||
$since = sprintf( __( 'Yesterday at %s', 'ultimate-member' ), date_i18n( get_option( 'time_format' ), $from ) );
|
||||
} else {
|
||||
$since = sprintf( __( '%s at %s', 'ultimate-member' ), date_i18n( 'F d', $from ), date_i18n( 'g:ia', $from ) );
|
||||
$since = sprintf( __( '%s at %s', 'ultimate-member' ), date_i18n( 'F d', $from ), date_i18n( get_option( 'time_format' ), $from ) );
|
||||
}
|
||||
|
||||
} elseif ( $diff < 30 * DAY_IN_SECONDS && $diff >= WEEK_IN_SECONDS ) {
|
||||
|
||||
$since = sprintf( __( '%s at %s', 'ultimate-member' ), date_i18n( 'F d', $from ), date_i18n( 'g:ia', $from ) );
|
||||
$since = sprintf( __( '%s at %s', 'ultimate-member' ), date_i18n( 'F d', $from ), date_i18n( get_option( 'time_format' ), $from ) );
|
||||
|
||||
} elseif ( $diff < YEAR_IN_SECONDS && $diff >= 30 * DAY_IN_SECONDS ) {
|
||||
|
||||
$since = sprintf( __( '%s at %s','ultimate-member'), date_i18n( 'F d', $from ), date_i18n( 'g:ia', $from ) );
|
||||
$since = sprintf( __( '%s at %s','ultimate-member'), date_i18n( 'F d', $from ), date_i18n( get_option( 'time_format' ), $from ) );
|
||||
|
||||
} elseif ( $diff >= YEAR_IN_SECONDS ) {
|
||||
|
||||
$since = sprintf( __( '%s at %s', 'ultimate-member' ), date_i18n( 'F d, Y', $from ), date_i18n( 'g:ia', $from ) );
|
||||
$since = sprintf( __( '%s at %s', 'ultimate-member' ), date_i18n( get_option( 'date_format' ), $from ), date_i18n( get_option( 'time_format' ), $from ) );
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -644,13 +644,14 @@ PRIMARY KEY (id)
|
||||
}
|
||||
case 'slider': {
|
||||
$range = $this->slider_filters_range( $filter, $directory_data );
|
||||
$placeholder = $this->slider_range_placeholder( $filter, $attrs );
|
||||
|
||||
list( $single_placeholder, $plural_placeholder ) = $this->slider_range_placeholder( $filter, $attrs );
|
||||
|
||||
if ( $range ) { ?>
|
||||
<input type="hidden" id="<?php echo $filter; ?>_min" name="<?php echo $filter; ?>[]" class="um_range_min" value="<?php echo ! empty( $default_value ) ? esc_attr( min( $default_value ) ) : '' ?>" />
|
||||
<input type="hidden" id="<?php echo $filter; ?>_max" name="<?php echo $filter; ?>[]" class="um_range_max" value="<?php echo ! empty( $default_value ) ? esc_attr( max( $default_value ) ) : '' ?>" />
|
||||
<div class="um-slider" data-field_name="<?php echo $filter; ?>" data-min="<?php echo $range[0] ?>" data-max="<?php echo $range[1] ?>"></div>
|
||||
<div class="um-slider-range" data-placeholder="<?php echo esc_attr( $placeholder ); ?>" data-label="<?php echo ( ! empty( $attrs['label'] ) ) ? esc_attr__( stripslashes( $attrs['label'] ), 'ultimate-member' ) : ''; ?>"></div>
|
||||
<div class="um-slider-range" data-placeholder-s="<?php echo esc_attr( $single_placeholder ); ?>" data-placeholder-p="<?php echo esc_attr( $plural_placeholder ); ?>" data-label="<?php echo ( ! empty( $attrs['label'] ) ) ? esc_attr__( stripslashes( $attrs['label'] ), 'ultimate-member' ) : ''; ?>"></div>
|
||||
<?php }
|
||||
|
||||
break;
|
||||
@@ -778,15 +779,21 @@ PRIMARY KEY (id)
|
||||
switch ( $filter ) {
|
||||
default: {
|
||||
$label = ucwords( str_replace( array( 'um_', '_' ), array( '', ' ' ), $filter ) );
|
||||
$placeholder = apply_filters( 'um_member_directory_filter_slider_range_placeholder', false, $filter );
|
||||
$placeholders = apply_filters( 'um_member_directory_filter_slider_range_placeholder', false, $filter );
|
||||
|
||||
if ( ! $placeholder ) {
|
||||
if ( ! $placeholders ) {
|
||||
switch ( $attrs['type'] ) {
|
||||
default:
|
||||
$placeholder = "<strong>$label:</strong> {min_range} - {max_range}";
|
||||
$placeholders = array(
|
||||
"<strong>$label:</strong> {value}",
|
||||
"<strong>$label:</strong> {min_range} - {max_range}",
|
||||
);
|
||||
break;
|
||||
case 'rating':
|
||||
$placeholder = "<strong>$label:</strong> {min_range} - {max_range}" . __( ' stars', 'ultimate-member' );
|
||||
$placeholders = array(
|
||||
"<strong>$label:</strong> {value}" . __( ' stars', 'ultimate-member' ),
|
||||
"<strong>$label:</strong> {min_range} - {max_range}" . __( ' stars', 'ultimate-member' )
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -794,12 +801,15 @@ PRIMARY KEY (id)
|
||||
break;
|
||||
}
|
||||
case 'birth_date': {
|
||||
$placeholder = __( '<strong>Age:</strong> {min_range} - {max_range} years old', 'ultimate-member' );
|
||||
$placeholders = array(
|
||||
__( '<strong>Age:</strong> {value} years old', 'ultimate-member' ),
|
||||
__( '<strong>Age:</strong> {min_range} - {max_range} years old', 'ultimate-member' )
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $placeholder;
|
||||
return $placeholders;
|
||||
}
|
||||
|
||||
|
||||
@@ -1607,12 +1617,12 @@ PRIMARY KEY (id)
|
||||
case 'birth_date':
|
||||
|
||||
$from_date = date( 'Y/m/d', mktime( 0,0,0, date( 'm', time() ), date( 'd', time() ), date( 'Y', time() - min( $value ) * YEAR_IN_SECONDS ) ) );
|
||||
$to_date = date( 'Y/m/d', mktime( 0,0,0, date( 'm', time() ), date( 'd', time() ) + 1, date( 'Y', time() - ( max( $value ) + 1 ) * YEAR_IN_SECONDS ) ) );
|
||||
$to_date = date( 'Y/m/d', mktime( 0,0,0, date( 'm', time() ), date( 'd', time() ) + 1, date( 'Y', time() - ( max( $value ) + 1 ) * YEAR_IN_SECONDS ) - 1 ) );
|
||||
|
||||
$meta_query = array(
|
||||
array(
|
||||
'key' => 'birth_date',
|
||||
'value' => array( $from_date, $to_date ),
|
||||
'value' => array( $to_date, $from_date ),
|
||||
'compare' => 'BETWEEN',
|
||||
'type' => 'DATE',
|
||||
'inclusive' => true,
|
||||
@@ -1621,7 +1631,7 @@ PRIMARY KEY (id)
|
||||
|
||||
$this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) );
|
||||
|
||||
$this->custom_filters_in_query[ $field ] = array( $from_date, $to_date );
|
||||
$this->custom_filters_in_query[ $field ] = array( $to_date, $from_date );
|
||||
|
||||
break;
|
||||
case 'user_registered':
|
||||
|
||||
@@ -274,6 +274,19 @@ if ( ! class_exists( 'um\core\Plugin_Updater' ) ) {
|
||||
|
||||
if ( ! is_wp_error( $request ) ) {
|
||||
$request = json_decode( wp_remote_retrieve_body( $request ) );
|
||||
} else {
|
||||
$request = wp_remote_post(
|
||||
UM()->store_url,
|
||||
array(
|
||||
'timeout' => UM()->request_timeout,
|
||||
'sslverify' => true,
|
||||
'body' => $api_params
|
||||
)
|
||||
);
|
||||
|
||||
if ( ! is_wp_error( $request ) ) {
|
||||
$request = json_decode( wp_remote_retrieve_body( $request ) );
|
||||
}
|
||||
}
|
||||
|
||||
$request = ( $request ) ? maybe_unserialize( $request ) : false;
|
||||
|
||||
@@ -1446,7 +1446,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
|
||||
if ( ! empty( $this->profile['role'] ) ) {
|
||||
return $this->profile['role'];
|
||||
} else {
|
||||
if ( $this->profile['wp_roles'] == 'administrator' ) {
|
||||
if ( ! empty( $this->profile['wp_roles'] ) && $this->profile['wp_roles'] == 'administrator' ) {
|
||||
return 'admin';
|
||||
} else {
|
||||
return 'member';
|
||||
|
||||
@@ -120,8 +120,8 @@ function um_profile_field_filter_hook__user_registered( $value, $data ) {
|
||||
if ( ! $value ) {
|
||||
return '';
|
||||
}
|
||||
$value = strtotime($value);
|
||||
$value = sprintf(__('Joined %s','ultimate-member'), date_i18n('F d, Y', $value) );
|
||||
$value = strtotime( $value );
|
||||
$value = sprintf( __( 'Joined %s', 'ultimate-member' ), date_i18n( get_option( 'date_format' ), $value ) );
|
||||
return $value;
|
||||
}
|
||||
add_filter( 'um_profile_field_filter_hook__user_registered', 'um_profile_field_filter_hook__user_registered', 99, 2 );
|
||||
|
||||
@@ -995,12 +995,12 @@ function um_is_file_owner( $url, $user_id = null, $image_path = false ) {
|
||||
*/
|
||||
function um_is_temp_file( $filename ) {
|
||||
$user_basedir = UM()->uploader()->get_upload_user_base_dir( 'temp' );
|
||||
|
||||
|
||||
$file = $user_basedir . '/' . $filename;
|
||||
|
||||
|
||||
if ( file_exists( $file ) ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1014,8 +1014,9 @@ function um_is_temp_file( $filename ) {
|
||||
*/
|
||||
function um_user_last_login_timestamp( $user_id ) {
|
||||
$value = get_user_meta( $user_id, '_um_last_login', true );
|
||||
if ($value)
|
||||
if ( $value ) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
@@ -1047,8 +1048,9 @@ function um_get_core_page( $slug, $updated = false ) {
|
||||
|
||||
if ( isset( UM()->config()->permalinks[ $slug ] ) ) {
|
||||
$url = get_permalink( UM()->config()->permalinks[ $slug ] );
|
||||
if ( $updated )
|
||||
if ( $updated ) {
|
||||
$url = add_query_arg( 'updated', esc_attr( $updated ), $url );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -272,11 +272,7 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea
|
||||
<# _.each( data.filters, function( filter, key, list ) { #>
|
||||
<div class="um-members-filter-tag">
|
||||
<# if ( filter.type == 'slider' ) { #>
|
||||
<# if ( filter.value[0] == filter.value[1] ) { #>
|
||||
<strong>{{{filter.label}}}</strong>: {{{filter.value[0]}}}
|
||||
<# } else { #>
|
||||
{{{filter.value_label}}}
|
||||
<# } #>
|
||||
{{{filter.value_label}}}
|
||||
<# } else { #>
|
||||
<strong>{{{filter.label}}}</strong>: {{{filter.value_label}}}
|
||||
<# } #>
|
||||
|
||||
+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-beta2
|
||||
Version: 2.1.3-beta3
|
||||
Author: Ultimate Member
|
||||
Author URI: http://ultimatemember.com/
|
||||
Text Domain: ultimate-member
|
||||
|
||||
Reference in New Issue
Block a user