Đây là tính năng khá hay có thể dùng tính năng này như thêm VAT / Phí vận chuyển có điều kiện …… Được xử lý tự động cập nhật cộng gộp tổng tiền khi thay đổi option.
A/E code cũng có thể tham khảo viết thêm các tính năng cho khách hàng :))

Đoạn mã PHP: Thêm phí động dựa trên các nút radio tùy chỉnh @ WooCommerce Checkout
Copy đoạn mã ném vào function.php
rồi xem kết quả
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
add_action( 'woocommerce_review_order_before_payment', 'hwp_checkout_radio_choice' ); function hwp_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>'; } // Part 2 // Add Fee and Calculate Total add_action( 'woocommerce_cart_calculate_fees', 'hwp_checkout_radio_choice_fee', 20, 1 ); function hwp_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 ); } } // Part 3 // Add Radio Choice to Session add_action( 'woocommerce_checkout_update_order_review', 'hwp_checkout_radio_choice_set_session' ); function hwp_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'] ); } } |
Chúc thành công!