Woocommerce Afficher le prix de variation par défaut

J'utilise Woocommerce et des variations de produits et toutes mes variations ont une variation par défaut définie. J'aimerais savoir comment trouver la variation par défaut et afficher son prix.

C'est le code que j'ai obtenu jusqu'à présent, mais il affiche le prix de variation le moins cher, et je recherche plutôt le prix de mon produit de variation par défaut.

// Use WC 2.0 variable price format, now include sale price strikeout
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 );
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( __( 'HERE YOUR LANGUAGE: %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( __( 'HERE YOUR LANGUAGE: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ): wc_price( $prices[0] );
if ( $price!== $saleprice ) {
$price = '<del>'. $saleprice. '</del> <ins>'. $price. '</ins>';
}
return $price;

}

J'ai trouvé l'exemple de code ici Woocommerce variation product price to show default


Solution du problème

Je n'ai pas trouvé de réponse à cette question (comment afficher le prix à partir de la variation de produit par défaut au lieu de la fourchette de prix ?) J'ai donc créé le code :

add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
function custom_variation_price( $price, $product ) {
foreach($product->get_available_variations() as $pav){
$def=true;
foreach($product->get_variation_default_attributes() as $defkey=>$defval){
if($pav['attributes']['attribute_'.$defkey]!=$defval){
$def=false;
}
}
if($def){
$price = $pav['display_price'];
}
}
return woocommerce_price($price);
}

Ce plugin affiche le prix à partir de la variation par défaut, bien sûr si vous avez défini des valeurs par défaut auparavant. Testé sur la version 2.6.2 de woocommerce.

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"