Avisos
Vaciar todo

subtotal con descuento en el Order Details  

 
Anatares
 Anatares
Usuario eminente

Hola, gracias a Karen Ríos nos facilitó un código para hacer que saliese un subtotal del precio de todos los productos menos el código descuento, tanto en la cart como en el checkout.

Es este código:

// 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
}
}

Mi pregunta ahora es si es posible hacer que salga también justo al finalizar el pedido,  en la zona Order Details  (adjunto captura)

Captura order details discount

muchas gracias de antemano,  un saludo!

Contenido solo visible a usuarios registrados

Citar
Respondido : 28/03/2024 9:09 am
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Anateres, 

En este caso no estoy segura funcione y tal vez requieras un codigo muy personalizado, puedes probar con el siguiente codigo

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' );
add_action( 'woocommerce_order_details_after_order_table', '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
}
}

En Caso de que no lo añada te recomiendo consultes con nuestro directorio de colaboradoresquienes pueden ayudarte a añadir lo que necesitas. 

Un Saludo 

ResponderCitar
Respondido : 28/03/2024 2:20 pm

Cursos Gratuitos WordPress

Anatares
 Anatares
Usuario eminente

Hola @karen 🙂  ante todo muchísimas gracias por toda la ayuda que nos brindas siempre.

Este último código no ha conseguido pintar el nuevo subtotal en la zona de order details

Entiendo que hemos añadido la línea de

add_action( 'woocommerce_order_details_after_order_table', 'web_foro_display_subtotal_after_coupon' );

 

en la que 'woocommerce_order_details_after_order_table' debe ser el supuesto nombre de la tabla en la que tendría que pintar el subtotal, no?

Lo digo para poder contratar un programador y explicarle que solamente se necesita buscar eso, y que el resto está funcionando bien. Supongo que debe ser un tema de versiones de WooCommerce, y en unas versiones esa zona de esa tabla se llamará así, y si nosotros tenemos otra versión u otra plantilla (tiene el theme Avada esta web)  igual esa zona se llama diferente, verdad?

muchas gracias

ResponderCitar
Respondido : 02/04/2024 4:12 pm
Bruno
 Bruno
Soporte CMS Webempresa Moderator

Que tal Anatares,

en la que 'woocommerce_order_details_after_order_table' debe ser el supuesto nombre de la tabla en la que tendría que pintar el subtotal, no?

En este caso se hace es referencia al hook llamado "woocommerce_order_details_after_order_table" el cual se le desea aplicar una función o mostrar un contenido en concreto

Si deseas saber mas al respecto y tener contexto al momento de hacer una solicitud a algun programador puedes consultar la siguiente documentación

- https://woo.com/document/introduction-to-hooks-actions-and-filters/
- https://woocommerce.github.io/code-reference/hooks/hooks.html

Tengo entendido ya mi compañera te ha remitido a nuestros colaboradores, que con gusto estoy seguro podrán ver tu caso a detalle

- https://www.webempresa.com/directorio-colaboradores.html

Saludos!

ResponderCitar
Respondido : 02/04/2024 4:39 pm