- fixed privacy field for multilanguages;

- added upgrade script to make the metadata's format properly;
This commit is contained in:
nikitozzzzzzz
2018-08-02 09:32:43 +03:00
parent ad481b6edd
commit 3e0090e55b
5 changed files with 177 additions and 23 deletions
+1 -22
View File
@@ -150,7 +150,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
$all_packages = $this->get_packages();
foreach ( $all_packages as $package ) {
if ( version_compare( $um_last_version_upgrade, $package, '<' ) ) {
if ( version_compare( $um_last_version_upgrade, $package, '<' ) && version_compare( $package, ultimatemember_version, '<=' ) ) {
$diff_packages[] = $package;
}
}
@@ -402,28 +402,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Upgrade' ) ) {
/**
* Parse packages dir for packages files
*/
/*function set_update_versions_() {
$update_versions = array();
$handle = opendir( $this->packages_dir );
if ( $handle ) {
while ( false !== ( $filename = readdir( $handle ) ) ) {
if ( $filename != '.' && $filename != '..' ) {
var_dump( $filename );
if ( is_dir( $this->packages_dir . DIRECTORY_SEPARATOR . $filename ) ) {
$update_versions[] = $filename;
}
}
}
closedir( $handle );
usort( $update_versions, array( &$this, 'version_compare_sort' ) );
$this->update_packages = $update_versions;
}
}*/
/**
@@ -0,0 +1,101 @@
<?php
function um_upgrade_get_users2022() {
um_maybe_unset_time_limit();
$result = count_users();
wp_send_json_success( array( 'count' => $result['total_users'], 'message' => __( 'Users are ready for upgrade', 'ultimate-member' ) ) );
}
function um_upgrade_usermeta2022() {
um_maybe_unset_time_limit();
if ( ! empty( $_POST['page'] ) ) {
$users_per_page = 50;
$from = ( $_POST['page'] * $users_per_page ) - $users_per_page + 1;
$to = $_POST['page'] * $users_per_page;
global $wpdb;
$all_metafields = UM()->builtin()->all_user_fields;
/**
* 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;
unset( $searchable_fields['user_registered'] );
unset( $searchable_fields['role_select'] );
unset( $searchable_fields['role_radio'] );
unset( $searchable_fields[0] );
$searchable_fields = array_keys( $searchable_fields );
foreach ( $all_metafields as $key => $field_data ) {
if ( ! in_array( $key, $searchable_fields ) ) {
continue;
}
$users = get_users( array(
'offset' => $from,
'number' => $users_per_page,
'fields' => 'ids',
) );
$values = $wpdb->get_results( $wpdb->prepare(
"SELECT user_id, meta_value as val
FROM {$wpdb->usermeta}
WHERE meta_key = %s AND
meta_value IS NOT NULL AND
user_id IN('" . implode( "','", $users ) . "')",
$key
), ARRAY_A );
if ( empty( $values ) ) {
continue;
}
foreach ( $values as $meta ) {
if ( in_array( $field_data['type'], array( 'radio', 'multiselect', 'select', 'checkbox' ) ) ) {
if ( ! is_serialized( $meta['val'] ) ) {
$array = array( $meta['val'] );
$metavalue = serialize( $array );
update_user_meta( $meta['user_id'], $field_data['metakey'], $metavalue );
}
} else {
if ( is_serialized( $meta['val'] ) ) {
$maybe_array = maybe_unserialize( $meta['val'] );
$metavalue = $maybe_array[0];
update_user_meta( $meta['user_id'], $field_data['metakey'], $metavalue );
}
}
}
}
wp_send_json_success( array( 'message' => sprintf( __( 'Users from %s to %s was upgraded successfully...', 'ultimate-member' ), $from, $to ) ) );
} else {
wp_send_json_error();
}
}
@@ -0,0 +1,6 @@
<?php
return array(
'get_users2022' => 'get_users2022',
'usermeta2022' => 'usermeta2022',
);
@@ -0,0 +1,67 @@
<?php ?>
<script type="text/javascript">
jQuery( document ).ready( function() {
var users;
var users_per_page = 50;
var current_page = 1;
//upgrade styles
um_add_upgrade_log( '<?php echo esc_js( __( 'Upgrade Usermeta...', 'ultimate-member' ) ) ?>' );
jQuery.ajax({
url: '<?php echo admin_url( 'admin-ajax.php' ) ?>',
type: 'POST',
dataType: 'json',
data: {
action: 'um_get_users2022'
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
users = Math.ceil( response.data.count / users_per_page );
update_users_per_page();
} else {
um_wrong_ajax();
}
},
error: function() {
um_something_wrong();
}
});
function update_users_per_page() {
if ( current_page <= users ) {
jQuery.ajax({
url: '<?php echo admin_url( 'admin-ajax.php' ) ?>',
type: 'POST',
dataType: 'json',
data: {
action: 'um_usermeta2022',
page: current_page
},
success: function( response ) {
if ( typeof response.data != 'undefined' ) {
um_add_upgrade_log( response.data.message );
current_page++;
update_users_per_page();
} else {
um_wrong_ajax();
}
},
error: function() {
um_something_wrong();
}
});
} else {
//switch to the next package
um_run_upgrade();
}
}
});
</script>
+2 -1
View File
@@ -2582,7 +2582,8 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
$um_field_checkbox_item_title = $v;
if (!is_numeric( $k ) && in_array( $form_key, array( 'role' ) )) {
if ( ! is_numeric( $k ) && in_array( $form_key, array( 'role' ) ) ||
( $this->set_mode == 'account' || um_is_core_page( 'account' ) ) ) {
$option_value = $k;
$um_field_checkbox_item_title = $v;
}