Cargo adicional opcional en el checkout de Woocommerce

6 nov 2013, 19:43:34
Vistas: 19.4K
Votos: 3

Estoy construyendo una tienda basada en WooCommerce. Necesito agregar un checkbox adicional en la página de checkout llamado Seguro de Envío. Cuando el campo esté marcado, necesito agregar $3 adicionales al Total del Pedido. Pude agregar un cargo fijo de esta manera:

function woo_add_cart_fee() {
  global $woocommerce;
  $woocommerce->cart->add_fee( __('Seguro de Envío', 'woocommerce'), 3 );

}
add_action( 'woocommerce_before_calculate_totals', 'woo_add_cart_fee' );

El problema es que esto agregará $3 fijos al total del pedido, por lo que no es opcional. ¿Alguna idea sobre cómo proceder con este problema?

0
Todas las respuestas a la pregunta 2
0

Vale, así es como lo hice.

Crea un producto llamado Seguro de Envío que cueste $3, asegúrate de que sea un producto oculto (Visibilidad en Catálogo en el lado derecho)

Usa el siguiente código en el archivo functions.php de tu tema:

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;
    }
    // si no se encuentra el producto, añádelo
if ( ! $found ):
?>
    <tr class="shipping">
        <th><?php _e( 'Seguro de Envío', 'woocommerce' ); ?></th>
        <td><a href="<?php echo do_shortcode('[add_to_cart_url id="669"]'); ?>"><?php _e( 'Añadir seguro de envío (+$3)' ); ?> </a></td>
    </tr>
<?php else: ?>
    <tr class="shipping">
        <th><?php _e( 'Seguro de Envío', 'woocommerce' ); ?></th>
        <td>$3</td>
    </tr>
<?php endif;
}

Cambia la variable $product_id por el ID de tu producto que creaste y cuando estés en el checkout, simplemente añadirá este producto oculto a tu carrito

5 ene 2014 17:04:07
0

Esto no responderá completamente tu pregunta, pero la documentación oficial de WooCommerce tiene un ejemplo similar a lo que esperas lograr. En particular, estás buscando una combinación de Lecciones 1 y 2.

Documentación de WooCommerce: Personalización de campos de pago usando acciones y filtros

Espero que te ayude mientras alguien pueda dar una respuesta más específica.

6 nov 2013 22:50:18