Quiero obtener la cifra total del carrito para la que estoy usando el siguiente código en mi functions.php :
function display_total(){ global $woocommerce; $newTotal = $woocommerce->cart->get_total(); echo $newTotal; }; add_action( 'woocommerce_review_order_before_order_total', 'display_total'); En lugar de mostrar la cantidad una vez, lo hace dos veces como $18.00$18.00 .
Hacer un var_dump también da como resultado 2 líneas de HTML:
D:\Wordpress\wp-content\themes\new_theme\functions.php:161:string '<span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">$</span>18.00</bdi></span>' (length=128) D:\Wordpress\wp-content\themes\new_theme\functions.php:161:string '<span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">$</span>18.00</bdi></span>' (length=128)¿Qué estoy haciendo mal?
Repita el valor en una fila de la tabla, para que no lo repita dos veces. Así que tu código sería algo como esto:
add_action( 'woocommerce_review_order_before_order_total', 'display_total'); function display_total(){ global $woocommerce; $newTotal = $woocommerce->cart->get_total(); echo '<tr><td >' . $newTotal . '</td></tr>'; }; Y la razón es que el gancho woocommerce_review_order_after_order_total se está utilizando en una tabla, por lo tanto, agregar su valor entre una etiqueta tr y td daría como resultado un eco del valor una vez.