Taxă suplimentară opțională în WooCommerce Checkout
Construiesc un magazin bazat pe WooCommerce. Trebuie să adaug un checkbox suplimentar pe pagina de checkout numit Asigurare Transport. Când acest câmp este bifat, trebuie să adaug 3$ suplimentari la Totalul Comenzii. Am reușit să adaug o taxă fixă astfel:
function woo_add_cart_fee() {
global $woocommerce;
$woocommerce->cart->add_fee( __('Asigurare Transport', 'woocommerce'), 3 );
}
add_action( 'woocommerce_before_calculate_totals', 'woo_add_cart_fee' );
Problema este că aceasta va adăuga o taxă fixă de 3$ la totalul comenzii, deci nu este opțională. Aveți vreo idee cum să procedez cu această problemă?

Bine, așa am făcut eu.
Creează un produs numit Asigurare de Transport care costă $3, asigură-te că este un produs ascuns (Vizibilitate în Catalog în partea dreaptă)
Folosește următorul cod în fișierul functions.php al temei tale:
add_action('woocommerce_cart_totals_after_shipping', 'wc_shipping_insurance_note_after_cart');
function wc_shipping_insurance_note_after_cart() {
global $woocommerce;
$product_id = 669;
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if ( $_product->id == $product_id )
$found = true;
}
// dacă produsul nu este găsit, adaugă-l
if ( ! $found ):
?>
<tr class="shipping">
<th><?php _e( 'Asigurare de Transport', 'woocommerce' ); ?></th>
<td><a href="<?php echo do_shortcode('[add_to_cart_url id="669"]'); ?>"><?php _e( 'Adaugă asigurare de transport (+$3)' ); ?> </a></td>
</tr>
<?php else: ?>
<tr class="shipping">
<th><?php _e( 'Asigurare de Transport', 'woocommerce' ); ?></th>
<td>$3</td>
</tr>
<?php endif;
}
Schimbă variabila $product_id cu ID-ul produsului pe care l-ai creat și când vei fi la finalizarea comenzii, acesta va adăuga pur și simplu acest produs ascuns în coșul tău

Acest lucru nu va răspunde complet la întrebarea ta, dar documentația oficială WooCommerce are un exemplu similar cu ceea ce speri să realizezi. În special, ceea ce cauți este o combinație între Lecțiile 1 și 2.
Documentația WooCommerce: Personalizarea câmpurilor de checkout folosind acțiuni și filtre
Sperăm că acest lucru va completa timpul până când cineva va putea oferi un răspuns mai specific.
