Quiero que cuando el usuario ponga 10 uds aparezca el PRECIO REAL (destacando que tengo el plugin "Discount Rules for Woocommerce" para descuentos por volumen ( https://wordpress.org/plugins/woo-discount-rules/) y mis productos son variables (con diferente atributo el precio cambia)
Con el código incrustado solo me aparece el precio por la cantidad (en el carrito si me aparece con descuento) Ejemplo:
Producto variable - técnica marcaje: 1 color: 5€ | 2 colores: 15€ | 3 colores: 20€
Unidades: 5 (tengo fijado un descuento de un 5% de 1 a 25 unidades)
He puesto este código: (pero solo multiplica la cantidad por el precio más bajo (de los atributos))
add_action( 'woocommerce_after_add_to_cart_button', 'bbloomer_product_price_recalculate' );
function bbloomer_product_price_recalculate() {
global $product;
echo '<div id="subtot" style="display:inline-block;">Total: <span></span></div>';
$price = $product->get_price();
$currency = get_woocommerce_currency_symbol();
wc_enqueue_js( "
$('[name=quantity]').on('input change', function() {
var qty = $(this).val();
var price = '" . esc_js( $price ) . "';
var price_string = (price*qty).toFixed(2);
$('#subtot > span').html('" . esc_js( $currency ) . "'+price_string);
}).change();
" );
}
Contenido solo visible a usuarios registrados
Hola Daniel.
El código no funcionara para los productos variables.
Revisa este plugin si hace lo que buscas:
-> https://wordpress.org/plugins/elex-woocommerce-dynamic-pricing-and-discounts/
El plugin tiene dos versiones, puedes probar si en la version Free consigues lo que buscas.
Puedes probar con esta función, no la probé por lo que no te puedo decir exactamente si para los productos variables puede funcionar:
add_action( 'woocommerce_after_add_to_cart_form', 'total_product_and_subotal_price' );
function total_product_and_subotal_price() {
global $product;
$product_price = (float) wc_get_price_to_display( $product );
$cart_subtotal = (float) WC()->cart->subtotal + $product_price;
$price_0_html = wc_price( 0 ); // WooCommmerce formatted zero price (formatted model)
$price_html = '<span class="amount">'.number_format($product_price, 2, ',', ' ').'</span>';
$subtotal_html = '<span class="amount">'.number_format($cart_subtotal, 2, ',', ' ').'</span>';
// Display formatted product price total and cart subtotal amounts
printf('<div id="totals-section"><p class="product-total">%s</p><p class="cart-subtotal">%s</p></div>',
str_replace([' amount','0,00'], ['',$price_html], $price_0_html), // formatted html product price
str_replace([' amount','0,00'], ['',$subtotal_html], $price_0_html) // Formatted html cart subtotal
);
?>
<script>
jQuery( function($){
var productPrice = <?php echo $product_price; ?>,
startCartSubtotal = <?php echo $cart_subtotal; ?>;
function formatNumber( floatNumber ) {
return floatNumber.toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ').replace('.', ',');
}
$('input[name=quantity]').on( 'input change', function(){
var productQty = $(this).val() == '' ? 1 : $(this).val(),
productTotal = parseFloat(productPrice * productQty),
cartSubtotal = productTotal + startCartSubtotal - productPrice;
cartSubtotal = $(this).val() > 1 ? parseFloat(cartSubtotal) : parseFloat(startCartSubtotal);
$('#totals-section > .product-total .amount').html( formatNumber(productTotal) );
$('#totals-section > .cart-subtotal .amount').html( formatNumber(cartSubtotal) );
});
});
</script>
<?php
}
Nota: recuerda descarga una copia del archivo para tener un resguardo antes de añadir cualquier código.
Un saludo
He copiado el código y me aparece esto: https://www.loom.com/share/db4aad290ec14de0836f076267c98014 (no cambia nada)
Por otro lado el plugin que me has facilitado ofrece descuentos al precio no por cantidad. (Por lo que el otro plugin Discount rules for woocommerce va mejor)
Supongo que al tocar código lo recomendable será tratar con un desarrollador web que sepa programar esta funcionalidad ¿Cuál es su consejo?
Además para que la cantidad sea tipo "selección" (como en la imagen) ¿sabe de algún plugin?
Hola Daniel,
Supongo que al tocar código lo recomendable será tratar con un desarrollador web que sepa programar esta funcionalidad ¿Cuál es su consejo?
En este caso al requerir una funcionalidad específica te recomiendo contactes con nuestro directorio de colaboradores quienes puedes ayudarte a desarrollar lo que necesitas
Además para que la cantidad sea tipo "selección" (como en la imagen) ¿sabe de algún plugin?
Supongo es estos son las variaciones, puedes comprobar si algun plugin como esto te permite mostrarlo como deseas -> https://wordpress.org/plugins/woo-variation-swatches/
Un Saludo
@karen Ese plugin ya lo tengo instalado pero no me facilita la funcionalidad que yo quiero. Contactaré con los colaboradores para ver el presupuesto que me dan.
Por otro lado, ¿sabéis de alguna herramienta que me permita en la página de producto (una vez que relleno todos los atributos) llevarme un botón a un formulario con los datos de ese producto con los atributos rellenados? (adjunto captura de ejemplo)
Hola Daniel,
Entendemos la pregunta pero en este caso ya forma parte de otro tema:
Por otro lado, ¿sabéis de alguna herramienta que me permita en la página de producto (una vez que relleno todos los atributos) llevarme un botón a un formulario con los datos de ese producto con los atributos rellenados? (adjunto captura de ejemplo)
Estaremos atento en cuanto crees un nuevo tema para poder separar ambas consultas.
Un saludo 🖐️