Para poder aplicar a unos artículos de woocommerce en particular una tarifa especial para los gatos de envío podemos trabajar con las clases de envío que nos ofrece los ajustes de woocommerce o el plugin Table Rate shipping ¿Pero que pasa cuando lo que queremos es cobrar un precio menor al establecido en las reglas o incluso no cobrar los gatos de envío a ciertos productos de nuestra tienda on-line de woocommerce?
La solución que os os voy a dar no es la más técnica ni ortodoxa (seguramente algún purista se rasgaría las vestiduras) pero de lo que si estoy seguro es que es la menos intrusiva ya que no requiere de ningún plugin y como mucho añadir una linea de código en el archivo functions.php.
Lo que tenemos que hacer es simplemente marcar los productos a los cuales queremos NO cobrar los gatos de envío como producto «Virtual»

Pero si lo que queremos es cobrar un importe inferior al normal, lo que haremos es marcar el campo «Virtual» y añadir en el precio final del producto los gastos de envío. Ejemplo: Mi producto cuesta 16,80€ y el envío 2,20€ pues el precio total sería 18€
Claro está que esta técnica no te sirve de nada si el calculo del envío es diferente para distintas regiones o países. Para esta peculiaridad haré otro post explicando como lo debemos hacer con el plugin de calculo de envío Table rate shiping.
Al marcar el producto como «Virtual» le decimos a woocommerce que no es un producto físico, aunque el nuestro lo sea, y nos elimina directamente el calculo de los gastos de envío, que es lo que queremos, y nos oculta en la página de finalizar compra (carrito) la opción de «Enviar a una dirección diferente».
Si necesitas esa opción por la peculiaridad de tu tienda y producto simplemente debes añadir esta linea de código al final del archivo functions.php
add_filter( 'woocommerce_cart_needs_shipping_address', '__return_true', 50 );

Deja una respuesta