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
Desde ya muchas gracias por la ayuda
Hola.
Podes hacerlo de muchas maneras
-
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
-
Podes usar el hook “woocommerce_get_price_html
” para editar la salida del precio
-
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>";
}
1 me gusta
Buenas tardes, es posible mostrar dicho precio con el separador de miles?
Hola @ahiginio , probe tu código para que muestre cuotas sin interes y funciona perfecto, ahora el problema que tengo es que no lo muestra en los productos variables, como lo puedo solucionar?, desde ya muchas gracias.
Hola! Me funcionaron estos dos códigos. El primero agrega por debajo de las imágenes de cada producto en el catálogo de tienda y el otro para agregarlo como shortcode (cuotas) en el producto individual
/* Para la página tienda-catálogo de productos */
add_action( 'woocommerce_after_shop_loop_item', 'before_main_content', 50,2);
function before_main_content() {
global $product;
if ( $product->price ) {
echo '<p style="font-size:11px; color:black; text-align:center;"> ',
'<span style="font-size:13px; margin:4.5px; 0px 0px 0px;" class="far fa-credit-card"> <b>12</b> cuotas sin interés de</span><b>$', number_format ($product->price / 12,0), '</p></b>';
}
}
/* Shortcode "cuotas" */
function cuotas_sin_interes() {
global $product;
return'<p style="font-size:14px; color:black"> ' . '<span style="font-size:14px; margin:2px; 0px 0px 0px;" class="far fa-credit-card"> <b>12</b> cuotas sin interés de</span><b>$' . number_format ($product->price / 12,0) . '</p></b>';
}
add_shortcode('cuotas', 'cuotas_sin_interes');
2 Me gusta
Woow bro funcionó perfectamente, muchas gracias
Hola! Encontre justo lo que estoy buscando ¿En dónde va insertado este código? Gracias!!
Agrega el plugin Code Snippets y pegalo dentro de un código personalizado
Muchas gracias por responder tan pronto Agu! Ya lo pude implementar, aunque con algunos themes (y premium) no se visualiza en ninguna de las ubicaciones, vere si encuentro la forma, muchas gracias!!
Agostina