WooCommerce: Thêm phí thanh toán dựa trên nút Custom Radio
Nếu bạn muốn thêm phí thanh toán trong woocommerce. Đây là một đoạn mã WooCommerce tuyệt vời (hoặc plugin, nếu bạn muốn gọi nó như vậy) cho những người muốn cung cấp phí thanh toán có điều kiện. Ví dụ: bạn có thể cần hiển thị các nút “custom checkout radio” để chọn loại bao bì cao cấp, tùy chọn gói quà, dịch vụ cụ thể hoặc bất cứ điều gì có thể làm tăng AOV (Giá trị đơn hàng trung bình) của bạn.
Lựa chọn nút radio phải hoạt động với “Ajax” – có nghĩa là ngay sau khi chọn nút radio, thanh toán phải làm mới để hiển thị tổng số và phí cập nhật.
Một cái gì đó tương tự (và cũng phức tạp hơn, chẳng hạn như cung cấp các sản phẩm bổ sung) đạt được bởi WooCommerce Checkout Add-Ons Plugin được bán trên thị trường WooCommerce.com chính thức. Nhưng trong trường hợp này, chúng tôi muốn xem xét mã tùy chỉnh để bạn có thứ gì đó để làm! Thưởng thức.
Đoạn mã PHP: Thêm phí thanh toán động dựa trên các nút custom radio trong WooCommerce Checkout.
Phần 1: Hiển thị các nút radio
[code]
add_action( ‘woocommerce_review_order_before_payment’, ‘bbloomer_checkout_radio_choice’ );
function bbloomer_checkout_radio_choice() {
$chosen = WC()->session->get( ‘radio_chosen’ );
$chosen = empty( $chosen ) ? WC()->checkout->get_value( ‘radio_choice’ ) : $chosen;
$chosen = empty( $chosen ) ? ‘0’ : $chosen;
$args = array(
‘type’ => ‘radio’,
‘class’ => array( ‘form-row-wide’, ‘update_totals_on_change’ ),
‘options’ => array(
‘0’ => ‘No Option’,
’10’ => ‘Option 1 ($10)’,
’30’ => ‘Option 2 ($30)’,
),
‘default’ => $chosen
);
echo ‘<div id=”checkout-radio”>’;
echo ‘<h3>Customize Your Order!</h3>’;
woocommerce_form_field( ‘radio_choice’, $args, $chosen );
echo ‘</div>’;
}
[/code]
Phần 2: Thêm phí và tính tổng.
[code]
add_action( ‘woocommerce_cart_calculate_fees’, ‘bbloomer_checkout_radio_choice_fee’, 20, 1 );
function bbloomer_checkout_radio_choice_fee( $cart ) {
if ( is_admin() && ! defined( ‘DOING_AJAX’ ) ) return;
$radio = WC()->session->get( ‘radio_chosen’ );
if ( $radio ) {
$cart->add_fee( ‘Option Fee’, $radio );
}
}
[/code]
Phần 3: Add Radio Choice to Session
[code]
add_action( ‘woocommerce_checkout_update_order_review’, ‘bbloomer_checkout_radio_choice_set_session’ );
function bbloomer_checkout_radio_choice_set_session( $posted_data ) {
parse_str( $posted_data, $output );
if ( isset( $output[‘radio_choice’] ) ){
WC()->session->set( ‘radio_chosen’, $output[‘radio_choice’] );
}
}
[/code]
Thêm đoạn mã này vào đâu?
Bạn có thể đặt các đoạn mã PHP ở cuối tệp functions.php chủ đề con của mình (trước “?>” Nếu bạn có). Mặt khác, CSS có trong tệp style.css chủ đề con của bạn.
Đoạn mã này (vẫn) hoạt động chứ?
Vui lòng cho tôi biết trong phần bình luận nếu mọi thứ hoạt động như mong đợi. Tôi rất sẵn lòng sửa đổi đoạn mã nếu bạn có góp ý phù hợp (vui lòng cung cấp ảnh chụp màn hình).
Dịch vụ thiết kế website chuyên nghiệp tại Web MTP
Liên hệ ngay với chúng tôi nếu bạn đang gặp khó khăn trong việc thiết kế web nhé!
Website: https://webmtp.com/
Hotline: 0931 912 379
WooCommerce: Hiển thị các lỗi Required Field (bắt buộc nhập) trong Checkout
Mời bạn xem nhiều bài hấp dẫn khác