Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Aplicar envío gratis a ciertos productos en WooCommerce
#1
En la página de ajustes de envíos de WooCommerce, sólo deja configurar el envío gratuito para que se aplique a partir de un gasto mínimo por pedido. Es decir, que el cliente debe hacer un pedido cuyo coste total sea igual o superior a ese mínimo establecido para que no se le cobren gastos de envío.
Pero ¿qué pasa si en nuestra tienda hay varios productos a los que no queremos aplicar gastos de envío independientemente del coste del pedido? Con los ajustes básicos de envío de WooCommerce no podrás hacerlo, necesitarás aplicar alguno de los dos métodos que te explico a continuación.

2 Técnicas para aplicar gastos de envío gratuitos con WooCommerce en determinados productos.
Como siempre suelo hacer, voy a explicar diferentes formas de hacerlo y tú eliges la que más te convenga. Eso no quiere decir que no se pueda conseguir usando otros métodos.
METODO 1 – Sin usar plugin
Este método es el menos “elegante” de los dos, pero sin duda es el más sencillo y rápido de aplicar. Además, tiene la gran ventaja de que no vas a necesitar instalar ningún plugin, ahorrando de nuevo recursos en tu hosting. (Ya sé que soy un poco pesado con este tema, pero cuantos menos plugins instalados tengas, mucho mejor. Sobre todo, si ya estás recibiendo un volumen de visitas considerable).
Este método consiste en marcar como virtuales los productos para los que no quieres cobrar los gastos de envío.
Simplemente entra en la página de edición de cada producto y en el apartado “Información del producto“, marca la opción “Virtual“.
[img=550x0]http://woodemia.com/wp-content/uploads/2015/04/no-cobrar-gastos-envio-producto-woocommerce.png[/img]
Al marcar un producto como virtual, lo que le estás diciendo a WooCommerce es que no se trata de un producto físico y como tal, no es necesario enviarlo físicamente. De esta forma,WooCommerce no mostrará ningún tipo de gasto de envío en el carrito ni en la página de pago.
Aunque tu producto realmente si sea físico y tenga unas dimensiones y un peso, lo que te interesa es que WooCommerce no le aplique gastos de envío. Punto.
De cara al proceso de compra, todo sigue igual. El cliente no notará nada.
La única particularidad, es que al interpretarlo WooCommerce como un producto virtual, no permitirá al cliente añadir una dirección de envío diferente a la de facturación en la página de pago. Para resolver esto, simplemente debes pegar el siguiente código al final del ficherofunctions.php de tu tema:
Código:
add_filter( 'woocommerce_cart_needs_shipping_address', '__return_true', 50 );

MÉTODO 2 – Usando el plugin WooCommerce Advanced Free Shipping
Este método se podría decir que es más óptimo en cuanto a la configuración, pero ya si requiere el uso de un plugin; el plugin WooCommerce Advanced Free Shipping.
Este plugin no sólo sirve para aplicar envíos gratuitos a determinados productos, sino que también te permite definir multitud de reglas para aplicar el envío gratuito basándase en otra información, como por ejemplo; la información del carrito (impuestos, subtotal, cantidad…), los datos del cliente (país, código postal, rol del usuario…) o incluso en los datos del producto (dimensiones, categoría, inventario…).
Para este caso, vamos a usar el plugin sólo para definir una regla que aplique el envío cuando ciertos productos estén en el carrito.
A continuación, te explico paso a paso cómo hacerlo:
  1. Una vez instalado y activado el plugin (lo puedes descargar desde el repositorio oficial de plugins de WordPress), debes ir a su panel de configuración entrando en “WooCommerce > Ajustes > Envío > Envío Gratis Avanzado”.

  2. Añade una nueva regla de envío haciendo clic en “Añadir método de envío gratis“.

  3. Ahora viene la parte más importante, definir las condiciones para que se aplique el envío gratuito.
    Hay que definir una condición por cada producto. Para ello, en el primer campo selecciona la opción “Contiene producto“, en el segundo campo selecciona “Igual a” y en el tercer y último campo, elige el producto que te interese dentro del listado. A continuación, te muestro una captura de ejemplo:
    [img=600x0]http://woodemia.com/wp-content/uploads/2015/04/configurar-envio-gratis-para-algunos-productos-woocommerce.png[/img]

  4. Escribe un título descriptivo para la regla de envío que acabas de crear -por ejemplo, “Envío gratuito para determinados productos”- y haz clic en “Publicar“.

  5. Por último, vuelve a la página de configuración de “Envío Gratis Avanzado” y marca las opciones “Habilitar/Deshabilitar” y “Ocultar otros envíos“. No olvides guardar los cambios, de lo contrario no se aplicará el envío gratuito.
En el caso de que decidas usar el plugin WooCommerce Advanced Free Shipping, para evitar que se aplique envío gratis a todo el carrito cuando haya productos que si tengan gastos de envío, deberás pegar el siguiente código en el fichero functions.php de tu tema.


/* Only one single product may be in the cart */




add_action( 'wafs_match_condition_single_product', 'wafs_match_condition_single_product', 10, 3 );




/* Match single category

*

* @param bool $match

* @param string $operator

* @param mixed $value

* @return bool

*/

function wafs_match_condition_single_product( $match, $operator, $value ) {




   global $woocommerce;

   

   $match = true;      

   if ( ! isset( $woocommerce->cart ) || empty( $woocommerce->cart->cart_contents ) ) return;

   




   if ( '==' == $operator ) :

   

       foreach ( $woocommerce->cart->cart_contents as $product ) :

           if ( $product['product_id'] != $value ) :

               $match = false;

           endif;

       endforeach;

       

   elseif ( '!=' == $operator ) :

       

       foreach ( $woocommerce->cart->cart_contents as $product ) :

           if ( $product['product_id'] == $value ) :

               $match = false;

           endif;

       endforeach;

       

   endif;

       

   return $match;




}




add_filter( 'wafs_conditions', 'wafs_conditions_add_single_product', 10, 1 );

function wafs_conditions_add_single_product( $conditions ) {

   

   $conditions['Product']['single_product'] = 'Only product in cart';

   

   return $conditions;

   

}




add_filter( 'wafs_values', 'wafs_values_add_single_product', 10, 2 );

function wafs_values_add_single_product( $values, $condition ) {

   

   switch ( $condition ) {




       case 'single_product':

       

           $values['field'] = 'select';




           $products = get_posts( array( 'posts_per_page' => '-1', 'post_type' => 'product', 'order' => 'asc', 'orderby' => 'title' ) );

           foreach ( $products as $product ) :

               $values['options'][$product->ID ] = $product->post_title;

           endforeach;







       break;

   

   }

   

   return $values;

   

}

view rawadvanced-free-shipping-only-one-single-product hosted with [Imagen: 2764.png] by GitHub


Una vez pegado el código anterior, entra de nuevo en la página de configuración de tu regla de envío gratuito avanzado. Y ahora en cada condición, en lugar de escoger la opción “Contiene producto“, debes escoger una nueva opción disponible llamada “Only product in cart“.
Ambos métodos funcionan perfectamente, la única diferencia es que con este segundo método, cuando se añade el producto al carrito, en los detalles del pedido (justo debajo del subtotal) se muestra el texto “Envío gratis” y con el primer método, no se muestra ningún texto referente al envío.
[img=550x0]http://woodemia.com/wp-content/uploads/2015/04/envio-gratuito-woocommerce-determinados-productos.jpg[/img]
Obviamente, si un cliente añade al carrito otros producto por los que si cobras gastos de envío, esos gastos se sumarán al coste total del pedido.
Mi recomendación es que si vas a aplicar los gastos de envío gratuitos en WooCommerce siempre a los mismos productos, utilices el primer método. En cambio, si cada cierto tiempo vas a añadir nuevos productos a tu lista de productos sin gastos de envío, entonces usa el método 2, ya que la gestión será mucho más sencilla.


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
Bombilla Temas Wordpress GRATIS calidad PREMIUM nicarao 9 286 03-10-2018, 05:44 PM
Último mensaje: DamianUzcanga
  100 Temas WordPress Gratis 2018 (Parte 5) Sprystate 1 115 07-09-2018, 01:10 PM
Último mensaje: York0x
  100 Temas WordPress Gratis 2018 (Parte 4) Sprystate 0 66 06-09-2018, 10:54 PM
Último mensaje: Sprystate
  100 Temas WordPress Gratis 2018 (Parte 3) Sprystate 0 88 06-09-2018, 10:19 PM
Último mensaje: Sprystate
  100 Temas WordPress Gratis 2018 (Parte 2) Sprystate 1 81 06-09-2018, 10:11 PM
Último mensaje: York0x
  100 Temas WordPress Gratis 2018 (Parte 1) Sprystate 0 95 06-09-2018, 09:29 PM
Último mensaje: Sprystate
Estrella Configurar múltiples vendedores en WooCommerce WMasterT 2 116 30-07-2018, 08:09 PM
Último mensaje: WMasterT
  [Duda] como consigo este tema gratis magoazul 7 231 01-03-2018, 09:41 PM
Último mensaje: jcifuentes
Guiño Templates/Plantillas Gratis para Wordpress Bycolor 4 330 22-01-2018, 01:20 AM
Último mensaje: angelismo
  ¿Cuánto cuesta montar una tienda online que venda con WooCommerce? logoregion 8 806 19-04-2016, 02:09 PM
Último mensaje: betiko2424



Usuarios navegando en este tema: 1 invitado(s)