CCCPaste

06d8817d57102

// 1. User table
$data['user'] = $wpdb->get_row($wpdb->prepare(
            "SELECT * FROM {$wpdb->users} WHERE ID = %d",
            $this->user_id
        ), ARRAY_A);

// 2. User meta
$data['user_meta'] = $wpdb->get_results($wpdb->prepare(
            "SELECT meta_key, meta_value FROM {$wpdb->usermeta} WHERE user_id = %d",
            $this->user_id
        ), ARRAY_A);
// 3. Posts
        $data['posts'] = $wpdb->get_results($wpdb->prepare(
            "SELECT * FROM {$wpdb->posts} WHERE post_author = %d",
            $this->user_id
        ), ARRAY_A);
// 4. Post meta
        if (!empty($data['posts'])) {
            $post_ids = array_column($data['posts'], 'ID');
            $placeholders = implode(',', array_fill(0, count($post_ids), '%d'));
            
            $data['post_meta'] = $wpdb->get_results($wpdb->prepare(
                "SELECT post_id, meta_key, meta_value 
                FROM {$wpdb->postmeta} 
                WHERE post_id IN ($placeholders)",
                ...$post_ids
            ), ARRAY_A);
            
            foreach ($data['post_meta'] as &$meta) {
                $unserialized = maybe_unserialize($meta['meta_value']);
                if ($unserialized !== $meta['meta_value']) {
                    $meta['meta_value_unserialized'] = $unserialized;
                }
            }
        }