Frammenti di codice WooCommerce di cui avrai bisogno come sviluppatore WordPress

[aioseo_eeat_author_tooltip]
[aioseo_eeat_reviewer_tooltip]
Frammenti di codice WooCommerce

Se crei negozi su un sito WordPress, WooCommerce ti offre una base solida, ma il vero controllo deriva dagli snippet intelligenti. Piccoli frammenti di codice personalizzato ti permettono di modellare la pagina del negozio, la pagina di pagamento e persino piccoli dettagli del comportamento del prodotto senza plugin pesanti. Puoi inserire snippet in un file php, utilizzare il file functions.php in un tema figlioo installare un plugin per snippet di codice per un flusso di lavoro più sicuro e visivo. Molti sviluppatori preferiscono Code Snippets o Code Snippets Pro perché consentono di abilitare, disabilitare ed esportare regole senza toccare i file del tema. Questo mantiene il codice sorgente ordinato e semplifica l'importazione automatica per i nuovi progetti.

Gli snippet aiutano con operazioni comuni come la modifica del titolo della pagina del negozio, l'occultamento dei breadcrumbo la modifica dei campi di pagamento per raccogliere i dati corretti. Puoi aggiungere un campo personalizzato a una variante di prodotto, modificare il testo del pulsante del carrello o impostare un importo minimo d'ordine. Puoi perfezionare le impostazioni di WooCommerce, registrare il supporto WooCommerce in un tema e abilitare lo zoom della galleria prodotti WC, il lightbox della galleria prodotti WC e lo slider della galleria prodotti WC in pochi minuti.

Inoltre, puoi aggiungere una valuta personalizzata, rinominare una scheda prodotto con maggiori informazioni o nascondere le categorie di prodotto da un widget. Che tu incolli semplici funzioni o gestisca una libreria di codice personalizzato in continua crescita, questi pratici snippet offrono funzionalità pulite e senza eccessi e, se testati correttamente, funzionano bene nella maggior parte delle build.

Contenuto

Come utilizzare questi frammenti di codice WooCommerce in modo sicuro

Come utilizzare questi frammenti di codice WooCommerce in modo sicuro
#titolo_immagine

Aggiungere snippet personalizzati a WooCommerce può cambiare completamente il funzionamento del tuo sito WordPress. Tuttavia, se incolli la riga di codice sbagliata nel file functions.php o commetti un errore in una funzione PHP, l'intero sito potrebbe bloccarsi. Ecco perché è importante seguire le procedure di sicurezza quando si lavora con codice personalizzato.

Utilizzare un tema figlio o un plugin Snippets

  • Inserisci il tuo codice personalizzato nel file functions.php del tema figlio, in modo che rimanga intatto dopo gli aggiornamenti del tema.
  • Se non vuoi modificare direttamente i file del tema, installa un plugin Code Snippets o Code Snippets Pro.
  • Questi strumenti consentono di creare, gestire ed esportare frammenti senza toccare i file del tema.
  • I plugin includono anche opzioni per l'importazione automatica, che semplificano il riutilizzo dei tuoi snippet personalizzati su diversi siti web.

Prova prima di andare in onda

  • Non incollare mai il codice direttamente su un sito attivo.
  • Testa sempre i tuoi frammenti in un ambiente di staging.
  • Questo passaggio garantisce che non vi siano conflitti con le impostazioni di WooCommerce, i campi di pagamento o altri file del tema.

Documenta il tuo codice personalizzato

  • Aggiungere commenti chiari sopra ogni funzione spiegandone la funzione.
  • Esempio: se influisce sulla pagina di pagamento, sulla pagina del negozio, sulle categorie di prodotti WooCommerce o sui campi di pagamento dell'account.
  • Un'etichettatura corretta semplifica la comprensione del codice sorgente in un secondo momento.

Mantenere i backup e il controllo delle versioni

  • Archivia i tuoi snippet al di fuori di WordPress con Git o un altro strumento di controllo delle versioni.
  • Se utilizzi un plugin di frammenti di codice, sfrutta la funzionalità di esportazione.
  • Avere un backup consente di tornare indietro rapidamente se qualcosa non funziona correttamente dopo un aggiornamento.

Gestiti correttamente, gli snippet diventano un potente strumento. Ti aiutano a personalizzare WooCommerce senza appesantire il tuo sito WordPress con plugin inutili, mantenendo tutto pulito e stabile.

Hai bisogno dell'aiuto di un esperto per la personalizzazione di WooCommerce?

Il team di sviluppo WooCommerce di Seahawk crea funzionalità personalizzate, gestisce i flussi di pagamento e crea soluzioni di codice stabili su misura per la tua attività.

Nozioni essenziali sulla configurazione del tema e dell'esperienza utente: frammenti di codice WooCommerce

Prima di addentrarci negli snippet avanzati, è utile configurare il supporto per WooCommerce e ripulire il tema per un'esperienza di acquisto più fluida. Molti sviluppatori trascurano questi aspetti di base, ma possono migliorare notevolmente l'aspetto e la percezione del negozio da parte degli utenti.

Dichiara il supporto WooCommerce nel tuo tema

Di default, non tutti i temi WordPress includono il supporto completo per WooCommerce. Aggiungerlo manualmente garantisce la corretta visualizzazione delle gallerie e dei layout dei prodotti. È possibile farlo modificando il file functions.php del tema figlio o utilizzando un plugin per snippet personalizzati.

funzione mytheme_add_woocommerce_support() { add_theme_support( 'woocommerce' ); add_theme_support( 'zoom della galleria dei prodotti wc' ); add_theme_support( 'lightbox della galleria dei prodotti wc' ); add_theme_support( 'slider della galleria dei prodotti wc' ); } add_action( 'after_setup_theme', 'mytheme_add_woocommerce_support' );

Questo frammento aggiunge il supporto di base per WooCommerce, insieme a WC Product Gallery Zoom, WC Product Gallery Lightboxe WC Product Gallery Slider. Insieme, queste funzionalità migliorano la navigazione dei prodotti nella pagina del singolo prodotto.

Rimuovi i breadcrumb di WooCommerce

I breadcrumb possono essere utili per la navigazione, ma a volte appesantiscono il design. Se il tuo tema include già i breadcrumb o preferisci un'intestazione più pulita, puoi rimuoverli da WooCommerce con questo snippet:

add_action( 'init', 'remove_wc_breadcrumbs' ); function remove_wc_breadcrumbs() { remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 ); }

Usalo con cautela, poiché alcuni negozi si affidano ai breadcrumb per il valore SEO. Se li sostituisci con un altro stile di navigazione, rimuoverli può semplificare il design.

Sostituisci il titolo della pagina del negozio

Spesso il titolo predefinito della pagina del negozio è semplicemente "Negozio". Per adattarlo meglio al tuo marchio o alle campagne stagionali, puoi sostituirlo con un testo personalizzato.

add_filter( 'woocommerce_page_title', 'shop_page_title' ); function shop_page_title( $title ) { if ( is_shop() ) { return "Le nostre collezioni"; } return $title; }

È possibile rinominare il titolo della pagina del negozio in modo che corrisponda alle categorie di prodotti, alle campagne o al linguaggio del marchio. Ad esempio, durante i saldi festivi, è possibile modificarlo in "Offerte speciali per le festività" per un maggiore coinvolgimento.

Modifiche al catalogo che migliorano la scoperta

Una volta definite le basi, il passo successivo è perfezionare il tuo catalogo WooCommerce. Questi snippet ti aiutano a controllare come prodotti e categorie appaiono sul tuo sito WordPress, rendendo più facile per i clienti trovare ciò che desiderano senza confusione o confusione.

Modifica l'ordinamento predefinito del catalogo

Per impostazione predefinita, WooCommerce ordina i prodotti in ordine alfabetico o in base al menu. Puoi modificare questa impostazione per mostrare prima gli articoli più recenti o ordinarli per prezzo. Questa piccola modifica può evidenziare i nuovi arrivi o le offerte più convenienti.

add_filter( 'woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby' ); function custom_default_catalog_orderby() { return 'date'; // Opzioni: 'date', 'price', 'title' }

In questo modo gli acquirenti potranno vedere i tuoi ultimi prodotti proprio in cima alla pagina del negozio.

Regola il numero di prodotti per pagina

Troppi prodotti per pagina possono sopraffare gli acquirenti. Troppo pochi possono frustrarli, costringendoli a cliccare all'infinito. Ecco come controllare il numero di prodotti:

add_filter( 'loop_shop_per_page', 'new_loop_shop_per_page', 20 ); function new_loop_shop_per_page( $cols ) { $cols = 12; // Adatta questo numero secondo necessità return $cols; }

Regolando questo valore si bilancia la velocità del sito con l'esperienza dell'utente.

Nascondi categorie o prodotti dagli archivi

A volte potresti non voler visualizzare determinate categorie di prodotti nella pagina del negozio. Articoli stagionali, prodotti disponibili solo all'ingrosso o categorie di prova possono essere esclusi con un rapido snippet.

add_action( 'pre_get_posts', 'remove_categories_shop' ); function remove_categories_shop( $q ) { if ( ! $q->is_main_query() || ! $q->is_post_type_archive() ) return; if ( ! is_admin() && is_shop() ) { $q->set( 'tax_query', array(array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => array( 'wholesale', 'seasonal' ), 'operator' => 'NON IN' ))); } }

In questo modo il tuo catalogo rimarrà ordinato, mostrando solo i prodotti che vuoi che i clienti vedano.

Escludi categorie dal widget Categorie prodotto

Se utilizzi il delle categorie di prodotto di WooCommerce nelle barre laterali, potresti non voler elencare. Puoi escludere una categoria in questo modo:

add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' ); function woo_product_cat_widget_args( $cat_args ) { $cat_args['exclude'] = array( 25 ); // Sostituisci 25 con l'ID della tua categoria return $cat_args; }

Questo frammento ti offre un maggiore controllo sulla scoperta dei prodotti e ti aiuta a indirizzare l'attenzione dei clienti verso le categorie più redditizie.

Miglioramenti della pagina prodotto che aumentano la conversione: frammenti di codice WooCommerce

La pagina del singolo prodotto è il luogo in cui gli acquirenti decidono se acquistare. Con pochi snippet di WooCommerce, puoi semplificare il layout, ridurre la confusione ed evidenziare i dettagli più importanti.

Rinomina o rimuovi le schede prodotto

Le schede prodotto di WooCommerce come "Descrizione" e "Informazioni aggiuntive" non sempre si adattano al tono del tuo negozio. Puoi rinominarle o rimuovere completamente quelle superflue.

add_filter( 'woocommerce_product_tabs', 'woo_rename_tab', 98 ); function woo_rename_tab( $tabs ) { $tabs['description']['title'] = 'Ulteriori informazioni'; return $tabs; }

Puoi anche rimuovere la Informazioni aggiuntive se la ritieni ridondante:

add_filter( 'woocommerce_product_tabs', 'remove_product_tabs', 98 ); function remove_product_tabs( $tabs ) { unset( $tabs['additional_information'] ); return $tabs; }

Sostituisci "Esaurito" con un testo più amichevole

L'etichetta predefinita "Esaurito" può allontanare i clienti. Un approccio più soft come "Venduto" o "Prossimamente" mantiene vivo l'interesse.

add_filter( 'woocommerce_get_availability', 'availability_filter_func' ); function availability_filter_func( $availability ) { $availability['availability'] = str_ireplace( 'Esaurito', 'Venduto', $availability['availability'] ); return $availability; }

Questa piccola modifica può migliorare l'esperienza del cliente senza dover ricorrere a plugin aggiuntivi.

Mostra "Già nel carrello" invece di "Aggiungi al carrello"

Se un acquirente ha già aggiunto un prodotto al carrello, vedere lo stesso "Aggiungi al carrello " può creare confusione. Questo snippet lo sostituisce con "Già nel carrello".

add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' ); function woo_custom_cart_button_text() { global $woocommerce; foreach( $woocommerce->cart->get_cart() as $cart_item ) { if( get_the_ID() == $cart_item['product_id'] ) { return __( 'Già nel carrello', 'woocommerce' ); } } return __( 'Aggiungi al carrello', 'woocommerce' ); }

Ciò fornisce un feedback chiaro e rende il processo di acquisto più fluido.

Semplificare i prezzi variabili dei prodotti

WooCommerce normalmente mostra intervalli di prezzo come $ 100-$ 200 per i prodotti variabili. Se preferisci mostrare solo il prezzo minimo con un'etichetta "Da", usa questo snippet:

add_filter( 'woocommerce_variable_price_html', 'variation_price_format_min', 9999, 2 ); function variation_price_format_min( $price, $product ) { $prices = $product->get_variation_prices( true ); $min_price = current( $prices['price'] ); return sprintf( __( 'Da %1$s', 'woocommerce' ), wc_price( $min_price ) ); }

In questo modo si stabiliscono aspettative più chiare e si possono ottenere più clic.

Ottimizzazione del carrello e del checkout che riduce l'attrito: frammenti di codice WooCommerce

Piccoli miglioramenti al carrello e al checkout possono aumentare rapidamente le conversioni. Questi snippet semplificano i passaggi, semplificano i moduli e mantengono l'attenzione degli acquirenti.

Reindirizzamento alla cassa dopo l'aggiunta al carrello

Utilizzabile per funnel di singoli prodotti o vendite lampo in cui la velocità è fondamentale. Aggiungilo al file functions.php del tema figlio o a un plugin per snippet.

add_filter( 'woocommerce_add_to_cart_redirect', 'seahawk_redirect_to_checkout' ); function seahawk_redirect_to_checkout( $url ) { return wc_get_checkout_url(); }

Metti l'email al primo posto al momento del pagamento

Raccogliere tempestivamente le email per i flussi di recupero e il supporto. Numeri più bassi indicano una priorità più alta.

add_filter( 'woocommerce_checkout_fields', 'seahawk_email_first' ); function seahawk_email_first( $fields ) { if ( isset( $fields['billing']['billing_email'] ) ) { $fields['billing']['billing_email']['priority'] = 4; } return $fields; }

Rendi il telefono facoltativo o obbligatorio per il mercato

Soddisfare le esigenze di conformità e supporto di ogni regione.

add_filter( 'woocommerce_billing_fields', 'seahawk_phone_requirement' ); function seahawk_phone_requirement( $address_fields ) { // Imposta su true se il tuo mercato richiede un telefono obbligatorio $address_fields['billing_phone']['required'] = false; return $address_fields; }

Riordina o riordina i campi del checkout

Mantieni i moduli brevi e logici. Ad esempio, sposta nome e cognome più in alto.

add_filter( 'woocommerce_checkout_fields', 'seahawk_reorder_fields' ); function seahawk_reorder_fields( $fields ) { if ( isset( $fields['fatturazione']['nome_fatturazione'] ) ) { $fields['fatturazione']['nome_fatturazione']['priorità'] = 6; } if ( isset( $fields['fatturazione']['cognome_fatturazione'] ) ) { $fields['fatturazione']['cognome_fatturazione']['priorità'] = 8; } return $fields; }

Aggiungi caselle di controllo personalizzate sopra i termini

Da utilizzare per il consenso o ulteriori conferme. Include la convalida.

add_action( 'woocommerce_checkout_before_terms_and_conditions', 'seahawk_checkout_checkboxes' ); function seahawk_checkout_checkboxes() { ?><p class="form-row custom-checkboxes"> <label class="woocommerce-form__label checkbox"><input type="checkbox" class="woocommerce-form__input input-checkbox" name="seahawk_consent_one"><span>Accetto di ricevere aggiornamenti sugli ordini via e-mail</span> <span class="required">*</span></label> <label class="woocommerce-form__label checkbox"><input type="checkbox" class="woocommerce-form__input input-checkbox" name="seahawk_consent_two"><span>Confermo che il mio indirizzo di spedizione è corretto</span> <span class="required">*</span></label></p>

Caratteri delle note di ordine limite

Mantieni le note leggibili per i team addetti all'evasione degli ordini.

add_filter( 'woocommerce_checkout_fields', 'seahawk_limit_order_notes' ); function seahawk_limit_order_notes( $fields ) { if ( isset( $fields['order']['order_comments'] ) ) { $fields['order']['order_comments']['maxlength'] = 180; $fields['order']['order_comments']['placeholder'] = __( 'Aggiungi brevi note di consegna. Massimo 180 caratteri.' ); } return $fields; }

Mostra un avviso di spedizione basato sul paese

Visualizza un messaggio dinamico quando viene selezionato un Paese specifico.

add_action( 'woocommerce_before_checkout_billing_form', 'seahawk_country_notice_container' ); function seahawk_country_notice_container() { echo '<div class="shipping-notice woocommerce-info" style="display:none"> Si prega di attendere dai 5 ai 10 giorni lavorativi per la consegna dopo l'elaborazione.</div> '; } add_action( 'woocommerce_after_checkout_form', 'seahawk_country_notice_script' ); function seahawk_country_notice_script() { ?><script> document.addEventListener('DOMContentLoaded', function() { var selectEl = document.querySelector('select#billing_country'); var noticeEl = document.querySelector('.shipping-notice'); var targetCountry = 'FR'; if (!selectEl || !noticeEl) return; function toggleNotice() { if (selectEl.value === targetCountry) { noticeEl.style.display = 'block'; } else { noticeEl.style.display = 'none'; } } toggleNotice(); selectEl.addEventListener('change', toggleNotice); }); </script>

Cambia il campo di messa a fuoco automatica al momento del pagamento

Per un inserimento più rapido, concentrati prima sul campo e-mail.

add_filter( 'woocommerce_checkout_fields', 'seahawk_change_autofocus' ); function seahawk_change_autofocus( $fields ) { if ( isset( $fields['fatturazione']['nome_fatturazione'] ) ) { $fields['fatturazione']['nome_fatturazione']['autofocus'] = false; } if ( isset( $fields['fatturazione']['email_fatturazione'] ) ) { $fields['fatturazione']['email_fatturazione']['autofocus'] = true; } return $fields; }

Aggiungi testo utile vicino al pulsante Effettua ordine

Da utilizzare per note sulla privacy o promemoria di consegna.

add_action( 'woocommerce_review_order_after_submit', 'seahawk_message_below_checkout_button' ); function seahawk_message_below_checkout_button() { echo '<p> <small>Effettuando questo ordine confermi che le informazioni fornite sono accurate.</small></p> '; }

Reindirizzare i casi limite e convalidare in anticipo

Mantenere puliti i segnali prima del pagamento. Esempio ⟶ richiede campi per la creazione dell'account.

add_filter( 'woocommerce_checkout_fields', 'seahawk_require_account_fields' ); function seahawk_require_account_fields( $fields ) { if ( isset( $fields['account']['account_username'] ) ) { $fields['account']['account_username']['required'] = true; } if ( isset( $fields['account']['account_password'] ) ) { $fields['account']['account_password']['required'] = true; } if ( isset( $fields['account']['account_password-2'] ) ) { $fields['account']['account_password-2']['required'] = true; } return $fields; }

Una logica di spedizione intelligente: frammenti di codice WooCommerce

Le regole di spedizione intelligenti riducono l'eccesso di scelta e rendono i costi prevedibili. Questi accorgimenti semplificano le decisioni senza nascondere opzioni utili come il ritiro in loco.

Nascondi i metodi a pagamento quando è disponibile la spedizione gratuita

Mostra la spedizione gratuita solo quando applicabile. Mantieni visibili le tariffe se la spedizione gratuita non è disponibile.

add_filter( 'woocommerce_package_rates', 'seahawk_only_free_shipping_when_available', 10, 2 ); function seahawk_only_free_shipping_when_available( $rates, $package ) { $new_rates = array(); foreach ( $rates as $rate_id => $rate ) { if ( 'free_shipping' === $rate->method_id ) { $new_rates[ $rate_id ] = $rate; break; } } if ( ! empty( $new_rates ) ) { // Mantieni il ritiro locale se esiste foreach ( $rates as $rate_id => $rate ) { if ( 'local_pickup' === $rate->method_id ) { $new_rates[ $rate_id ] = $rate; break; } } return $new_rates; } restituisci $tariffe; }

Perché questo aiuta

  • Elimina la fatica decisionale quando è prevista la spedizione gratuita.
  • Offre il ritiro in loco per gli acquirenti che lo preferiscono.
  • Riduce l'abbandono del carrello per gli ordini sensibili al prezzo.

Aggiungi un semplice messaggio di soglia per la spedizione gratuita

Se utilizzi una regola di subtotale, mostra un avviso amichevole in modo che gli acquirenti sappiano quanto sono vicini.

add_action( 'woocommerce_before_cart', 'seahawk_free_shipping_threshold_notice' ); add_action( 'woocommerce_before_checkout_form', 'seahawk_free_shipping_threshold_notice' ); function seahawk_free_shipping_threshold_notice() { $threshold = 75; // Imposta la soglia di spedizione gratuita $subtotal = WC()->cart ? WC()->cart->get_displayed_subtotal() : 0; if ( $subtotal && $subtotal < $threshold ) { $remaining = wc_price( $threshold - $subtotal ); wc_print_notice( 'Aggiungi ' . $remaining . ' altro per ottenere la spedizione gratuita.', 'notice' ); } }

Suggerimenti

  • Adatta questa soglia alle impostazioni di WooCommerce in modo che i messaggi siano sempre accurati.
  • Esegui un test con coupon e tasse per assicurarti che i calcoli riflettano la tua politica.

Controlli sui prezzi e sulla valuta: frammenti di codice WooCommerce

Prezzi chiari creano fiducia. Questi snippet supportano le valute regionali e migliorano l'aspetto dei prezzi nel tuo negozio.

Aggiungi una valuta e un simbolo personalizzati

Utile per marchi regionali o negozi di prova. Aggiungilo al file functions.php del tema figlio o a un plugin di snippet.

// Registra un codice valuta personalizzato add_filter( 'woocommerce_currencies', 'seahawk_add_currency' ); function seahawk_add_currency( $currencies ) { $currencies['ABC'] = __( 'Valuta di esempio', 'woocommerce' ); // Sostituisci ABC e il nome return $currencies; } // Aggiungi un simbolo alla tua valuta personalizzata add_filter( 'woocommerce_currency_symbol', 'seahawk_add_currency_symbol', 10, 2 ); function seahawk_add_currency_symbol( $symbol, $currency ) { if ( 'ABC' === $currency ) { $symbol = '¤'; // Sostituisci con il tuo simbolo } return $symbol; }

Dove usarlo

  • Impostazioni WooCommerce ⟶ Generale ⟶ Opzioni valuta.
  • Seleziona la tua nuova valuta dopo aver aggiunto il codice.

Elimina gli zeri inutili sui prezzi

Una visualizzazione più chiara dei prezzi ne migliora la leggibilità.

add_filter( 'woocommerce_price_trim_zeros', '__return_true' );

Cosa fa

  • Mostra 19 invece di 19.00.
  • Mantiene i decimali solo quando necessario.

Facoltativo ⟶ Controlla il formato del prezzo per locale

Invertire i separatori delle migliaia e dei decimali per mercati specifici.

add_filter( 'wc_price_args', 'seahawk_price_args_by_locale' ); function seahawk_price_args_by_locale( $args ) { // Esempio per lo stile UE if ( is_user_logged_in() && function_exists( 'get_user_locale' ) && 'fr_FR' === get_user_locale() ) { $args['separatore_decimale'] = ','; $args['separatore_mille'] = ' '; } return $args; }

Pagamenti, e-mail e gestione degli ordini: frammenti di codice WooCommerce

Migliora la comunicazione e il controllo con pochi snippet affidabili. Questi aiutano il tuo team a visualizzare gli aggiornamenti chiave, aggiungere i dati degli ordini alle email, sospendere il pagamento durante la manutenzione e bloccare gli ordini rischiosi.

Aggiungi un destinatario e-mail extra per gli ordini completati

Avviare un ciclo di supporto o contabilità quando un ordine viene completato.

add_filter( 'woocommerce_email_recipient_customer_completed_order', 'seahawk_extra_completed_order_recipient', 10, 2 ); function seahawk_extra_completed_order_recipient( $recipient, $order ) { $extra = 'ops@example.com'; // Sostituisci con il tuo indirizzo if ( $recipient && strpos( $recipient, $extra ) === false ) { $recipient .= ', ' . $extra; } return $recipient; }

Mancia

  • Per inviare una copia nascosta, collegarsi a woocommerce_email_headers e aggiungere un'intestazione Ccn.

Aggiungi metadati di ordine personalizzati alle email transazionali

Mostra un codice di tracciamento o qualsiasi campo personalizzato salvato nelle email dei clienti.

// 1) Salva un metacampo ordine personalizzato per scopi dimostrativi add_action( 'woocommerce_checkout_update_order_meta', 'seahawk_save_tracking_meta' ); function seahawk_save_tracking_meta( $order_id ) { // Sostituiscilo con la tua logica che salva un valore di tracciamento reale if ( ! metadata_exists( 'post', $order_id, '_tracking_code' ) ) { update_post_meta( $order_id, '_tracking_code', 'ABC123' ); } } // 2) Inserisci quel meta nelle email add_filter( 'woocommerce_email_order_meta_fields', 'seahawk_add_tracking_to_emails', 10, 3 ); funzione seahawk_add_tracking_to_emails( $fields, $sent_to_admin, $order ) { $tracking = $order->get_meta( '_tracking_code' ); if ( $tracking ) { $fields['tracking_code'] = array( 'label' => __( 'Codice di monitoraggio', 'woocommerce' ), 'value' => esc_html( $tracking ), ); } return $fields; }

Dove si mostra

  • Ordine di elaborazione del cliente
  • Ordine completato dal cliente
  • Amministrazione Nuovo Ordine

Nega il checkout se l'utente ha ordini in sospeso

Utile per il controllo delle frodi o per flussi di lavoro speciali. Blocca il checkout quando un indirizzo email del cliente corrispondente ha ordini in sospeso.

add_action( 'woocommerce_after_checkout_validation', 'seahawk_block_when_pending_orders', 10, 2 ); function seahawk_block_when_pending_orders( $data, $errors ) { if ( is_user_logged_in() ) { $customer_id = get_current_user_id(); $args = array( 'type' => 'shop_order', 'status' => array( 'wc-pending' ), 'limit' => 1, 'customer_id' => $customer_id, 'return' => 'ids', ); $pending = wc_get_orders( $args ); if ( ! empty( $pending ) ) { $errors->add( 'seahawk_pending_block', __( 'Hai un ordine in sospeso. Completa il pagamento o annullalo prima di effettuare un nuovo ordine.' ) ); } return; } // Checkout ospite ⟶ corrispondenza tramite email di fatturazione $email = isset( $data['billing_email'] ) ? sanitize_email( $data['billing_email'] ) : ''; if ( $email ) { $args = array( 'type' => 'shop_order', 'status' => array( 'wc-pending' ), 'limit' => 1, 'billing_email' => $email, 'return' => 'ids', ); $pending = wc_get_orders( $args ); if ( ! empty( $pending ) ) { $errors->add( 'seahawk_pending_block_guest', __( 'Hai un ordine in sospeso. Completa il pagamento o annullalo prima di effettuare un nuovo ordine.' ) ); } } }

Note

  • Adatta il messaggio in base al tuo flusso di lavoro di supporto.
  • Se necessario, valutare di consentire il pagamento in contrassegno o tramite bonifico bancario.

Abilita la modalità Vacanza o Pausa

Mantieni il catalogo visibile anche disattivando carrello e checkout. Perfetto per periodi di manutenzione o controlli delle scorte.

add_action( 'init', 'seahawk_holiday_mode' ); function seahawk_holiday_mode() { if ( ! apply_filters( 'seahawk_holiday_mode_enabled', false ) ) { return; } remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 ); remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 ); remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 ); add_action( 'woocommerce_before_main_content', 'seahawk_shop_disabled_notice', 5 ); add_action( 'woocommerce_before_cart', 'seahawk_shop_disabled_notice', 5 ); add_action( 'woocommerce_before_checkout_form', 'seahawk_shop_disabled_notice', 5 ); } function seahawk_shop_disabled_notice() { wc_print_notice( __( 'Il nostro negozio è temporaneamente non disponibile. Torna presto.' ), 'error' ); }

Come attivare/disattivare

  • Imposta il filtro su true in un breve frammento di supporto o tramite un plugin specifico del sito:
add_filter( 'seahawk_holiday_mode_enabled', '__return_true' );

Facoltativo ⟶ Modifica il nome e l'indirizzo del mittente per le e-mail

Allinea il mittente dell'email all'identità del tuo marchio.

add_filter( 'wp_mail_from_name', 'seahawk_wp_mail_from_name', 99 ); function seahawk_wp_mail_from_name( $name ) { $wc_name = get_option( 'woocommerce_email_from_name' ); return $wc_name ? html_entity_decode( $wc_name ) : $name; } add_filter( 'wp_mail_from', 'seahawk_wp_mail_from', 99 ); function seahawk_wp_mail_from( $email ) { $wc_email = get_option( 'woocommerce_email_from' ); return $wc_email ? sanitize_email( $wc_email ) : $email; }

Dove configurare

  • WooCommerce ⟶ Impostazioni ⟶ Email ⟶ Nome e indirizzo del mittente.

Account cliente e regole di accesso: frammenti di codice WooCommerce

I dati dell'account sono fondamentali per l'assistenza, la cronologia degli ordini e i contenuti riservati. Utilizza questi frammenti per controllare i campi dell'account e sbloccare funzionalità per gli acquirenti precedenti.

Rendi obbligatori i campi dell'account al momento del pagamento

Richiedi nome utente e password quando vuoi che i clienti creino un account al momento del pagamento.

add_filter( 'woocommerce_checkout_fields', 'seahawk_require_account_on_checkout' ); function seahawk_require_account_on_checkout( $fields ) { if ( isset( $fields['account']['account_username'] ) ) { $fields['account']['account_username']['required'] = true; } if ( isset( $fields['account']['account_password'] ) ) { $fields['account']['account_password']['required'] = true; } if ( isset( $fields['account']['account_password-2'] ) ) { $fields['account']['account_password-2']['required'] = true; } return $fields; }

Buono per

  • Negozi riservati ai soci.
  • Riordina il supporto e gli indirizzi salvati.
  • Onboarding post-acquisto.

Controlla se un utente ha già acquistato prodotti specifici

Utile per sbloccare i download, limitare gli acquisti ripetuti o mostrare le offerte di aggiornamento.

funzione seahawk_user_bought_any( $product_ids = array(), $user_id = 0 ) { if ( empty( $product_ids ) ) restituisce false; if ( ! $user_id && is_user_logged_in() ) { $user_id = get_current_user_id(); } if ( ! $user_id ) restituisce false; $orders = wc_get_orders( array( 'type' => 'shop_order', 'status' => array( 'wc-completed', 'wc-processing' ), 'limit' => -1, 'customer_id' => $user_id, 'return' => 'ids', ) ); if ( empty( $orders ) ) restituisce false; foreach ( $orders as $order_id ) { $order = wc_get_order( $order_id ); foreach ( $order->get_items() come $item ) { $pid = $item->get_product_id(); $vid = $item->get_variation_id(); if ( in_array( $pid, $product_ids, true ) || in_array( $vid, $product_ids, true ) ) { restituisci true; } } } restituisci false; }

Come utilizzare in un modello

// Esempio in un modello di prodotto o codice abbreviato $unlock_for = array( 21, 67 ); // ID prodotto che garantiscono l'accesso if ( seahawk_user_bought_any( $unlock_for ) ) { echo '<p> Grazie per il tuo acquisto. I tuoi contenuti bonus sono sbloccati.</p> '; } altrimenti { eco '<p> Acquista il corso per sbloccare lezioni bonus.</p> '; }

Idee

  • Mostra una scheda personalizzata solo per gli acquirenti precedenti.
  • Sostituisci Aggiungi al carrello con un link per il download.
  • Offrire upgrade scontati ai precedenti proprietari.

Disciplina di ricerca e filtro: frammenti di codice WooCommerce

Controlla cosa vedono gli acquirenti nei risultati di ricerca e nei modelli. Risultati chiari aiutano gli utenti a trovare più velocemente i prodotti giusti e mantengono nascoste le categorie private.

Nascondi una categoria dalla ricerca sul sito

Escludere dai risultati di ricerca le categorie noleggio, vendita all'ingrosso o vendita alla spina.

add_action( 'pre_get_posts', 'seahawk_hide_category_from_search' ); function seahawk_hide_category_from_search( $query ) { if ( is_admin() || ! $query->is_main_query() || ! $query->is_search() ) { return; } $tax_query = array( array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => array( 'rentals' ), ​​// Sostituisci con lo slug della tua categoria 'operator' => 'NOT IN', ), ); $query->set( 'post_type', array( 'product' ) ); $query->set( 'tax_query', $tax_query ); }

Casi d'uso

  • Nascondi solo gli articoli all'ingrosso.
  • Escludere le bozze stagionali fino al lancio.
  • Tieni i pacchetti B2B fuori dalla ricerca al dettaglio.

Controlli rapidi per categoria o tag nei modelli

Carica in modo condizionale blocchi, badge o messaggi in base alla categoria o al tag.

// In un ciclo di prodotto o in un singolo modello if ( has_term( 'sneakers', 'product_cat', get_the_ID() ) ) { echo ' <span class="badge">Edizione limitata</span> '; } if ( has_term( array( 'gift', 'bundle' ), 'product_tag', get_the_ID() ) ) { echo '<p> Spedizione in 24 ore</p> '; }

Idee

  • Mostra il badge "Pronto per un regalo" per gli articoli contrassegnati.
  • Aggiungere le tabelle delle taglie solo alle categorie di abbigliamento.
  • Esporre le note di sicurezza sui prodotti cosmetici.

Escludi categorie dal widget Categorie prodotto

Mantieni le barre laterali focalizzate su ciò che vuoi che gli utenti consultino.

add_filter( 'woocommerce_product_categories_widget_args', 'seahawk_widget_exclude_cats' ); function seahawk_widget_exclude_cats( $args ) { $args['exclude'] = array( 16, 25 ); // Sostituisci con gli ID di categoria return $args; }

Mancia

  • Trova gli ID in Prodotti ⟶ Categorie ⟶ passa il mouse sul nome per vedere l'ID nell'URL.

Aggiornamenti per la comodità dell'amministratore: frammenti di codice WooCommerce

Gestire un negozio WooCommerce significa vivere nell'interfaccia di amministrazione di WordPress. Questi snippet semplificano il tuo lavoro quotidiano, evidenziando dettagli importanti e allineando le email in uscita al tuo brand.

Aggiungi colonne personalizzate all'elenco degli ordini

Visualizza dati aggiuntivi come numeri di serie o codici di tracciamento direttamente nella vista elenco ordini.

// Aggiungi una nuova colonna add_filter( 'manage_edit-shop_order_columns', 'seahawk_edit_shop_order_columns' ); function seahawk_edit_shop_order_columns( $columns ) { $columns['serial'] = __( 'Numero di serie', 'woocommerce' ); return $columns; } // Riempi la colonna con i dati add_action( 'manage_shop_order_posts_custom_column', 'seahawk_shop_order_column_content', 10, 2 ); function seahawk_shop_order_column_content( $column, $post_id ) { if ( 'serial' === $column ) { $serial = get_post_meta( $post_id, '_order_serial_number', true ); se ( $serial ) { echo esc_html( $serial ); } altrimenti { echo '—'; } } }

Perché aiuta

  • Risparmia clic mostrando i dati in anticipo.
  • Riduce il tempo impiegato per aprire ogni ordine.

Aggiungi prodotti o SKU collegati ai tipi di post personalizzati

Se esegui configurazioni di prodotto personalizzate, puoi estendere ulteriormente le colonne.

add_filter( 'manage_edit-product_columns', 'seahawk_edit_product_columns' ); function seahawk_edit_product_columns( $columns ) { $columns['sku'] = __( 'SKU', 'woocommerce' ); return $columns; } add_action( 'manage_product_posts_custom_column', 'seahawk_product_column_content', 10, 2 ); function seahawk_product_column_content( $column, $post_id ) { if ( 'sku' === $column ) { $product = wc_get_product( $post_id ); echo $product ? $product->get_sku() : ''; } }

Caso d'uso

  • Visualizza a colpo d'occhio gli SKU dei prodotti.
  • Mantenere efficienti i gestori dei cataloghi.

Allinea il nome e l'indirizzo del mittente dell'e-mail con il marchio

Le impostazioni predefinite di WordPress possono sembrare poco professionali. Correggi il problema estraendo i valori dalle impostazioni di WooCommerce.

add_filter( 'wp_mail_from_name', 'seahawk_custom_from_name', 99 ); function seahawk_custom_from_name( $name ) { $wc_name = get_option( 'woocommerce_email_from_name' ); return $wc_name ? html_entity_decode( $wc_name ) : $name; } add_filter( 'wp_mail_from', 'seahawk_custom_from_address', 99 ); function seahawk_custom_from_address( $email ) { $wc_email = get_option( 'woocommerce_email_from' ); return $wc_email ? sanitize_email( $wc_email ) : $email; }

Dove impostare i valori

  • WooCommerce ⟶ Impostazioni ⟶ Email ⟶ Nome del mittente e Indirizzo del mittente.

Strumenti di supporto per prestazioni e layout: frammenti di codice WooCommerce

Pagine più veloci e layout chiari aumentano le conversioni. Questi snippet migliorano la visibilità del carrello sui dispositivi mobili e rendono più efficienti le ricerche sui prodotti in evidenza.

Rendi il tavolo del carrello compatibile con i dispositivi mobili

Trasforma la tabella del carrello in righe sovrapposte su schermi di piccole dimensioni. Aggiungi questo CSS al foglio di stile del tuo tema figlio o a un pannello CSS di personalizzazione.

/* Tabella del carrello WooCommerce ottimizzata per dispositivi mobili */ @media screen and (max-width: 700px) { .woocommerce table.shop_table, .woocommerce table.shop_table thead, .woocommerce table.shop_table tbody, .woocommerce table.shop_table th, .woocommerce table.shop_table td, .woocommerce table.shop_table tr { display: block; } .woocommerce table.shop_table thead tr { position: absolute; top: -9999px; left: -9999px; } .woocommerce table.shop_table tr { margin-bottom: 12px; border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden; } .woocommerce table.shop_table td { position: relative; padding-left: 50% !important; border: none; bordo inferiore: 1px solido #f1f5f9; } .woocommerce table.shop_table td:last-child { bordo inferiore: none; } .woocommerce table.shop_table td::before { posizione: assoluta; superiore: 10px; sinistra: 10px; larghezza: 45%; spazio bianco: nowrap; peso del carattere: 600; contenuto: attr(data-title); } }

Come funziona

  • Utilizza l'attributo data-title che WooCommerce aggiunge alle celle della tabella.
  • Nasconde l'intestazione e trasforma ogni riga in una scheda.
  • Migliora la leggibilità sui telefoni senza plugin.

Utilizzare un transitorio per gli ID prodotto in evidenza

Memorizzare nella cache un elenco di prodotti in evidenza riduce le query ripetute. Utilizzalo una volta e riutilizzalo in tutti i modelli.

funzione seahawk_get_featured_product_ids( $cache_key = 'seahawk_featured_ids', $ttl = ORA_IN_SECONDI ) { $ids = get_transient( $cache_key ); if ( false !== $ids ) { return $ids; } $featured_query = new WP_Query( array( 'post_type' => 'product', 'posts_per_page' => -1, 'meta_query' => array( array( 'key' => '_featured', 'value' => 'yes', 'compare' => '=', ), ), 'fields' => 'ids', 'no_found_rows' => true, ) ); $ids = $featured_query->posts; set_transient( $cache_key, $ids, $ttl ); return $ids; } // Esempio di utilizzo ⟶ crea una mini griglia add_shortcode( 'seahawk_featured_grid', function( $atts ) { $ids = seahawk_get_featured_product_ids(); if ( empty( $ids ) ) return '<p> Nessun prodotto in evidenza trovato.</p> '; $out = '<ul class="featured-grid"> '; foreach ( $ids come $pid ) { $out .= '<li> <a href="' . esc_url( get_permalink( $pid ) ) . '">' . esc_html( ottieni_il_titolo( $pid ) ) . '</a></li> '; } $out .= '</ul> '; restituisci $out; } );

Suggerimenti

  • Cancella il transitorio quando attivi lo stato in evidenza.
  • Collegarsi agli aggiornamenti del prodotto per eliminare la cache.
aggiungi_azione( 'salva_prodotto_post', funzione( $id_post ) { elimina_transiente( 'id_caratteristiche_seahawk' ); } );

Dettagli su conformità e localizzazione: frammenti di codice WooCommerce

Piccole modifiche ai moduli e alla lingua rendono il checkout più rapido e accurato per diverse regioni. Questi frammenti di codice ti aiutano a localizzare senza plugin aggiuntivi.

Rimuovere il campo Stato dove non è necessario

Alcuni Paesi non utilizzano gli stati. Nascondere il campo abbrevia il modulo e riduce la confusione.

add_filter( 'woocommerce_default_address_fields', 'seahawk_remove_state_field' ); function seahawk_remove_state_field( $fields ) { if ( isset( $fields['state'] ) ) { $fields['state']['required'] = false; $fields['state']['hidden'] = true; } return $fields; }

Mancia

  • Utilizza la logica condizionale se vuoi nasconderlo solo per paesi specifici.

Aggiungi un Paese personalizzato all'elenco

Utile per ambienti di test o regioni speciali.

add_filter( 'woocommerce_countries', 'seahawk_add_custom_country' ); function seahawk_add_custom_country( $countries ) { $countries['XX'] = __( 'Exampleland', 'woocommerce' ); // Sostituisci codice e nome return $countries; } add_filter( 'woocommerce_continents', 'seahawk_map_custom_country' ); function seahawk_map_custom_country( $continents ) { // Aggiungi il codice del tuo paese a un continente if ( isset( $continents['EU']['countries'] ) ) { $continents['EU']['countries'][] = 'XX'; } return $continents; }

Dove appare

  • Impostazioni WooCommerce ⟶ Generale ⟶ Luoghi di vendita.
  • Menu a discesa per Paese nelle pagine di pagamento e account.

Traduci rapidamente microcopie con gettext

Correggi gli errori di battitura o cambia la formulazione nel negozio senza modificare i modelli.

add_filter( 'gettext', 'seahawk_quick_translate', 10, 3 ); function seahawk_quick_translate( $translated, $original, $domain ) { // Esempio ⟶ cambia “Scegli un'opzione” in “Seleziona” if ( 'Scegli un'opzione' === $original && 'woocommerce' === $domain ) { return 'Seleziona'; } // Esempio ⟶ rinomina “Aggiungi al carrello” in “Aggiungi al carrello” if ( 'Aggiungi al carrello' === $original && 'woocommerce' === $domain ) { return 'Aggiungi al carrello'; } return $translated; }

Note

  • Corrisponde esattamente alla stringa originale.
  • Mantieni i cambiamenti coerenti con il tono del tuo marchio.

Facoltativo ⟶ Localizza i separatori di prezzo in base alle impostazioni locali

Aiuta gli utenti a leggere i prezzi in un formato familiare.

add_filter( 'wc_price_args', 'seahawk_price_format_by_locale' ); function seahawk_price_format_by_locale( $args ) { if ( function_exists( 'get_user_locale' ) && 'fr_FR' === get_user_locale() ) { $args['separatore_decimale'] = ','; $args['separatore_mille'] = ' '; } return $args; }

Test

  • Totale carrello.
  • Buoni sconto e tasse.
  • Ordina email.

Considerazioni finali

Ora hai a disposizione una libreria di frammenti di codice WooCommerce che coprono la visualizzazione del catalogo, il flusso di pagamento, la logica di spedizione, i prezzi, la localizzazione e la semplicità di amministrazione. Utilizzati insieme, ti offrono il controllo senza dover ricorrere a plugin pesanti e mantengono il tuo sito WordPress snello.

Prima di implementarli, tieni a mente queste ultime buone pratiche:

  • Eseguire sempre dei test in fase di staging prima di applicare gli snippet a un sito live.
  • Conserva i backup del file functions.php o dell'esportazione dei plugin snippet.
  • Aggiungi commenti a ogni frammento in modo che i futuri sviluppatori capiscano a cosa serve ciascuno di essi.
  • Esamina gli aggiornamenti di WooCommerce ⟶ Alcuni frammenti potrebbero richiedere modifiche nel tempo.

Se gestite con cura, queste piccole funzioni possono farti risparmiare decine di installazioni di plugin e rendere il tuo negozio online più veloce e facile da gestire.

Domande frequenti sui frammenti di codice WooCommerce

Qual è il modo più sicuro per aggiungere snippet WooCommerce?

Il modo più sicuro è utilizzare il file functions.php di un tema figlio o un plugin Code Snippets. Questo garantisce che il codice rimanga intatto durante gli aggiornamenti del tema e possa essere gestito senza modificare direttamente i file del tema.

Dovrei usare functions.php o un plugin snippet?

Se desideri il controllo completo, functions.php è la soluzione ideale. Per maggiore flessibilità, soprattutto sui siti dei clienti, un plugin come Code Snippets Pro è più facile da gestire e offre importazione ed esportazione automatiche.

Posso danneggiare il mio sito con uno snippet errato?

Sì. Un singolo errore PHP può causare un errore fatale. Testa sempre gli snippet su un sito di staging prima di aggiungerli a uno store live.

Gli snippet rallentano WooCommerce?

No, non se scritti correttamente. Anzi, gli snippet spesso sostituiscono i plugin, il che riduce il carico di lavoro e velocizza il tuo negozio.

Come faccio a testare gli snippet dopo averli aggiunti?

Esegui il test sia come ospite che come utente registrato. Controlla i campi del carrello, della pagina di pagamento e del checkout dell'account. Verifica che spedizione, metodo di pagamento e totali funzionino ancora correttamente.

Gestione del progetto per lo sviluppo di siti web

Gestione dei progetti per lo sviluppo di siti web: guida completa per lanci più rapidi

Che cos'è la gestione dei progetti per lo sviluppo di siti web? La gestione dei progetti per lo sviluppo di siti web è il processo

In che modo la migrazione di un sito web influisce sulla SEO e cosa si può fare al riguardo?

In che modo la migrazione di un sito web influisce sulla SEO e cosa si può fare al riguardo?

L'impatto SEO della migrazione del sito web è spesso sottovalutato. Reindirizzamenti interrotti, metadati persi ed errori di scansione possono

Come individuare e rimuovere un virus da WordPress (Guida 2026)

Come individuare e rimuovere un virus da WordPress? (Guida 2026)

Un virus di WordPress può danneggiare rapidamente il posizionamento SEO, la sicurezza del sito web, la visibilità nei risultati di ricerca e la fiducia dei clienti

Inizia con Seahawk

Registrati alla nostra app per visualizzare i nostri prezzi e ottenere sconti.