Modificar orden o selección de métodos de envío en WooCommerce

webempresa woocommerce diegol

Cuando el cliente va a terminar una compra en nuestra tienda online, por defecto siempre tendrá marcada una opción por primera vez, en este caso es la primera que está en la lista para ese país, ciudad o código postal que tenemos configurado:

ordenar metodos de envio woocommerce

El orden, lo podremos modificar pasando el ratón por las 3 líneas del menú. ¿Pero y si hay un plugin instalado que no depende de este orden? Muchos transportistas tienen su propio plugin impidiendo que se pueda ordenar así.

En este tutorial vamos a ver cómo hacer esto por código y quitar la selección automática.

Modificar el orden por defecto

Si lo queremos modificar el orden de todos los transportistas, usaremos el siguiente código poniendo los transportistas que nos interesan:

add_filter('woocommerce_package_rates', 'dl_sort_shipping_methods', 10, 2);

function dl_sort_shipping_methods($available_shipping_methods, $package)
{
	// Pon aqui el orden de los metodos de envio
	$sort_order	= array(
		'mrw'	=>	array(),
		'free_shipping'		=>	array(),
		'local_pickup'	=>	array(),		
	);
	
	foreach($available_shipping_methods as $carrier_id => $carrier){
		$carrier_name	=	current(explode(":",$carrier_id));
		if(array_key_exists($carrier_name,$sort_order)){
			$sort_order[$carrier_name][$carrier_id]	=		$available_shipping_methods[$carrier_id];
			unset($available_shipping_methods[$carrier_id]);
		}
	}
	
	// añadiendo métodos de nuevo según el orden de marcado
	foreach($sort_order as $carriers){
		$available_shipping_methods	=	array_merge($available_shipping_methods,$carriers);
	}
	return $available_shipping_methods;
}

En este caso el orden sería:

  • MRW
  • Envío gratis
  • Recogida en tienda

Puedes usar el comando value para poner tus otros métodos de envío.

Quitar el método de envío por defecto en WooCommerce

Pero… y si queremos que el cliente sea libre de elegir la primera vez, es decir, que ningún campo esté marcado por defecto y sea el quien tenga que elegir?

Para ello insertaremos este código en nuestro functions.php de nuestro tema hijo o bien nuestro plugin Code Snippets como lo explico aquí.

add_filter( 'woocommerce_shipping_chosen_method', '__return_false', 99);

Con esto obtendremos el siguiente resultado de quién realice su compra por primera vez:

quitar marcacion automatica envios woocommerce
El cliente a la fuerza tiene que seleccionar el método de envío.

Si quieres hacer otras acciones en los envíos de WooCommerce tienes también estos tutoriales:

Cualquier duda como siempre en comentarios!

¡Haz clic para puntuar esta entrada!
(Votos: 3 Promedio: 5)
template monsters diegol

Especialista en Comercio electrónico con Woocommerce. Te ayudo a crear, gestionar y publicitar tu Ecommerce en función de tu sector y público objetivo. Puedes encontrarme en Diegol.top

¿Necesitas ayuda con este tutorial? Mándame un correo y te resuelvo todas las dudas!


Ver servicios Curso de WooCommerce

También puedes realizar una donacion para seguir apoyando la salida de nuevos tutoriales y actualizaciones

Reader Interactions

comentarios

  1. Juan says

    Buenos días Diego,

    Gracias por el aporte!!

    ¿Cómo puedo forzar un método de envío por defecto?
    En mi caso tengo instalado un plugin de transportista y utilizo únicamente la opción de «recogida en tienda» de Woocommerce y el «envio a domicilio» del transportista.
    Siempre me sale por defecto marcada la opción de recogida en tienda y me gustaría que lo opción marcada por defecto fuese la del envío a domicilio.

    No se si me he explicado bien.

    Gracias.
    Un saludo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *