روز
ساعت
دقیقه
ثانیه
فرصت داری تا عیدیتو بگیری 🤟🏻❤️🌹

خروجی کاربران وردپرس در فایل اکسل یا CSV

اشتراک گذاری

در مدیریت یک سایت وردپرسی، گاهی نیاز دارید لیست کاربران را در قالب یک فایل اکسل (Excel) یا CSV خروجی بگیرید. این کار برای آنالیز کاربران، ارسال ایمیل گروهی، بررسی نقش‌ها، و مدیریت داده‌ها بسیار کاربردی است. در این مقاله، نحوه انجام این کار را توضیح می‌دهیم.


📌 چرا باید کاربران وردپرس را به CSV یا Excel خروجی بگیریم؟

مدیریت و آنالیز کاربران: امکان بررسی ایمیل‌ها، نقش‌ها و تاریخ عضویت
استفاده در ابزارهای دیگر: مانند CRM یا سیستم‌های اتوماسیون بازاریابی
پشتیبان‌گیری از لیست کاربران: در صورت نیاز به انتقال اطلاعات
ارسال ایمیل یا پیامک گروهی: بر اساس فیلترهای مختلف


📌 نحوه خروجی گرفتن کاربران وردپرس در فایل CSV

1️⃣ استفاده از افزونه

ساده‌ترین راه برای خروجی گرفتن کاربران، استفاده از افزونه‌های وردپرسی مانند:
🔹 WP All Export (نسخه رایگان و پولی)
🔹 Export Users to CSV
🔹 User Data Export

function tav_export_users_to_csv() {
    if (!current_user_can('manage_options')) {
        wp_die('دسترسی غیرمجاز!');
    }

    if (!isset($_POST['columns']) || empty($_POST['columns'])) {
        wp_die('حداقل یک ستون را انتخاب کنید.');
    }

    $columns = $_POST['columns']; // دریافت ستون‌های انتخاب‌شده

    // تنظیم هدرهای فایل CSV با کدگذاری صحیح UTF-8
    header('Content-Encoding: UTF-8');
    header('Content-Type: text/csv; charset=UTF-8');
    header('Content-Disposition: attachment; filename="tav_wordpress_users.csv"');

    // اضافه کردن BOM برای نمایش صحیح فارسی در اکسل
    echo "\xEF\xBB\xBF";

    $output = fopen('php://output', 'w');

    // نوشتن نام ستون‌ها (با جداکننده `,`)
    fputcsv($output, $columns, ',');

    // گرفتن اطلاعات کاربران
    $users = get_users();

    foreach ($users as $user) {
        $user_data = [];

        // بررسی و افزودن داده‌ها بر اساس ستون‌های انتخاب‌شده
        foreach ($columns as $column) {
            $value = '';
            switch ($column) {
                case 'ID':
                    $value = $user->ID;
                    break;
                case 'user_login':
                    $value = $user->user_login;
                    break;
                case 'user_email':
                    $value = $user->user_email;
                    break;
                case 'roles':
                    $value = implode(', ', $user->roles);
                    break;
                case 'first_name':
                    $value = $user->first_name;
                    break;
                case 'last_name':
                    $value = $user->last_name;
                    break;
                case 'user_registered':
                    $value = '="' . date('Y-m-d H:i:s', strtotime($user->user_registered)) . '"'; // حل مشکل تاریخ
                    break;
                default:
                    $value = '';
            }

            // تبدیل به UTF-8 فقط اگر فارسی باشد
            if (!empty($value) && preg_match('/[\x{0600}-\x{06FF}]/u', $value)) {
                $value = mb_convert_encoding($value, 'UTF-8', 'auto');
            }

            $user_data[] = $value;
        }

        // خروجی CSV با جداکننده `,`
        fputcsv($output, $user_data, ',');
    }

    fclose($output);
    exit();
}
add_action('admin_post_tav_export_users_csv', 'tav_export_users_to_csv');

function tav_export_users_admin_page() {
    ?>
    <div class="wrap">
        <h2>خروجی کاربران وردپرس به CSV</h2>
        <form method="post" action="<?php echo admin_url('admin-post.php'); ?>">
            <input type="hidden" name="action" value="tav_export_users_csv">
            
            <h3>ستون‌های موردنظر را انتخاب کنید:</h3>
            <label><input type="checkbox" name="columns[]" value="ID" checked> ID</label><br>
            <label><input type="checkbox" name="columns[]" value="user_login" checked> نام کاربری</label><br>
            <label><input type="checkbox" name="columns[]" value="user_email" checked> ایمیل</label><br>
            <label><input type="checkbox" name="columns[]" value="roles" checked> نقش</label><br>
            <label><input type="checkbox" name="columns[]" value="first_name"> نام</label><br>
            <label><input type="checkbox" name="columns[]" value="last_name"> نام خانوادگی</label><br>
            <label><input type="checkbox" name="columns[]" value="user_registered"> تاریخ عضویت</label><br>

            <br>
            <input type="submit" class="button button-primary" value="دانلود CSV">
        </form>
    </div>
    <?php
}

function tav_add_export_users_menu() {
    add_menu_page(
        'خروجی CSV کاربران',
        'خروجی کاربران',
        'manage_options',
        'tav-export-users',
        'tav_export_users_admin_page'
    );
}

// ثبت اکشن برای دریافت خروجی CSV
add_action('admin_menu', 'tav_add_export_users_menu');
add_action('admin_post_tav_export_users_csv', 'tav_export_users_to_csv');

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بقیه مقالات

یکی از چالش‌های مدیران فروشگاه‌های اینترنتی، هدایت مشتریان به صفحات مهم مانند فرم‌های مشاوره، پیشنهادات ویژه، صفحات فرود، و تخفیف‌های خاص است.
در مدیریت یک سایت وردپرسی، گاهی نیاز دارید لیست کاربران را در قالب یک فایل اکسل (Excel) یا CSV خروجی بگیرید. این کار برای آنالیز کاربران، ارسال ایمیل گروهی، بررسی نقش‌ها، و مدیریت داده‌ها بسیار کاربردی است. در این مقاله، نحوه انجام این کار را توضیح می‌دهیم.
اگر یک فروشگاه اینترنتی دارید، احتمالاً متوجه شده‌اید که نمایش قیمت محصول به‌تنهایی کافی نیست. برای جلب توجه مشتری و ایجاد حس ارزشمند بودن محصول، بهتر است همراه قیمت، متنی تبلیغاتی نمایش داده شود.
درخواست مشاوره یا پلاگین

Notice: ob_end_flush(): failed to send buffer of zlib output compression (0) in /home/tavtheme/public_html/wp-includes/functions.php on line 5464