1 回答

TA貢獻1887條經驗 獲得超5個贊
如果您發表評論,您的代碼運行良好var_dump($chosen_shipping_method_id); die;。此外,不需要jQuery 腳本,因為它用于默認情況下不更新結帳的付款方式。
所以還有其他事情在你的情況下制造麻煩。
現在我重新審視了你的代碼(它也可以工作):
// Add a conditional fee
add_action( 'woocommerce_cart_calculate_fees', 'flat_rate_based_fee', 20, 1 );
function flat_rate_based_fee( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$chosen_shipping_methods = WC()->session->get( 'chosen_shipping_methods' );
if( in_array( 'flat_rate:3', $chosen_shipping_methods ) ) {
$fee = array( 'text' => __( "Spese per ritiro", "woocommerce" ), 'amount' => 12 );
} elseif ( in_array( 'flat_rate:4', $chosen_shipping_methods ) ) {
$fee = array( 'text' => __( "Spese per consegna a domicilio", "woocommerce" ), 'amount' => 24 );
}
if( isset($fee) ) {
$cart->add_fee( $fee['text'], $fee['amount'], false );
}
}
代碼位于活動子主題(或活動主題)的 functions.php 文件中。
測試和工作(在 Woocommerce 3.5.x 和 3.6.x 上)。查看它在此測試服務器上的實時運行情況。
- 1 回答
- 0 關注
- 273 瀏覽
添加回答
舉報