fbpixel

WooCommerce Variable Precio Producto en Single Page Product

Hola buen día para todos.

Estoy intentando crear una función o alguna manera de mostrar el precio del producto dividido por 12 para lograr mostrar cuanto sería el precio del mismo en 12 cuotas.

Actualmente lo esoty haciendo de manera manual con un custom field e ingresando uno a uno los precios, pero la idea es automatizarlo mediante una función o alguna manera para no tener que cada vez que cambien los precios entrar producto por producto a cambiar esto.

La idea es la siguiente:
En la pagina de producto mostrar una etiqueta que diga “12 Cuotas de $XXX” donde en XXX pueda agarrar la variable del precio de producto (sea regular o sale price) y dividirlo por 12 retornando el valor a ese lugar para así automatizarlo.

Alguna idea de como poder hacerlo? me vengo rompiendo la cabeza con esto y no me sale :sob:
Desde ya muchas gracias por la ayuda

Hola.
Podes hacerlo de muchas maneras

  1. Podes modificar directamente el template price.php, lo copias a tu child theme y ahí lo modificas:
    https://github.com/woocommerce/woocommerce/blob/master/templates/single-product/price.php

  2. Podes usar el hook “woocommerce_get_price_html” para editar la salida del precio

  3. Podes eliminar el template de precios usando para luego colocar el suyo propio:
    add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );

Saludos

Bueno les dejo lo que pude armar como para si a alguien le sirve lo hice directamente desde funciones en las cuales utilice 1 funcion para dividir en 12 el precio y mostrar las 12 cuotas

// FUNCION MUESTRA EL PRECIO DIVIDIDO EN 12 PARA MOSTRAR 12 CUOTAS DE $
        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') ){
                 // Get product prices
                 $regular_price = (float) $product->get_regular_price(); // Regular price
                 $sale_price = (float) $product->get_price(); // Active price (the "Sale price" when on-sale)

                 // "Saving Percentage" calculation and formatting
                 $precision = 1; // Max number of decimals
                 if (empty($sale_price)) {
                    $cuotaprecioregular = round (($regular_price + ($regular_price / 100 * 20)) / 12, $precision);
                    $price .= sprintf( __('<p style="font-size:14px;color:#f25c05;" >12 cuotas de: $%s</p>', 'woocommerce' ), $cuotaprecioregular );
                 }
                 else {
                    $cuotapreciosale = round (($sale_price + ($sale_price / 100 * 20)) / 12, $precision);
                    $price .= sprintf( __('<p style="font-size:14px;color:#f25c05;">12 cuotas de: $%s</p>', 'woocommerce' ), $cuotapreciosale );
                 }
                 }
            return $price;
        }

Despues utilice otras funciones para agarrar el precio dependiendo si es SALE o REGULAR y aumentarlo para mostrar los precios en un popup segun metodo de pago

// FUNCION DE AUMENTO DE PRECIOS 20% MAS
add_action( 'pum_popup_content3', "tarjetas", 17 );
function tarjetas(){
global $product;
$price = $product->price;
    $preciocon20mas .= sprintf( __('<p class="pagandoahora12">Precio pagando con Tarjeta de Crédito / Débito / PagoFacil o RapiPago: %s</p>', 'woocommerce' ), $price );
    echo "<img src='https://expertienda.com.ar/wp-content/uploads/2020/07/metodos-mercadopago.png' class='mx-auto img-responsive d-block imgclick' style='max-width:40%;margin:auto;'/>";
    echo "<p class='pagandoahora12' style='text-align:center;font-size:14px;'><strong>Precio pagando con Tarjeta de Crédito / Débito / PagoFacil o RapiPago $".sprintf($price )."</strong></p>";
}

//FUNCION MUESTRA PROD PRECIO NORMAL
add_action( 'pum_popup_content2', "ahora12pagos2", 17 );
function ahora12pagos2(){
global $product;
$price = $product->price;
$percentageincreased20 = round( $price + ( $price / 100 * 20 ), $precision );
   echo "<img src='https://expertienda.com.ar/wp-content/uploads/2020/07/tarjetas-todopago.png' class='mx-auto img-responsive d-block imgclick' style='max-width:40%;margin:auto;'/>";
  echo "<p class='pagandoahora12' style='text-align:center;font-size:14px;'><strong>Precio pagando con <img src='https://expertienda.com.ar/wp-content/uploads/2020/06/ahora12-logominiatura2.png' style='max-width:2%;display:inline-block;' class='img-responsive mx-auto d-block'/> <span style='color:#209fc7;'>AHORA12</span> $".sprintf($percentageincreased20 )."</strong></p>";
  
}

//FUNCION DESCUENTA 5%
add_action( 'pum_popup_content4', "efectivo", 17 );
function efectivo(){
   global $product;
$price = $product->price;
$percentagedecreased5 = round( $price - ( $price / 100 * 5 ), $precision );
  echo "<p class='pagandoahora12' style='text-align:center;font-size:14px;'><strong>Precio pagando con Transferencia o Depósito Bancario $".sprintf($percentagedecreased5 )."</strong></p>";
  
}