Hola @karen
me precipité en dar por resuelto mi mensaje anterior en el que pedía un código para poder pintar el subtotal del precio de los productos una vez hecho el descuento de los cupones, y sin contar envío ni impuestos... pero al mirar bien el resultado de la resta
veo que no hace bien el cálculo del subtotal.
Debería descontar $ 25,80 dólares y en cambio descuenta muy poco, deben ser los cálculos que están mal?
Paso captura para que lo veamos. Muchas gracias de nuevo
Contenido solo visible a usuarios registrados
adjunto el código que me facilitó Karen Ríos y que, según la captura en el mensaje de arriba, no acaba de sacar bien el cálculo:
add_action( 'woocommerce_cart_totals_before_shipping', 'web_foro_display_subtotal_after_coupon' );
function web_foro_display_subtotal_after_coupon() {
global $woocommerce;
/* Verificar si se ha aplicado algún cupón*/
if ( ! empty( $woocommerce->cart->applied_coupons ) ) {
// Obtener el subtotal antes de aplicar el cupón
$subtotal_before_coupon = $woocommerce->cart->subtotal;
/* Obtener el descuento total aplicado por el cupón*/
$coupon_discount = $woocommerce->cart->get_cart_discount_total();
/* Calcular el subtotal después de aplicar el cupón*/
$subtotal_after_coupon = $subtotal_before_coupon - $coupon_discount;
/* Mostrar el subtotal después de aplicar el cupón*/
?>
<tr class="subtotal-row-coupon">
<th><?php _e( 'Subtotal con descuento', 'woocommerce' ); ?></th>
<td><?php echo wc_price( $subtotal_after_coupon ); ?></td>
</tr>
<?php
}
}
Hola Antares.
Para que dominio es la consulta ? no veo que tengas ninguna tienda en el dominio adding-plus
Un Saludo
@pepesoler Hola Pepe, somos un cliente que tenemos un montón de hostings con vosotros (agencia), solemos escribir desde esta cuenta por no hacernos un usuario de foro con cada cliente de los que creamos. La tienda ahora mismo está en pre, no está online, es por eso que tampoco podemos poner el enlace. Igualmente serviría para cualquier cart de WooCommerce, la cosa es que ese código que nos pasó Karen muestra lo que queríamos, en la cart de WooCommerce, pero por el motivo que sea se equivoca en hacer los cálculos.
Adjunto de nuevo la captura del cálculo que hace, muchísimas gracias de antemano
Hola Anateres,
En este caso veo que sí realizo la prueba en mi sitio web funciona de forma correcta.
Ten en cuenta que cada sitio es distinto y pueden existir muchos factores que requiera lo revisemos a detalle, necesitamos poder ver el sitio web y que este dentro de webempresa para revisarlo con mayor detalle.
Un Saludo
HOla, no hay problema, pongo el enlace a la URL de pre del proyecto que estamos haciendo en pruebas. Está en uno de los 5 hostings que tenemos en webempresa con este cliente (tenemos muchos otros hostings en webempresa con otros emails asociados, para los que ya no creamos usuarios de foro porque con este ya tiramos, tampoco es que os molestemos demasiado a menudo 😉 )
entonces, para hacer todos la misma prueba, vamos a la shop en https://topbpoes-cp5015.wordpresstemporal.com/usa.topbpo.es/shop/
añadimos un producto de 200 $
nos vamos a la cart en https://topbpoes-cp5015.wordpresstemporal.com/usa.topbpo.es/cart/
y ponemos el cupón descuento "prousadoctor" sin comillas
Y el descuento es del 10% (descuenta 20 dólares) pero en el subtotal de abajo en Total products, solo ha restado 6 $ al parecer, tal y como indico en la captura adjunta.
Está claro que tiene que ser algo concreto de esta web que interfiere, dado que ya me habéis enseñado que el código que me pasasteis lo está haciendo bien en otros WOOcommerce, pero no sabemos qué puede estar pasando en esta.
Si necesitáis un usuario admin + password o algo, decidme que os lo paso, aunque no sé si lo debo pasar por foro público, o se hace de otra manera que solo lo podáis ver y usar vosotros.
Muchas gracias de nuevo, un saludo
Hola Antares.
Ok, eso es porque estás mostrando los totales sin los impuestos y el total de los productos los está mostrando con los impuestos.
Si haces la suma del total veras que coincide.
Un saludo
HOla Pepe, yo necesito que en Total Products, en este caso del ejemplo la resta de 180 $
¿Cuál es la solución? ¿cambiar algo del código del functions o cambiar alguna parte de la configuración de WOOcommerce?
es que así el cliente no entenderá nada, ellos esperan ver una resta coherente entre el precio de los productos y lo que les descuentan gracias al coupon "prousadoctor"
muchas gracias
Hola Antares.
En WooCommerce -> Ajustes -> Impuestos tienes que seleccionar " voy a introducir los precios con impuestos incluidos " y en las opciones Mostrar precios en la tienda y Mostrar precios en el carrito y en el pago seleccionar " Impuestos incluidos "
Un Saludo
Ok, lo he puesto así para ver cómo funciona, aunque el cliente nos dijo que quería justo al contrario, que insertásemos los precios Excluded taxes... y estaban los 3 campos así, en sin impuestos.
Ahora los he puesto como me indicáis y diría que funciona 99% bien, pero en lugar de restar exacto como en el ejemplo de Karen aquí arriba, resta 200 - 20 = 181,31
¿esto es de nuevo por algo de los impuestos? En el ejemplo de Karen no hay impuestos?
Es que todo esto, si sale así, va a generar llamadas, reclamaciones tontas, explicaciones innecesarias por parte de atención al cliente, más trabajo inútil para ellos vaya (vamos que me van a decir que no a esto) por lo que no sé cómo acabar de solucionarlo
muchísimas gracias, no sé si tiene solución final pero desde luego debe estar cerca 😉
Hola Anateres,
En este caso prueba si el siguiente código te funciona cuando tienes excluidos los impuestos en las configuraciones
add_action( 'woocommerce_cart_totals_before_shipping', 'web_foro_display_subtotal_after_coupon' );
function web_foro_display_subtotal_after_coupon() {
global $woocommerce;
/* Verificar si se ha aplicado algún cupón */
if ( ! empty( $woocommerce->cart->applied_coupons ) ) {
// Obtener el subtotal de los productos antes de aplicar el cupón
$products_subtotal_before_coupon = $woocommerce->cart->get_subtotal();
/* Obtener el descuento total aplicado por el cupón */
$coupon_discount = $woocommerce->cart->get_cart_discount_total();
/* Calcular el subtotal de los productos después de aplicar el cupón */
$products_subtotal_after_coupon = $products_subtotal_before_coupon - $coupon_discount;
/* Mostrar el subtotal de los productos después de aplicar el cupón */
?>
<tr class="subtotal-row-coupon">
<th><?php _e( 'Subtotal con descuento (excluyendo impuestos y envío)', 'woocommerce' ); ?></th>
<td><?php echo wc_price( $products_subtotal_after_coupon ); ?></td>
</tr>
<?php
}
}
Como te comento ten en cuenta que esto es una personalización a la medida, si no funciona te recomiendo consultes con nuestro directorio de colaboradores para que revisen tu sitio web y puedan aplicar las características que necesitas.
Un Saludo
Hola @karen 🙂 con este código sí que muestra todo de manera que el cliente lo pueda entender, y muestra los $ 200 - $20 = $ 180 en la cart. (adjunto captura mostrando que ahora funciona)
Cuando procedo a hacer el checkout: https://topbpoes-cp5015.wordpresstemporal.com/usa.topbpo.es/checkout/ veo que ya no muestra el nuevo campo en la cajita del checkout, a la derecha de los datos de envío etc
¿Hay posibilidad de que muestre ese nuevo cálculo de Subtotal también en el checkout?
Muchas gracias
Hola Anateres,
Puedes probar si añadiendo el Hook para la página de finalizar así como la del carrito te funciona, para ello prueba el siguiente código en lugar del anterior.
// Hook para mostrar el subtotal con descuento en el carrito y en la página de finalización de la compra
add_action( 'woocommerce_cart_totals_before_shipping', 'web_foro_display_subtotal_after_coupon' );
add_action( 'woocommerce_review_order_before_shipping', 'web_foro_display_subtotal_after_coupon' );
function web_foro_display_subtotal_after_coupon() {
global $woocommerce;
/* Verificar si se ha aplicado algún cupón */
if ( ! empty( $woocommerce->cart->applied_coupons ) ) {
// Obtener el subtotal de los productos antes de aplicar el cupón
$products_subtotal_before_coupon = $woocommerce->cart->get_subtotal();
/* Obtener el descuento total aplicado por el cupón */
$coupon_discount = $woocommerce->cart->get_cart_discount_total();
/* Calcular el subtotal de los productos después de aplicar el cupón */
$products_subtotal_after_coupon = $products_subtotal_before_coupon - $coupon_discount;
/* Mostrar el subtotal de los productos después de aplicar el cupón */
?>
<tr class="subtotal-row-coupon">
<th><?php _e( 'Subtotal con descuento (excluyendo impuestos y envío)', 'woocommerce' ); ?></th>
<td><?php echo wc_price( $products_subtotal_after_coupon ); ?></td>
</tr>
<?php
}
}
Un Saludo
Hola @karen 🙂 ostras espectacular, muchas gracias, ahora funciona bien también en el checkout y en la cart!!
Te pregunto por dos sitios más dónde igual estaría bien que también saliera y que me quedan por resolver por si puedes darnos orientación:
1- Cuando terminas el pedido, en el order details final, sería posible que también lo sacásemos ese desglose? Adjunto captura
2- y una última cosa, en el email que le llega al cliente, hay alguna manera de desglosar eso también? adjunto otra captura (Captura_email_woocommerce_discount.jpg)
muchísimas gracias por vuestro soporte <3
Hola Anateres,
Enhorabuena funciona como necesitas, es un placer siempre poder ayudarte. 😀
Con respecto a las nuevas consultas te recomiendo abras un tema para cada uno de ellos, de esta forma mantenemos un control sobre el hilo y podemos ayudarte con mayor detalle.
Un Saludo 😊