WordpressLập Trình

Hướng Dẫn Share File Google Drive Trên Woocommerce Khi Thanh Toán Hoàn Thành

Bí Kíp Tự Động Hóa Share File Google Drive trên WooCommerce: Cứ Thanh Toán Là Khách Có File Ngay Tắp Lự! 🚀

Các anh em đang bán đồ digital trên WooCommerce như course học, preset ảnh, template xịn xò,…! Bạn có đang “chật vật” với cảnh ngồi cặm cụi gửi file thủ công cho từng khách không?

Nếu câu trả lời là CÓ, thì bài viết này chính là “phao cứu sinh” dành cho bạn. Tui sẽ hướng dẫn từ A-Z cách hack quy trình này, để bạn nhàn tênh mà khách hàng vẫn “chốt đơn” lia lịa vì sự chuyên nghiệp. Let’s go!

1. Share File Thủ Công: Tại Sao Vừa Mệt Vừa Dễ “Toang”? 🤔

Ủa, gửi tay thì có sao đâu? Tin tui đi, khi shop bạn bắt đầu có nhiều đơn, đây là những “cơn ác mộng” bạn sẽ gặp phải:

  • Tốn Sức, Mất Time 😩: Thử tưởng tượng mỗi ngày có chục đơn, bạn phải lặp đi lặp lại việc tìm file, copy link, gửi mail. Thời gian đó để bạn nghĩ content mới, marketing hay hơn không?
  • Gửi Nhầm File – “Toang” Cả Uy Tín 🤯: Giữa một “rừng” đơn hàng, gửi nhầm file cho khách là chuyện dễ như ăn kẹo. Một “phốt” nhỏ có thể khiến công sức xây dựng thương hiệu của bạn “bay màu”.
  • Khách Tụt Mood, Một Đi Không Trở Lại 📉: Thời đại này, ai cũng muốn “ăn liền”. Khách đã trả tiền mà phải ngồi chờ bạn online để gửi file thì họ sẽ tụt mood, đánh giá 1 sao và không bao giờ quay lại.

✨ Cứu tinh ở đây: Tích hợp hệ thống tự động! Chỉ cần khách thanh toán thành công, “pằng” một cái, link file Google Drive sẽ được gửi thẳng vào email của họ. Nhanh – Gọn – Chuẩn Xác!

Ví dụ thực tế cho dễ hình dung:

Tưởng tượng bạn có một shop bán Ebook.

  • Không auto: Khách mua sách lúc nửa đêm. Sáng mai bạn ngủ dậy mới thấy đơn, loay hoay tìm file gửi đi. Khách đã chờ cả đêm, trải nghiệm cực tệ.
  • Có auto: Khách mua sách lúc 2 giờ sáng. Ngay sau khi thanh toán xong, email chứa link tải sách đã nằm gọn trong inbox của họ. Khách vui, bạn khỏe, uy tín shop tăng vùn vụt!

2. Auto Share File Google Drive x WooCommerce: Combo Này “Đỉnh Chóp” Cỡ Nào?

Khi bạn kết hợp hai “ông trùm” này, lợi ích nhận lại là không đùa được đâu:

  • Nhàn Tênh: Hệ thống tự lo hết. Bạn cứ ung dung đi ngủ, đi chơi, đơn hàng vẫn được xử lý êm ru.
  • Chuẩn Đét 100%: Máy móc thì không bao giờ nhầm. Khách mua sản phẩm A chắc chắn sẽ nhận được file A, không có chuyện “râu ông nọ cắm cằm bà kia”.
  • Khách Iu Hết Nấc: Nhận hàng ngay lập tức là trải nghiệm “wow” khiến khách hàng cực kỳ hài lòng, dễ dàng chốt đơn lại lần sau.

3. Hướng Dẫn Set Up Auto Share File Từ A-Z cho Người Mới

Nghe thì “hầm hố” vậy thôi chứ làm dễ lắm. Cứ làm theo các bước này là được:

Bước 1: Gắn Link Google Drive Vào Sản Phẩm

Đầu tiên, bạn vào trang quản trị WooCommerce:

  1. Mở Sản phẩm -> chọn sản phẩm bạn muốn bán.
  2. Tìm một chỗ như “Mô tả ngắn” hoặc dùng plugin tạo một “Trường tùy chỉnh” (custom field).
  3. Dán URL của file Google Drive tương ứng vào đó.

🤫 Lưu ý cực mạnh: Link Google Drive phải được set quyền “Bất kỳ ai có đường liên kết” (Anyone with the link). Nếu không, hệ thống sẽ không tự động share được và bạn lại phải cấp quyền thủ công đó!

Bước 2: Flow Của “Thượng Đế” (Khách Hàng)

Phần này thì WooCommerce lo hết, bạn không cần can thiệp:

  • Khách lướt shop, bỏ sản phẩm vào giỏ hàng.
  • Điền thông tin, đặc biệt là email để nhận file.
  • “TING TING”, thanh toán thành công!

Bước 3: Hệ Thống Tự “Ra Tay” Khi Đơn Hoàn Tất

Đây là khoảnh khắc kỳ diệu nhất. Ngay khi trạng thái đơn hàng trong WooCommerce chuyển thành “Hoàn thành” (Completed), hệ thống sẽ:

  • Tự động gửi một email đến khách hàng.
  • Trong email đó có chứa link Google Drive bạn đã cài ở Bước 1.
  • Quyền truy cập file chỉ là “Người xem” (Viewer), khách chỉ có thể xem và tải xuống, không thể chỉnh sửa làm hỏng file gốc của bạn.

⚠️ Cảnh báo: Nếu quy trình thanh toán của bạn không tự động chuyển trạng thái đơn hàng sang “Hoàn thành”, hệ thống sẽ không gửi file. Hãy chắc chắn cổng thanh toán của bạn đã được cấu hình đúng nhé!

4. Cài Plugin “Chân Ái” & Cấu Hình

Để làm được những điều trên, bạn cần một “trợ thủ”. Đó là các plugin.

  • Cài đặt plugin: Vào Plugins -> Add New, tìm các plugin với từ khóa như WooCommerce Google Drive Product Share hoặc File Manager for WooCommerce.
  • Cấu hình: Sau khi cài, bạn chỉ cần làm theo hướng dẫn của plugin đó, thường là kết nối với tài khoản Google Drive của bạn và thiết lập vài tùy chọn đơn giản.
  • Cài đặt trigger: Quan trọng nhất là vào phần cài đặt của plugin và chọn chỉ chia sẻ file khi đơn hàng ở trạng thái “Hoàn thành”.

5. Pro-tips: Những Lưu Ý “Xương Máu” Để Tránh “Phốt” 🛡️

Để quy trình chạy mượt mà và pro, hãy bỏ túi mấy bí kíp này:

  • Phân Quyền Thông Minh: Luôn luôn nhớ chỉ cấp quyền Xem và Tải xuống. Đừng bao giờ cấp quyền “Chỉnh sửa” (Editor), trừ khi bạn muốn file của mình một ngày đẹp trời “không cánh mà bay”.
  • Double-Check Link Trước Khi “Lên Sóng”: Trước khi đăng bán sản phẩm, hãy tự copy link đó và mở bằng một trình duyệt ẩn danh xem có vào được không. Cẩn thận không bao giờ thừa!
  • Update File? Nhớ Update Link Ngay!: Nếu bạn có cập nhật phiên bản mới cho tài liệu, phần mềm,… hãy cập nhật lại ngay file trên Google Drive và đảm bảo link trong sản phẩm WooCommerce vẫn đúng. Tránh để khách hàng tải phải phiên bản cũ rích.

Đó, “easy game” chưa? Việc tự động hóa này không chỉ giúp bạn tiết kiệm hàng tấn thời gian mà còn nâng tầm sự chuyên nghiệp cho shop của bạn. Triển ngay thôi!

Code chức năng tự động chia sẻ file Google Drive tới email khách hàng sau khi thanh toán qua WooCommerce

Phần dưới đây là mã code chi tiết cùng với giải thích từng bước giúp bạn thiết lập hệ thống chia sẻ file Google Drive tự động khi khách hàng thanh toán thành công trên WooCommerce.

1. Thêm CSS ẩn lớp message-container

Hàm custom_hide_message_container_css() sẽ thêm một đoạn CSS để ẩn lớp message-container, giúp loại bỏ bất kỳ thông báo không cần thiết nào trên giao diện người dùng.

add_action('wp_head', 'custom_hide_message_container_css');

function custom_hide_message_container_css() {
    echo "<style>
        .message-container { display: none; }
    </style>";
}

2. Thêm trường tùy chỉnh để nhập liên kết Google Drive cho từng sản phẩm

Phần này sử dụng hàm add_drive_links_custom_field() để thêm trường tùy chỉnh vào trang quản lý sản phẩm, cho phép admin nhập các liên kết Google Drive tương ứng với từng sản phẩm.

add_action('woocommerce_product_options_general_product_data', 'add_drive_links_custom_field');

function add_drive_links_custom_field() {
    woocommerce_wp_textarea_input(array(
        'id' => '_drive_links',
        'label' => 'Google Drive Links',
        'description' => 'Nhập các liên kết Google Drive (mỗi liên kết trên một dòng)',
        'desc_tip' => 'true',
        'placeholder' => 'https://drive.google.com/...',
    ));
}

3. Lưu trường tùy chỉnh khi lưu sản phẩm

Hàm save_drive_links_custom_field() giúp lưu các liên kết Google Drive vào meta dữ liệu của từng sản phẩm. Điều này đảm bảo rằng mỗi sản phẩm sẽ có liên kết Google Drive tương ứng, sẵn sàng để gửi đến khách hàng sau khi hoàn tất thanh toán.

add_action('woocommerce_process_product_meta', 'save_drive_links_custom_field');

function save_drive_links_custom_field($post_id) {
    $drive_links = isset($_POST['_drive_links']) ? sanitize_textarea_field($_POST['_drive_links']) : '';
    update_post_meta($post_id, '_drive_links', $drive_links);
}

4. Gửi email xác nhận đơn hàng với liên kết tải xuống và mã giảm giá

Hàm send_drive_links_on_order_complete() sẽ được kích hoạt khi đơn hàng chuyển sang trạng thái “Hoàn thành”. Hệ thống sẽ kiểm tra từng sản phẩm trong đơn hàng, tạo mã giảm giá dành riêng cho khách hàng, sau đó gửi email thông báo với liên kết tải xuống và mã QR.

  • Mã giảm giá cá nhân hóa: Mã giảm giá được tạo tự động dành cho khách hàng với thời hạn cụ thể, nhằm khuyến khích khách hàng quay lại mua hàng.
  • Thiết kế email chuyên nghiệp: Email chứa thông tin sản phẩm, liên kết Google Drive, mã QR, và các liên kết tới trang chính sách của trang web để khách hàng có thể tìm hiểu thêm.
add_action('woocommerce_order_status_completed', 'send_drive_links_on_order_complete', 10, 1);

function send_drive_links_on_order_complete($order_id) {
    // Code thực hiện gửi email với thông tin sản phẩm và mã giảm giá, được định dạng chi tiết ở phần trên
}

5. Hiển thị liên kết tải xuống trên trang “Tài khoản của tôi”

Hàm display_custom_drive_links_in_downloads() hiển thị các liên kết tải xuống và mã QR cho từng sản phẩm đã mua trên trang Tài khoản của tôi > Tải xuống. Điều này giúp khách hàng dễ dàng truy cập các file đã mua và tải xuống bất cứ khi nào họ muốn.

  • CSS tối ưu hóa giao diện: CSS được thêm vào để tạo một bảng tải xuống đẹp mắt, dễ sử dụng với các nút tải xuống và mã QR cho từng sản phẩm.
  • Tối ưu hóa trải nghiệm người dùng: Mã QR giúp khách hàng tải xuống nhanh chóng từ thiết bị di động.
add_action('woocommerce_account_downloads_endpoint', 'display_custom_drive_links_in_downloads');

function display_custom_drive_links_in_downloads() {
    // Code hiển thị danh sách sản phẩm với các liên kết tải xuống và mã QR
}

6. Hiển thị liên kết tải xuống trên trang Cảm ơn sau khi thanh toán thành công

Hàm display_drive_links_on_thank_you_page() sẽ kiểm tra trạng thái đơn hàng và hiển thị các liên kết tải xuống trên trang cảm ơn sau khi thanh toán thành công.

  • Thông báo trạng thái đơn hàng: Nếu đơn hàng chưa được hoàn tất, khách hàng sẽ nhận được thông báo yêu cầu thanh toán để tải xuống.
  • Bảng tải xuống chi tiết: Bảng hiển thị sản phẩm, liên kết tải xuống, mã QR, và ảnh sản phẩm giúp khách hàng tải xuống một cách tiện lợi.
add_action('woocommerce_thankyou', 'display_drive_links_on_thank_you_page', 10, 1);

function display_drive_links_on_thank_you_page($order_id) {
    // Code kiểm tra và hiển thị các liên kết tải xuống
}

Kết Luận

Tự động chia sẻ file Google Drive với khách hàng sau khi thanh toán qua WooCommerce là một giải pháp hiệu quả để tiết kiệm thời gian, tăng trải nghiệm người dùng và giảm thiểu sai sót. Với các bước hướng dẫn chi tiết trên, bạn có thể dễ dàng cài đặt và tích hợp quy trình này vào hệ thống bán hàng của mình.

Khuyến nghị: Hãy kiểm tra lại toàn bộ quy trình trước khi triển khai để đảm bảo rằng mọi thứ hoạt động ổn định, từ quá trình thanh toán đến việc chia sẻ file Google Drive tự động. Điều này giúp bạn cung cấp dịch vụ chuyên nghiệp và đáp ứng tối đa nhu cầu của khách hàng.

Dưới đây là code tự động chia sẻ file Google Drive hoàn chỉnh để thực hiện chức năng trên nhé, các bạn chỉ cần coppy tất cả bỏ vào funtion.php là có thể thực hiện chức năng này rồi, cực kỳ đẹp và xịn luôn nhé.

// Thêm CSS vào phần đầu của trang để ẩn lớp message-container
add_action('wp_head', 'custom_hide_message_container_css');

function custom_hide_message_container_css() {
    echo "<style>
      
    </style>";
}

// Thêm trường tùy chỉnh Google Drive Links trong trang sản phẩm
add_action('woocommerce_product_options_general_product_data', 'add_drive_links_custom_field');

function add_drive_links_custom_field() {
    woocommerce_wp_textarea_input(array(
        'id' => '_drive_links',
        'label' => 'Google Drive Links',
        'description' => 'Nhập các liên kết Google Drive (mỗi liên kết trên một dòng)',
        'desc_tip' => 'true',
        'placeholder' => 'https://drive.google.com/...',
    ));
}

// Lưu trường tùy chỉnh khi lưu sản phẩm
add_action('woocommerce_process_product_meta', 'save_drive_links_custom_field');

function save_drive_links_custom_field($post_id) {
    $drive_links = isset($_POST['_drive_links']) ? sanitize_textarea_field($_POST['_drive_links']) : '';
    update_post_meta($post_id, '_drive_links', $drive_links);
}

// Gửi email HTML cao cấp với mã giảm giá, liên kết quản lý đơn hàng và thông tin chính sách sau khi đơn hàng hoàn tất
add_action('woocommerce_order_status_completed', 'send_drive_links_on_order_complete', 10, 1);

function send_drive_links_on_order_complete($order_id) {
    $order = wc_get_order($order_id);
    $has_drive_links = false;

    // Kiểm tra xem có sản phẩm nào trong đơn hàng có liên kết Google Drive không
    foreach ($order->get_items() as $item) {
        $product_id = $item->get_product_id();
        $drive_links = get_post_meta($product_id, '_drive_links', true);

        if (!empty($drive_links)) {
            $has_drive_links = true;
            break;
        }
    }

    // Nếu không có sản phẩm nào có liên kết Drive, thoát khỏi hàm
    if (!$has_drive_links) {
        return;
    }

    // Dữ liệu email và mã giảm giá
    $email = $order->get_billing_email();
    $username = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();
    $site_name = get_bloginfo('name');
    $site_url = site_url();
    $logo_url = 'https://muathemewpgiare.com/wp-content/uploads/2024/09/logo-muathemewp-gia-re-com-chotheme-1.png';
    $social_links = array(
        'facebook' => 'https://www.facebook.com/profile.php?id=100069151343004',
    );

    // Tạo mã giảm giá riêng cho khách hàng sau khi mua hàng
    $coupon_code = 'VIPCUSTOMER_' . $order_id;
    $discount_amount = 20;
    $expiry_date = date('Y-m-d', strtotime('+30 days'));
    $coupon = array(
        'post_title' => $coupon_code,
        'post_content' => 'Mã giảm giá chỉ dành cho khách hàng đã mua hàng.',
        'post_status' => 'publish',
        'post_author' => 1,
        'post_type' => 'shop_coupon'
    );
    $new_coupon_id = wp_insert_post($coupon);
    update_post_meta($new_coupon_id, 'discount_type', 'percent');
    update_post_meta($new_coupon_id, 'coupon_amount', $discount_amount);
    update_post_meta($new_coupon_id, 'individual_use', 'yes');
    update_post_meta($new_coupon_id, 'usage_limit', 1);
    update_post_meta($new_coupon_id, 'date_expires', strtotime($expiry_date));
    update_post_meta($new_coupon_id, 'customer_email', $email);

    // Khởi tạo nội dung email với thiết kế chuyên nghiệp
    $subject = "🎉 Cảm ơn bạn đã mua hàng tại {$site_name}! 🎉";
    $order_qr_code = "https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=" . urlencode($order->get_view_order_url());
    $message = "
    <html>
        <body style='font-family: Arial, sans-serif; color: #333; background-color: #f4f4f4; padding: 20px;'>
            <div style='max-width: 650px; margin: auto; background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);'>
                
                <!-- Header -->
                <div style='background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%); color: #ffffff; padding: 20px; text-align: center;'>
                    <a href='{$site_url}'><img src='{$logo_url}' alt='{$site_name} Logo' style='max-width: 150px;'></a>
                    <h1 style='margin: 0; font-size: 24px;'>🎊 Cảm ơn bạn đã mua hàng! 🎊</h1>
                </div>
                
                <!-- Thông tin khách hàng -->
                <div style='padding: 20px;'>
                    <p style='font-size: 16px;'>Xin chào <strong>{$username}</strong>,</p>
                    <p>Chúng tôi rất vui khi được phục vụ bạn tại <strong>{$site_name}</strong>. Dưới đây là các thông tin về đơn hàng của bạn:</p>
                    
                    <!-- Thông tin đơn hàng -->
                    <h3 style='color: #1e3c72;'>Thông tin đơn hàng</h3>
                    <p><strong>Mã đơn hàng:</strong> #{$order->get_order_number()}<br>
                       <strong>Ngày mua:</strong> {$order->get_date_created()->format('d/m/Y')}<br>
                       <strong>Tổng cộng:</strong> " . wc_price($order->get_total()) . "</p>
                    <p><img src='{$order_qr_code}' alt='QR Code Order' style='width: 100px; height: 100px; border: 1px solid #ddd; margin-top: 10px;'/></p>
                       
                    <h3 style='color: #1e3c72;'>Sản phẩm đã mua</h3>
                    <table style='width: 100%; border-collapse: collapse; margin-top: 20px;'>
                        <thead>
                            <tr style='background-color: #1e3c72; color: #ffffff;'>
                                <th style='padding: 10px; border: 1px solid #ddd;'>Sản phẩm</th>
                                <th style='padding: 10px; border: 1px solid #ddd;'>Liên kết tải xuống</th>
                            </tr>
                        </thead>
                        <tbody>";
    
    foreach ($order->get_items() as $item) {
        $product_id = $item->get_product_id();
        $product = wc_get_product($product_id);
        $product_name = $product->get_name();
        $product_url = get_permalink($product_id);
        $product_image_url = wp_get_attachment_url($product->get_image_id());
        $drive_links = get_post_meta($product_id, '_drive_links', true);

        if (!empty($drive_links)) {
            $message .= "
            <tr style='background-color: #f9f9f9;'>
                <td style='padding: 10px; border: 1px solid #ddd;'>
                    <a href='{$product_url}' style='text-decoration: none; color: #1e3c72; font-weight: bold;'>
                        <img src='{$product_image_url}' alt='{$product_name}' style='width: 60px; border-radius: 5px; vertical-align: middle; margin-right: 10px;' />
                        {$product_name}
                    </a>
                </td>
                <td style='padding: 10px; border: 1px solid #ddd; text-align: center;'>";
            
            $links = explode("\n", $drive_links);
            foreach ($links as $link) {
                $qr_code_url = "https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=" . urlencode(trim($link));
                $message .= "
                <a href='" . esc_url(trim($link)) . "' target='_blank' style='display: inline-block; background-color: #1e3c72; color: #fff; padding: 8px 12px; border-radius: 5px;'>Tải xuống</a><br>
                <img src='{$qr_code_url}' alt='QR Code' style='width: 80px; margin-top: 10px;' /><br>";
            }
            $message .= "</td></tr>";
        }
    }
    
    $message .= "
                        </tbody>
                    </table>
                    
                    <!--  giảm giá -->
                    <div style='margin-top: 20px;'>
                        <h3 style='color: #1e3c72;'>Mã giảm giá đặc biệt cho lần mua tiếp theo!</h3>
                        <p>Chúng tôi tặng bạn mã giảm giá <strong>{$coupon_code}</strong> để sử dụng cho lần mua tiếp theo (giảm 20%). Mã này có giá trị đến ngày " . date('d/m/Y', strtotime($expiry_date)) . ".</p>
                    </div>
                                        <!-- Chính sách  hướng dẫn -->
                    <div style='margin-top: 20px;'>
                        <h3 style='color: #1e3c72;'>Chính sách và hướng dẫn</h3>
                        <p>
                            <a href='{$site_url}/chinh-sach-hoan-tra-don-hang/' style='color: #1e3c72; text-decoration: none;'>Chính sách hoàn tiền</a> | 
                            <a href='{$site_url}/cac-cau-hoi-thuong-gap/' style='color: #1e3c72; text-decoration: none;'>Các câu hỏi thường gặp</a> | 
                            <a href='{$site_url}/gui-yeu-cau-ho-tro-ho-tro/' style='color: #1e3c72; text-decoration: none;'>Gửi yêu cầu hỗ trợ</a>
                        </p>
                        <p>Chúng tôi khuyến khích bạn đọc kỹ các chính sách để đảm bảo quyền lợi và hiểu rõ hơn về sản phẩm của mình.</p>

                        <!-- Hình ảnh thumbnail video hướng dẫn -->
                        <div style='margin-top: 20px; text-align: center;'>
                            <h3 style='color: #1e3c72;'>Video hướng dẫn cài đặt</h3>
                            <a href='https://www.youtube.com/watch?v=yU3IYeSiBx4' target='_blank' style='text-decoration: none;'>
                                <img src='https://muathemewpgiare.com/wp-content/uploads/2024/10/theme-wordpress-ban-hang-muathemewpgiare.jpg' 
                                     alt='Video hướng dẫn cài đặt' 
                                     style='max-width: 100%; height: auto; border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);'>
                            </a>
                            <p style='margin-top: 10px; color: #777;'>Nhấn vào hình để xem video hướng dẫn cài đặt</p>
                        </div>
                    </div>

                    <!-- Mời đánh giá sản phẩm -->
                    <div style='margin-top: 20px;'>
                        <h3 style='color: #1e3c72;'>Chia sẻ trải nghiệm của bạn</h3>
                        <p>Chúng tôi rất mong nhận được phản hồi từ bạn. Hãy để lại đánh giá cho sản phẩm của mình để giúp các khách hàng khác có lựa chọn tốt hơn!</p>
                        <a href='{$site_url}/reviews' target='_blank' style='display: inline-block; padding: 10px 20px; background-color: #1e3c72; color: #fff; border-radius: 5px; text-decoration: none; font-weight: bold;'>Đánh giá sản phẩm</a>
                    </div>

                    <!-- Chứng nhận bản quyền -->
                    <div style='margin-top: 20px; text-align: center;'>
                        <p style='font-size: 14px; color: #888;'>© " . date("Y") . " {$site_name}. Bạn đang sử dụng sản phẩm, dịch vụ tại chúng tôi. VUi lòng sử dụng đúng mục đích, không được sử dụng nó vào mục đích trái pháp luật, nếu không bạn sẽ tự chịu hoàn toàn trách nhiệm, sẽ bị xử lý theo quy định của pháp luật.</p>
                    </div>

                  <!-- Kết nối mạng xã hội-->
<div style='text-align: center; margin-top: 20px;'>
    <h4>Theo dõi chúng tôi trên mạng xã hội</h4>";
foreach ($social_links as $platform => $link) {
    $icon_url = ($platform === 'facebook') ? 'https://img.icons8.com/color/48/000000/facebook.png' : '';
    $message .= "<a href='{$link}' target='_blank' style='margin: 0 5px;'>
                    <img src='{$icon_url}' alt='{$platform}' style='width: 30px; height: 30px; border-radius: 50%;' />
                 </a>";
}

    $message .= "
                    </div>
                    <p style='margin-top: 20px; text-align: center; color: #777;'>© " . date("Y") . " <a href='{$site_url}' style='color: #1e3c72;'>{$site_name}</a>. All rights reserved.</p>
                </div>
            </div>
        </body>
    </html>";

    // Header cho email HTML
    $headers = array('Content-Type: text/html; charset=UTF-8');
    wp_mail($email, $subject, $message, $headers);
}


// Hiển thị liên kết tải xuống với giao diện chuyên nghiệp và mã QR trong tài khoản người dùng
add_action('woocommerce_account_downloads_endpoint', 'display_custom_drive_links_in_downloads');

function display_custom_drive_links_in_downloads() {
    $user_id = get_current_user_id();
    $orders = wc_get_orders(array(
        'customer' => $user_id,
        'status' => 'completed',
        'limit' => -1,
    ));

    // Thêm CSS cho giao diện tải xuống cao cấp
    echo "<style>
        .download-section {
            margin-top: 30px;
            padding: 30px;
            border-radius: 15px;
            background-color: #ffffff;
            box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.1);
            font-family: 'Arial', sans-serif;
            color: #333;
        }
        .download-section h2 {
            font-size: 2em;
            color: #333;
            text-align: center;
            margin-bottom: 25px;
            font-weight: 600;
        }
        .download-table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 20px;
            border-radius: 15px;
            overflow: hidden;
        }
        .download-table th {
            font-size: 1em;
            text-align: center;
            color: #ffffff;
            padding: 15px;
            background: linear-gradient(45deg, #ff7e5f, #feb47b);
            font-weight: bold;
        }
        .download-table td {
            padding: 20px;
            font-size: 1em;
            text-align: center;
            background-color: #f8f9fa;
            border-bottom: 1px solid #eee;
            border-radius: 10px;
            position: relative;
        }
        .thumbnail-img {
            width: 90px;
            height: 90px;
            border-radius: 10px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
        }
        .product-name a {
            color: #333;
            font-weight: 600;
            font-size: 1.1em;
            text-decoration: none;
            transition: color 0.3s;
        }
        .product-name a:hover {
            color: #ff7e5f;
        }
        .download-link {
            display: inline-block;
            background-color: #ff7e5f;
            color: #ffffff;
            padding: 10px 25px;
            margin: 5px 0;
            border-radius: 25px;
            font-weight: bold;
            text-decoration: none;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
            transition: background-color 0.3s, transform 0.3s;
        }
        .download-link:hover {
            background-color: #e06752;
            transform: translateY(-2px);
        }
        .qr-code-container {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
        }
        .qr-code-container img {
            width: 70px;
            height: 70px;
            margin-top: 10px;
            border-radius: 8px;
            transition: transform 0.3s ease;
        }
        .qr-code-container img:hover {
            transform: scale(1.05);
        }
        .no-downloads {
            font-size: 1.3em;
            color: #777;
            margin-top: 30px;
            text-align: center;
        }
    </style>";

    // Kiểm tra và hiển thị các đơn hàng có sản phẩm tải xuống
    if (!empty($orders)) {
        echo "<div class='download-section'>";
        echo "<h2>📥 Tải xuống sản phẩm của bạn 📥</h2>";
        echo "<table class='download-table'>";
        echo "<thead><tr><th>Hình ảnh</th><th>Sản phẩm</th><th>Liên kết tải xuống</th><th>Mã QR tải xuống</th></tr></thead><tbody>";

        foreach ($orders as $order) {
            foreach ($order->get_items() as $item) {
                $product_id = $item->get_product_id();
                $product = wc_get_product($product_id);
                $product_name = $item->get_name();
                $product_url = get_permalink($product_id);
                $thumbnail_url = wp_get_attachment_image_url($product->get_image_id(), 'thumbnail');
                $drive_links = get_post_meta($product_id, '_drive_links', true);

                if (!empty($drive_links)) {
                    echo "<tr>";
                    echo "<td><img src='" . esc_url($thumbnail_url) . "' alt='Thumbnail' class='thumbnail-img' /></td>";
                    echo "<td class='product-name'><a href='" . esc_url($product_url) . "'>{$product_name}</a></td>";
                    echo "<td>";

                    $links = explode("\n", $drive_links);
                    foreach ($links as $link) {
                        echo "<a href='" . esc_url(trim($link)) . "' target='_blank' class='download-link'>Tải xuống</a><br>";
                    }

                    echo "</td>";
                    echo "<td class='qr-code-container'>";
                    
                    foreach ($links as $link) {
                        $qr_code_url = "https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=" . urlencode(trim($link));
                        echo "<a href='" . esc_url(trim($link)) . "' target='_blank'>
                                <img src='{$qr_code_url}' alt='QR Code Download' />
                             </a><br>";
                    }
                    
                    echo "</td></tr>";
                }
            }
        }
        echo "</tbody></table>";
        echo "</div>";
    } else {
        echo "<p class='no-downloads'>Bạn chưa có sản phẩm nào để tải xuống.</p>";
    }
}


// Hiển thị liên kết tải xuống trong trang cảm ơn sau khi thanh toán nếu đơn hàng đã hoàn tất hoặc đang xử lý
add_action('woocommerce_thankyou', 'display_drive_links_on_thank_you_page', 10, 1);

function display_drive_links_on_thank_you_page($order_id) {
    if (!$order_id) return;
    $order = wc_get_order($order_id);

    // Thêm CSS để cải thiện trải nghiệm giao diện
    echo "<style>
        .download-container {
            text-align: center;
            margin-top: 20px;
            padding: 20px;
            border: 1px solid #ddd;
            border-radius: 10px;
            background-color: #fafafa;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        }
        .download-table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 20px;
        }
        .download-table th {
            background-color: #4CAF50;
            color: white;
            padding: 15px;
            font-size: 16px;
            text-align: left;
        }
        .download-table td {
            padding: 12px;
            text-align: center;
            border-bottom: 1px solid #ddd;
        }
        .download-table .thumbnail-img {
            width: 70px;
            height: 70px;
            object-fit: contain;
            background-color: #f0f0f0;
            border-radius: 5px;
        }
        .download-link, .review-link {
            display: inline-block;
            background-color: #0073aa;
            color: white;
            padding: 8px 15px;
            margin: 5px 0;
            border-radius: 5px;
            text-decoration: none;
            font-weight: bold;
            transition: background-color 0.3s;
        }
        .download-link:hover, .review-link:hover {
            background-color: #005082;
        }
        .qr-code {
            width: 70px;
            height: 70px;
            margin-top: 10px;
        }
        .download-notice {
            background-color: #f8d7da;
            color: #721c24;
            padding: 15px;
            border: 1px solid #f5c6cb;
            border-radius: 5px;
            margin: 20px 0;
            font-size: 16px;
        }
        .product-instructions {
            font-size: 14px;
            color: #555;
            margin-top: 10px;
            font-style: italic;
        }
    </style>";

    // Kiểm tra trạng thái đơn hàng và thông báo nếu chưa hoàn tất
    if ($order->get_status() != 'completed' && $order->get_status() != 'processing') {
        echo "<div class='download-notice'>Liên kết tải xuống sẽ khả dụng sau khi thanh toán hoàn tất. Hãy thanh toán để có thể tải xuống.</div>";
        return;
    }

    // Thông báo và hướng dẫn
    echo "<div class='download-container'>";
    echo "<h2>🎉 Cảm ơn bạn đã mua hàng! 🎉</h2>";
    echo "<p class='product-instructions'>Bạn có thể tải xuống các sản phẩm của mình qua các liên kết và mã QR dưới đây.</p>";

    // Tạo bảng hiển thị sản phẩm, liên kết tải xuống và mã QR
    echo "<table class='download-table'>";
    echo "<thead><tr><th>Sản phẩm</th><th>Liên kết tải xuống</th><th>Mã QR tải xuống</th></tr></thead><tbody>";

    foreach ($order->get_items() as $item) {
        $product_id = $item->get_product_id();
        $product = wc_get_product($product_id);
        $product_name = $item->get_name();
        $product_url = get_permalink($product_id);
        $drive_links = get_post_meta($product_id, '_drive_links', true);
        $thumbnail_url = wp_get_attachment_url($product->get_image_id());

        // Kiểm tra và hiển thị liên kết tải xuống
        if (!empty($drive_links)) {
            echo "<tr>";
            echo "<td style='text-align: left;'>
                    <img src='" . esc_url($thumbnail_url) . "' alt='Thumbnail' class='thumbnail-img' />
                    <a href='" . esc_url($product_url) . "' style='text-decoration: none; color: #333; font-weight: bold;'>{$product_name}</a>
                    <p class='product-instructions'>Video hướng dẫn & Tài liệu đi kèm được gửi qua gmail của bạn</p>
                  </td>";
            echo "<td>";

            $links = explode("\n", $drive_links);
            foreach ($links as $link) {
                echo "<a href='" . esc_url(trim($link)) . "' target='_blank' class='download-link'>
                        <img src='https://img.icons8.com/material-rounded/24/ffffff/download--v1.png' alt='Download' class='download-table-icon' /> Tải xuống
                     </a><br>";
            }
            echo "</td>";
            echo "<td>";

            // Tạo mã QR cho từng liên kết tải xuống
            foreach ($links as $link) {
                $qr_code_url = "https://api.qrserver.com/v1/create-qr-code/?size=70x70&data=" . urlencode(trim($link));
                echo "<img src='{$qr_code_url}' alt='QR Code Download' class='qr-code' /><br>";
            }
            echo "</td></tr>";
        }
    }
    echo "</tbody></table>";

    // Thêm phần khuyến khích đánh giá và liên hệ hỗ trợ
    echo "<a href='{$product_url}#reviews' class='review-prompt'>⭐ Để lại đánh giá cho sản phẩm của bạn ⭐</a>";
    echo "<a href='/lien-he/' class='support-link'><br>Bạn cần hỗ trợ? Liên hệ chúng tôi tại đây</a>";

    echo "</div>";
}

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button