1BANNER 123
4.9/5 - (201 bình chọn)

Hôm nay mình sẽ chia sẻ các bạn các tạo một hộp gồm những yêu cầu kèm theo khi mua sản phẩm trong wooommerce nhé. Nó sẽ trông như thế này nè.

Hộp yêu cầu kèm theo khi mua sản phẩm.

Tạo checkbox yêu cầu kèm theo

Đầu tiên chúng ta tạo một checkbox yêu cầu kèm theo như hình trên với code HTML đơn giản nhé.

<input type="checkbox" id="yeucau" name="yeucau" value="HỖ TRỢ COPY DANH BẠ, HD SỬ DỤNG, GIẢI ĐÁP">
 <label for="yeucau">Yêu cầu nhân viên kỹ thuật giao hàng: hỗ trợ copy danh bạ, hướng dẫn sử dụng máy mới, giải đáp thắc mắc sản phẩm.
</label>

Nó sẽ trông như thế này:

Xong phần tạo checkbox, kế đến chúng ta sẽ hook checkbox này vào form add_to_cart nhé.

Hook checkbox vào form add_to_cart

Đầu tiên chúng ta cho checkbox vào 1 function như sau:

<?php function checkboxkemtheo(){;?>
<input type="checkbox" id="yeucau" name="yeucau" value="HỖ TRỢ COPY DANH BẠ, HD SỬ DỤNG, GIẢI ĐÁP">
<label for="yeucau">Yêu cầu nhân viên kỹ thuật giao hàng: hỗ trợ copy danh bạ, hướng dẫn sử dụng máy mới, giải đáp thắc mắc sản phẩm.
</label>
<?php }

Và add vào hook của form add_to_cart.

add_action( 'woocommerce_before_add_to_cart_button', 'checkboxkemtheo' );

Và xong chúng ta đã xuất hiện form đó trong trang single product rồi nhé.

Đã xuất hiện hộp yêu cầu kèm theo

Kế tiếp là làm cách nào để đó có thể xuất hiện ở trang check out và trang giỏ hàng nữa thôi.

Lưu data vào trang giỏ hàng

Để có thể lưu data vào trang giỏ hàng, chúng ta sẽ sử dụng đoạn code sau

function add_hotro_to_cart_item( $cart_item_data, $product_id, $variation_id ) {
    $hotro = filter_input( INPUT_POST, 'yeucau' );
    if ( empty( $hotro ) ) {
        return $cart_item_data;
    }
    $cart_item_data['yeucau'] = $hotro;
    return $cart_item_data;
}
add_filter( 'woocommerce_add_cart_item_data', 'add_hotro_to_cart_item', 10, 3 );

Sau khi lưu thì chúng ta sẽ cho hiển thị

function display_hotro_into_cart( $item_data, $cart_item ) {
    if ( empty( $cart_item['yeucau'] ) ) {
        return $item_data;
    }
    $item_data[] = array(
       
        'key'     => 'Yêu cầu hỗ trợ',
        'value'   => wc_clean( $cart_item['yeucau'] ),
        'display' => '',
    );
    return $item_data;
}
add_filter( 'woocommerce_get_item_data', 'display_hotro_into_cart', 10, 2 );

Khi vào trang giỏ hàng bạn sẽ thấy kết ủa như thế này

Kế tiếp là sẽ hiển thị trong checkout và trong quản trị admin nhé.

Hiển thị yêu cầu hỗ trợ trong checkout

Hook vào woocommerce_checkout_create_order_line_item bạn sẽ xong việc hiển thị tại checkout và quản trị admin. Add đoạn function này vào nhé

function add_hotro_to_order_items( $item, $cart_item_key, $values, $order ) {
    if ( empty( $values['yeucau'] ) ) {
        return;
    }
    $item->add_meta_data('Yêu cầu hỗ trợ', $values['yeucau'] );
}
add_action( 'woocommerce_checkout_create_order_line_item', 'add_hotro_to_order_items', 10, 4 );

Và đây là kết quả cuối cùng của bước này.

Xuất hiện yêu cầu hỗ trợ trong admin

Như vậy là hoàn thành xong phần thêm checkbox yêu cầu hỗ trợ trong woocommerce rồi nhé. Mọi người có thắc mắc gì cứ hỏi mình sẽ hỗ trợ nhé. Thấy hay thì nhấp vào nút like giúp mình nhé (Trái tim đó)

5 thoughts on “Hướng dẫn tạo yêu cầu kèm theo khi mua sản phẩm trong woocommerce.

  1. Nam says:

    Yêu cầu nhân viên kỹ thuật giao hàng: hỗ trợ copy danh bạ, hướng dẫn sử dụng máy mới, giải đáp thắc mắc sản phẩm.

    <?php }

    Cái này mình chèn đi đâu vậy ad ?

  2. Nam Nguyen says:

    Bạn ơi, nếu mình có từ 2 yêu cầu hỗ trợ thì code chèn thêm trường sẽ như thế nào nhỉ? Mong bạn giúp đỡ

    • Thành Tuấn says:

      Mình không rõ bạn muốn như thế nào, nếu như muốn tạo thêm field thì bạn có thể lập lại đoạn code trên 1 lần nữa rồi bạn cho nó vào array là được.

Trả lời

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 *