function ym_export_users($offset = 0, $limit = 300, $package_type = null, $package = NULL, $active = null) { global $wpdb, $duration_str; if (!$package_type) { $package_type = 'all'; } $user_list = array(); $path = trailingslashit(ym_post('backup_temp_path')); global $ym_sys; $ym_sys->update(array('export_last_tmp_path' => $path)); $format = ym_post('bkformat', 'xls'); $all_users = get_users(array('exclude' => array(1), 'offset' => $offset, 'number' => $limit)); foreach ($all_users as $user) { $user = (array) $user; $ym_user = new YourMember_User($user['ID']); // build rest of object /*$user_data = (array)$user_data; unset($user_data['spawn']); unset($user_data['data']); unset($user_data['userId']); unset($user_data['custom_fields']);*/ $user_data = array(); $user_data['ID'] = $ym_user->ID; $user_data['username'] = $ym_user->data->user_login; $user_data['email'] = $ym_user->data->user_email; $user_data['registered'] = date(YM_DATE, strtotime($ym_user->data->user_registered) + get_option('gmt_offset') * 3600); //date(YM_DATE, $ym_display_a_user->expire_date) $user_data['last_pay_date'] = date(YM_DATE, $ym_user->last_pay_date + get_option('gmt_offset') * 3600); $user_data['expire_date'] = date(YM_DATE, $ym_user->expire_date + get_option('gmt_offset') * 3600); $user_data['package_join_date'] = date(YM_DATE, $ym_user->account_type_join_date + get_option('gmt_offset') * 3600); $user_data['role'] = $ym_user->role; $user_data['status'] = $ym_user->status; //PAckages data $user_data['package_type'] = $ym_user->account_type; $user_data['package_id'] = $ym_user->pack_id; //$user = array_merge($user, $user_data); if ($customs = ym_get_custom_field_array($ym_user->ID)) { // $user = array_merge($user, $customs); // as apposed to merge the other way // I want field order.... // saves doing merge($user, $custom, $merge); foreach ($customs as $i => $d) { // don't overwrite.... $user_data[$i] = isset($user_data[$i]) ? $user_data[$i] : $d; } } if (($package_type == 'all' || strtolower($package_type) == strtolower($user_data['package_type'])) && ($package == 'all' || $package == $user_data['package_id'])) { $status = $user_data['status']; if ($status == YM_STATUS_ACTIVE || $active) { $user_list[] = $user_data; } } } $chunk = ym_export_users_do_chunk($path, $user_list, $format); if ($chunk) { // check for more data needed if (count($user_list) == $limit) { // more needed echo '<p>Loading Next Chunk ' . $offset . '</p>'; ym_export_users_operation_form($path, $offset + $limit); } else { // lets send the file ym_export_users_operation_send($path, $format); // complete or did last batch echo '<p>Complete</p>'; } } else { echo 'Could not Open Temproary File'; } }
echo '<hr style="height: 5px; border: 0px;" />'; echo '<div class="wrap" id="poststuff">'; $page = ym_request('ym_current_page', 0); global $ym_members_tasks; $ym_members_tasks = array('delete' => __('Delete Selected Users', 'ym'), 'suspend' => __('Suspend Selected Users', 'ym'), 'update' => __('Update Selected Users', 'ym'), 'change_limit' => __('Change Page Limit', 'ym'), 'change_filters' => __('Change Filters', 'ym'), 'change_order' => __('Change Sort', 'ym'), 'create_user' => __('Create User', 'ym'), 'forward_a_page' => __('Forward a Page', 'ym'), 'back_a_page' => __('Back a Page', 'ym')); $task = ym_post('task'); if ($_POST) { if (ym_post('ym_start_import')) { // import } else { if (ym_post('ym_start_xls_backup')) { // export if (ym_export_users_start(ym_post('bkformat', 'xls'))) { ym_box_top(__('Building Output', 'ym')); echo '<iframe src="" style="height: 100px; width: 100%" name="ym_exporting_users_frame"></iframe>'; ym_export_users_operation_form(trailingslashit(ym_post('backup_temp_path')), 0); ym_box_bottom(); return; } else { ym_display_message(__('Could not Start Export', 'ym'), 'error'); } } else { if (!wp_verify_nonce(ym_post('ym-members'), 'ymmembertasks')) { echo '<div id="message" class="error"><p>' . __('Nonce Failed Verification', 'ym') . '</p></div>'; } else { if (!$task) { echo '<div id="message" class="error"><p>' . __('Task Not Sent', 'ym') . '</p></div>'; } else { if (!in_array($task, $ym_members_tasks)) { echo '<div id="message" class="error"><p>' . sprintf(__('Task (%s) Not Permitted', 'ym'), $task) . '</p></div>'; } else {