Precios por unidad en Woocommerce WordPress

woocommerce
Si estás leyendo esto, es posible que te hayas encontrado el mismo problema que yo y nadie te haya dado una solución, ni Woocomerce, ni el soporte de tu tema.
Tienes una tienda online y quieres vender al por mayor, no quieres vender unidades sueltas. Descubres que Woocommerce tiene una opción para vender productos variables, creas los atributos que van a variar y a continuación creas las variables para estos atributos. Publicas el producto y parece que está todo bien, pero cuando te fijas, te está mostrando el precio de la variable que menos cuesta y el precio de la variable que más cuesta, cuando lo que en realidad quieres es la que muestre el mínimo precio para no espantar al cliente.

Solución:

Para solventar este problema puedes añadir este código en la página functions.php de tu plantilla.

/**
* Use WC 2.0 variable price format, now include sale price strikeout
*
* @param string $price
* @param object $product
* @return string
*/
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'From: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'From: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

if ( $price !== $saleprice ) {
$price = '' . $saleprice . ' ' . $price . '';
}

return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );

Asignar precio por unidad a Woocommerce en productos variables

Es posible que tampoco quieras indicar el mínimo precio de las variantes, si no que quieras mostrar el precio de la unidad. Pues tras horas de búsqueda de información no he encontrado ninguna solución, pero he conseguido hacer un pequeño truco que te puede servir. Primero debes copiar el código que te he indicado y después debes crear un nuevo atributo, y llamarlo “None”, por ejemplo, luego añades una nueva variante con este atributo y le indicas el precio de la unidad. Luego pones que no tienes existencias para que nadie pueda hacer una compra y listo.

variable woocommerce

La cuestión es crear una variable sin existencias y asignarle el valor de la unidad.

Como ves, es un pequeño truco que no queda demasiado profesional, pero es una solución que te puede quitar dolores de cabeza.

By | 2017-06-13T16:23:13+00:00 13 - 06 - 2017|Wordpress|0 Comments

Dejar un comentario