Agregue texto personalizado después del precio en la página del producto de WooCommerce

3 minutos de lectura

Estoy trabajando en un tema destacado para mi sitio web de comercio electrónico. Quiero mostrar “B” después del precio en la página del producto de Woocommerce. La página se muestra como "$99,99"

Quiero hacer que se muestre así: "$99,99 TEXT"

Tengo el código para ello:

function change_product_price( $price ) {
    $price .= ' TEXT';
    return $price;
}
add_filter( 'woocommerce_get_price_html', 'cw_change_product_price_display' );
add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_display' );

Ahora quiero saber dónde agregar el código en el directorio de woo-commerce. Cualquier ayuda sería apreciada.

gracias

Avatar de usuario de Mykyta Dudariev
Mykyta Dudariev

Agrega este código dentro functions.php de tu tema:

function cw_change_product_price_display( $price ) {
    $price .= ' TEXT';
    return $price;
}
add_filter( 'woocommerce_get_price_html', 'cw_change_product_price_display' );
add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_display' );

  • te refieres a funciones.php?

    – Asif Amir

    14/11/2017 a las 20:40

  • @AsifAmeer sí, lo siento functions.php. Cambié mi respuesta.

    – Mykyta Dudariev

    15 de noviembre de 2017 a las 8:20

avatar de usuario de andy Lr
andy lr

El nombre de la función a la que llamas add_filter no es lo mismo que el nombre de su función real. Parece que has olvidado el _display en el nombre de la función.

En el siguiente código, la función es nombre cw_change_product_price_display y cw_change_product_price_display es llamado en add_filter

function cw_change_product_price_display( $price ) {
    $price .= ' TEXT';
    return $price;
}
add_filter( 'woocommerce_get_price_html', 'cw_change_product_price_display' );
add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_display' );

  • Si bien su publicación puede proporcionar una solución, las respuestas de solo código se consideran “malas respuestas”. Agregue alguna explicación sobre cuál es su cambio real en el código y cómo se comporta/qué hace/por qué ese cambio es necesario.

    – Korashén

    13 de septiembre de 2018 a las 11:12

Probado para woocommerce 6.xx – 2022

IMPORTANTE: si ha habilitado el cálculo de impuestos (woocommerce -> Configuración -> Habilitar impuestos) dentro de woocommerce, tiene la opción desde el panel de administración para agregar lo que quiera después del precio (sufijo). Esta opción se puede encontrar dentro del panel de administración y en woocommerce -> Configuración -> Impuestos.

Los fragmentos de código proporcionados a continuación se pueden agregar dentro del archivo functions.php de la carpeta del tema de su hijo. Le recomiendo enfáticamente que use un tema secundario (si lo proporciona el tema o cree uno) para que cuando actualice su tema, ninguno de estos cambios se borre.

Woocommerce proporciona un filtro, desde hace bastante tiempo, que puede agregar un sufijo de precio, y eso es lo que desea en su caso.

add_filter( 'woocommerce_get_price_suffix', 'add_some_text_after_price', 99, 4 );

function add_some_text_after_price ($html, $product, $price, $qty){
    $html .= ' TEXT'; //You can write whatever you want here. Just stay inside the ' '
    return $html;
}

Además, como sugirieron las otras respuestas, el nombre de la función que está dentro de su filtro no es el mismo que el nombre de la función que realiza su acción.

El nombre de su función: change_product_price

Y dentro de sus filtros que desea agregar esta acción, llame a: cw_change_product_price_display

Así que nada sucederá y nada funcionará, como la función, usted llama I nowhere to be found.

Además excepto por agregar un sufijo, también puedes agregar un prefijo usando uno de los filtros que ya usas (por si alguien necesita algo así)

add_filter( 'woocommerce_get_price_html', 'my_function', 99, 2 );)

function my_function( $price, $product ){
    $price="Text " . $price;
    return $price;
}

Conocimientos generales

El 99 dentro de los filtros es el número de prioridad que iniciará el filtro, antes que cualquier otro filtro. Eso significa que si desea iniciar algunos filtros antes que otros, puede cambiar la prioridad. El segundo número es el número de argumentos ($price, $html, …) que pones dentro de tu función.

Ambos números son necesarios en la mayoría de los casos.

¿Ha sido útil esta solución?