Aquí está mi sitio web de WooCommerce: sweetworldcandy.com
El problema es que, en el precio variable del producto, se muestra el valor mínimo y el valor máximo, lo que quiero es que si el producto no está a la venta, muestre el valor mínimo, si está a la venta, muestre el valor mínimo y el valor mínimo del precio de oferta agregando un barra oblicua como etiqueta de eliminación
Compartí estas tres imágenes a continuación como referencia:
Actualización 2020 (para Woocommerce 3+)
Se reemplazó la función obsoleta woocommerce_price() por wc_price() desde Woocommerce 3+:
add_filter('woocommerce_variable_sale_price_html', 'shop_variable_product_price', 10, 2); add_filter('woocommerce_variable_price_html','shop_variable_product_price', 10, 2 ); function shop_variable_product_price( $price, $product ){ $variation_min_reg_price = $product->get_variation_regular_price('min', true); $variation_min_sale_price = $product->get_variation_sale_price('min', true); if ( $product->is_on_sale() && !empty($variation_min_sale_price)){ if ( !empty($variation_min_sale_price) ) $price = '<del class="strike">' . wc_price($variation_min_reg_price) . '</del> <ins class="highlight">' . wc_price($variation_min_sale_price) . '</ins>'; } else { if(!empty($variation_min_reg_price)) $price = '<ins class="highlight">'.wc_price( $variation_min_reg_price ).'</ins>'; else $price = '<ins class="highlight">'.wc_price( $product->regular_price ).'</ins>'; } return $price; }Hilo original (antes de WooCommerce 3) : el siguiente código debería hacer lo que espera:
add_filter('woocommerce_variable_sale_price_html', 'shop_variable_product_price', 10, 2); add_filter('woocommerce_variable_price_html','shop_variable_product_price', 10, 2 ); function shop_variable_product_price( $price, $product ){ $variation_min_reg_price = $product->get_variation_regular_price('min', true); $variation_min_sale_price = $product->get_variation_sale_price('min', true); if ( $product->is_on_sale() && !empty($variation_min_sale_price)){ if ( !empty($variation_min_sale_price) ) $price = '<del class="strike">' . woocommerce_price($variation_min_reg_price) . '</del> <ins class="highlight">' . woocommerce_price($variation_min_sale_price) . '</ins>'; } else { if(!empty($variation_min_reg_price)) $price = '<ins class="highlight">'.woocommerce_price( $variation_min_reg_price ).'</ins>'; else $price = '<ins class="highlight">'.woocommerce_price( $product->regular_price ).'</ins>'; } return $price; }El código va en el archivo function.php de su tema secundario activo (o tema) o también en cualquier archivo de complemento.
Este código está probado y funciona.