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)
muchas gracias de antemano, un saludo!
Contenido solo visible a usuarios registrados
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
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
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!