Modifier le format de prix dans les produits variables WooCommerce

Dans WooCommerce, le format des prix variables des produits peut être un peu déroutant.

Les prix les plus élevés et les plus bas sont séparés par un trait d'union comme suit :

format de tarification woocommerce

Cette façon d'afficher les prix sur des produits variables n'est pas la plus intuitive au monde.

Dans ce tutoriel nous allons voir comment la modifier pour qu'au lieu d'apparaître sous forme de fourchette de prix elle apparaisse "À partir de 35€"

Étant le résultat :

prix de woocommerce

S'abonner à mon canal :  

Pour ce faire, nous devons ajouter le code suivant dans le fichier functions.php de notre modèle.

N'oubliez pas que si vous allez apporter des modifications aux fichiers de modèle, il est conseillé d'utiliser un thème enfant et bien sûr de faire une sauvegarde de votre site Web 😉

/**
 * Change price format from range to "From:"
 *
 * @param float $price
 * @param obj $product
 * @return str
 */
function iconic_variable_price_format( $price, $product ) {
 
    $prefix = sprintf('%s: ', __('Desde', 'iconic'));
 
    $min_price_regular = $product->get_variation_regular_price( 'min', true );
    $min_price_sale    = $product->get_variation_sale_price( 'min', true );
    $max_price = $product->get_variation_price( 'max', true );
    $min_price = $product->get_variation_price( 'min', true );
 
    $price = ( $min_price_sale == $min_price_regular ) ?
        wc_price( $min_price_regular ) :
        '<del>' . wc_price( $min_price_regular ) . '</del>' . '<ins>' . wc_price( $min_price_sale ) . '</ins>';
 
    return ( $min_price == $max_price ) ?
        $price :
        sprintf('%s%s', $prefix, $price);
 
}
 
add_filter( 'woocommerce_variable_sale_price_html', 'iconic_variable_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'iconic_variable_price_format', 10, 2 );

Vous pouvez remplacer le mot "From" par un autre dans la variable $prefix = »;

J'espère qu'il vous sera utile 😉
salutations
Oscar

Laisser un commentaire