خروجی کاربران وردپرس در فایل اکسل یا 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');

اشتراک گذاری

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

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

بقیه مقالات
این افزونه با استفاده از جدیدترین روش‌های برنامه‌نویسی وردپرس و ووکامرس، بدون ایجاد بار اضافی روی سایت شما، تجربه خرید را برای مشتریان جذاب‌تر می‌کند و نرخ تبدیل فروشگاه شما را افزایش می‌دهد. همین حالا این افزونه را نصب کنید و تاثیر آن را در افزایش فروش و جلب اعتماد مشتریان ببینید!
افزونه زمان‌بندی اسلاید المنتور یک ابزار ضروری برای هر وب‌سایتی است که می‌خواهد مدیریت محتوای اسلایدها را به صورت هوشمند و خودکار انجام دهد. این افزونه با ارائه قابلیت‌های زمان‌بندی پیشرفته، نه تنها در وقت و انرژی شما صرفه‌جویی می‌کند، بلکه به شما کمک می‌کند تا همیشه محتوای به‌روز و هدفمندی را به مخاطبان خود ارائه دهید.
بسیاری از کاربران دوست دارند محصولی که سفارش می‌دهند، به‌صورت کادویی برای کسی ارسال شود — اما در بسیاری از فروشگاه‌های ووکامرس، چنین امکانی وجود ندارد!
ثبت مشاوره یا پلاگین
Discount
×

تخفیف برای تو

با وارد کردن ایمیلت همین الان تخفیف بگیر!!!!

تماس با ما
واتساپ تلگرام اینستاگرام ارسال تیکت