=== Willy Push – Notifiche Push per il tuo sito ===
Contributors: willypush
Tags: push notifications, web push, marketing, segmentation, woocommerce
Requires at least: 5.0
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 2.8.5
License: GPL-2.0-or-later

Attiva le notifiche push web sul tuo sito WordPress. Segmentazione per pagine, ruoli e contenuti. Integrazione WooCommerce (push ed eventi per dati di negozio). Trigger dal sito con embed-trigger.js.

== Description ==

Willy Push aggiunge notifiche push web al tuo sito WordPress senza codice. Plugin italiano con dashboard, segmentazione, API REST e sicurezza E2EE.

= Funzionalità principali =

* **Selezione pagine** – Scegli su quali pagine mostrare il prompt push (tutte, whitelist, blacklist)
* **Filtro per post type** – Limita a post, pagine, prodotti o custom post type
* **Tag automatici per ruolo** – Etichetta automaticamente subscriber, customer, editor, guest
* **Tag per tipo contenuto** – Segmenta chi visita il blog vs chi visita i prodotti
* **Tag per categoria** – Invia push mirate a chi ha visitato specifiche categorie
* **Tag personalizzati** – Aggiungi tag fissi per distinguere multi-sito
* **Ritardo prompt** – Mostra il prompt dopo N secondi (meno invasivo)
* **WooCommerce** – Push su ordine/prodotto/cliente; segnali carrello e acquisto per segmentazione in Area Cliente (le campagne le configuri nel pannello)
* **Pannello admin** – Impostazioni: Generale, Visibilità, Segmenti (tag + **regole segmenti API per URL**), Avanzate; pagina **Automazioni** (trigger sito + WooCommerce) con salvataggio dedicato
* **Anteprima script** – Tab Avanzate: esempio di markup iniettato

= WooCommerce =

Se WooCommerce è attivo, appare una tab dedicata con:
* Push dopo ordine completato, prodotto visto, cliente di ritorno (ove configurati)
* Segnali carrello/checkout e acquisto (tag tipo wooCart / wooPurchase) usabili in segmenti e campagne in Area Cliente — non una campagna di recupero carrello già pronta nel solo plugin
* Dati prodotto ove previsti dai flussi (es. pagina prodotto)

== Installation ==

1. Scarica il file ZIP del plugin
2. In WordPress vai su Plugin → Aggiungi nuovo → Carica plugin
3. Seleziona il file .zip e clicca "Installa ora"
4. Attiva il plugin
5. Vai su Willy Push nel menu laterale
6. Inserisci App ID e App Key dall'area cliente Willy Push
7. Fatto! Il plugin include già il Service Worker, nessun caricamento manuale richiesto.

== Service Worker incluso ==

Il plugin include già il Service Worker nella cartella assets/. Non serve caricare nulla manualmente.
Se usi lo script su un sito NON WordPress, scarica push-test-cifrato.zip da https://willypush.it/download-push-test-cifrato.php e carica la cartella nella root del sito.

== Frequently Asked Questions ==

= Serve codice? =
No. Il plugin inietta automaticamente lo script nelle pagine del tuo sito.

= Funziona con WooCommerce? =
Sì, con tab dedicata: push legate al negozio e segnali per segmentazione; le campagne mirate si creano in Area Cliente usando i dati disponibili.

= Posso scegliere su quali pagine mostrare il prompt? =
Sì. Puoi usare whitelist (solo certe pagine), blacklist (tutte tranne), o filtrare per post type.

= Come funziona la segmentazione? =
Il plugin aggiunge tag automatici agli utenti (ruolo, tipo contenuto, categoria). Dalla dashboard Willy Push puoi creare segmenti e inviare push mirate.

== Changelog ==

= 2.8.5 =
* Footer sito: link automatici Attiva / Disattiva / Preferenze notifiche (tab Generale, attivo di default).
* Pagina preferenze opzionale collegata anche al popup consenso.

= 2.8.4 =
* Popup iscrizione: usa il nuovo template consenso di embed-e2ee-basic.js (come Area Cliente / Script pronti), al posto del vecchio banner HTML.
* Logo sito e privacy policy WordPress passati automaticamente al popup.

= 2.8.3 =
* Aggiunto updater custom WordPress: controllo manifest remoto `willy-push-wordpress.json` con integrazione filtri `pre_set_site_transient_update_plugins` e `plugins_api`.
* Aggiunta sezione admin “Aggiornamenti plugin” con pulsante “Controlla aggiornamenti Willy Push”.
* Compatibilità aggiornamento diretto da pagina Plugin WordPress (package ZIP ufficiale su willypush.it).

= 2.8.2 =
* Sicurezza/admin: campo App Key mascherato con toggle Mostra/Nascondi in tab Generale.
* Trigger frontend: i trigger dal sito e lo shortcode `[willy_push_trigger]` ignorano template marcati come solo backend (`allow_frontend_trigger=0`), evitando richieste non compatibili.
* Audit compatibilita API/plugin senza modificare la logica base di installazione WordPress.

= 2.8.1 =
* Tab Segmenti — regole URL: layout **mobile** a card verticali (≤782px), label sopra i campi, anteprima più leggibile, touch target migliori

= 2.7.9 =
* WooCommerce Fase 2a: carrello abbandonato (cliente loggato) — `woo_abn:` + enqueue, meta ordine, cancel job su acquisto; tab Automazioni con ID regola e inattività

= 2.7.8 =
* Tab Trigger: copy con WillyPush.it + bottone «Apri Automazioni su WillyPush.it» (link area Automazioni)

= 2.7.7 =
* Tab Trigger: box intro riscritto (solo configurazione trigger sul sito; Automazioni e Storico invii nel pannello)

= 2.7.6 =
* Tab Trigger: box chiaro plugin vs pannello Automazioni (quando sul sito / cosa fare in Willy Push) + promemoria in ogni card trigger

= 2.7.5 =
* Intestazione admin: wordmark `logobasechiaro.png` al posto di icona + testo «Willy Push» duplicato

= 2.7.4 =
* Grammatica prodotto **COSA · QUANDO · COME** nella pagina Automazioni (tab Trigger): sottotitolo strutturato, intro, passo 3 «Come sul sito», pill «COME sul sito», hero pagina; allineamento ad Area Cliente e doc `docs/GRAMMATICA-COSA-QUANDO-COME.md` nel sito

= 2.7.3 =
* Tab **Trigger dal sito**: box in evidenza «Prima cosa da fare» (sincronizza template + link Area Cliente / Template), micro-step 1–4 nel flusso naturale (sync → messaggio → quando → dove), copy semplificato e riepilogo con la frase guida su template / quando / dove

= 2.7.1 =
* Pagina Automazioni: rifinitura CSS header editor trigger (padding card, allineamento titolo/pulsanti, gap Duplica/Elimina)
* Allineamento versione `readme.txt` (Stable tag) all’header del plugin — utile per aggiornamenti e cache asset `?ver=`

= 2.7.0 =
* Pagina **Automazioni** (sottomenu): trigger sito + WooCommerce, salvataggio via `admin-post` separato da Impostazioni; fix parse partial PHP (`?>` prima dell’HTML); UI premium e `assets/automations-admin.js`

= 2.6.19 =
* Trigger: sanitize accetta lista o oggetto singolo nel JSON, usa `wp_array_is_list`, fallback su POST se il valore passato al callback non coincide; debug admin compattato senza aggiornamento continuo

= 2.6.18 =
* Trigger: fix salvataggio quando WordPress passa la lista trigger come array (non stringa JSON) — evita `unexpected_preserve` e opzione salvata vuota

= 2.6.17 =
* Trigger: fallback POST con chiave id (`willy_push_trigger_name[trg_…]`, `willy_push_trigger_template_id[trg_…]`) così nome/template non dipendono dall’ordine delle righe; merge PHP compatibile con vecchio `[]` indicizzato

= 2.6.16 =
* Trigger: campi POST reali `willy_push_trigger_name[]` e `willy_push_trigger_template_id[]` (hidden) sincronizzati dal JS; dopo il decode JSON il PHP fa merge — doppio canale per nome e template

= 2.6.15 =
* Trigger debug admin: catena PHP POST → sanitize → `get_option` dopo save (hook `updated_option`); tabella id/name/template_id letti da DB nello stesso salvataggio

= 2.6.14 =
* Trigger: modello JS `willyPushTriggersModel` (fonte di verità) sincronizzato a ogni input/change e al submit; id locale se mancante; log `[DOM_VALUES_ACTIVE_EDITOR]`, `[TRIGGER_MODEL_BEFORE_SYNC]`, `[TRIGGER_MODEL_AFTER_SYNC]`, parità model/DOM

= 2.6.13 =
* Trigger: hidden JSON spostato fuori da `#willy-triggers-list`; raccolta blocchi solo figli diretti; `willyPushTriggersBootstrap` + console `[SUBMIT_CHECK]` (conteggi, id, nomi) per il confronto DOM/POST vs dati caricati

= 2.6.12 =
* Tab Trigger: salvataggio tramite un solo campo JSON (`willy_push_triggers`); `sanitize_triggers` decodifica e normalizza; JSON non valido mantiene i dati precedenti e mostra avviso admin

= 2.6.10 =
* Debug opzionale salvataggio trigger: `define( 'WILLY_PUSH_TRIGGER_DEBUG', true );` in wp-config — log in `wp-content/uploads/willy-push-trigger-debug.log`, console con prefisso `[WILLY_TRIGGER_DEBUG]` (vedi TRIGGER-DEBUG.md nel pacchetto)

= 2.6.9 =
* Dopo «Salva impostazioni» la schermata resta sulla stessa tab (parametro URL `willy_tab`, localStorage, aggiornamento URL prima del submit)

= 2.6.8 =
* Fix salvataggio trigger: nome e template non vengono più azzerati se il POST non include la chiave `willy_push_triggers` (comportamento di options.php + sanitize)
* Fix ID trigger con carattere da uniqid; sync template JS più robusto al submit

= 2.6.7 =
* Interfaccia admin unificata (mini design system) su Generale, Visibilità, Segmenti, WooCommerce, Avanzate; tab Trigger armonizzata senza modificare il builder
* Copy WooCommerce e carrello allineati al comportamento reale (segnali/segmentazione vs campagne in Area Cliente)
* Checklist di test manuale: TEST-CHECKLIST-2.6.7.md nel pacchetto plugin
* readme.txt: Stable tag e descrizione allineati

= 2.5.4 =
* UX tab Trigger: intro chiara, Step 1-5, esempi pratici, riepilogo umano, logica Automazioni

= 2.5.3 =
* Fix salvataggio trigger (parsing active, validazione where)
* Fix "Solo homepage" con is_home() fallback
* Fix match pagina prodotti/cart/order_received
* Aggiunto data-api-base a embed-trigger

= 2.5.2 =
* Popup soft "Vuoi ricevere notifiche?" mostrato prima del prompt nativo del browser

= 2.5.1 =
* Menu a tendina per "Mostra popup su" (Tutte, Homepage, Articoli, Pagine, ecc.)
* Popup iniettato in wp_footer per esecuzione più affidabile

= 2.5.0 =
* Popup iscrizione in tab Generale (prompt_delay, prompt_pages)
* Fix inizializzazione E2EE (WillyPushE2EE)
* Shortcode [willy_push_button], [willy_push_unsubscribe], [willy_push_status]
* Bottone Sincronizza template in Generale e Avanzate
* Trigger avanzati: page_open, click, delay con filtri pagina
* Shortcode [willy_push_trigger]
* WooCommerce: trigger ordine completato, prodotto visto, cliente di ritorno
* REST API sync-templates e sync remoto da Area Cliente

= 2.0.0 =
* Aggiunta selezione pagine (whitelist/blacklist)
* Aggiunto filtro per post type
* Aggiunta segmentazione automatica per ruolo utente
* Aggiunta segmentazione per tipo contenuto e categoria
* Aggiunta integrazione WooCommerce (carrello, acquisto, prodotto)
* Aggiunto ritardo prompt personalizzabile
* Aggiunto pannello admin con tab organizzate
* Aggiunta anteprima script in admin

= 1.0.0 =
* Versione iniziale con dominio, abilita/disabilita, esclusione admin
