该问题与“ Update fee dynamically based on radio buttons in Woocommerce checkout” 答案相关,效果很好。
实际上,字段组中有2个单选按钮,我想再添加一个(总共3个单选按钮)。
我的问题是我想添加一个附加的单选按钮,但我只是不知道/不知道在哪里添加附加的选项。
我在'options'数组中添加了一个额外的字段: ................................................... .........................
'options' => array(
'bag' => __('In a bag '.wc_price(3.00), $domain),
'box' => __('In a gift box '.wc_price(9.00), $domain),
'speedboat' => __('In a speedboat '.wc_price(20.00), $domain),
............................................... ............................
但是我对本节感到困惑:
............................................... ............................
$packing_fee = WC()->session->get( 'chosen_packing' ); // Dynamic packing fee
$fee = $packing_fee == 'box' ? 9.00 : 3.00;
$cart->add_fee( __( 'Packaging fee', 'woocommerce' ), $fee );
............................................... .........................
我尝试添加:-
$packing_fee = WC()->session->get( 'chosen_packing' ); // Dynamic packing fee
$fee = $packing_fee == 'box' ? 9.00 : 3.00 :;
$cart->add_fee( __( 'Packaging fee', 'woocommerce' ), $fee );
但是我怀疑我做对了。
有人可以请我指导如何做吗?
答案 0 :(得分:0)
对于您的3个单选按钮(数组中的3个选项),如:
'options' => array(
'bag' => __('In a bag '.wc_price(3.00), $domain),
'box' => __('In a gift box '.wc_price(9.00), $domain),
'speedboat' => __('In a speedboat '.wc_price(20.00), $domain),
),
您将必须替换此原始代码:
$packing_fee = WC()->session->get( 'chosen_packing' ); // Dynamic packing fee
$fee = $packing_fee == 'box' ? 9.00 : 3.00;
$cart->add_fee( __( 'Packaging fee', 'woocommerce' ), $fee );
具有以下内容(用于第三个选项):
$packing_fee = WC()->session->get( 'chosen_packing' ); // Dynamic packing fee
if( $packing_fee === 'box' )
$fee = 9.00;
else if( $packing_fee === 'speedboat' )
$fee = 20.00;
else
$fee = 3.00;
$cart->add_fee( __( 'Packaging fee', 'woocommerce' ), $fee );
或类似的更紧凑的方式:
$packing_fee = WC()->session->get( 'chosen_packing' ); // Dynamic packing fee
$fee = $packing_fee === 'bag' ? 3.00 : ( $packing_fee === 'box' ? 9.00 : 20.00 );
$cart->add_fee( __( 'Packaging fee', 'woocommerce' ), $fee );
两者都应该起作用。