Excluir productos de una categoría en la página de la tienda

A la hora de mostrar el stock disponible de productos en una tienda WooCommerce, las opciones son bastante limitadas. Por eso sería interesante tener diferentes frases o formatos para mostrar el stock que incentiven al visitante a realizar la compra. Una manera de hacerlo es mediante un código como el siguiente, que como siempre deberemos incluir en el archivo functions.php:

Al manejar una tienda WooCommerce, puede ocurrir que necesitemos tener cargados algunos productos que no queramos que aparezcan en la página principal del shop. Mediante el siguiente código, que deberemos incluir en el archivo functions.php de nuestro tema, podemos ocultar de la tienda los productos asignados a una determinada categoría (sólo debemos reemplazar «clothing» por el slug de la categoría que queremos ocultar).

/**
 * Exclude products from a particular category on the shop page
 */
function custom_pre_get_posts_query( $q ) {

    $tax_query = (array) $q->get( 'tax_query' );

    $tax_query[] = array(
           'taxonomy' => 'product_cat',
           'field' => 'slug',
           'terms' => array( 'clothing' ), // Don't display products in the clothing category on the shop page.
           'operator' => 'NOT IN'
    );


    $q->set( 'tax_query', $tax_query );

}
add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' );  

De esta manera, los productos sólo podrán ser vistos por quienes cuenten con el enlace permanente del producto (vía WooCommerce).

Configurar un monto mínimo en Woocommerce

Si manejamos una tienda online mayorista basada en WordPress y Woocommerce, posiblemente necesitemos establecer un monto mínimo por pedido. En el repositorio de plugins existen dos gratuitos que nos permiten hacerlo fácilmente. Podés bajarlos desde los siguientes links.

Minimum Order Amount for Woocommerce
Minimum Purchase for Woocommerce

WooCommerce: agregar criterios de orden con un plugin

En WooCommerce, la página principal de productos incluye un selector para cambiar el orden del listado según diferentes criterios. Si necesitamos añadir otras opciones de orden, podemos probar el plugin More Sorting Options for WooCommerce, que incluye la posibilidad de ordenar por código del producto, stock y fecha de modificación, entre otros. También podemos establecer un orden al azar, una opción que puede resultar muy útil.

Modificar el texto de «Thank you» en WooCommerce

Cuando uno de nuestros clientes finaliza una compra en nuestro sitio WooCommerce, el sistema lo redirecciona a una página de agradecimiento. Para modificar el texto que aparece podemos recurrir a una función muy simple que debemos incorporar en el archivo functions.php de nuestro tema. Aquí la tienen:
 

add_action( 'woocommerce_thankyou', 'textogracias' );
 
function textogracias() {
echo '

¡Gracias por tu compra!

Como muestra de agradecimiento, podés usar el código "PROMO532" para obtener un 25% de descuento en tu próxima compra.

'; }

Plugin para agregar campos personalizados en WooCommerce

A la hora de cargar los datos de nuestros productos en WooCommerce, veremos que la plataforma incluye los campos típicos que una tienda online requiere, entre ellos, precio, stock y dimensiones, por mencionar algunos. Sin embargo, algunos rubros específicos pueden llegar a requerir otro tipo de campos. Por ejemplo, si vendemos remeras con estampados personalizados, podemos querer agregar un campo para que el comprador incluya la leyenda que quiere agregar en su prenda. Para lograrlo, podemos recurrir a un plugin como WC Fields Factory, una herramienta muy poderosa que permite agregar todo tipo de campos a nuestros productos.

Personalizar mensajes de stock en WooCommerce

A la hora de mostrar el stock disponible de productos en una tienda WooCommerce, las opciones son bastante limitadas. Por eso sería interesante tener diferentes frases o formatos para mostrar el stock que incentiven al visitante a realizar la compra. Una manera de hacerlo es mediante un código como el siguiente, que como siempre deberemos incluir en el archivo functions.php:

 

add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_stock', 10 );
function woocommerce_template_loop_stock() {
    global $product;
    if ( ! $product->managing_stock() && ! $product->is_in_stock() )
        echo '

¡Nos quedamos sin stock, probá de nuevo mañana!

'; }

Para personalizar aún más los mensajes y estilos relacionados con el stock podemos recurrir a un plugin como Woo Custom Stock Status, que permite personalizar todas las cadenas de texto relacionadas con el stock y también establecer colores para cada tipo de mensaje (vía WP Decoder).

Cambiar campos de checkout en WooCommerce

Hace un par de meses vimos cómo agregar campos personalizados en WooCommerce utilizando un plugin. Hemos comprobado que dicho plugin se encuentra bastante desactualizado, así que es hora de cambiar la recomendación por otro llamado Checkout Field Editor. Este plugin no sólo permite agregar nuevos campos en el formulario de checkout, sino que permite cambiar y personalizar los existentes.
Por supuesto, los cambios en los campos de checkout también podemos hacerlo mediante código que deberemos agregar en el archivo functions.php. Por ejemplo este ejemplo sirve para modificar la etiqueta y el placeholder de un determinado campo.

 

// Hook in
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

// Our hooked in function - $fields is passed via the filter!
function custom_override_checkout_fields( $fields ) {
     $fields['order']['order_comments']['placeholder'] = 'My new placeholder';
     $fields['order']['order_comments']['label'] = 'My new label';
     return $fields;
}

(código vía documentación de WooCommerce).

Crear descuentos según el método de pago en WooCommerce

Si tenemos diferentes métodos de pago en nuestra tienda WooCommerce, puede resultar útil tener la posibilidad de ofrecer descuentos según el medio utilizado, tanto como manera de incentivar el uso de uno sobre otro, como así también para compensar la diferencia de comisiones que pueden existir. Para hacer esto podemos recurrir a un plugin como Discounts Per Payment Method on WooCommerce, que permite realizar tanto descuentos como recargas según el método de pago. La configuración del plugin es muy sencilla y vale la pena probarlo.

Ocultar campos de la calculadora de envío en WooCommerce

En el carrito de compras de WooCommerce el visitante tiene disponible una herramienta para calcular de antemano el costo de envío, para lo cual puede ingresar el código postal, ciudad y provincia. Sin embargo, cuando el envío lo definimos de una manera más simple (por ejemplo, sólo a partir del país) no es necesario que aparezcan todos estos campos en la calculadora. Con el siguiente código podemos ocultar a gusto los que no queremos mostrar (vía BusinessBloomer).

 

/**
* @snippet    Hide "Shipping Calculator" Fields @ WooCommerce Cart
* @how-to    Watch tutorial @ https://businessbloomer.com/?p=19055
* @sourcecode    https://businessbloomer.com/?p=74646
* @author    Rodolfo Melogli
* @testedwith    WooCommerce 3.4.2
*/
 
// 1 Disable State
add_filter( 'woocommerce_shipping_calculator_enable_state', '__return_false' );
 
// 2 Disable City
add_filter( 'woocommerce_shipping_calculator_enable_city', '__return_false' );
 
// 3 Disable Postcode
add_filter( 'woocommerce_shipping_calculator_enable_postcode', '__return_false' );

Código para pausar una tienda en WooCommerce

Si nos vamos de vacaciones o por algún otro motivo necesitamos poner en pausa una tienda de WooCommerce, podemos aplicar el siguiente código en el archivo functions.php. Para volver a activar la tienda, alcanza con remover el código y todo volverá a la normalidad.

 

/**
 * @snippet       WooCommerce Holiday/Pause Mode
 * @how-to        Watch tutorial @ https://businessbloomer.com/?p=19055
 * @sourcecode    https://businessbloomer.com/?p=20862
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 3.5.1
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
 
// Trigger Holiday Mode
 
add_action ('init', 'bbloomer_woocommerce_holiday_mode');
 
 
// Disable Cart, Checkout, Add Cart
 
function bbloomer_woocommerce_holiday_mode() {
   remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
   remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
   remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
   remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
   add_action( 'woocommerce_before_main_content', 'bbloomer_wc_shop_disabled', 5 );
   add_action( 'woocommerce_before_cart', 'bbloomer_wc_shop_disabled', 5 );
   add_action( 'woocommerce_before_checkout_form', 'bbloomer_wc_shop_disabled', 5 );
}
 
 
// Show Holiday Notice
 
function bbloomer_wc_shop_disabled() {
        wc_print_notice( 'Disculpas, la tienda permanecerá cerrada hasta fin de mes.)', 'error');
}