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

La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

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

Le shell POSIX (sh) redirige stderr vers stdout et capture stderr et stdout dans des variables