Cómo actualizar el precio del producto mediante programación en WooCommerce

Publicado: 2020-10-10

¿Quieres aprender a actualizar el precio del producto mediante programación en WooCommerce ? En esta guía, le mostraremos cómo cambiar los precios en WooCommerce sin usar ningún complemento ni instalar ninguna herramienta adicional.

Si los usa de manera inteligente, los descuentos pueden ayudarlo a mejorar sus tasas de conversión y aumentar sus ventas. Hay varias formas de implementar descuentos en su tienda de comercio electrónico. Por ejemplo, puede aplicar cupones de WooCommerce mediante programación.

Sin embargo, también puede actualizar el precio del producto sin usar cupones . Por ejemplo, podrías dar un descuento exclusivo a los usuarios que estén suscritos a tu newsletter o que hayan gastado más de $100 en tu tienda.

En esta guía, aprenderá a cambiar el precio cuando los clientes agregan un producto al carrito sin usar ningún cupón y accediendo directamente al objeto del carrito de WooCommerce. Echaremos un vistazo a algunos ejemplos y aplicaremos algo de lógica al actualizar el precio. El objetivo es que comprenda la lógica para que pueda personalizar los scripts y aplicarlos a su tienda.

Cómo actualizar el precio del producto mediante programación en WooCommerce

En esta sección, aprenderá cómo actualizar el precio del producto mediante programación en WooCommerce . Echaremos un vistazo a diferentes ejemplos para darte algunas ideas de lo que puedes hacer en tu tienda.

  1. Actualizar el precio del producto cuando se selecciona una casilla de verificación
    1. Agregue el campo de entrada de la casilla de verificación a la página de productos
    2. Actualizar el precio cuando un usuario agrega un producto al carrito
    3. Recalcular el precio total del carrito
  2. Edite el precio del producto según los roles de los usuarios
  3. Actualice el precio del producto según la taxonomía del producto.

Tenga en cuenta que usaremos varios ganchos de WooCommerce, por lo que es una buena idea consultar esta guía si no está familiarizado con ellos.

Antes que empecemos…

Antes de comenzar, como realizaremos modificaciones en algunos archivos principales, le recomendamos que instale un tema secundario en su sitio. Si no tiene un tema secundario y no sabe cómo instalarlo, consulte nuestra guía para crear un tema secundario o nuestra lista de los mejores complementos de temas secundarios.

NOTA : Para aplicar estos scripts, cópielos y péguelos en el archivo functions.php del tema secundario. Sin embargo, tenga en cuenta que solo tienen fines didácticos, así que personalícelos antes de llevarlos a producción.

1) Actualizar el precio del producto cuando se selecciona una casilla de verificación

En el siguiente script de muestra, agregaremos una entrada de casilla de verificación en el formulario del carrito en la página del producto . De esta manera, podemos aplicar una lógica personalizada y actualizar dinámicamente el precio de cualquier producto que los clientes agreguen al carrito solo cuando la casilla de verificación esté seleccionada. Cómo actualizar el precio del producto mediante programación en WooCommerce

1.1 Agregue el campo de entrada de casilla de verificación a la página de productos

Antes de actualizar el precio del producto WooCommerce mediante programación, agreguemos la casilla de verificación a la página de productos . Para hacer eso, simplemente copie y pegue el siguiente script:

 add_action('woocommerce_after_add_to_cart_button', 'add_check_box_to_product_page', 30);
función agregar_marcar_casilla_a_la_página_del_producto(){ ?>     
       <div>           
<label for="paquete_extra"> <?php _e( 'Embalaje extra', 'quadlayers' ); ?>
<tipo de entrada="casilla de verificación" nombre="paquete_extra" value="paquete_extra"> 
</etiqueta>
                    
</div>
     <?php
}

El gancho woocommerce_after_add_to_cart_button nos permite imprimir la casilla de verificación justo después del botón como se muestra en la imagen de arriba.

1.2 Actualizar el precio cuando el usuario añade un producto al carrito

Otra opción interesante es actualizar el precio de forma dinámica cuando los clientes añaden un producto a sus carritos . Entonces, en este caso, para actualizar el precio mediante programación en WooCommerce, simplemente pegue este script justo después del anterior.

 add_filter('woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3);
 
función add_cart_item_data ($cart_item_data, $product_id, $variation_id) {
     // obtener id y precio del producto
    $producto = wc_get_product ($product_id);
    $precio = $producto->get_price();
    // casilla de verificación de paquete adicional
    if( ! vacío( $_POST['paquete_extra'] ) ) {
       
        $cart_item_data['new_price'] = $precio + 15;
    }
devolver $cart_item_data;
}

woocommerce_add_cart_item_data es el hook de WooCommerce que nos permitirá editar el precio del producto actual. Además, el condicional if() verifica si la casilla de verificación está seleccionada o no, y si lo está, actualiza el precio en la siguiente línea. Ahora, analicemos el código para comprender mejor lo que hace cada parte.

  • extra_pack es el nombre de la casilla de verificación que hemos creado en el paso anterior
  • $price es el precio actual del producto. Podemos modificarlo como queramos con unas condiciones
  • $cart_item_data['new_price'] = $price + 15; Así es como aumentamos el precio en $15 cuando el condicional if() es verdadero, esto es cuando el usuario selecciona la casilla de verificación de embalaje adicional. Al ajustar el código, puede elegir aumentar o disminuir el precio en la cantidad que desee.

1.3 Recalcular el precio total del carrito

Dado que podemos llamar al woocommerce_add_cart_item_data varias veces al cargar el carrito, debemos volver a calcular los totales y subtotales del carrito para evitar resultados no deseados, como que los precios se actualicen varias veces o cada vez que un usuario agregue un producto. Para actualizar el producto, pegue el siguiente código después de los dos anteriores:

 add_action('woocommerce_before_calculate_totals', 'before_calculate_totals', 10, 1);
 
función before_calculate_totals ($ cart_obj ) {
if ( es_admin() && ! definido( 'HACER_AJAX' ) ) {
regreso;
}
// Iterar a través de cada artículo del carrito
foreach( $cart_obj->get_cart() as $clave=>$valor) {
if( isset( $valor['nuevo_precio'] ) ) {
$precio = $valor['nuevo_precio'];
$valor['datos']->set_price( ( $precio ) );
}
}
}

Esta función garantiza que solo actualicemos el precio cuando un producto coincida con nuestra lógica condicional (que el usuario seleccione la casilla de verificación de embalaje adicional). De esta forma, evitamos todos los posibles errores a la hora de calcular el precio total del carrito. Actualizar el precio del producto mediante programación en WooCommerce - Tarifa adicional

El precio del producto aumenta en $ 15

Si todo salió bien y el carrito cumple con las condiciones que establecimos, nuestra función agregará un cargo adicional de $15 al precio original cuando el usuario seleccione la casilla de verificación en la página del producto, antes de hacer clic en el botón Agregar al carrito.

Para evitar el abandono del carrito y mejorar la experiencia de compra, siempre debe mostrar el nuevo precio antes de que los clientes agreguen los productos a sus carritos . De lo contrario, solo verán el precio final en la página de pago.

2. Edite el precio del producto según los roles de los usuarios

Del mismo modo, podemos actualizar el precio del producto WooCommerce mediante programación en función de los roles de los usuarios . Por ejemplo, podrías dar un descuento exclusivo a los usuarios suscritos o registrados. Para hacer eso, copie y pegue el siguiente script:

 función add_cart_item_data ($cart_item_data, $product_id, $variation_id) {
    // obtener id y precio del producto
   $producto = wc_get_product ($product_id);
   $precio = $producto->get_price();
   if(// Ha iniciado sesión && es el rol del cliente
       is_user_logged_in()==true&& wc_current_user_has_role( 'cliente' )){
       
        $cart_item_data['new_price'] = $precio * 0.8;
   }
devolver $cart_item_data;
}
add_filter('woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3);

Como puedes ver, la única diferencia entre este script y el anterior en el punto 1.2 es el operador lógico if() . Aquí, estamos comprobando si el usuario ha iniciado sesión o no y si tiene un rol de cliente, que asignamos a los usuarios registrados que han comprado en nuestra tienda anteriormente.

Cuando un comprador cumple con esa condición, multiplicamos el precio del producto por 0,8 , lo que le otorga un 20% de descuento. Por supuesto, puedes editar los roles de usuario y cambiarlos por otros como Suscriptor, Editor, o cualquier otro rol que tengas registrado en tu web.

Tenga en cuenta que para que funcione correctamente, también necesita usar la función 'before_calculate_totals' y su gancho para recalcular los totales del carrito. Así que simplemente use recalcular el precio total del script del carrito que vimos en el paso 1.3.

3. Actualice el precio del producto según la taxonomía del producto

Finalmente, en WooCommerce también podemos actualizar dinámicamente el precio del producto mediante programación en función de las taxonomías del producto . Para hacer eso, echemos un vistazo al siguiente script.

 add_filter('woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3);
 
función add_cart_item_data ($cart_item_data, $product_id, $variation_id) {
     // obtener id y precio del producto
    $producto = wc_get_product ($product_id);
    $precio = $producto->get_price();
    $términos = get_the_terms( $product_id, 'product_cat' );
    // ¡Coincidencia de categoría! aplicar descuento
    if($términos[0]->nombre=='Pósteres'){                    
        $cart_item_data['new_price'] = $precio + 20;
     }   
devolver $cart_item_data;
 
}

En este ejemplo, obtenemos la categoría del producto que se agregó al carrito usando la función incorporada de WordPress get_the_terms() . En la siguiente línea, aplicamos nuestro condicional para recuperar la categoría del producto usando $terms[0]->name . De esta forma, si el producto pertenece a la categoría Posters, incrementamos el precio en $20.

Este es un script de muestra que puede tomar como base y editarlo para cambiar tanto la taxonomía como la cantidad que desea agregar o deducir del precio.

Finalmente, recuerda que necesitas usar la función 'before_calculate_totals' y su gancho correspondiente como hicimos en el paso 1.3.


Como puede ver, el conocimiento del uso de las funciones condicionales y de WordPress/WooCommerce proporcionará una forma extremadamente flexible de actualizar los precios de los productos mediante programación. Estos son solo algunos ejemplos para darle ideas de lo que es posible.

Sin embargo, hay mucho más que puede hacer para dar rienda suelta a su creatividad y encontrar nuevas formas de editar el precio de sus productos. Por ejemplo, puede aplicar descuentos en ID de productos específicos, según la URL de la que proceden los usuarios, según la ubicación o el ID de los usuarios, etc. Las posibilidades son infinitas, así que juegue con el guión y encuentre las mejores soluciones para su tienda.

NOTAS FINALES

  • Estos scripts de muestra en los puntos 1, 2 y 3 no funcionarán juntos. Deberá refinar su lógica en una sola si desea aplicar varias funciones al mismo tiempo
  • Es posible que deba incluir funciones de validación adicionales para una lógica condicional más compleja
  • Aplique siempre una función de recálculo, como se ve en el punto 1.3, cuando trabaje con el objeto del carrito de WooCommerce.
  • Estos son guiones de muestra y están destinados únicamente a fines didácticos. Ajústelos antes de llevarlos a producción.

Conclusión

Con todo, aprender a actualizar el precio del producto mediante programación en WooCommerce puede brindarle mucha flexibilidad. Puede otorgar descuentos a los usuarios suscritos, agregar tarifas si los clientes desean un embalaje adicional o una entrega rápida, etc. Y lo mejor es que no necesitas instalar ningún complemento para hacerlo.

En esta guía, hemos visto diferentes ejemplos para cambiar dinámicamente el precio mediante programación. Sin embargo, eso es solo la punta del iceberg. WooCommerce le brinda infinitas posibilidades, por lo que le recomendamos que juegue y personalice los scripts.

Si tiene alguna pregunta sobre los guiones, háganoslo saber en los comentarios a continuación. Estaremos encantados de ayudarte.

Por último, si quieres mejorar tu proceso de compra, echa un vistazo a nuestra guía para optimizar la compra.