Cách Export Email hàng loạt trong trang đơn hàng order Woocommerce

Chào bạn, trong một dự án gần đây nhất của Thịnh. Có một khách hàng đã nhờ Thịnh làm thêm 1 chức năng Export Email hàng loạt trong trang đơn hàng order Woocommerce.

Mục đích là để làm Email Marketing, gửi email quan tâm khách hàng cũ đã từng mua sản phẩm, thuyết phục họ sẽ tiếp tục quay lại mua và dùng sản phẩm.

Nếu bạn chưa biết Email marketing thật sự lợi hại và có thể gia tăng doanh thu bán hàng đến mức nào? Bạn có thể đọc và tìm hiểu thêm nó tại đây.

Email marketing là gì?

Thịnh thấy đây là chức năng rất hay và sẽ có nhiều bạn cần sử dụng nên tại bài viết này.

Thịnh sẽ chia sẻ bạn cách Export Email hàng loạt trong trang đơn hàng order Woocommerce nhé.

Bắt đầu ngay nè!

Mục đích của Export Email hàng loạt trong trang đơn hàng order Woocommerce?

Như Thịnh đã chia sẻ sơ qua phần trên, mục đích chính của nó là xuất email, sau đó sẽ làm email marketing trên những email được xuất ra đó.

Có thể bạn chưa biết, khi khách hàng đặt mua hàng online trên website bạn. Mặc định Woocommerce sẽ thu nhập những thông tin như tên, đia chỉ, Email của chính khách hàng đó.

1000003317

Đặc biệt nhất họ là những người đã từng mua sản phẩm của bạn rồi, nên tất nhiên là họ sẽ có niềm tin về shop bạn cao hơn những người bình thường khác rất nhiều.

Việc của bạn là thu nhập lại những Email đó và thường xuyên tương tác với họ ( khách hàng cũ)

Bạn có thể gửi cho họ thông tin chương trình khuyến mãi của Shop, những mã giảm giá hấp dẫn. Nếu họ mở email đọc nó, biết đâu được họ sẽ phát sinh nhu cầu mua hàng và tất nhiên là nhờ đó bạn bán được nhiều hàng hơn.

Vì vậy, đừng bỏ qua tệp khách hàng quý giá này nhé.

Tuy nhiên, theo như mặc đinh Woocommerce không có tính năng xuất những Email này ra cho bạn đâu.

Nếu muốn có những email này, buộc bạn phải làm thủ công.

Giả sử bạn có 10, 20 đơn thì không sao, có thể làm bằng tay được. 

Nhưng nếu là 1000, 2000, thậm trí 10.000 đơn thì sao? Bạn không thể làm thủ công.

Vì vậy, bạn cần phải sử dụng Code được chia sẻ ở ngay dưới đây.

Cách Export Email hàng loạt trong trang đơn hàng Order Woocommerce?

Như Thịnh đã chia sẻ ở phía trên, việc bạn làm thủ công với số lượng lớn dường như là không thể, bắt buộc phải dùng Code để tự động hóa.

Đầu tiên, cần dùng 1 đoạn Code để Woocommerce show ra danh sách Email tại trang đơn hàng.

Mặc định Woocommerce sẽ không có tính năng show Email trực quan ra bên ngoài.

Cách Export Email hàng loạt trong trang đơn hàng order Woocommerce

Để email show trực quan bạn thêm đoạn code dưới đây vào Functions.php

Đường dẫn thêm: Giao diện —–> Chỉnh sửa giao diện ——> Functions.php

Đoạn code thêm tính năng show email.

// Thêm cột tùy chỉnh vào bảng đơn hàng
add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column', 20 );
function custom_shop_order_column( $columns ) {
    $new_columns = (is_array($columns)) ? $columns : array();
    
    // Chèn cột "Customer Email" vào sau cột "Order Date"
    $new_columns['customer_email'] = __( 'Customer Email', 'your_text_domain' );

    return $new_columns;
}
// Hiển thị nội dung cho cột tùy chỉnh
add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 10, 2 );
function custom_orders_list_column_content( $column, $post_id ) {
    if ( $column == 'customer_email' ) {
        $order = wc_get_order( $post_id );
        $email = $order->get_billing_email();
        
        if ( $email ) {
            echo '<a href="mailto:' . $email . '">' . $email . '</a>';
        } else {
            echo __( 'No email found', 'your_text_domain' );
        }
    }
}

Kế tiếp, bạn cần thêm 1 đoạn code thêm tính năng export email hàng loạt

Về cách thêm cũng tương tự như tính năng show Email.

Đường dẫn thêm: Giao diện —–> Chỉnh sửa giao diện —–> Functions.php

Đoạn code thêm tính năng Export Email.

// Thêm nút "Export Emails" vào trang đơn hàng của WooCommerce 
add_action('restrict_manage_posts', 'add_export_emails_button');
function add_export_emails_button() {
    global $typenow;
    if ($typenow == 'shop_order') {
        ?>
        <input type="submit" name="export_emails" id="export-emails" class="button" value="<?php _e('Export Emails', 'your_text_domain'); ?>">
        <?php
    }
}
// Xử lý yêu cầu xuất email
add_action('admin_init', 'handle_export_emails');
function handle_export_emails() {
    if (isset($_GET['export_emails'])) {
        export_customer_emails();
    }
}
// Hàm xuất email khách hàng
if (!function_exists('export_customer_emails')) {  
	function export_customer_emails() {
    if (!current_user_can('manage_woocommerce')) {
        return;
    }
    global $wpdb;
    // Xác định trạng thái đơn hàng dựa trên cột hiện tại
    $current_status = isset($_GET['post_status']) ? sanitize_text_field($_GET['post_status']) : 'all';
    $emails = []; 
    if ($current_status == 'all' || $current_status == '') {
        $order_statuses = array('wc-completed', 'wc-processing', 'wc-on-hold','wc-pending-payment','wc-cancelled','wc-refunded','wc-failed','wc-draft','wc-trash');
    } else {
        $order_statuses = array($current_status);
    }
    foreach ($order_statuses as $status) {
        $orders = $wpdb->get_results($wpdb->prepare(
            "SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'shop_order' AND post_status = %s",
            $status
        ));
        foreach ($orders as $order_post) {
            $order = wc_get_order($order_post->ID);
            $email = $order->get_billing_email();
            if ($email && !in_array($email, $emails)) {
                $emails[] = $email;
            }
        }
    }
    // Xuất dữ liệu ra file CSV
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment;filename=customer-emails.csv');
    $output = fopen('php://output', 'w');
    fputcsv($output, ['Customer Email']);
    foreach ($emails as $email) {
        fputcsv($output, [$email]);
    }
    fclose($output);
    exit();
}
}

Xong như vậy là hoàn tất, khi này tại trang đơn hàng của Woocommerce sẽ có giao diện như hình dưới đây.

Cách Export Email hàng loạt trong trang đơn hàng order Woocommerce

Lúc này, khi bạn cần lấy email của khách chỉ cần bấm vào nút Export Email là lập tức 1 danh sách email được tải xuống tự động.

Cách 2: Bạn có thể copy thủ công từng email thủ công đã được show sẵn trực quan bên ngoài tại trang đơn hàng Woocommerce , dù sao nó cũng nhanh hơn việc bạn phải ấn vào xem từng đơn hàng đúng không nè?

Kết luận

Điểm yếu của Code trên sẽ hoàn thiện trong tương lai:

  • Sẽ có thể xuất riêng email,  cụ thể cho 1 sản phẩm riêng biệt nào đó.

Tính năng này sẽ giúp bạn tối ưu email và làm Email Marketing chuẩn hơn. 

Ví dụ tệp email đó là của khách hàng từng mua File Game Hack, nhưng Thịnh lấy email đó làm Email Marketing  chào hàng làm website… chắc chắn kết quả là 0 bán được dịch vụ nào.

Tuy nhiên cũng là email đó nhưng Thịnh chào bán bản mod cập nhập của Game họ từng mua thì lại khác à, doanh thu chắc chắn bùng nổ.

Hiện tại, thì chưa có cách!!! Bạn hãy đón chờ trong tương lại nhé. Hiện giờ bạn cứ xài bản này đi nè.

Cũng rất tốt, không hề tệ đâu nhé.

Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x
Dịch vụ hiện có
Gọi trực tiếp
Chat ngay
Chat trên Zalo