In WooCommerce, quando un prodotto è in sconto, solitamente sull’immagine del prodotto viene visualizzata la scritta “Sale”(Offerta).
Per modificare questa scritta, potrebbe essere interessante e più efficace impostare la visualizzazione della percentuale di sconto applicata.
Per fare questo occorre intervenire sul codice modificando il file functions.php
- Metodo 1
/** Mostra la percentuale nella singola pagina prodotto e in archivio WC 2.6.14, WP 4.7.2, PHP 5.5.9 */ add_action( 'woocommerce_before_single_product_summary', 'labdesign80_show_sale_percentage', 25 ); add_action( 'woocommerce_before_shop_loop_item_title', 'labdesign80_show_sale_percentage', 25 ); function labdesign80_show_sale_percentage() { global $product; if ( $product->is_on_sale() ) { if ( ! $product->is_type( 'variable' ) ) { $max_percentage = round( ( ( $product->regular_price - $product->sale_price ) / $product->regular_price ) * 100 ); } else { foreach ( $product->get_children() as $child_id ) : $variation = $product->get_child( $child_id ); $price = $variation->get_regular_price(); $sale = $variation->get_sale_price(); $percentage = $price != 0 && ! empty( $sale ) ? ( ( $price - $sale ) / $price * 100 ) : $max_percentage; if ( $percentage >= $highest_percentage ) : $max_percentage = $percentage; $regular_price = $product->get_variation_regular_price( 'min' ); $sale_price = $product->get_variation_sale_price( 'min' ); endif; endforeach; } echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">-' . round($max_percentage) . '%</span>', $post, $product ); } }
- Metodo 2
Modifichiamo i file cartella-del-tema/woocommerce/loop/sale-flash.php
e cartella-del-tema/woocommerce/single-product/sale-flash.php
aggiungendo il seguente codice:
<?php /** * Product loop sale flash * * @author WooThemes * @package WooCommerce/Templates * @version 1.6.4 */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } global $post, $product; ?> <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly global $post, $product; if ( ! $product->is_in_stock() ) return; $sale_price = get_post_meta( $product->id, '_price', true); $regular_price = get_post_meta( $product->id, '_regular_price', true); if (empty($regular_price)){ //then this is a variable product $available_variations = $product->get_available_variations(); $variation_id=$available_variations[0]['variation_id']; $variation= new WC_Product_Variation( $variation_id ); $regular_price = $variation ->regular_price; $sale_price = $variation ->sale_price; } $sale = ceil(( ($regular_price - $sale_price) / $regular_price ) * 100); ?> <?php if ( !empty( $regular_price ) && !empty( $sale_price ) && $regular_price > $sale_price ) : ?> <?php echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">-' . $sale . '%</span>', $post, $product ); ?> <?php endif; ?>
Potrebbe interessarti anche => Aggiungere la percentuale di sconto sopra il prezzo WooCommerce
Non eseguire modifiche ai file se non sei sicuro di quello che stai facendo. Lascia fare ad un professionista per non rischiare di compromettere il tuo sito web.
Articoli correlati
Per rimuovere rapidamente i breadcrumbs ...
L'ultimo woocommerce E' arrivata la nuov...
Quando abiliti il contrassegno come meto...
Oggi vorrei descrivere un semplice plugi...
Salve ho provato ad aggiungere la percentuale di sconto sulla immagine del prodotto ma oltre ad aggiungerla rimane sotto la scritta Offerta.