Molte piccole modifiche a un negozio WooCommerce si fanno da un’impostazione, altre con poche righe di codice. Qui trovi quelle che ci chiedono più spesso, riunite in una pagina: per ognuna prima l’impostazione, se esiste, poi lo snippet.
Dove mettere il codice: in un plugin personalizzato o nel functions.php di un tema child, e prima su una copia del sito. Carrello e checkout a blocchi: nei negozi nuovi WooCommerce usa i blocchi Carrello e Checkout; gli snippet che agganciano il carrello o il checkout classico (indicati sotto) lì non hanno effetto.
1. Mostrare lo SKU nella scheda prodotto
WooCommerce mostra già lo SKU tra i dati sotto il pulsante di acquisto. Se non lo vedi, di solito è il tema a nasconderlo. Questo snippet lo aggiunge sotto il prezzo:
add_action( 'woocommerce_single_product_summary', function () {
global $product;
if ( $product && $product->get_sku() ) {
echo '<p class="product-sku">SKU: ' . esc_html( $product->get_sku() ) . '</p>';
}
}, 25 );
2. Mostrare lo SKU nel carrello e nel checkout
Utile quando i clienti ordinano per codice. Vale per carrello e checkout classici, anche con prodotti variabili.
add_filter( 'woocommerce_cart_item_name', function ( $name, $cart_item, $cart_item_key ) {
$product = $cart_item['data'] ?? null;
if ( $product && $product->get_sku() ) {
$name .= '<br><small class="product-sku">SKU: ' . esc_html( $product->get_sku() ) . '</small>';
}
return $name;
}, 99, 3 );
3. Nascondere il calcolatore di spedizione
Impostazione: WooCommerce › Impostazioni › Spedizione › Opzioni, togli la spunta a «Abilita il calcolatore di spedizione nella pagina del carrello».
Se vuoi tenerlo ma con meno campi (per esempio solo il paese), nascondi quelli che non servono:
add_filter( 'woocommerce_shipping_calculator_enable_state', '__return_false' );
add_filter( 'woocommerce_shipping_calculator_enable_city', '__return_false' );
add_filter( 'woocommerce_shipping_calculator_enable_postcode', '__return_false' );
4. Nascondere le spese di spedizione nel carrello
Per mostrare le spese solo al checkout, quando il cliente ha inserito l’indirizzo (carrello classico):
add_filter( 'woocommerce_cart_ready_to_calc_shipping', function ( $show ) {
return is_cart() ? false : $show;
}, 99 );
5. Togliere «Senza categoria» dal negozio
La categoria predefinita dei prodotti non si può cancellare. Puoi rinominarla, oppure nasconderla dall’elenco delle categorie nella pagina del negozio. Controlla lo slug della categoria in Prodotti › Categorie (spesso senza-categoria o uncategorized).
add_filter( 'get_terms', function ( $terms, $taxonomies, $args ) {
if ( is_admin() || ! in_array( 'product_cat', (array) $taxonomies, true ) || ! function_exists( 'is_shop' ) || ! is_shop() ) {
return $terms;
}
return array_values( array_filter( $terms, function ( $term ) {
return ! is_object( $term ) || 'senza-categoria' !== $term->slug;
} ) );
}, 10, 3 );
6. Badge con la percentuale di sconto
Al posto di «In offerta!» mostra «-20%». Per i prodotti variabili e raggruppati usa lo sconto più alto tra le varianti.
add_filter( 'woocommerce_sale_flash', function ( $html, $post, $product ) {
$products = $product->is_type( array( 'variable', 'grouped' ) )
? array_filter( array_map( 'wc_get_product', $product->get_children() ) )
: array( $product );
$percentages = array();
foreach ( $products as $item ) {
$regular = (float) $item->get_regular_price();
$sale = (float) $item->get_sale_price();
if ( $regular > 0 && $sale > 0 && $sale < $regular ) {
$percentages[] = round( 100 - $sale / $regular * 100 );
}
}
if ( ! $percentages ) {
return $html;
}
return '<span class="onsale">-' . max( $percentages ) . '%</span>';
}, 20, 3 );
7. Togliere lo zoom dalle immagini
Lo zoom al passaggio del mouse è una funzione che il tema attiva. Se dà problemi, puoi spegnerlo su tutti i prodotti:
add_action( 'after_setup_theme', function () {
remove_theme_support( 'wc-product-gallery-zoom' );
}, 100 );
Allo stesso modo wc-product-gallery-lightbox spegne l’ingrandimento a tutto schermo e wc-product-gallery-slider lo scorrimento delle immagini.
8. Togliere la scheda «Descrizione»
Se usi solo la descrizione breve, quella accanto all’immagine, puoi togliere la scheda «Descrizione» sotto il prodotto. Attenzione: il testo della descrizione completa non verrà più mostrato, quindi spostane prima le parti utili.
add_filter( 'woocommerce_product_tabs', function ( $tabs ) {
unset( $tabs['description'] );
return $tabs;
}, 98 );
9. Checkbox della privacy al checkout
Impostazioni: WooCommerce mostra già il testo dell’informativa privacy al checkout e, se imposti la pagina dei termini (WooCommerce › Impostazioni › Avanzate), la casella di accettazione dei termini. Nel checkout a blocchi le caselle si gestiscono dal blocco Checkout nell’editor.
Se nel checkout classico vuoi una casella separata e obbligatoria per la privacy:
add_action( 'woocommerce_review_order_before_submit', function () {
woocommerce_form_field( 'privacy_policy', array(
'type' => 'checkbox',
'class' => array( 'form-row privacy' ),
'required' => true,
'label' => sprintf( 'Ho letto l’<a href="%s" target="_blank">informativa privacy</a>', esc_url( get_privacy_policy_url() ) ),
) );
}, 9 );
add_action( 'woocommerce_checkout_process', function () {
if ( empty( $_POST['privacy_policy'] ) ) {
wc_add_notice( 'Per inviare l’ordine conferma di aver letto l’informativa privacy.', 'error' );
}
} );
Altre guide su WooCommerce
- Ritiro in negozio con WooCommerce
- Campi personalizzati su WooCommerce con Elementor
- Cosa deve contenere una pagina prodotto
- Metodi di pagamento per l’eCommerce
Sviluppiamo e seguiamo negozi WooCommerce, anche collegati a gestionale e magazzino. Vedi i siti eCommerce o chiedici una modifica con il percorso guidato.


