WooCommerce es una de las plataformas de comercio electrónico más populares para WordPress, y es utilizada por millones de personas en todo el mundo. Si tienes una tienda en línea con WooCommerce, es posible que hayas considerado ofrecer el envío gratis a partir de un precio mínimo en la tienda.
En este artículo, te explicaré cómo configurar los gastos de envío gratis para pedidos de un importe mínimo en WooCommerce.
Paso 1: Crear una zona de envío
Lo primero que debes hacer es crear una zona de envío. Para hacer esto, ve a WooCommerce > Ajustes > Envío. Haz clic en «Agregar zona de envío» y escribe un nombre para la zona. Luego, selecciona los países en los que deseas ofrecer envío gratuito y haz clic en «Guardar cambios».
Paso 2: Configurar los métodos de envío
El siguiente paso es configurar los métodos de envío para la zona de envío que creaste en el primer paso. Para hacer esto, haz clic en la pestaña «Métodos de envío». Selecciona la opción «Envío gratis» y haz clic en «Editar». Aquí, debes establecer las condiciones para que se aplique el envío gratuito. En el campo «Monto mínimo».
Paso 3: Guardar los cambios
Finalmente, asegúrate de hacer clic en «Guardar cambios» para guardar la configuración que acabas de hacer. Ahora, los clientes que gasten por encima del importe mínimo que estableciste obtendrán envío gratuito automáticamente.
Oculta las opciones de pago cuando el usuario tiene el envío gratis
Cuando terminamos de configurar la posibilidad de tener el envío gratis, lo mejor es ocultar las opciones de pago de envío porque el cliente ya no las necesita. Para eso, podemos implementar el siguiente código en el archivo functions de nuestro child theme o con el plugin code snippets.
function ocultar_gastos_envio_si_pago_gratuito( $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', 'ocultar_gastos_envio_si_pago_gratuito', 100 );