2017-03-19 1 views
1

J'essaie d'ajouter le montant total de la vente sur le badge flash de vente en utilisant cet extrait ci-dessous, mais il y a quelque chose de mal, car il ne fonctionne pas. Tout conseil serait vraiment apprécié.Personnalisation de la vente de produits flash badge

// Add save amount on the sale badge. 
add_filter('woocommerce_sale_flash', 'woocommerce_custom_badge', 10, 2); 
function woocommerce_custom_badge($price, $product) { 
$saved = wc_price($product->regular_price - $product->sale_price); 
return $price . sprintf(__(' <div class="savings">Save %s</div>', 'woocommerce'), $saved); 
} 

Merci

Répondre

1

Ajouté WC 3+ compatibilité

Vous n'avez pas les bons arguments dans votre filtre ($price n'existe pas, par exemple), voir ici le code source associé pour woocommerce_sale_flash crochet de filtre pour mieux comprendre:

/* 
* The filter hook woocommerce_sale_flash is located in: 
* templates/loop/sale-flash.php and templates/single-product/sale-flash.php 
*/ 

<?php if ($product->is_on_sale()) : ?> 

<?php echo apply_filters('woocommerce_sale_flash', '<span class="onsale">' . esc_html__('Sale!', 'woocommerce') . '</span>', $post, $product); ?> 

donc votre code de travail va être quelque chose comme:

add_filter('woocommerce_sale_flash', 'woocommerce_custom_badge', 10, 3); 
function woocommerce_custom_badge($output_html, $post, $product) { 

    // Added compatibility with WC +3 
    $regular_price = method_exists($product, 'get_regular_price') ? $product->get_regular_price() : $product->regular_price; 
    $sale_price = method_exists($product, 'get_sale_price') ? $product->get_sale_price() : $product->sale_price; 

    $saved_price = wc_price($regular_price - $sale_price); 
    $output_html = '<span class="onsale">' . esc_html__('Save', 'woocommerce') . ' ' . $saved_price . '</span>'; 

    return $output_html; 
} 

Le code va dans le fichier function.php de votre thème enfant actif (ou le thème) ou encore dans un fichier de plug-in.

Ce code a été testé et fonctionne.

+0

Excellent! Semble fonctionner correctement. Merci LoicTheAztec :) – user7734269