Vai al contenuto
Servizi
Prodotti
ITENHR
Home / WooCommerce: 9 personalizzazioni rapide (SKU, spedizione, badge, zoom, checkout)
WooCommerce

WooCommerce: 9 personalizzazioni rapide (SKU, spedizione, badge, zoom, checkout)

sostituire il badge in offerta con la percentuale di sconto

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

Sviluppiamo e seguiamo negozi WooCommerce, anche collegati a gestionale e magazzino. Vedi i siti eCommerce o chiedici una modifica con il percorso guidato.

Continua a leggere

Articoli correlati.

Tutti gli articoli