hocam girdim ama olmadı 20 tl koyuyor
hocam çok yanlış anlamışım ben, pardon.
Şimdi aşağıdaki kodları şu şartlarda denedim ve istediğinizi elde ettim. Farklı gönderim yöntemleri kullanıyorsanız belirtmeniz gerekecek:
Sabit fiyat gönderim yöntemi kullanıyorum: 20 TL
Müşteri kapıda ödeme seçerse 15 TL indirim yapıyorum.
add_action( 'woocommerce_cart_calculate_fees', 'kapida_odeme_kargo' );
function kapida_odeme_kargo ( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$chosen_payment_id = WC()->session->get('chosen_payment_method');
if ( empty( $chosen_payment_id ) )
return;
$subtotal = $cart->subtotal;
$odeme_yontemileri = array(
'cod' => -15, // sabit fiyat kargo ücretinden 15TL düştük
);
foreach ( $odeme_yontemileri as $payment_id => $fee_cost ) {
if ( $chosen_payment_id === $payment_id ) {
$cart->add_fee( __('Kapıda Ödeme İndirimi', 'woocommerce'), $fee_cost, true );
}
}
}
// ödeme yöntemi değiştiğinde fiyatı değiştirmek için js
add_action( 'woocommerce_checkout_init', 'payment_methods_refresh_checkout' );
function payment_methods_refresh_checkout() {
wc_enqueue_js( "jQuery( function($){
$('form.checkout').on('change', 'input[name=payment_method]', function(){
$(document.body).trigger('update_checkout');
});
});");
}