Cómo deshabilitar los campos de pago de envío para los productos de reserva de WooCommerce

2 minutos de lectura

Avatar de usuario de Marko I.
Marco I.

Sé que puedo deshabilitar automáticamente los campos de envío marcando “virtual” en el formulario de envío del producto, pero ¿cómo podría deshabilitar de forma predeterminada los campos de envío en el pago de los productos de Woocommerce Booking (para el tipo de producto “reserva”)?

  • ¿Me enviarías algún código, por favor?

    – Said Amini

    24 de agosto de 2019 a las 12:49

Avatar de usuario de LoicTheAztec
LoicTheAztec

Lo siguiente deshabilitará los campos de envío de pago cuando un tipo de producto específico esté en el carrito (aquí tipo de producto “reserva”):

add_filter( 'woocommerce_cart_needs_shipping_address', 'filter_cart_needs_shipping_address_callback' );
function filter_cart_needs_shipping_address_callback( $needs_shipping_address ){
    // Loop through cart items
    foreach ( WC()->cart->get_cart() as $item ) {
        if ( $item['data']->is_type('booking') ) {
            $needs_shipping_address = false;
            break; // Stop the loop
        }
    }
    return $needs_shipping_address;
}

El código va en el archivo function.php de su tema secundario activo (o tema activo). Probado y funciona.


Recordatorio: para ocultar “Enviar a una dirección diferente” en Woocommerce solo usamos:

add_filter( 'woocommerce_cart_needs_shipping_address', '__return_false');

  • Intenté este código pero sigo recibiendo: “No se ha seleccionado ningún método de envío. Verifique dos veces su dirección o contacto”.

    – Marco I.

    24 de agosto de 2019 a las 15:44


  • También me gustaría deshabilitar el requisito de seleccionar el método de envío… (para este tipo de producto en particular)

    – Marco I.

    24 de agosto de 2019 a las 15:46


  • @MarkoI. Usted preguntó acerca de la desactivación campos de pago de envíopero no sobre los métodos de envío en su pregunta… entonces mi respuesta está hecha para deshabilitar los campos de envío de pago. Si desea deshabilitar los métodos de envío, este debería ser un nuevo pregunta explícita que debes hacer (la responderé, si me notificas aquí una vez publicada).

    – LoicTheAztec

    24 de agosto de 2019 a las 15:50


  • stackoverflow.com/questions/57639470/…

    – Marco I.

    24 de agosto de 2019 a las 15:56

  • @MarkoI. He respondido a su nueva pregunta… Deshabilita el envío por completo (los métodos de envío y los campos de pago de envío también).

    – LoicTheAztec

    24 de agosto de 2019 a las 16:28

¿Ha sido útil esta solución?