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
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
@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!
Hola JuanÂ
DE acuerdo, muchas gracias por compartirnos tu experiencia y por consultarnos en el foro.Â
Estamos pendientes a tus futuras consultas.
SaludosÂ