En este tutorial vamos a ver cómo ocultar otras opciones de gastos de envío si el envío gratuito está disponible en WooCommerce.
Gastos de envío en WooCommerce
WooCommerce nos permite configurar varios métodos de envío. De hecho, en muchas ocasiones nos encontraremos con tiendas que ofrecen varias posibilidades a sus clientes: Envío gratuito, fijo según la zona, o incluso la recogida en local. Podéis ver cómo configurar estas opciones en el curso de WooCommerce.
Pues bien, todo esto está muy bien ya que en cada caso se podrá elegir la opción que más convenga. Sin embargo, cuando se está ofreciendo el envío gratuito no tiene sentido que aparezcan otras opciones, y esto es algo que ocurre en ocasiones.

Checkout con todas las opciones de envío disponibles
Así que vamos a ver de qué forma podemos mostrar únicamente la opción de envío gratuito, ocultando las demás, cuando este esté disponible. ¡Vamos a ello!.
Borrar caché WooCommerce
Antes de comenzar tendremos que realizar un paso previo, limpiar la caché de WooCommerce. Para ello nos dirigiremos al escritorio de WordPress y entraremos en la opción de menú "WooCommerce/Estado".
Una vez aquí veremos tres pestañas, "Estado del sistema", "Herramientas" y "Registro". Pues bien, la que nos interesa es la segunda, así que vamos a hacer clic en ella. La siguiente pantalla nos mostrará una serie de opciones disponibles.
Desde este apartado podemos eliminar datos temporales, restablecer las capacidades de los perfiles, borrar sesiones de clientes, incluyendo carritos de la compra, o regenerar las miniaturas de la tienda. En este caso prestaremos atención únicamente a las dos de arriba.
Para eliminar la caché de los productos y de la tienda, simplemente tenemos que pulsar sobre "Borrar datos temporales" en las opciones "Datos temporales de WooCommerce" y "Datos temporales caducados".

Limpiar caché archivos temporales WooCommerce
A continuación aparecerá un mensaje en la parte superior de la pantalla indicando las filas o datos que se han borrado, y ya lo tendremos. Podemos pasar al siguiente punto.
Código para ocultar métodos envío si el envío gratuito está disponible
Hay varias formas de ocultar otras opciones de envío cuando el envío gratuito está disponible. En primer lugar vamos a ver cómo hacerlo usando código. Si no necesitáis ningún extra, os aconsejamos hacerlo de esta forma ya que solamente serán necesarias unas pocas líneas de código.
Hay varias formas de incluirlo en nuestra instalación, hablamos de ello en el tutorial sobre añadir código en WordPress. En este caso usaremos un plugin que hemos creado previamente y que contiene funcionalidades complementarias, así como algunas modificaciones de las que vienen por defecto en WooCommerce.
Dicho esto, empecemos. Vamos a entrar al escritorio de WordPress y a desactivar nuestro plugin de utilidades. A continuación accederemos al código del mismo a través del programa FTP que usemos habitualmente y añadiremos el snippet que veremos a continuación.
Después simplemente nos quedará guardar y activar de nuevo el plugin. Por cierto, comentar que este código es válido para versiones de WooCommerce 3.0+. Pues aquí va:
// Ocultar otros métodos de envío cuando el envío gratuito está disponible. 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', 100 );
Con estas pocas líneas podemos conseguir lo que queremos, mostrar únicamente la opción de gastos de envío gratuitos si estos están disponibles.

Mostrar solo envío gratuito si disponible
De esta forma evitamos que los clientes tengan que hacer un clic más antes de finalizar la compra, o que puedan sentirse confusos al mostrarse una opción que muy posiblemente no van a marcar y a la que no van a encontrarle mucho sentido.
Por no hablar de posibles errores que desemboquen en la devolución de los gastos de envío, lo cual generará una carga de trabajo extra y molestias a los clientes que no se darían si usamos este código.
Aunque os aconsejamos seguir los pasos anteriores ya que son muy poquitas líneas de código y no hay pérdida, también existe la posibilidad de hacer esto mismo usando un plugin. Vamos a verlo en el siguiente apartado.
Ocultar otras opciones de envío usando un plugin
Como hemos visto, ocultar los diferentes métodos de envío en el checkout cuando el envío gratuito está disponible para una compra, tiene ventajas interesantes. Podemos hacerlo con código, como acabamos de ver, y también usando un plugin.
En este caso vamos a instalar WC Hide Shipping Methods. Un plugin gratuito que nos va a permitir hacer esto mismo sin escribir código. Para ello tenemos que acceder al escritorio de WordPress, "Plugins/Añadir nuevo" e introducir su nombre en la caja de búsqueda.
Una vez aparezca en pantalla, simplemente tenemos que instalarlo y activarlo para comenzar a usarlo. Después entraremos en "WooCommerce/Ajustes", pulsaremos sobre la pestaña "Envío", y por último en "Opciones de envío".

Configurar opciones de envío en WooCommerce
Si avanzamos hacia el final de la página, veremos las nuevas opciones que tenemos disponibles:

Usar plugin WC Hide Shipping Methods para ocultar opciones
La primera de ellas es la que nos interesa en este caso. En principio la encontraremos seleccionada, si no es así simplemente tendréis que marcarla y guardar los cambios. Y ahora sí, esto es todo.
Como veis, ocultar otras opciones de envío cuando el envío gratuito está disponible en la zona del cliente es muy sencillo, y podéis hacerlo tanto usando código como con este plugin.
Resumen y conclusión
WooCommerce permite configurar varias opciones de envío que pueden estar disponibles a la vez, tales como precio fijo, recogida en local o envío gratuito. Cuando se muestra esta última es conveniente ocultar las demás ya que no tiene mucho sentido que aparezcan en ese caso.
Para conseguirlo podemos usar un pequeño fragmento de código tal como hemos visto a lo largo del tutorial, o bien instalar y activar el plugin gratuito WC Hide Shipping Methods.
¡Y ya estamos! Si queréis aprender más os recomendamos echar un vistazo al curso de WooCommerce, al curso de WooCommerce intermedio y al curso de WooCommerce avanzado. Si os suscribís a boluda.com tendréis acceso a los tres y a muchos otros. Hay más de 6734 vídeos a vuestra disposición :)