Files
ultimatemember/includes/admin/core/packages/2.8.0/functions.php
T

133 lines
4.2 KiB
PHP
Raw Normal View History

<?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' ) ) );
}