Agregar campo de texto debajo del precio

Muy buenos dias Marian. Te molesto con lo siguiente. Usé tu codigo para las cuotas sin interes, todo excelente.
Ahora quisiera saber como hacer para lograr esto:
Al lado del precio, agregarle una oracion que diga ‘‘xprecio abonando con transferencia’’ donde ese precio X, sea con un 10% de descuento sobre el precio.
Espero haber sido claro.
Y desde ya, Muchisimas gracias por tu ayuda

Gente, aca dejo el codigo (basado en el de Mariano, gracias Mariano!) que a mi me va genial con productos simples y variables.

add_filter( 'woocommerce_get_price_html', 'change_displayed_sale_price_html', 10, 2 );
add_filter( 'woocommerce_variation_sale_price_html', 'change_displayed_sale_price_html', 10, 2 );

function change_displayed_sale_price_html( $price, $product ) {
    $precision = 2; // Max number of decimals

    if ( $product->is_type('simple') ) {
        $regular_price = (float) $product->get_regular_price(); // Regular price
        $sale_price = (float) $product->get_price(); // Active price (the "Sale price" when on-sale)

        $cuotapreciosale = round( ($sale_price + ($sale_price / 100 * 1)) / 12, $precision );
        $price .= sprintf( __('<br><span style="font-size:15px;color:#d66d50;"><b>12</b> CUOTAS SIN INTERES DE $%s</span>', 'woocommerce' ), $cuotapreciosale );
    } elseif ( $product->is_type('variation') ) {
        $variation_price = (float) $product->get_price(); // Active variation price

        if ( ! empty( $variation_price ) ) {
            $cuotapreciovariation = round( ($variation_price + ($variation_price / 100 * 1)) / 12, $precision );
            $price .= sprintf( __('<br><span style="font-size:15px;color:#d66d50;"><b>12</b> CUOTAS SIN INTERES DE $%s</span>', 'woocommerce' ), $cuotapreciovariation );
        }
    } else {
        // For variable products without any variation selected
        $price .= '<br><span style="font-size:15px;color:#d66d50;"><b>12</b> CUOTAS SIN INTERES</span>';
    }

    return $price;
}

Entre buscando cobre y encontre oro.
Alguien que le haga una estatua a este caballero que se rompio el lomo para solucionar un problema que tenemos todos los que trabajamos con ecommerces.

hola, tengo un problema con mi codigo, este da descuentos en efectivo segun la categoria del producto, sim embargo tengo un problema con los productos variables, cuando selecciono la variante de un porducto con el 35% de descuento se me retorna al 20%( que es como esta default) alguna solucion? dejo mi codigo:

add_filter(‘woocommerce_get_price_html’, ‘efectivo_displayed_sale_price_html’, 20, 2);

function efectivo_displayed_sale_price_html($price, $product) {
$discount_percentage = 20;

// Verifica si el producto tiene el ID 3351 o es una variante de ese producto
if ($product->get_id() === 3351 || ($product->is_type('variation') && $product->get_parent_id() === 3351)) {
    $discount_percentage = 50;
} else {
    // Verifica otras condiciones y asigna otros descuentos según sea necesario

if (has_term(array(‘muebles’, ‘deco’), ‘product_cat’, $product->get_id())) {
$discount_percentage = 20;
}
elseif (has_term(array(‘living’, ‘colchones’), ‘product_cat’, $product->get_id())) {
$discount_percentage = 35;
}
elseif (has_term(‘promociones’, ‘product_cat’, $product->get_id())) {
$discount_percentage = 25;
}
}
if ($discount_percentage > 0) {
$regular_price = (float) $product->get_regular_price();
$sale_price = (float) $product->get_price();
$precision = 2;
$cuota_precio_sale = number_format($sale_price - ($sale_price * $discount_percentage / 100), $precision, ‘,’, ‘.’);

// Lógica para productos no variables o productos variables (padres)
$discount_text = sprintf(
    '<span style="font-size: 10px; color: #d66d50;">%s%% EN PAGO EN EFECTIVO O TRANSFERENCIA BANCARIA:</span>',
    $discount_percentage
);

// Agrega el símbolo "$" y un salto de línea antes del precio
$custom_price_display = sprintf(
    '<br><br>$%s<br>%s',
    $cuota_precio_sale,
    $discount_text
);

// Agrega el nuevo texto al precio
$price .= $custom_price_display;

}

return $price;
}

Hola, silvina, estoy con un problema, aplico el codigo que pasaste, y me lo toma pero no me muestra el precio en las paginas que tienen los productos, unicamente me lo muestra en las paginas de los productos individuales. Sabras que puede ser lo que esta pasando?

Hola Julieta, mirá no soy programadora. Pero pasá la web y el código php, entre todos podremos ayudar tal vez.

Hola! Cómo están? Tengo un problema con el código, no muestra el precio.
Se ve bien pero sale:
$1000
o 3 cuotas sin interés de

Y ahi se corta. Alguien sabe cómo puedo solucionarlo? No me doy cuenta si no retorna el valor del precio, o si directamente no está consiguiéndolo.

CODIGO

add_filter( ‘woocommerce_get_price_html’, ‘change_displayed_sale_price_html’, 10, 2 );

function change_displayed_sale_price_html( $price, $product ) {

if ( $product->is_type('simple') ) {
    $regular_price = (float) $product->get_regular_price(); // Precio Regular
    $precision = 2; // Max number of decimals
    $cuotapreciosale = round ($regular_price / 3, $precision);
    $price .= sprintf( __('<br><br><span style="font-size:12px;color:#cf3476;"><b>3</b> CUOTAS SIN INTERES DE <b>$%s</b></span>', 'woocommerce' ), $cuotapreciosale );
} elseif ( $product->is_type( 'variable' ) ) {
    $price .= sprintf( __('<br><br><span id="cuotas_info" style="font-size:12px;color:#cf3476;"><b>3</b> CUOTAS S/INTERES DE <b>$%s</b></span>', 'woocommerce' ), '' );
}

return $price;

}

add_action( ‘woocommerce_single_product_summary’, ‘display_cuotas_script’, 20 );

function display_cuotas_script() {
global $product;
if ( $product->is_type( ‘variable’ ) ) {
?>

<?php
}
}

Ese es el código que estoy utilzando, le saqué el sale_price ya que las cuotas son sobre el precio regular, modifiqué para que calcule sobre eso. Gracias!

Proba esto en un sitio de prueba:

function custom_price_with_installments($price, $product) {
// Obtener el precio del producto
$product_price = $product->get_price();

// Verificar que el precio del producto sea un número válido
if (is_numeric($product_price) && $product_price > 0) {
    // Dividir el precio por 3
    $installment_price = $product_price / 3;

    // Formatear el precio en cuotas con el símbolo de moneda
    $formatted_installment_price = wc_price($installment_price);

    // Crear el texto de las cuotas
    $installment_text = '<p>(' . __('3 cuotas sin interés de', 'text-domain') . ' ' . $formatted_installment_price . ')</p>';

    // Añadir el texto de las cuotas al precio original
    return $price . $installment_text;
}

// Si el precio del producto no es válido, devolver el precio original sin modificar
return $price;

}
add_filter(‘woocommerce_get_price_html’, ‘custom_price_with_installments’, 10, 2);

Cualquier cosa me envían un mensaje privado, hice un plugin para el caso de que quieran poner información de x cuotas sin interés. No lo tengo en venta pero lo puedo dar a colaboración.

Hola mariano. gracias por el código, me anda perfect en un sitio. pero en otro, en el que lo desarrollaron con Elementor y JetEngine no me aparece. probé con Woody Snippet para insertar un código corto y nada. cómo podria agregarlo en la plantilla del producto? $cuotapreciosale???