Exemple #1
0
function repair_user_meta_prefix()
{
    global $xoops_db;
    // repair usermeta db
    $db_xpress_usermeta = get_wp_prefix() . 'usermeta';
    $wp_prefix_only = get_wp_prefix_only();
    $user_meta_prefix = get_wp_prefix();
    $sql = "SELECT * FROM {$db_xpress_usermeta} WHERE meta_key LIKE '%_" . $wp_prefix_only . "%'";
    $user_metas = $xoops_db->get_results($sql);
    if (!empty($user_metas)) {
        foreach ($user_metas as $user_meta) {
            if (strpos($user_meta->meta_key, $user_meta_prefix) === false) {
                $new_meta_key = '';
                if (strpos($user_meta->meta_key, $wp_prefix_only . 'user_level')) {
                    $new_meta_key = $user_meta_prefix . 'user_level';
                }
                if (strpos($user_meta->meta_key, $wp_prefix_only . 'capabilities')) {
                    $new_meta_key = $user_meta_prefix . 'capabilities';
                }
                if (strpos($user_meta->meta_key, $wp_prefix_only . 'autosave_draft_ids')) {
                    $new_meta_key = $user_meta_prefix . 'autosave_draft_ids';
                }
                if (strpos($user_meta->meta_key, $wp_prefix_only . 'usersettings')) {
                    if (strpos($user_meta->meta_key, $wp_prefix_only . 'usersettingstime')) {
                        $new_meta_key = $user_meta_prefix . 'usersettingstime';
                    } else {
                        $new_meta_key = $user_meta_prefix . 'usersettings';
                    }
                }
                if (!empty($new_meta_key)) {
                    $repair_sql = "UPDATE {$db_xpress_usermeta} ";
                    $repair_sql .= 'SET ';
                    $repair_sql .= "meta_key = '{$new_meta_key}' ";
                    $repair_sql .= "WHERE (umeta_id = {$user_meta->umeta_id} )";
                    $xoops_db->query($repair_sql);
                }
            }
        }
    }
    // repair option db user_roles
    include_once ABSPATH . '/include/general_functions.php';
    $prefix = get_wp_prefix();
    $option_tables = get_table_list($prefix, 'options');
    if (!empty($option_tables)) {
        foreach ($option_tables as $option_table) {
            $mid_prefix = get_multi_mid_prefix($prefix, 'options', $option_table);
            $new_option_name = $prefix . $mid_prefix . 'user_roles';
            $sql = "SELECT option_id , option_name FROM {$option_table} WHERE option_name LIKE '%_user_roles'";
            $option = $xoops_db->get_row($sql);
            if ($option->option_name != $new_option_name) {
                $repair_sql = "UPDATE {$db_wp_option} ";
                $repair_sql .= 'SET ';
                $repair_sql .= "option_name = '{$new_option_name}' ";
                $repair_sql .= "WHERE (option_id = {$option->option_id} )";
                $xoops_db->query($repair_sql);
            }
        }
    }
}
function get_wp_prefix()
{
    $prefix = get_xoops_prefix() . get_wp_prefix_only();
    return $prefix;
}