Avisos
Vaciar todo

[Resuelto] Configuración de envíos  

 
Juan Salvador
 Juan Salvador
Usuario eminente

Volvemos a la carga... 

 

A ver, estoy configurando los envíos. He recuperado este trozo de código de un tema del foro. Pero este código oculta todos los métodos de envío al aparecer el envío gratis. Mi intención es que el método "recogida en local" siga visible siempre. Alguien puede comprar en la web pero querer recogerlo en la tienda. En resumen, me gustaría que cuando haya opción de envío gratis, sólo aparezca el envío gratis y la recogida en local.

Es posible?

 

/**

* ocultar métodos de envío cuando se muestra el método de envio gratuito

* @param array $rates Array of rates found for the package.

* @return array

*/

function my_hide_shipping_when_free_is_available( $rates ) {

$free = array();

foreach ( $rates as $rate_id => $rate ) {

if ( 'free_shipping' === $rate->method_id ) {

$free[ $rate_id ] = $rate;

break;

}

}

return ! empty( $free ) ? $free : $rates;

}

add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 60);

Contenido solo visible a usuarios registrados

Respondido : 21/11/2020 7:20 pm
Bulmaro
 Bulmaro
Soporte CMS Webempresa Moderator

Hola Juan,

Prueba usando el código siguiente, por favor:

function envio_gratuito_recogida_local_disponibles( $rates ) {
$free = array();

foreach ( $rates as $rate_id => $rate ) {

        if ( 'free_shipping' === $rate->method_id ) {
            $free[ $rate_id ] = $rate;

            $free_shipping = true;
        }

        if ( $free_shipping == true && 'local_pickup' === $rate->label ) {

            $free[ $rate_id ] = $rate;

        }
    }

    return ! empty( $free ) ? $free : $rates;

}

add_filter( 'woocommerce_package_rates', 'envio_gratuito_recogida_local_disponibles', 100 );

Saludos

Respondido : 22/11/2020 12:18 am
Juan Salvador
 Juan Salvador
Usuario eminente

@bulmaro-webempresa  Gracias por la respuesta!

 

No he llegado a comprobarlo por que el tema este de los envíos es el que más pereza me da... después de instalar plugins y códigos, he decidido configurar otros envíos para que me cuadre todo.

 

El tema viene a raíz de intentar crear un suplemento para los pagos contrarrembolsos, pero no funciona bien o yo soy negado para configurarlo.. No hay manera humana de sumarle un suplemento al envío normal cuando se selecciona el pago contrarrembolso y a la vez no aparezca este como un cargo en el carrito. Debería aparecer sólamente en la página de pago, y no en el carrito. En fin... he desistido y lo hice de otra manera jeje.

 

Aun así gracias!

Respondido : 22/11/2020 8:11 pm
Bulmaro
 Bulmaro
Soporte CMS Webempresa Moderator

@jstorvergmail-com

Hola Juan 

DE acuerdo, muchas gracias por compartirnos tu experiencia y por consultarnos en el foro. 

Estamos pendientes a tus futuras consultas.

Saludos 

Respondido : 22/11/2020 11:12 pm