mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-13 11:46:27 +09:00
- partially reviewed #1361 and DB update for these changes;
This commit is contained in:
+132
@@ -0,0 +1,132 @@
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
function um_upgrade_usermeta_count280() {
|
||||
UM()->admin()->check_ajax_nonce();
|
||||
|
||||
um_maybe_unset_time_limit();
|
||||
|
||||
global $wpdb;
|
||||
|
||||
$count = $wpdb->get_var(
|
||||
"SELECT COUNT(*)
|
||||
FROM {$wpdb->usermeta}
|
||||
WHERE meta_key = 'use_gdpr_agreement' OR
|
||||
meta_key = 'um_user_blocked__timestamp' OR
|
||||
meta_key = '_um_last_login' OR
|
||||
meta_key = 'submitted'"
|
||||
);
|
||||
|
||||
wp_send_json_success( array( 'count' => $count ) );
|
||||
}
|
||||
|
||||
|
||||
function um_upgrade_metadata_per_user280() {
|
||||
UM()->admin()->check_ajax_nonce();
|
||||
|
||||
um_maybe_unset_time_limit();
|
||||
|
||||
if ( empty( $_POST['page'] ) ) {
|
||||
wp_send_json_error( __( 'Wrong data', 'ultimate-member' ) );
|
||||
}
|
||||
|
||||
global $wpdb;
|
||||
|
||||
$per_page = 100;
|
||||
$usermeta = $wpdb->get_results(
|
||||
$wpdb->prepare(
|
||||
"SELECT *
|
||||
FROM {$wpdb->usermeta}
|
||||
WHERE meta_key = 'use_gdpr_agreement' OR
|
||||
meta_key = 'um_user_blocked__timestamp' OR
|
||||
meta_key = '_um_last_login' OR
|
||||
meta_key = 'submitted'
|
||||
LIMIT %d, %d",
|
||||
( absint( $_POST['page'] ) - 1 ) * $per_page,
|
||||
$per_page
|
||||
),
|
||||
ARRAY_A
|
||||
);
|
||||
|
||||
// Make non-GMT timestamp as GMT base on current wp_timezone().
|
||||
$offset = (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
|
||||
foreach ( $usermeta as $usermeta_row ) {
|
||||
$updated_meta = null;
|
||||
|
||||
if ( empty( $usermeta_row['meta_key'] ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$user_id = $usermeta_row['user_id'];
|
||||
if ( 'use_gdpr_agreement' === $usermeta_row['meta_key'] ) {
|
||||
if ( is_numeric( $usermeta_row['meta_value'] ) ) {
|
||||
update_user_meta( $user_id, 'um_use_gdpr_agreement_backup', $usermeta_row['meta_value'] );
|
||||
$updated_meta = gmdate( 'Y-m-d H:i:s', $usermeta_row['meta_value'] );
|
||||
}
|
||||
} elseif ( '_um_last_login' === $usermeta_row['meta_key'] ) {
|
||||
if ( is_numeric( $usermeta_row['meta_value'] ) ) {
|
||||
update_user_meta( $user_id, '_um_last_login_backup', $usermeta_row['meta_value'] );
|
||||
if ( ! empty( $offset ) ) {
|
||||
$updated_meta = (int) $usermeta_row['meta_value'] - $offset;
|
||||
} else {
|
||||
$updated_meta = (int) $usermeta_row['meta_value'];
|
||||
}
|
||||
|
||||
$updated_meta = gmdate( 'Y-m-d H:i:s', $updated_meta );
|
||||
}
|
||||
} elseif ( 'submitted' === $usermeta_row['meta_key'] ) {
|
||||
$unserialized_meta = maybe_unserialize( $usermeta_row['meta_value'] );
|
||||
if ( isset( $unserialized_meta['use_gdpr_agreement'] ) && is_numeric( $unserialized_meta['use_gdpr_agreement'] ) ) {
|
||||
update_user_meta( $user_id, 'submitted_backup', $unserialized_meta );
|
||||
$unserialized_meta['use_gdpr_agreement'] = gmdate( 'Y-m-d H:i:s', $unserialized_meta['use_gdpr_agreement'] );
|
||||
|
||||
$updated_meta = maybe_serialize( $unserialized_meta );
|
||||
}
|
||||
} elseif ( 'um_user_blocked__timestamp' === $usermeta_row['meta_key'] ) {
|
||||
if ( ! empty( $offset ) ) {
|
||||
$last_scanned_time = $usermeta_row['meta_value'];
|
||||
if ( ! empty( $last_scanned_time ) ) {
|
||||
update_user_meta( $user_id, 'um_user_blocked__timestamp_backup', $last_scanned_time );
|
||||
$last_scanned_time = strtotime( $last_scanned_time ) - $offset;
|
||||
$updated_meta = gmdate( 'Y-m-d H:i:s', $last_scanned_time );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( isset( $updated_meta ) ) {
|
||||
update_user_meta( $user_id, $usermeta_row['meta_key'], $updated_meta );
|
||||
}
|
||||
}
|
||||
|
||||
$from = ( absint( $_POST['page'] ) * $per_page ) - $per_page + 1;
|
||||
$to = absint( $_POST['page'] ) * $per_page;
|
||||
|
||||
// translators: %1$s is a from; %2$s is a to.
|
||||
wp_send_json_success( array( 'message' => sprintf( __( 'Metadata from %1$s to %2$s were upgraded successfully...', 'ultimate-member' ), $from, $to ) ) );
|
||||
}
|
||||
|
||||
function um_upgrade_update_options280() {
|
||||
UM()->admin()->check_ajax_nonce();
|
||||
|
||||
um_maybe_unset_time_limit();
|
||||
|
||||
$offset = (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
|
||||
|
||||
if ( ! empty( $offset ) ) {
|
||||
$last_scanned_time = get_option( 'um_secure_last_time_scanned' );
|
||||
if ( ! empty( $last_scanned_time ) ) {
|
||||
update_option( 'um_secure_last_time_scanned_backup', $last_scanned_time );
|
||||
$last_scanned_time = strtotime( $last_scanned_time ) - $offset;
|
||||
$last_scanned_time = gmdate( 'Y-m-d H:i:s', $last_scanned_time );
|
||||
|
||||
update_option( 'um_secure_last_time_scanned', $last_scanned_time );
|
||||
}
|
||||
}
|
||||
|
||||
// delete temporarily option for fields upgrade
|
||||
update_option( 'um_last_version_upgrade', '2.8.0' );
|
||||
|
||||
wp_send_json_success( array( 'message' => __( 'Database has been updated successfully', 'ultimate-member' ) ) );
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
return array(
|
||||
'usermeta_count280' => 'usermeta_count280',
|
||||
'metadata_per_user280' => 'metadata_per_user280',
|
||||
'update_options280' => 'update_options280',
|
||||
);
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery( document ).ready( function() {
|
||||
var users_pages;
|
||||
var current_page = 1;
|
||||
var users_per_page = 100;
|
||||
|
||||
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_usermeta_count280',
|
||||
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( __( ' metarows...', '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 );
|
||||
|
||||
setTimeout( function () {
|
||||
um_update_metadata_per_user280();
|
||||
}, um_request_throttle );
|
||||
} else {
|
||||
um_wrong_ajax();
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
um_something_wrong();
|
||||
}
|
||||
});
|
||||
|
||||
function um_update_metadata_per_user280() {
|
||||
if ( current_page <= users_pages ) {
|
||||
jQuery.ajax({
|
||||
url: wp.ajax.settings.url,
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
action: 'um_metadata_per_user280',
|
||||
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++;
|
||||
setTimeout( function () {
|
||||
um_update_metadata_per_user280();
|
||||
}, um_request_throttle );
|
||||
} else {
|
||||
um_wrong_ajax();
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
um_something_wrong();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
setTimeout( function () {
|
||||
um_option_update280();
|
||||
}, um_request_throttle );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//clear users cache
|
||||
function um_option_update280() {
|
||||
um_add_upgrade_log( '<?php echo esc_js( __( 'Update options table...', 'ultimate-member' ) ); ?>' );
|
||||
jQuery.ajax({
|
||||
url: wp.ajax.settings.url,
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
action: 'um_update_options280',
|
||||
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>
|
||||
Reference in New Issue
Block a user