Conflitti dei Plugin
I conflitti tra plugin sono una delle cause più comuni di problemi con WCPOS. Quando altri plugin di WordPress interferiscono con la funzionalità di WooCommerce o WCPOS, potresti sperimentare crash, problemi di prestazioni o comportamenti inattesi.
Segni di Conflitti dei Plugin
Potresti avere un conflitto di plugin se riscontri:
- Errori fatali - "Si è verificato un errore critico su questo sito web"
- Problemi di prestazioni - Caricamento lento, timeout o carico elevato del server
- Problemi di funzionalità - Funzionalità che non funzionano come previsto
- Problemi di sincronizzazione dei dati - Prodotti, ordini o clienti che non si sincronizzano correttamente
- Problemi con il gateway di pagamento - Fallimenti al checkout o errori durante l'elaborazione dei pagamenti
Prima di Iniziare: Usa un Sito di Staging
Non risolvere mai i conflitti dei plugin sul tuo sito live. Usa sempre un ambiente di staging per evitare di interrompere le operazioni commerciali.
Cos'è un Sito di Staging?
Un sito di staging è una copia esatta del tuo sito web live dove puoi testare modifiche in sicurezza senza influenzare i tuoi clienti. La maggior parte dei moderni fornitori di hosting offre ambienti di staging come funzionalità standard.
Se il Tuo Hosting Non Offre Staging
Se il tuo fornitore di hosting non offre siti di staging, prendi in considerazione di passare a un hosting che lo fa. Questa è una funzionalità standard al giorno d'oggi e fondamentale per:
- Test sicuri di plugin/temi
- Aggiornamenti di WordPress
- Risoluzione dei problemi
- Lavoro di sviluppo
Hosting consigliati con staging:
- WP Engine
- SiteGround
- Kinsta
- Cloudways
- Molti altri
Passo 1: Controlla gli Errori Fatali
Se stai riscontrando crash o errori critici, inizia controllando i log degli errori:
- Controlla i log di WCPOS - Apri la schermata Logs in WCPOS per eventuali messaggi di errore
- Controlla i log degli errori fatali - Segui la guida alla risoluzione dei problemi degli Errori Critici per trovare messaggi di errore dettagliati
- Annota i dettagli dell'errore - Cerca nomi di plugin o percorsi di file menzionati nell'errore
Se trovi un errore fatale che menziona un plugin specifico, è probabile che sia quello il colpevole. Puoi disabilitare quel plugin e testare se il problema è risolto.
Passo 2: Il Metodo di Eliminazione dei Plugin
Se non ci sono errori fatali nei log, o vuoi identificare conflitti relativi alle prestazioni, usa questo approccio sistematico:
2.1 Crea una Linea di Base
- Accedi al tuo sito di staging
- Testa la funzionalità problematica - Annota esattamente cosa non funziona o è lento
- Registra le metriche delle prestazioni - Se si tratta di un problema di prestazioni, annota i tempi di esecuzione dai Logs
2.2 Disabilita Tutti i Plugin (Tranne Quelli Essenziali)
Mantieni attivi questi plugin:
- WooCommerce
- WCPOS
- WCPOS Pro (se lo hai)
Disabilita tutto il resto:
- Vai a
WP Admin > Plugins - Seleziona tutti gli altri plugin
- Scegli "Disattiva" dal menu a discesa delle azioni di massa
- Clicca su "Applica"
2.3 Testa il Problema
- Pulisci eventuali cache - Se usi plugin di caching, svuota tutte le cache
- Testa la funzionalità problematica - Funziona ora?
- Controlla le prestazioni - I tempi di esecuzione sono migliorati?
Se il problema è risolto: Hai un conflitto di plugin. Procedi al Passo 2.4.
Se il problema persiste: Il problema probabilmente non è un conflitto di plugin. Considera:
- Problemi delle risorse server (vedi Performance del Server)
- Conflitti del tema (vedi Passo 3)
- Problemi del core di WordPress/WooCommerce
2.4 Abilita i Plugin Uno alla Volta
Ora devi identificare quale plugin causa il conflitto:
- Abilita un plugin - Inizia con i più essenziali
- Testa la funzionalità - Controlla se il problema ritorna
- Se non ci sono problemi - Abilita il plugin successivo e testa di nuovo
- Se il problema ritorna - Hai trovato il plugin in conflitto!
Ordine di Priorità dei Plugin (abilita in questo ordine):
- Plugin di Sicurezza - Wordfence, Sucuri, ecc.
- Plugin SEO - Yoast, RankMath, ecc.
- Plugin di Prestazioni - Caching, ottimizzazione
- Gateway di Pagamento - Stripe, PayPal, ecc.
- Altre estensioni di WooCommerce
- Plugin generali di WordPress
2.5 Documenta le Tue Scoperte
Quando identifichi il plugin in conflitto:
- Annota il nome e la versione del plugin
- Documenta il problema specifico che causa
- Controlla se è disponibile una versione aggiornata
- Cerca plugin alternativi che forniscano funzionalità simili
Passo 3: Controlla i Conflitti del Tema
Sebbene i temi raramente influenzino WCPOS (dato che utilizza la propria interfaccia), a volte possono causare problemi con:
- Processi di checkout (se usi un gateway di checkout web)
- Funzionalità dell'area admin
- Risposte API
Testa con un Tema Predefinito
- Sul tuo sito di staging, passa a un tema predefinito di WordPress:
- Twenty Twenty-Four
- Twenty Twenty-Three
- Twenty Twenty-Two
- Testa la funzionalità problematica
- Se il problema è risolto - Il tuo tema ha un conflitto
I temi sono molto meno probabili per causare problemi a WCPOS rispetto ai plugin. L'interfaccia POS funziona in modo indipendente dal tuo tema. Tuttavia, i temi possono influenzare:
- Pagine di checkout di WooCommerce
- Funzionalità dell'amministrazione di WordPress
- Risposte dell'API REST
Passo 4: Risoluzione dei Conflitti dei Plugin
Una volta identificato il plugin in conflitto, hai diverse opzioni:
Opzione 1: Aggiorna il Plugin
- Controlla aggiornamenti - Il conflitto potrebbe essere risolto in una versione più recente
- Aggiorna il plugin prima sul tuo sito di staging
- Testa a fondo prima di aggiornare sul sito live
Opzione 2: Trova un Alternativa
- Ricerca plugin alternativi che offrono la stessa funzionalità
- Testa le alternative sul tuo sito di staging
- Migra le impostazioni se cambi plugin
Opzione 3: Contatta lo Sviluppatore del Plugin
- Riporta il conflitto allo sviluppatore del plugin
- Fornisci informazioni dettagliate:
- Versioni dei plugin coinvolti
- Versioni di WordPress e WooCommerce
- Messaggi di errore esatti o comportamenti
- Passaggi per riprodurre il problema
Opzione 4: Soluzione Personalizzata
Per plugin essenziali che non possono essere sostituiti:
- Contatta uno sviluppatore di WordPress per creare una soluzione personalizzata
- Considera i ganci specifici per il plugin per disabilitare la funzionalità in conflitto
- Usa logica condizionale per disabilitare il plugin sulle pagine correlate al POS
Tipi di Plugin in Conflitto Comuni
Categorie di Plugin ad Alto Rischio
Plugin di Sicurezza:
- Possono bloccare le richieste API
- Possono interferire con l'autenticazione
- Spesso hanno regole firewall aggressive
Plugin di Caching:
- Possono memorizzare nella cache le risposte API in modo inappropriato
- Possono interferire con i dati in tempo reale
- Possono causare problemi con dati obsoleti
Plugin SEO:
- Plugin pesanti possono rallentare l'area admin
- Possono aggiungere query non necessarie al database
- Possono interferire con le risposte dell'API REST
Page Builders:
- Spesso caricano script pesanti nell'area admin
- Possono entrare in conflitto con le pagine admin di WooCommerce
- Possono interferire con i processi di checkout
Plugin di Membri/Restrizione:
- Possono bloccare l'accesso API
- Possono interferire con l'autenticazione dell'utente
- Possono limitare l'accesso alle risorse necessarie
Categorie di Plugin a Rischio Inferiore
Moduli di Contatto: Di solito non interferiscono con WCPOS
Plugin per Social Media: Raramente causano conflitti
Plugin di Analisi: Generalmente sicuri a meno che non siano molto pesanti
Plugin di Contenuto di Base: Di solito compatibili
Conflitti di Plugin Noti
I plugin elencati di seguito sono noti per interferire con WCPOS. Molti problemi sono già stati risolti automaticamente nelle versioni recenti di WCPOS — l'aggiornamento all'ultima versione li risolve senza alcuna configurazione.
Il filo conduttore: WCPOS si basa sull'API REST di WooCommerce e renderizza alcuni flussi (login, pagamento, ricevute) in iframe. La correzione abituale è escludere gli endpoint/URL del POS (/wp-json/wcpos/, /wp-json/wc/v3/ e il percorso /pos/) dall'altro plugin — non disabilitarlo del tutto.
Plugin di sicurezza e di login
Questi sono la fonte più comune di conflitti, specialmente per il login dell'app desktop/mobile.
| Plugin | Sintomo | Correzione |
|---|---|---|
| Wordfence | Il firewall blocca l'API REST; il campo del codice 2FA non si renderizza nell'iframe di login; una CSP restrittiva può bloccare gli asset del POS | Inserisci nella whitelist /wp-json/wcpos/ e /wp-json/wc/v3/ nel firewall. Per la 2FA: disabilitala temporaneamente per gli utenti del POS. La CSP viene rimossa automaticamente in v1.9.0+ |
| Really Simple Security | Blocca l'accesso API / forza i reindirizzamenti | Disabilita eventuali restrizioni dell'API REST nelle impostazioni Advanced del plugin |
| WPS Hide Login | L'URL di login personalizzato interrompe l'iframe di login dell'app | Usa l'URL di login standard /wp-admin/ per l'accesso al POS |
| iThemes / Solid Security | Blocca l'API REST o attiva blocchi anti brute-force dalle chiamate del POS | Inserisci nella whitelist solo gli endpoint del POS e l'IP del server stesso — evita regole IP generalizzate |
| Sucuri | Il WAF blocca le richieste API | Inserisci nella whitelist gli endpoint dell'API REST nella dashboard di Sucuri |
| Security Optimizer | Blocca il login del POS admin ("use customize login URL") | Accedi prima a WP Admin tramite l'URL personalizzato, poi vai su /pos |
| Force Login (e plugin di autenticazione REST simili) | /wp-json/ restituisce 401/403; le app più vecchie segnalavano "Site does not seem to be a WordPress site" | Consenti l'accesso non autenticato agli endpoint del POS, oppure disabilitalo durante la connessione iniziale. Le app v1.x ora mostrano il messaggio di errore reale |
| LoginPress | Forza il login basato su email; interrompe il login multi-utente del POS | Consenti il login con nome utente, oppure disabilitalo per l'accesso al POS |
| JWT Authentication plugins | 403 su tutte le richieste dell'API POS dopo l'attivazione (il login può riuscire, tutto il resto fallisce) | Risolto automaticamente in v1.8.x+. Sulle versioni più vecchie, disattiva il plugin JWT o escludi gli endpoint del POS |
| Captcha / reCAPTCHA | Loop di login nell'app desktop (il captcha non può renderizzarsi nell'iframe) | Disabilita il captcha per l'URL di login del POS |
| Defender Pro | L'header X-Frame-Options blocca tutti gli iframe del POS (login, pagamento, ricevute) | Aggiungi un'eccezione specifica per il POS per /pos/ invece di disabilitare X-Frame-Options a livello di sito |
| Jetpack CRM Client Portal | Interrompe completamente il login del POS | Disabilita solo l'estensione Client Portal |
Plugin di prestazioni, caching e ottimizzazione
| Plugin | Sintomo | Correzione |
|---|---|---|
| WP Rocket, Autoptimize, Hummingbird, Smush | Il defer/minify del JS interrompe il checkout e Stripe Terminal | Escludi gli URL /pos/ dall'ottimizzazione del JS |
| LiteSpeed Cache | Loop di ricaricamento costante al checkout nell'app desktop; CSP restrittiva | Aggiorna WCPOS, svuota la cache, escludi le pagine del POS dal caching. CSP rimossa automaticamente in v1.9.0+ |
| Image Prioritizer | Riempie di spam l'header HTTP Link, interrompendo la scoperta dell'API REST; l'app desktop mostra "does not appear to be a WordPress site" | Disattiva il plugin |
Page builder e iniettori front-end
| Plugin | Sintomo | Correzione |
|---|---|---|
| Elementor | elementor-frontend.js interrompe la fisarmonica del checkout all'interno dell'iframe del POS — i metodi di pagamento non si espandono | Escludi le pagine del POS dal caricamento degli script di Elementor |
| Omnisend / marketing plugins | Iniettano script nell'iframe del checkout, interrompendo il layout e i pagamenti | Usa le Checkout Settings del POS per disabilitare gli script non essenziali |
| MyStickyElements / Complianz | Iniettano overlay (pulsanti fissi, banner dei cookie) nell'iframe del checkout | Configurali per escludere gli URL /pos/ |
Estensioni di WooCommerce e altri plugin
| Plugin | Sintomo | Correzione |
|---|---|---|
| WooCommerce Subscriptions | Conflitto dello script di migrazione durante l'aggiornamento v1.7→v1.8 | Disattiva Subscriptions, attiva POS Pro (lascia eseguire la migrazione), poi riabilitalo |
| WP Activity Log | Registra ogni azione del POS → gonfiore dei postmeta → "only 10 products" | Disabilitalo, oppure escludi i tipi di post del POS dalla registrazione |
Jetpack / Astra / Xero (qualsiasi cosa si agganci a save_post) | Righe meta duplicate a ogni chiamata dell'API POS (un negozio ha raggiunto 36.867 righe su un prodotto) | Risolto automaticamente in v1.8.12+ (gratuito) / v1.8.14+ (Pro) con una migrazione di pulizia — basta aggiornare |
| Stripe Tax | Incompatibile con gli ordini creati tramite API REST (il modo in cui il POS crea gli ordini) | Nessuna soluzione alternativa — incompatibile |
| Mollie | Può nascondere il metodo BACS (bonifico bancario) dal checkout del POS | Aggiorna Mollie all'ultima versione |
| CTX Feed | Errori 403 intermittenti nella pagina delle impostazioni del POS | Disattivalo per confermare; nessuna soluzione alternativa nota |
| Plugin di scanner di codici a barre di terze parti | Corrompono il JSON dell'API dell'ordine, interrompendo la creazione/visualizzazione degli ordini | Disabilitali; usa la scansione di codici a barre integrata nel POS |
| MailerLite (Signup Forms + WooCommerce) | Errore 500 durante la creazione dell'ordine POS (esaurimento della memoria) | Disattivalo per confermare, poi contatta MailerLite |
| The Courier Guy Shipping | La creazione dell'ordine POS fallisce con un errore del server | Torna a una versione precedente, oppure contatta lo sviluppatore |
| PixelYourSite / PixelMySite | Errore fatale: call to member function is_type() on bool | Disabilitalo temporaneamente |
| Google Listings & Ads | Conflitto dell'autoloader → errore critico "Class WCPOS\…\Stores not found" | Elimina tutti i plugin POS e reinstalla solo l'ultimo Pro standalone |
Il gateway Stripe Terminal dovrebbe essere abilitato solo all'interno delle Impostazioni POS, mai in WooCommerce > Settings > Payments. Abilitarlo globalmente lo fa apparire al checkout del tuo negozio pubblico e manda in crash il flusso di checkout online.
Conflitti a livello di server
| Origine | Sintomo | Correzione |
|---|---|---|
Header CSP personalizzati (.htaccess, Nginx o un plugin di sicurezza) | POS bloccato sul logo; JS/CSS bloccati | Rimossi automaticamente sulle pagine del POS in v1.9.0+. Per la CSP a livello di server, consenti cdn.jsdelivr.net in script-src/style-src, oppure aggiungi un'eccezione /pos/ |
| GoDaddy Website Firewall | Blocca /wp-json/ ("Received 'undefined'") | Consenti il percorso URL /wp-json/ nel firewall — vedi Performance del Server |
Suggerimenti per la Prevenzione
Manutenzione Regolare
- Mantieni i plugin aggiornati - Usa sempre le versioni più recenti
- Rimuovi i plugin inutilizzati - Non solo disattivarli, ma eliminali
- Testa gli aggiornamenti su staging prima di applicarli al sito live
- Monitora le prestazioni regolarmente utilizzando le metriche Performance del Server
Migliori Pratiche per la Selezione dei Plugin
- Scegli sviluppatori rinomati - Controlla le recensioni e la frequenza degli aggiornamenti
- Evita funzionalità ridondanti - Non installare più plugin che fanno la stessa cosa
- Leggi le informazioni di compatibilità - Controlla se i plugin sono testati con WooCommerce
- Inizia con un numero minimo di plugin - Aggiungi funzionalità gradualmente secondo necessità
Ottenere Aiuto
Se non riesci a risolvere il conflitto del plugin:
Per Utenti Pro
Gli utenti Pro ricevono supporto prioritario per la risoluzione dei conflitti dei plugin. Il nostro team può aiutare a identificare e risolvere i conflitti per te.
Supporto della Comunità
Quando Contatti il Supporto
Si prega di fornire:
- Elenco dei plugin attivi con versioni
- Versioni di WordPress e WooCommerce
- Descrizione dettagliata del problema
- Passaggi che hai già provato
- Messaggi di errore dai log
- Metriche delle prestazioni del server se pertinenti