1,1K
Di chuyển Order Notes trên trang thanh toán Checkout của Woocommerce là một trong những mục đích khi bạn tuỳ biến phần thanh toán của Woocommerce. Với bài này, mình sẽ hướng dẫn các bạn thực hiện di chuyển hoặc xoá trường Note linh hoạt giữa các mục Billing hoặc Shipping.
Ẩn/xóa trường “Order Notes” ở trang Checkout
Để xoá trường “Order Notes” / “Additional Information” trên trang thanh toán của Woocommerce, bạn hãy thêm đoạn mã này vào phần functions.php
/* Xoá phần notes trong mục billing */
add_filter( 'woocommerce_enable_order_notes_field', '__return_false' );
Di chuyển trường Order Notes lên billing form
Để di chuyển phần Notes từ phần shipping đến billing bạn phải xoá trường Notes mặc định, bằng cách thêm đoạn mã trên và tiến hành tạo mới trường billing. Hãy thêm đoạn mã tiếp theo nhé
/* Tạo trường Notes mới cho phần billing */
add_filter( 'woocommerce_checkout_fields' , 'thangoi_custom_order_notes' );
function thangoi_custom_order_notes( $fields ) {
$fields['billing']['new_order_notes'] = array(
'type' => 'textarea',
'label' => 'Ghi chú thêm',
'class' => array('form-row-wide'),
'clear' => true,
'priority' => 999,
);
return $fields;
}
/* Khai báo trường Note mới */
add_action( 'woocommerce_checkout_update_order_meta', 'thangoi_custom_field_value_to_order_notes', 10, 2 );
function thangoi_custom_field_value_to_order_notes( $order_id, $data ) {
if ( ! is_object( $order_id ) ) {
$order = wc_get_order( $order_id );
}
$order->set_customer_note( isset( $data['new_order_notes'] ) ? $data['new_order_notes'] : '' );
wc_create_order_note( $order_id, $data['new_order_notes'], true, true );
$order->save();
}
Chúc bạn thành công nhé!