コード例 #1
0
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';
    }
}
コード例 #2
0
ファイル: ym-members.php プロジェクト: AdultStack/ap-members
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 {