Integrazioni
Nucleo riconosce alcuni plugin di terze parti e adatta il proprio comportamento a ciascuno.
In questa pagina
01Panoramica
Nucleo riconosce alcuni plugin di terze parti e adatta il proprio comportamento. Ogni integrazione controlla una costante, una classe o una funzione del plugin terzo. Nessuna integrazione esegue query per il rilevamento.
Le integrazioni WooCommerce e multilingua stanno solo nel pacchetto Pro. SEO, moduli, consenso e cache stanno nel pacchetto Free.
Edizione e licenza sono due livelli distinti. Il pacchetto decide quali file esistono. La licenza decide quali funzioni Pro sono attive.
Le classi WooCommerce e multilingua non controllano la licenza. Con il pacchetto Pro e la licenza non attiva, i blocchi woo/*, le regole asset WooCommerce e la gestione delle lingue restano attivi. Diventano non disponibili solo l'ability nucleo/doc-translate e la voce admin Kit. Una licenza scaduta su un sito già attivo non toglie queste funzioni: ferma solo gli aggiornamenti.
02Rilevamento dei plugin
Plugin rilevati dall'area admin
Cosa fa: restituisce lo stato di cinque plugin. L'area admin usa questo stato per mostrare, nascondere o spiegare le opzioni che dipendono da un plugin.
Come si usa: lo stato dei plugin alimenta il contesto di accesso alle opzioni admin. Le regole con chiave plugins passano se almeno un plugin dell'elenco è attivo. Se nessuno è attivo, l'esito è il valore di missing (hidden o explain).
Parametri: nessuno. Criteri di rilevamento:
| Chiave | Controllo |
|---|---|
woocommerce | classe WooCommerce |
polylang | costante POLYLANG_VERSION |
wpml | costante ICL_SITEPRESS_VERSION |
yoast | costante WPSEO_VERSION |
rankmath | classe RankMath |
Permessi: nessuno proprio. Le opzioni admin aggiungono la capability della voce.
Edizione: Free
Limiti noti: le opzioni admin che usano plugins sono due. Sono la lingua di nucleo-layouts (polylang, wpml, missing: explain) e l'ecommerce di nucleo-kits (woocommerce, missing: explain). Il rilevamento di Rank Math qui usa la classe RankMath. La parte SEO usa invece la costante RANK_MATH_VERSION.
Scheda Integrazioni di Nucleo AI → Impostazioni
Cosa fa: mostra una tabella con le integrazioni note, lo stato "Detected" o "Not detected" e una frase su cosa fa Nucleo.
Come si usa: admin, Nucleo AI → Impostazioni, scheda Integrazioni. I dati arrivano da nucleo/settings-get, chiave integrations. Ogni voce ha id, name, active e does.
Parametri: nessuno. Voci e criteri:
id | Controllo |
|---|---|
woocommerce, polylang, wpml, yoast, rankmath | stessi criteri di Plugin rilevati dall'area admin |
contact-form-7 | costante WPCF7_VERSION |
complianz | funzione cmplz_get_value |
cookiebot | classe Cookiebot_WP |
cookieyes | costante CKY_VERSION |
iubenda | costante IUBENDA_VERSION |
Permessi: capability manage_options per la voce admin. Ability nucleo/settings-get: manage_options, scope nucleo:admin.
Edizione: Free
Limiti noti: la tabella è solo informativa. I criteri di consenso cookie qui differiscono da quelli usati per i video: un plugin può risultare "Not detected" in tabella e agire comunque sui video, o il contrario. La descrizione di WooCommerce e dei plugin di consenso è generica: vedi le sezioni dedicate. Gravity Forms, WPForms e Fluent Forms non compaiono in tabella, anche se il blocco nc/form li supporta.
03WooCommerce
Le funzioni di questa sezione stanno nel pacchetto Pro. Fa eccezione l'impostazione cart fragments, che si salva anche nel pacchetto Free.
Caricamento e compatibilità dichiarata
Cosa fa: aggancia due hook. Su before_woocommerce_init dichiara la compatibilità con custom_order_tables (HPOS) e cart_checkout_blocks tramite FeaturesUtil::declare_compatibility(). Su nucleo/register_blocks registra i blocchi woo/*.
Come si usa: automatico. Nucleo registra l'integrazione nelle richieste admin, REST e CLI. Gli hook verificano WooCommerce quando scattano, perché WooCommerce si carica dopo Nucleo. La registrazione si può ripetere senza effetti.
Parametri: nessuno
Permessi: nessuno
Edizione: Pro (solo pacchetto Pro)
Limiti noti: senza la classe Automattic\WooCommerce\Utilities\FeaturesUtil non dichiara nulla. Senza la classe WooCommerce non registra blocchi.
Chiave di template WooCommerce
Cosa fa: riconosce le pagine WooCommerce e restituisce la chiave di template usata dalle regole asset: product, cart, checkout, account, product-archive (negozio e tassonomie prodotto).
Come si usa: automatico. Nucleo la consulta dopo 404, ricerca e home, quando WooCommerce è attivo e l'integrazione è caricata.
Parametri: nessuno
Permessi: nessuno
Edizione: Pro (solo pacchetto Pro)
Limiti noti: senza il pacchetto Pro un prodotto singolo ha la chiave product dal tipo di post. Carrello, checkout, account e archivi prodotto ricadono su page o archive.
Regole asset predefinite
Cosa fa: genera regole dequeue per gli asset di WooCommerce su tutti i template tranne product, product-archive, cart, checkout e account. Gli handle sono woocommerce-general, woocommerce-layout, woocommerce-smallscreen, wc-blocks-style, woocommerce, wc-add-to-cart, wc-order-attribution, sourcebuster-js e woocommerce-inline. Aggiunge una regola che rimuove wc-cart-fragments da tutti i template, salvo opzione keep.
Come si usa: automatico. Le regole predefinite vengono prima di quelle dell'utente. A parità di chiave vince l'ultima, quindi una regola utente sostituisce quella predefinita.
Parametri: nessuno
Permessi: nessuno
Edizione: Pro (solo pacchetto Pro)
Limiti noti: con WooCommerce inattivo non genera regole.
Pagina prodotto con layout Nucleo
Cosa fa: sulla pagina di un prodotto servita da un layout Nucleo dell'area product (o single, se vale anche per i prodotti) toglie i fogli classici woocommerce-general, woocommerce-layout e woocommerce-smallscreen, e la galleria classica: script wc-zoom, wc-flexslider, wc-photoswipe, wc-photoswipe-ui-default (anche con i nomi senza wc-), fogli photoswipe e photoswipe-default-skin, markup della lightbox nel footer. Toglie wc-single-product: woo/tabs stampa il voto delle recensioni con radio button. Se il layout usa woo/add-to-cart con il modulo di Nucleo toglie anche wc-add-to-cart-variation, wc-add-to-cart e woocommerce: senza altri plugin che li richiedono, jQuery e jquery-blockui non si caricano. Con il modulo classico delle varianti (nucleo/woo/classic_variation_form) questi tre script restano. Lo stile di quel markup sta negli style.css dei blocchi: varianti e pulsante in woo/add-to-cart, avvisi in woo/notices, recensioni e stelle in woo/tabs.
Come si usa: automatico, sulle pagine prodotto del sito pubblico: lo esegue il runtime degli asset (wp_enqueue_scripts, priorità 9999) prima delle regole asset e della riduzione CSS. Il filtro nucleo/woo/lean_product_page con false lascia tutti i file di WooCommerce.
Parametri: nessuno
Permessi: nessuno
Edizione: Pro (solo pacchetto Pro)
Limiti noti: senza layout Nucleo per la pagina prodotto non cambia nulla. wc-blocks-style resta: serve ai blocchi WooCommerce nella descrizione del prodotto. Carrello, checkout e account restano con il front end classico.
Archivio prodotti con layout Nucleo
Cosa fa: sulla pagina Shop e sugli archivi di categoria o tag di prodotto serviti da un layout Nucleo dell'area product-archive (o archive) toglie i fogli classici woocommerce-general, woocommerce-layout e woocommerce-smallscreen e gli script wc-add-to-cart e woocommerce. Senza altri plugin che lo richiedono, jQuery non si carica. Le schede dei prodotti sono di Nucleo: woo/product-grid (con addToCart usa nucleo-store) o nc/collection.
Come si usa: automatico, come la pagina prodotto: lo esegue il runtime degli asset. Il filtro nucleo/woo/lean_product_archive con false lascia tutti i file di WooCommerce.
Parametri: nessuno
Permessi: nessuno
Edizione: Pro (solo pacchetto Pro)
Limiti noti: senza layout Nucleo per l'archivio il tema stampa il loop e non cambia nulla. Senza lo script woocommerce l'avviso del negozio (demo store notice) non si chiude con un clic.
Opzione cart fragments (wooFragments)
Cosa fa: decide se wc-cart-fragments resta caricato. Con keep la regola di rimozione non si genera. Con off (predefinito) lo script si rimuove da tutte le pagine.
Come si usa: admin, Nucleo AI → Impostazioni, scheda Prestazioni, campo "WooCommerce cart fragments". Oppure nucleo/settings-set con {"performance": {"wooFragments": "keep"}}. Il valore keep si salva nell'opzione nucleo_woo_fragments. Il valore off cancella l'opzione.
Parametri:
| Nome | Tipo | Valori ammessi | Default | Note |
|---|---|---|---|---|
performance.wooFragments | string | keep, off | off | Altri valori: errore "wooFragments" must be "keep" or "off". |
Permessi: manage_options, scope nucleo:admin
Edizione: Free (l'impostazione). L'effetto richiede il pacchetto Pro.
Nel pacchetto Free il campo si salva ma non ha effetto, perché manca il codice che genera le regole.
Blocchi woo/*: regole comuni
Cosa fa: ventuno blocchi nella categoria woocommerce. Tutti supportano stile (typography, color, spacing; woo/tabs anche border), responsive e visibility. Solo woo/cart e woo/cart-empty accettano figli. Nessuno accetta binding. woo/product-grid e le sei parti woo/cart-* sono statici; gli altri sono dinamici: il compilatore scrive uno slot e il runtime lo riempie a ogni richiesta.
Come si usa: si inseriscono nel documento come gli altri blocchi. Su una pagina Carrello o Checkout con un documento Nucleo, i blocchi WooCommerce si leggono e si modificano nella copia originale _nucleo_wp_content. Le ricette sono nel topic woocommerce di catalog-get.
Parametri: vedi ogni blocco.
Permessi: quelli della modifica del documento.
Edizione: Pro (solo pacchetto Pro)
Limiti noti: i blocchi di prodotto (price, stock, add-to-cart, gallery, short-description, attributes, tabs, related, upsell) leggono il prodotto della pagina. Fuori da una pagina prodotto restituiscono una stringa vuota. Ogni blocco restituisce una stringa vuota se mancano le funzioni WooCommerce che usa.
woo/price
Cosa fa: stampa get_price_html() del prodotto in un <p>. Include prezzo scontato e intervallo delle varianti, come li formatta WooCommerce.
Come si usa: blocco woo/price nel layout prodotto.
Parametri: nessuno
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: solo su pagina prodotto.
woo/stock
Cosa fa: stampa wc_get_stock_html() del prodotto.
Come si usa: blocco woo/stock.
Parametri: nessuno
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: solo su pagina prodotto.
woo/add-to-cart
Cosa fa: per un prodotto semplice stampa un modulo POST con campo quantità (minimo 1) e pulsante add-to-cart. Il testo del pulsante viene da single_add_to_cart_text(). Per un prodotto variabile stampa il modulo di Nucleo: un select per attributo (nome attribute_<attributo>, valore predefinito del prodotto), prezzo e disponibilità della variante, quantità e campo variation_id. Le varianti attive e visibili sono nell'attributo data-variations. Lo script sceglie la variante, mostra prezzo e disponibilità e aggiunge al carrello con la Store API tramite nucleo-store, senza ricaricare la pagina. Il messaggio di esito compare in una regione aria-live e il contatore del mini-cart si aggiorna. Senza JavaScript il modulo invia un POST normale: Nucleo trova la variante dagli attributi e la passa a WooCommerce.
Come si usa: blocco woo/add-to-cart. Lo script si carica con strategia idle, quindi è già attivo al primo clic e il modulo non parte due volte. Il filtro nucleo/woo/classic_variation_form (booleano, prodotto) con true stampa il modulo di WooCommerce woocommerce_variable_add_to_cart(), per i plugin che si agganciano a quel modulo. Il modulo classico vale anche oltre la soglia woocommerce_ajax_variation_threshold (30 varianti), perché quello di Nucleo stampa tutte le varianti nel markup.
Parametri: nessuno
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: non stampa nulla per prodotti non acquistabili e per tipi diversi da simple e variable, come raggruppati o esterni. La scelta della variante non cambia l'immagine di woo/gallery: lo script emette l'evento nucleo:variation sul modulo, con la variante in detail.
woo/gallery
Cosa fa: stampa l'immagine principale (dimensione woocommerce_single) e, con almeno due immagini, una lista di miniature (woocommerce_gallery_thumbnail). Lo script cambia l'immagine principale al clic su una miniatura e con le frecce sinistra e destra.
Come si usa: blocco woo/gallery. Lo script si carica con strategia visible.
Parametri:
| Nome | Tipo | Valori ammessi | Default | Note |
|---|---|---|---|---|
priority | boolean | true, false | false | true: immagine principale con fetchpriority="high" e loading="eager". false: loading="lazy". |
lightbox | boolean | true, false | true | true: zoom al passaggio del mouse (solo con puntatore fine) e lightbox al clic sull'immagine principale. false: nessuno dei due. |
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: senza immagini non stampa nulla.
woo/short-description
Cosa fa: stampa la descrizione breve dopo il filtro woocommerce_short_description.
Come si usa: blocco woo/short-description.
Parametri: nessuno
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: se il testo è vuoto non stampa nulla.
woo/attributes
Cosa fa: stampa una lista <dl> con gli attributi visibili del prodotto. L'etichetta viene da wc_attribute_label(), il valore da get_attribute().
Come si usa: blocco woo/attributes.
Parametri: nessuno
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: gli attributi con get_visible() falso non compaiono. Senza attributi visibili non stampa nulla.
woo/tabs
Cosa fa: imposta global $product e global $post sul prodotto della pagina, legge le schede dal filtro woocommerce_product_tabs (Description, Reviews, Additional information e quelle dei plugin), le ordina per priority (default 10) ed esegue la callback di ognuna. Durante le callback la scheda Reviews usa il modello delle recensioni di WooCommerce (single-product-reviews.php, con stelle e voto), anche se il tema non dichiara il supporto a WooCommerce; un woocommerce/single-product-reviews.php del tema vince. Il voto del modulo è un gruppo di cinque radio button rating (filtro woocommerce_product_review_comment_form_args, solo durante il blocco), usabile con la tastiera e senza wc-single-product. Stampa il markup di nc/tabs con ruoli tablist, tab e tabpanel. Senza JavaScript tutti i pannelli restano visibili.
Come si usa: blocco woo/tabs. Lo script si carica con strategia idle.
Parametri: nessuno
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: salta le schede senza callback richiamabile. L'HTML delle callback, modulo recensioni incluso, passa senza filtri.
woo/related
Cosa fa: stampa le card dei prodotti correlati da wc_get_related_products(): immagine woocommerce_thumbnail, nome con link in un h3 e prezzo. Con title stampa prima un h2 di sezione su tutta la riga.
Come si usa: blocco woo/related.
Parametri:
| Nome | Tipo | Valori ammessi | Default | Note |
|---|---|---|---|---|
limit | integer | 1–8 | 4 | Fuori intervallo il valore si riporta ai limiti. Un valore non intero diventa 4. |
title | string (contenuto, traducibile) | testo | vuoto | Titolo di sezione, per esempio "Prodotti correlati". Vuoto: nessun titolo. |
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: senza correlati non stampa nulla. WooCommerce mescola i correlati a ogni richiesta; il blocco li riordina in un ordine fisso per prodotto, così la pagina resta uguale tra due caricamenti e il controllo della riduzione CSS può passare. Il blocco sceglie i correlati tra i primi 100 restituiti da WooCommerce.
woo/upsell
Cosa fa: stampa le card dei prodotti collegati come upsell (get_upsell_ids()), con lo stesso formato di woo/related.
Come si usa: blocco woo/upsell.
Parametri:
| Nome | Tipo | Valori ammessi | Default | Note |
|---|---|---|---|---|
limit | integer | 1–8 | 4 | Come woo/related. |
title | string (contenuto, traducibile) | testo | vuoto | Come woo/related. |
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: senza upsell non stampa nulla.
woo/product-grid
Cosa fa: stampa una griglia di prodotti pubblicati con immagine, nome con link in un h3 e prezzo. Con title stampa prima un h2 di sezione. Senza risultati stampa "No products". È uno dei blocchi woo/* statici: la query gira alla compilazione.
Come si usa: blocco woo/product-grid. Il blocco dichiara la dipendenza query:product: la modifica di un prodotto mette in coda la ricompilazione delle pagine che lo usano.
Parametri:
| Nome | Tipo | Valori ammessi | Default | Note |
|---|---|---|---|---|
limit | integer | 1–24 | 6 | Riportato ai limiti. |
category | string | slug di categoria prodotto | "" | Passa da sanitize_title(). Vuoto: tutte le categorie. |
orderby | string | date, title, price | date | date decrescente; title e price crescenti. |
addToCart | boolean | true, false | false | Pulsante in ogni scheda. Prodotto semplice acquistabile e disponibile: modulo di woo/add-to-cart, che aggiunge con nucleo-store senza ricaricare (lo script si carica con strategia idle); senza JavaScript il POST va alla pagina corrente. Altri tipi: link alla pagina prodotto con il testo di add_to_cart_text(). |
title | string (contenuto, traducibile) | testo | vuoto | Come woo/related. |
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: niente paginazione né filtri lato visitatore. Una sola categoria.
woo/mini-cart
Cosa fa: stampa un pulsante con contatore e un pannello vuoto. Il contatore parte dal cookie woocommerce_items_in_cart (0 senza cookie). All'apertura lo script legge il carrello dalla Store API (/wp-json/wc/store/v1/cart) e mostra articoli, totale, link a carrello e checkout. Il pulsante "Remove" chiama /remove-item. Con il cookie presente lo script aggiorna il contatore con items_count. I testi arrivano tradotti nell'attributo data-i18n. Le richieste passano dal modulo condiviso integrations/woocommerce/assets/store.js (window.NucleoStore), che lo script carica una volta per pagina. Il modulo conserva il nonce della Store API e avvisa tutti i blocchi iscritti a ogni cambio del carrello. Una risposta partita prima di una già mostrata viene scartata, per esempio una lettura superata da un clic su +: il pannello non torna a una quantità vecchia. Un errore della Store API compare nel pannello in una regione aria-live, come testo con le entità HTML decodificate, senza cancellare l'elenco. Nel negozio classico di WooCommerce il contatore arriva tra i frammenti della risposta AJAX di «Aggiungi al carrello».
Come si usa: blocco woo/mini-cart, di solito nell'header. Lo script si carica con strategia interaction.
Parametri:
| Campo | Tipo | Predefinito | Effetto |
|---|---|---|---|
content.title | stringa traducibile | vuoto | Titolo del pannello |
content.emptyText | stringa traducibile | testo tradotto di Nucleo | Testo del carrello vuoto |
settings.display | dropdown, drawer | dropdown | Con drawer il pannello è un <dialog> modale a tutta altezza sul lato destro, con sfondo oscurato, chiusura con Esc, clic sullo sfondo o pulsante. Gli articoli sono card con miniatura, variante, quantità, prezzo e Rimuovi. In fondo: soglia, coupon, subtotale, sconto (solo se c'è), totale e i pulsanti Checkout e Carrello |
settings.thumbnails | booleano | true | Miniature degli articoli |
settings.quantity | none, stepper | none | Con stepper pulsanti − e +; − a quantità 1 rimuove l'articolo |
settings.coupon | booleano | false | Campo coupon ed elenco dei coupon applicati |
settings.buttons | both, cart, checkout | both | Link mostrati in fondo al pannello |
settings.freeShippingFrom | numero ≥ 0 | 0 | Soglia nella valuta del negozio. Con un valore maggiore di 0 il pannello mostra quanto manca. Il conto segue la spedizione gratuita di WooCommerce: articoli meno sconti, con le tasse se il carrello mostra i prezzi con le tasse (woocommerce_tax_display_cart). La soglia non viene letta dai metodi di spedizione |
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: il manifesto indica un solo mini cart per pagina.
woo/notices
Cosa fa: stampa i messaggi di sessione di WooCommerce con wc_print_notices(true).
Come si usa: blocco woo/notices nei layout di carrello, checkout e account.
Parametri: nessuno
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: senza messaggi non stampa nulla.
woo/cart
Cosa fa: stampa il carrello. Con mode blocks esegue do_blocks() sul contenuto della pagina carrello di WooCommerce, se contiene il blocco woocommerce/cart. Altrimenti, o con mode classic, usa lo shortcode [woocommerce_cart]. Con mode nucleo il carrello è di Nucleo e si compone con i blocchi figli woo/cart-*. Il blocco stampa lo stato del carrello del visitatore, letto dalla Store API durante la richiesta (GET /wc/store/v1/cart), in uno script JSON. Lo script del blocco disegna le parti da quello stato e le aggiorna con nucleo-store. Gli errori della Store API compaiono in una regione aria-live. Sulla pagina carrello toglie i file del carrello classico: woocommerce-general, woocommerce-layout, woocommerce-smallscreen, select2, wc-cart, wc-country-select, wc-address-i18n, selectWoo, wc-add-to-cart, wc-checkout e woocommerce. A ogni modifica aggiorna il contatore di woo/mini-cart.
Come si usa: blocco woo/cart, unico blocco della pagina carrello. Con mode nucleo aggiungi come figli le parti che servono, nell'ordine voluto. Lo script si carica con strategia visible.
Parametri:
| Nome | Tipo | Valori ammessi | Default | Note |
|---|---|---|---|---|
mode | string | blocks, classic, nucleo | blocks | Valore non valido: blocks. Con blocks e classic i figli si ignorano. |
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: con mode nucleo il carrello richiede JavaScript, come il blocco Cart di WooCommerce. I plugin che modificano il carrello classico con hook PHP non agiscono sul carrello di Nucleo: per loro resta classic.
woo/cart-items, woo/cart-totals, woo/cart-coupon, woo/cart-shipping, woo/cart-actions, woo/cart-empty
Cosa fa: parti del carrello di Nucleo, solo dentro woo/cart con mode nucleo. Ogni parte stampa un contenitore con data-nc-cart-part e le sue opzioni in data-options; lo script di woo/cart lo riempie.
| Blocco | Contenuto |
|---|---|
woo/cart-items | Righe con miniatura, nome con link, attributi della variante, quantità con − e + (− a 1 rimuove), totale di riga, «Remove» |
woo/cart-totals | Titolo facoltativo, subtotale, sconto (se c'è), spedizione (se calcolata), tasse (se ci sono), totale |
woo/cart-coupon | Campo coupon e coupon applicati, con il pulsante per toglierli |
woo/cart-shipping | Tariffe di ogni pacco come radio button; con calculator paese e CAP per calcolarle |
woo/cart-actions | Pulsante al checkout e, con showContinue, link alla pagina Shop. HTML stampato dal server |
woo/cart-empty | Figli qualsiasi, mostrati solo a carrello vuoto. Con il carrello vuoto le altre parti si nascondono |
Come si usa: figli di woo/cart. Senza woo/cart-empty il carrello vuoto mostra solo le parti senza contenuto.
Parametri:
| Nome | Tipo | Valori ammessi | Default | Note |
|---|---|---|---|---|
woo/cart-items settings.thumbnails | boolean | true, false | true | Miniature degli articoli. |
woo/cart-totals content.title | string traducibile | testo | vuoto | Titolo h2 dei totali. |
woo/cart-shipping settings.calculator | boolean | true, false | true | Modulo paese e CAP; i paesi vengono da WC()->countries->get_shipping_countries(). |
woo/cart-actions content.checkoutText, content.continueText | string traducibile | testo | testi tradotti di Nucleo | Testi del pulsante e del link. |
woo/cart-actions settings.showContinue | boolean | true, false | true | Link «continua gli acquisti». |
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: fuori da woo/cart con mode nucleo le parti restano vuote.
woo/checkout
Cosa fa: come woo/cart, con la pagina checkout, il blocco woocommerce/checkout e lo shortcode [woocommerce_checkout].
Come si usa: blocco woo/checkout, unico blocco della pagina checkout.
Parametri:
| Nome | Tipo | Valori ammessi | Default | Note |
|---|---|---|---|---|
mode | string | blocks, classic | blocks | Valore non valido: blocks. |
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: Nucleo non riscrive il checkout: pagamenti, tasse e validazioni restano di WooCommerce e dei plugin di pagamento. Nel checkout a blocchi Nucleo governa i campi aggiuntivi (nucleo/woo-checkout-fields-set), le parti visibili (nucleo/woo-checkout-parts-set) e l'aspetto (sotto).
Aspetto di carrello e checkout a blocchi
Cosa fa: sulle pagine Carrello e Checkout che contengono il blocco woocommerce/cart o woocommerce/checkout carica il foglio integrations/woocommerce/assets/checkout.css, che porta i token del sito sui componenti di WooCommerce: font, colore del testo, pulsanti principali e «Effettua ordine» con colore primario e raggio, campi e menu con raggio e bordo, bordo di focus con il colore accento, titoli con il font dei titoli. Sulle stesse pagine toglie i fogli classici (woocommerce-general, woocommerce-layout, woocommerce-smallscreen, select2) e gli script che i blocchi non usano, tra cui selectWoo, wc-checkout e woocommerce. Senza altri script che lo chiedono, jQuery non si carica.
Come si usa: automatico. Il filtro nucleo/woo/checkout_tokens con false lo disattiva.
Parametri: nessuno
Permessi: nessuno
Edizione: Pro (solo pacchetto Pro)
Limiti noti: i selettori seguono le classi dei blocchi di WooCommerce (wc-block-components-*), che possono cambiare tra versioni. I gateway di pagamento che stampano markup proprio mantengono il loro stile.
woo/account
Cosa fa: stampa l'area cliente con lo shortcode [woocommerce_my_account].
Come si usa: blocco woo/account, unico blocco della pagina account.
Parametri: nessuno
Permessi: vedi regole comuni
Edizione: Pro (solo pacchetto Pro)
Limiti noti: nessuno rilevato.
Altri punti che dipendono da WooCommerce
Cosa fa: con WooCommerce attivo il kit ecommerce diventa disponibile (requisito woocommerce). L'audit degli asset e l'ottimizzatore CSS aggiungono campioni product, product-archive (pagina Shop prima delle categorie), cart, checkout e account.
Come si usa: automatico.
Parametri: nessuno
Permessi: quelli delle funzioni citate.
Edizione: Pro (kit, audit e ottimizzatore richiedono la licenza Pro)
Limiti noti: nessuno rilevato.
04Multilingua: Polylang e WPML
Le funzioni multilingua stanno nel pacchetto Pro.
Rilevamento e API comune
Cosa fa: espone la lingua corrente, la lingua di un post, le lingue del sito, le traduzioni di un post, l'impostazione della lingua e il collegamento di un gruppo di traduzioni. Se esistono le funzioni pll_* usa Polylang. Altrimenti usa i filtri e le azioni di WPML (wpml_current_language, wpml_post_language_details, wpml_active_languages, wpml_object_id, wpml_element_trid, wpml_set_element_language_details). Con WPML i post di un gruppo condividono il trid.
Come si usa: interno. Lo usano i layout, nucleo/doc-list (campo lingua), nucleo/doc-translate, l'export e l'import del sito, la scansione qualità e l'area admin (elenco lingue).
Parametri: nessuno. Filtri pubblici: nucleo/current_language (sostituisce la lingua corrente), nucleo/languages (lingue in admin e nella scansione), nucleo/translations (traduzioni nella scansione).
Permessi: nessuno
Edizione: Pro (solo pacchetto Pro)
Limiti noti: senza plugin multilingua tutte le funzioni restituiscono null o [], e le scritture non fanno nulla. Polylang ha la precedenza se sono presenti entrambi.
Lingua nei layout (condizione language)
Cosa fa: aggiunge la lingua corrente al contesto della richiesta. Un layout con condizioni language vale solo per quelle lingue. La mappa dei layout salva le lingue accanto a ogni voce. Due layout sono in conflitto solo se valgono nella stessa lingua.
Come si usa: condizione {"type": "language", "value": "en"} in meta.conditions.include del layout. In admin, Nucleo AI → Layout, opzione language: con Polylang o WPML assenti mostra una spiegazione (missing: explain).
Parametri: value (stringa), codice lingua.
Permessi: edit_theme_options per la pagina Layouts.
Edizione: Free nel pannello admin. L'effetto richiede il pacchetto Pro.
Limiti noti:
- La lingua corrente si cerca solo se sono presenti Polylang (
pll_current_language), WPML (ICL_SITEPRESS_VERSION) o il filtronucleo/current_language. - Senza lingua nel contesto tutti i layout valgono, anche quelli con condizione
language. - Nel pacchetto Free la lingua è sempre assente e la condizione non filtra, anche con il filtro
nucleo/current_language. - Fuori dalla richiesta, nell'ability
nucleo/layout-explain, la lingua viene dal post.
Copia del documento nelle traduzioni Polylang
Cosa fa: aggiunge la meta _nucleo_doc al filtro pll_copy_post_metas. Quando Polylang crea una traduzione, la traduzione nasce con il documento della lingua di origine. I testi si traducono poi nella copia.
Come si usa: automatico, nelle richieste admin, REST e CLI.
Parametri: nessuno
Permessi: quelli di Polylang per creare traduzioni.
Edizione: Pro (solo pacchetto Pro)
Limiti noti: il filtro si aggancia una sola volta.
Configurazione WPML (wpml-config.xml)
Cosa fa: dichiara a WPML la meta _nucleo_doc come da tradurre (action="translate"). Dichiara come testi traducibili, sotto root, i campi content (chiavi *), label, title, alt e placeholder, e gli stessi campi dei blocchi figli fino a quattro livelli di children.
Come si usa: WPML legge il file dalla cartella del plugin.
Parametri: nessuno
Permessi: quelli di WPML.
Edizione: Pro (solo pacchetto Pro)
Limiti noti: i blocchi annidati oltre il quarto livello di children non sono dichiarati.
nucleo/doc-translate
Cosa fa: copia un documento in un nuovo post dello stesso tipo, applica i testi tradotti e collega la traduzione all'originale nel plugin multilingua.
Come si usa: ability nucleo/doc-translate. I testi da tradurre si leggono con nucleo/doc-texts.
Parametri:
| Nome | Tipo | Valori ammessi | Default | Note |
|---|---|---|---|---|
postId | integer | ≥ 1 | — | Obbligatorio. Documento di origine. |
lang | string | regex ^[a-z-]{2,5}$ (case insensitive) | — | Obbligatorio. Salvato in minuscolo. |
title | string | non vuoto | titolo di origine | Lo slug deriva dal titolo. |
texts | array di {id, path, text} | path da nucleo/doc-texts | — | Obbligatorio. |
publish | boolean | false |
Permessi: edit_post sul documento di origine. Con publish: true anche publish_post. Scope nucleo:write.
Edizione: Pro. Senza licenza attiva l'ability non si registra.
Limiti noti: la copia nasce in bozza e si pubblica dopo l'applicazione dei testi. Se un testo non si applica, la copia si elimina, così un nuovo tentativo non trova una traduzione a metà. Se esiste già una traduzione nella lingua richiesta, restituisce il suo postId con existing: true e non crea una seconda copia. Errori: same_language (il documento è già in quella lingua) e unknown_language (lingua non configurata nel sito), con ok: false; invalid_input (WP_Error); not_found, create_failed e gli errori di nucleo/doc-texts-set. Se il post di origine non ha lingua, la traduzione riceve la lingua ma non viene collegata a un gruppo. Dopo una copia riuscita scatta l'azione nucleo/translation_created con $newId, $sourceId e $lang.
Lingua nell'export e nell'import del sito
Cosa fa: l'export scrive wp.lang per ogni documento e wp.translations se il gruppo ha più di un membro esportato. L'import imposta la lingua e ricollega i gruppi di traduzione.
Come si usa: automatico durante export e import.
Parametri: nessuno
Permessi: quelli di export e import.
Edizione: Pro (solo pacchetto Pro). Nel pacchetto Free i campi di lingua non si scrivono e non si applicano.
Limiti noti: la lingua accettata all'import segue la stessa regola di nucleo/doc-translate.
Controllo seo.hreflang.missing
Cosa fa: nella scansione del sito segnala le pagine pubblicate senza una traduzione in tutte le lingue del sito. Gravità warning.
Come si usa: scansione del motore qualità.
Parametri: nessuno. Filtri nucleo/languages e nucleo/translations.
Permessi: quelli della scansione.
Edizione: Free (il controllo). Senza il pacchetto Pro le lingue arrivano solo dal filtro nucleo/languages.
Limiti noti: con meno di due lingue non segnala nulla. Nucleo non stampa tag hreflang: il controllo verifica solo l'esistenza delle traduzioni.
05SEO: Yoast SEO e Rank Math
Lettura dei meta SEO
Cosa fa: restituisce title, description, source, noindex e canonical di un post.
Con Yoast (costante WPSEO_VERSION) legge da YoastSEO()->meta->for_post() se disponibile. Altrimenti usa le meta _yoast_wpseo_title e _yoast_wpseo_metadesc. noindex vale se _yoast_wpseo_meta-robots-noindex è 1. canonical viene da _yoast_wpseo_canonical.
Con Rank Math (costante RANK_MATH_VERSION) legge le meta rank_math_title, rank_math_description e rank_math_canonical_url. noindex vale se rank_math_robots contiene noindex.
Senza plugin SEO usa meta.seo.title del documento o il titolo del post, meta.seo.description, noindex se blog_public vale 0, e canonical vuoto.
Come si usa: interno. Lo usano i controlli SEO del documento (lunghezza di title tra 30 e 60 caratteri, description tra 70 e 160, noindex, canonical) e la scansione dei title duplicati. Il filtro nucleo/seo/meta modifica il risultato.
Parametri: nessuno
Permessi: nessuno
Edizione: Free
Limiti noti: Yoast ha la precedenza se sono attivi entrambi. Con Rank Math i valori sono quelli grezzi delle meta: variabili di template come %title% non vengono risolte. Con Yoast senza la sua API vale lo stesso per le meta grezze.
Disattivazione dei tag SEO di Nucleo
Cosa fa: se Yoast o Rank Math è attivo, Nucleo non stampa title, meta description, Open Graph e robots da meta.seo. Non stampa il JSON-LD e non filtra la sitemap per escludere le pagine noindex.
Come si usa: automatico.
Parametri: nessuno
Permessi: nessuno
Edizione: Free
Limiti noti: con un plugin SEO attivo meta.seo del documento è ignorato. Il registro schema.org salta per default i tipi WebPage, WebSite, Organization e BreadcrumbList. Il filtro nucleo/schema/skip_types cambia l'elenco.
Breadcrumb del plugin SEO in nc/breadcrumbs
Cosa fa: il blocco nc/breadcrumbs usa l'HTML di yoast_breadcrumb() o di rank_math_get_breadcrumbs(), se la funzione esiste e restituisce testo. Altrimenti costruisce i breadcrumb da solo.
Come si usa: automatico nel blocco.
Parametri: nessuno
Permessi: nessuno
Edizione: Free
Limiti noti: il controllo guarda la presenza delle funzioni, non il plugin SEO attivo.
06Plugin di moduli
Blocco nc/form
Cosa fa: incorpora un modulo di Contact Form 7, Gravity Forms, WPForms o Fluent Forms tramite shortcode, in uno slot dinamico. Lo shortcode è contact-form-7, gravityform (con ajax="true"), wpforms o fluentform. L'output sta in un <div class="nc-form">.
Come si usa: blocco nc/form con plugin e id del modulo creato nel plugin.
Parametri:
| Nome | Tipo | Valori ammessi | Default | Note |
|---|---|---|---|---|
plugin | string | cf7, gravity, wpforms, fluent | — | Obbligatorio |
id | string | ID del modulo | — | Obbligatorio |
Permessi: quelli della modifica del documento.
Edizione: Free
Limiti noti: lo stile del blocco imposta griglia, font ereditato, bordo e focus visibile dei campi. Con plugin sconosciuto o id vuoto non stampa nulla. Nucleo non verifica che il plugin del modulo sia attivo: senza plugin lo shortcode resta non elaborato.
Asset dei plugin di moduli solo dove servono
Cosa fa: genera regole dequeue per gli asset dei plugin di moduli su tutte le pagine, tranne quelle che contengono un blocco nc/form di quel plugin. Il blocco dichiara la dipendenza form:<plugin>.
| Plugin | Handle |
|---|---|
cf7 | contact-form-7, swv |
gravity | gform_gravityforms, gform_json |
wpforms | wpforms-full |
fluent | fluent-form-styles, fluent-form-submission |
Come si usa: automatico, prima delle regole dell'utente.
Parametri: nessuno
Permessi: nessuno
Edizione: Free
Limiti noti: un modulo inserito con shortcode fuori da nc/form non crea la dipendenza: i suoi asset vengono rimossi.
08Cache e ottimizzazione
Svuotamento delle cache di pagina
Cosa fa: dopo il salvataggio di un documento svuota la cache della sua pagina. Dopo il salvataggio di un layout (nucleo_layout) svuota tutta la cache. Chiama ogni plugin solo se è presente la sua funzione o classe: LiteSpeed Cache (azioni litespeed_purge_url e litespeed_purge_all), WP Rocket, W3 Total Cache, WP Super Cache, SiteGround, WP Fastest Cache, Breeze, plugin Cloudflare, WP Engine e Kinsta. Alla fine scatta nucleo/purge_url o nucleo/purge_all.
Come si usa: automatico al salvataggio.
Parametri: nessuno
Permessi: nessuno
Edizione: Free
Limiti noti: WP Fastest Cache non ha svuotamento totale. Breeze ha solo svuotamento totale, anche per un singolo post.
Esclusione del CSS di Nucleo da WP Rocket
Cosa fa: aggiunge il pattern <uploads>/nucleo/css/(.*).css, con il percorso della cartella di wp_upload_dir() (di solito /wp-content/uploads/nucleo/css/(.*).css), ai filtri rocket_rucss_safelist (Remove Unused CSS) e rocket_exclude_css.
Come si usa: automatico se è definita la costante WP_ROCKET_VERSION, in ogni contesto, anche nel frontend.
Parametri: nessuno
Permessi: nessuno
Edizione: Free
Limiti noti: nessuno rilevato.
Avviso di conflitto con plugin che uniscono il CSS
Cosa fa: mostra in admin un avviso "Nucleo: conflitti di cache rilevati" se un plugin unisce i file CSS. L'unione genera file diversi per pagina e annulla le varianti CSS per template di Nucleo. Ogni riga indica come risolvere: spegnere l'unione o escludere wp-content/uploads/nucleo/.
| Plugin | Condizione |
|---|---|
| Autoptimize | autoptimize/autoptimize.php attivo e autoptimize_css_aggregate = on |
| WP Rocket | wp-rocket/wp-rocket.php attivo e minify_concatenate_css non vuoto |
| LiteSpeed Cache | litespeed-cache/litespeed-cache.php attivo e litespeed.conf.optm-css_comb vero |
| W3 Total Cache | w3-total-cache/w3-total-cache.php attivo (sempre: l'impostazione è in un file) |
| Fast Velocity Minify | fast-velocity-minify/fvm.php attivo |
Come si usa: automatico, nelle notifiche dell'area admin.
Parametri: nessuno
Permessi: manage_options per vedere l'avviso.
Edizione: Free
Limiti noti: legge solo i plugin attivi del sito, non quelli attivati a livello di rete in multisite. Per W3 Total Cache e Fast Velocity Minify l'avviso compare a ogni attivazione del plugin, senza leggere l'impostazione. Il titolo dell'avviso è in italiano e non passa per le traduzioni. L'unione di file JS non è controllata.
09Campi personalizzati
Sorgenti di binding ACF, Meta Box, JetEngine
Cosa fa: i bind dei blocchi leggono campi con le sorgenti acf, metabox e jetengine. Il cambio di una meta letta da un bind metabox o acf ricompila la pagina.
Come si usa: si indica la sorgente nel bind del blocco.
Parametri: dipendono dal bind.
Permessi: quelli della modifica del documento.
Edizione: Free
Limiti noti: nessuno rilevato.
Questa pagina ti è stata utile?