Agregue un texto al precio total solo en la página de pago de Woocommerce

2 minutos de lectura

avatar de usuario
les

Tengo el siguiente código que agrega texto de sufijo en la sección total de AMBAS páginas del carrito y de pago:

add_filter( 'woocommerce_cart_total', 'custom_total_message' );
function custom_total_message( $price ) {
    $msg = 'Prices for grocery items may vary at store. Final bill will be based on store receipt.<br />';

    return $price . $msg;
}

Sin embargo, solo quiero que el texto del sufijo se muestre SOLO en la página de pago pero no en la página del carrito.

¿Cómo logro esto?

  • Evitaría modificar el precio de esta manera, tal vez algo como add_action( 'woocommerce_after_order_notes', 'custom_total_message') sería más apropiado. He usado esto antes para mensajes del tipo “permita 14 días para el procesamiento de pedidos”.

    – ArtísticoPhoenix

    19 de marzo de 2019 a las 22:22

avatar de usuario
LoicTheAztec

Simplemente use Etiquetas condicionales de WooCommerce para restringir la visualización solo en la página de pago…

Ahora debería usar mejor el siguiente gancho en su lugar, para evitar problemas, derritiendo números flotantes con picaduras en la cantidad total:

add_filter( 'woocommerce_cart_totals_order_total_html', 'custom_total_message_html', 10, 1 );
function custom_total_message_html( $value ) {
    if( is_checkout() )
        $value .= __('Prices for grocery items may vary at store. Final bill will be based on store receipt.') . '<br />';

    return $value;
}

O incluso mejor en una fila de tabla separada después del total, usando esto en su lugar:

add_action( 'woocommerce_review_order_after_order_total', 'review_order_after_order_total_callback' );
function review_order_after_order_total_callback(){
    $text = __('Prices for grocery items may vary at store. Final bill will be based on store receipt.');

    ?><tr class="order-total"><th colspan="2"><?php echo $text; ?></th></tr><?php
}

El código va en el archivo function.php de su tema secundario activo (o tema). Probado y funciona.


Si decide mantener su gancho inicial, use lo siguiente:

add_filter( 'woocommerce_cart_total', 'custom_total_message', 10, 1 );
function custom_total_message( $price ) {
    if( is_checkout() )
        $price .= __('Prices for grocery items may vary at store. Final bill will be based on store receipt.') . '<br />';

    return $price;
}

El código va en el archivo function.php de su tema secundario activo (o tema). Sin probar

  • Pregunta: ¿cómo agregaría el mismo mensaje pero a la página Pedido recibido/Gracias?

    – Les

    20 de marzo de 2019 a las 20:03

  • @Les ¿Dónde se recibió el pedido? Vea este hilo relacionado con la respuesta stackoverflow.com/a/55131790/3730754

    – LoicTheAztec

    20 de marzo de 2019 a las 21:31


¿Ha sido útil esta solución?