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

تخفیف برای تو

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

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