=== tk-chiedi-prezzo ===
Contributors: tecnikgeek
Author URI: https://pietrodefilippis.it
Tags: woocommerce, prezzo, richiesta, modulo, contatti
Requires at least: 5.8
Tested up to: 6.5
Requires PHP: 7.4
Stable tag: 1.5.5
License: GPLv2 or later

Sostituisce il prezzo dei prodotti WooCommerce senza prezzo con un pulsante "Chiedi prezzo" che apre un modulo di richiesta informazioni.

== Descrizione ==

Plugin gratuito sviluppato da TecnikGeek per WooCommerce. Per i prodotti senza prezzo (vuoto o uguale a 0), nasconde il classico bottone "Aggiungi al carrello" e mostra invece un pulsante "Chiedi prezzo" che apre una finestra modale con un modulo di richiesta.

= Funzionalità =

* Sostituzione automatica del prezzo per prodotti con prezzo vuoto o pari a zero
* Override per singolo prodotto (forza/disabilita)
* Modulo richiesta con: nome, email, telefono, quantità, messaggio, privacy
* Notifiche email al venditore (con dettagli prodotto e cliente)
* Archivio richieste ricevute nel pannello admin
* Configurazione testi e campi del modulo
* Design responsive (desktop e mobile)
* Tradotto in italiano

= Nessuna licenza, nessun limite =

Plugin completamente gratuito, senza piani Pro/Agency, senza limiti di prodotti o richieste. Se ti è utile, considera una piccola donazione su https://pietrodefilippis.it

== Installazione ==

1. Carica la cartella `tk-chiedi-prezzo` in `/wp-content/plugins/`
2. Attiva il plugin dal menu "Plugin" di WordPress
3. Verifica che WooCommerce sia attivo
4. Vai su "Chiedi Prezzo > Impostazioni" per configurare

== Changelog ==

= 1.5.2 =
* NUOVO: la modalita' catalogo si puo' limitare ai soli periodi di chiusura programmati ("Solo durante i periodi di chiusura"): fuori da quelle date il negozio vende normalmente. Senza la casella resta immediata come prima.

= 1.5.1 =
* Tolte le fisarmoniche dalla pagina Impostazioni: le sezioni tornano card sempre aperte come prima.

= 1.5.0 =
* NUOVO: anteprima live del banner nelle Impostazioni — si aggiorna mentre scrivi il messaggio, scegli l'icona o cambi i colori.
* NUOVO: grafica del banner personalizzabile — larghezza in % o px, allineamento, colore sfondo, colore testo, colore bordo, colore barra laterale, raggio angoli, dimensione testo e icona, con pulsante "Ripristina grafica predefinita".
* NUOVO: piu' periodi di chiusura programmabili (ferie estive, Natale, ponti...), ognuno con un messaggio dedicato facoltativo; il banner mostra le date del periodo in corso.

= 1.4.2 =
* L'emoji "sdraio" era indistinguibile dall'ombrellone nella resa di Windows/Chrome: sostituita con l'isola.

= 1.4.1 =
* FIX layout Impostazioni: le card affiancate su due colonne traboccavano fuori dal contenitore (height:100% su riga di altezza indefinita) e finivano sotto alla card successiva e al bottone "Salva impostazioni".

= 1.4.0 =
* NUOVO: l'icona del banner "negozio in pausa" si sceglie fra 18 emoji proposte (ombrellone, palma, gelato, pupazzo di neve, albero di Natale, manutenzione, lavori in corso...) oppure si carica un'immagine propria dalla libreria media.
* NUOVO: nel banner compare anche la data di INIZIO pausa ("In pausa dal 31/07/2026 al 14/08/2026"), oltre alla data di riapertura.
* Impostazioni riordinate: Testi e aspetto, Modalita' catalogo e Modalita' vacanza ora sono blocchi consecutivi.

= 1.3.1 =
* La modalita' catalogo ha la precedenza sulla modalita' vacanza: con entrambe attive i prezzi restano visibili, resta il banner del negozio in pausa e i prodotti mostrano il pulsante di richiesta.

= 1.3.0 =
* NUOVO (PRO): modalita' catalogo — i prezzi restano visibili ma l'acquisto e' disabilitato su tutti i prodotti; al posto di "Aggiungi al carrello" compare il pulsante che apre il modulo (etichetta e titolo finestra personalizzabili, default "Chiedi info" / "Richiedi informazioni sull'acquisto").
* NUOVO: casella nel riquadro prodotto per escludere un singolo prodotto dalla modalita' catalogo (resta acquistabile).
* Il titolo della finestra di richiesta ora segue la modalita' del pulsante che l'ha aperta.
* Messaggio WhatsApp dedicato per la modalita' catalogo.

= 1.2.2 =
* FIX prodotti variabili senza nessuna variazione: veniva mostrato "Chiedi prezzo" anche se il prezzo era impostato sul prodotto padre. Ora, se il variabile non ha variazioni, vale il prezzo del padre come per un prodotto semplice

= 1.2.1 =
* FIX IMPORTANTE prodotti variabili: mostravano "Chiedi prezzo" anche quando tutte le variazioni avevano un prezzo. Il plugin leggeva il prezzo del prodotto padre, che per i variabili è solo una copia sincronizzata dei prezzi delle variazioni e resta vuota se la sincronizzazione non è mai avvenuta (import, migrazioni, prodotti creati via API). Ora vengono letti i prezzi delle variazioni: basta una variazione con prezzo perché il prodotto sia considerato "con prezzo"
* Stessa correzione per i prodotti raggruppati (il prezzo viene dedotto dai prodotti figli)
* Corretto anche il contatore "Prodotti senza prezzo" nella Panoramica, che conteggiava per errore i variabili; ora usa una query unica (molto più veloce sui cataloghi grandi)
* Aggiunta cache per-richiesta del controllo prezzo: meno query nelle pagine catalogo

= 1.2.0 =
* Il plugin diventa Free/Pro. Le funzionalità base (pulsante "Chiedi prezzo", modulo, email, archivio richieste, override per prodotto, personalizzazione testi) restano GRATUITE e senza limiti
* Funzionalità PRO: Modalità vacanza (shop in vetrina con banner e programmazione date) e pulsante "Scrivici su WhatsApp" nel modulo. Richiedono licenza attiva
* Integrato il sistema di licenze TK (client condiviso): tab Panoramica con attivazione/disattivazione licenza, confronto piani Free/Pro/Agency e durata (Annuale/Lifetime)
* Impostazioni: le card Vacanza e WhatsApp mostrano il badge PRO e sono disattivate per gli utenti Free
* Header e sidebar: pill di piano dinamica (FREE/PRO/AGENCY)
* NUOVO: al salvataggio delle impostazioni la cache del sito viene svuotata automaticamente (LiteSpeed, WP Super Cache, WP Rocket, W3TC, Cache Enabler) — così l'attivazione/disattivazione della vacanza si riflette subito sulle pagine cachate

= 1.1.13 =
* FIX larghezza campi modulo: tutti i campi (nome, email, telefono, quantità, messaggio) ora hanno la stessa larghezza. Alcuni temi WooCommerce impostavano larghezze diverse per i campi email/telefono/numero — forzata larghezza 100% uniforme

= 1.1.12 =
* UX modulo: pulsante "Scrivici su WhatsApp" spostato IN ALTO (subito sotto il prodotto) così è sempre visibile senza dover scorrere, con separatore "oppure compila il modulo"
* Restyling campi del modulo: sfondo tenue, bordi più morbidi (radius 9px), stato hover/focus curato, placeholder più leggibili
* Modale più compatta (spaziature e padding ridotti) per far entrare più contenuto senza scroll
* Fix leggibilità: label ed etichetta privacy forzate in minuscolo anche sui temi che le trasformano in maiuscolo

= 1.1.11 =
* NUOVO "Modalità vacanza (shop in vetrina)": con una casella o un periodo (data inizio/fine) sospendi gli acquisti e trasformi tutto il negozio in vetrina — ogni prodotto mostra il modulo "Chiedi prezzo". La casella attiva subito e a tempo indeterminato; le date attivano/disattivano la vacanza automaticamente (fine inclusa)
* NUOVO banner giallo "negozio in pausa" configurabile in cima alle pagine del negozio quando la vacanza è attiva, con data di riapertura se impostata
* NUOVO pulsante "Scrivici su WhatsApp" nel modulo di richiesta: il cliente apre WhatsApp con un messaggio già pronto che cita il prodotto. Numero configurabile dalle Impostazioni
* Impostazioni: nuove card "Modalità vacanza" e "Contatto WhatsApp" con indicatore di stato vacanza attiva/non attiva

= 1.1.6 =
* FIX compatibilità WooCommerce: dichiarata compatibilità HPOS (Custom Order Tables) e Blocchi Cart/Checkout tramite `FeaturesUtil::declare_compatibility` nell'hook `before_woocommerce_init`. Risolve il warning "Incompatibile con le funzionalità di WooCommerce attualmente abilitate" nella pagina Plugin

= 1.1.5 =
* Pulsante "Chiedi prezzo": rimossi `padding`, `border-radius` e `font-size` per ereditare gli stili dal bottone del tema; aggiunto `gap: 8px` e `margin: 0 10px 0 0` per spaziatura coerente con altri elementi adiacenti

= 1.1.4 =
* Rimossa emoji 💬 dal pulsante frontend "Chiedi prezzo" — ora il bottone mostra solo il testo, look più pulito e professionale

= 1.1.3 =
* FIX tasto X chiusura modale: sostituito carattere `&times;` (renderizzato male, troppo piccolo e disallineato) con SVG icon nitido e centrato
* FIX riga privacy: rimosse parentesi orfane intorno al link "leggi informativa", ora frase scorrevole "Acconsento al trattamento dei miei dati personali. Leggi l'informativa *"
* Link informativa: stile più discreto (navy con underline tenue) invece di giallo acceso
* Migliorato spacing e line-height della riga privacy

= 1.1.2 =
* FIX duplicazione bottone "Chiedi prezzo" nelle liste prodotti (loop archive): `filter_price_html` ora restituisce stringa vuota invece di un secondo bottone (l'unico bottone viene emesso da `filter_loop_add_to_cart`)
* FIX duplicazione bottone sulla pagina singola prodotto: stesso meccanismo, prezzo vuoto + bottone unico via `maybe_render_button_single`
* Aggiunta classe `tk-cp-mode` al body sulla pagina prodotto in modalità "chiedi prezzo" → CSS può nascondere bottoni custom del tema (es. tema Alma) che non vengono rimossi dal solo `remove_action` su WC core
* CSS: nasconde `.single_add_to_cart_button`, `.summary form.cart .quantity`, `.button.alt` e simili quando attivo `.tk-cp-mode`
* CSS: nasconde `.price:empty` residuo (alcuni temi mostrano spazio vuoto)

= 1.1.1 =
* Aggiunto margine di respiro tra la toolbar tab e la card della tabella sotto (rimosso `margin-top: -24px` legacy che faceva sovrapporre i due elementi)
* Pulito `.tk-cp-layout`: rimosso il riquadro card ridondante (background/border/shadow/padding) — ora è solo un grid contenitore, le card interne hanno già il loro stile

= 1.1.0 =
* RIFATTORIZZAZIONE STRUTTURALE seguendo il pattern Standard TK v1.0 di tk-chat-whatsapp e tk-tt-lister:
* CPT tk_cp_request: ora `show_ui = false` (totalmente nascosto a WordPress nativo, niente più schermata edit.php)
* 3 sottomenu separati (3 pagine PHP custom, ognuna con stessa struttura header bar + toolbar + layout 2 colonne):
  1. Richieste ricevute (slug `tk-chiedi-prezzo`)
  2. Impostazioni (slug `tk-chiedi-prezzo-impostazioni`)
  3. Panoramica (slug `tk-chiedi-prezzo-panoramica`, ULTIMA come da Standard TK v1.0)
* Tabella richieste = HTML custom dentro `.tk-card` (NON più WP_List_Table nativa rivestita)
* Funzionalità tabella: ricerca, paginazione, eliminazione singola, eliminazione bulk con conferma
* RIMOSSI gli hook `in_admin_header` / `all_admin_notices` / DOM-moving / sidebar absolute / JS allineamento (tutti causa di disallineamenti precedenti)
* Layout pagina identico a Panoramica/Impostazioni (che funzionavano correttamente)

= 1.0.8 =
* FIX sidebar disallineata in alto rispetto al contenuto: hook spostato da `in_admin_header` (fuori da #wpbody-content) a `all_admin_notices` (dentro), così header bar e sidebar sono entrambi siblings DOM dentro lo stesso container
* JS allineamento ora calcola top sidebar = altezza header bar (riferimento stabile, non dipende dai notice WC asincroni)
* Annullato `padding-top` di #wpbody-content per evitare gap tra l'header bar e il top della pagina
* Aggiunto `margin-bottom: 20px` al .wrap per dare respiro al fondo

= 1.0.7 =
* FIX layout pagina "Richieste ricevute": rimosso lo spostamento DOM del .wrap (causava spazio vuoto, tfoot duplicato in arancione, sidebar in basso, bottone "Impostazioni schermata" disallineato)
* Nuovo approccio in-place: header bar iniettato in `in_admin_header`, sidebar in `admin_footer` posizionata absolute a destra del .wrap nativo
* CSS riveste direttamente il .wrap nativo trasformandolo in card TK con bordo, ombra e padding coerenti
* Nascosto il `<tfoot>` della WP_List_Table (replicava `<thead>` causando doppia riga arancione)
* Sidebar 280px allineata al top del .wrap via JS (top calcolato dinamicamente, riallineato su resize)
* Mobile ≤782px: sidebar torna position:static sotto la tabella, edge-to-edge

= 1.0.6 =
* Category allineata a "E-Commerce" (label esatto come definito nel catalogo remoto di tk-plugins)
* Nota: tk-plugins legge le categorie dal catalogo JSON server-side (`/wp-json/tk-license/v1/catalog`), non dall'header `Category:` del plugin. Questo header è solo informativo per Pietro

= 1.0.5 =
* Reinseriti header `Category: E-commerce` e `Category Emoji: 💬` seguendo il pattern di tk-copyright-shortcode-1.2.4 (riferimento aggiornato)
* Se la card appare ancora duplicata, il valore esatto della categoria va verificato con un altro plugin TK già correttamente categorizzato in E-Commerce

= 1.0.4 =
* Rimossi gli header `Category:` e `Category Emoji:` (creavano una card duplicata in tk-plugins). La categorizzazione viene gestita automaticamente da tk-plugins come per tutti gli altri plugin TK.

= 1.0.3 =
* Categoria plugin corretta: da "WooCommerce" a "E-Commerce" (la categoria già esistente in tk-plugins per i plugin WC)

= 1.0.2 =
* Riordinato menu e tab toolbar: Richieste ricevute → Impostazioni → Panoramica (ultima, conforme Standard TK v1.0)
* Sottomenu sinistro nello stesso ordine, voce principale = Richieste ricevute (lista CPT)
* La pagina lista "Richieste prezzo" ora usa la grafica TK: header bar + toolbar tab + sidebar attorno alla tabella nativa di WordPress
* Tabella WP_List_Table rivestita: thead navy con testo bianco, righe alternate gray-50, hover ambra-light, link accent
* Search box, subsubsub, tablenav, paginazione con stile TK (border-radius 6px, bottoni navy)
* Mobile: edge-to-edge anche sulla lista CPT

= 1.0.1 =
* Struttura admin completamente riallineata allo Standard TK v1.0
* Nuovo header bar con icona, versione, sottotitolo e pill GRATUITO
* Toolbar tab con border-bottom accent, scroll orizzontale su mobile
* Nuova sidebar con card "Creato da" (logo TecnikGeek), "Informazioni" (versione/piano/PHP/WP/WC), "Offrimi un caffè"
* Link "Contattami" e "Offrimi un caffè" dinamici da endpoint TK con cache 24h
* Layout responsive ≤782px: edge-to-edge, border-radius 0, sidebar in fondo
* Form Impostazioni con input/checkbox in stile TK (focus accent ambra)
* Aggiunto auto-installer di tk-menu (notice + AJAX se non presente)
* Logo tecnikgeek-logo.png in `assets/img/`

= 1.0.0 =
* Prima release pubblica
