FAQ promo eventi: rimando WhatsApp e riscrittura FAQ 1 e 2
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -372,11 +372,11 @@ export const contentSeed: SeedEntry[] = [
|
|||||||
// La FAQ 0 è mostrata per prima: numerata così per non rinumerare le esistenti (i tag già
|
// La FAQ 0 è mostrata per prima: numerata così per non rinumerare le esistenti (i tag già
|
||||||
// presenti nei DB non verrebbero riscritti dall'INSERT OR IGNORE del seed).
|
// presenti nei DB non verrebbero riscritti dall'INSERT OR IGNORE del seed).
|
||||||
T('promo.faq.0.q', 'Come faccio ad acquistare i pacchetti?'),
|
T('promo.faq.0.q', 'Come faccio ad acquistare i pacchetti?'),
|
||||||
H('promo.faq.0.a', 'Clicca sull\'icona del pacchetto che desideri acquistare e compila tutti i campi richiesti per completare la registrazione.<br><br>Una volta terminata l\'iscrizione, riceverai un\'email con le istruzioni per scaricare la nostra app <span class="hl">Bsport</span>. Dopo aver effettuato l\'accesso, entra nella sezione <span class="hl">Club</span>: qui troverai tutti i pacchetti disponibili. Seleziona quello che preferisci e completa l\'acquisto direttamente dall\'app effettuando il pagamento.'),
|
H('promo.faq.0.a', 'Clicca sull\'icona del pacchetto che desideri acquistare e compila tutti i campi richiesti per completare la registrazione.<br><br>Una volta terminata l\'iscrizione, riceverai un\'email con le istruzioni per scaricare la nostra app <span class="hl">Bsport</span>. Dopo aver effettuato l\'accesso, entra nella sezione <span class="hl">Club</span>: qui troverai tutti i pacchetti disponibili. Seleziona quello che preferisci e completa l\'acquisto direttamente dall\'app effettuando il pagamento.<br><br>Se hai bisogno di aiuto scrivi su <span class="hl">WhatsApp ({{whatsapp}})</span> e sarai presto ricontattato!'),
|
||||||
T('promo.faq.1.q', 'Come funziona il pacchetto a incontri per One to One e Small Group?'),
|
T('promo.faq.1.q', 'Come funziona il pacchetto a incontri per One to One e Small Group?'),
|
||||||
H('promo.faq.1.a', 'Acquisti il pacchetto online con pagamento sicuro via <span class="hl">Stripe</span>. Ricevi una conferma via email. Poi ci scrivi su <span class="hl">WhatsApp ({{whatsapp}})</span> per prenotare le singole sessioni in base agli orari disponibili. Verrai ricontattato subito tramite messaggio o chiamata! Gli incontri sono validi 2 mesi dalla data del primo incontro e comunque non oltre il 1° dicembre 2026.'),
|
H('promo.faq.1.a', 'Per acquistare il pacchetto online segui le istruzioni riportate nella risposta della prima domanda. Una volta avvenuto con successo l\'acquisto, potrai contattarci scrivendoci su <span class="hl">WhatsApp ({{whatsapp}})</span> per prenotare lo screening iniziale ovvero il colloquio conoscitivo per la definizione dei tuoi obiettivi. Verrai ricontattato subito tramite messaggio o chiamata! Gli incontri sono validi 2 mesi dalla data del primo incontro e comunque non oltre il 1° dicembre 2026.'),
|
||||||
T('promo.faq.2.q', 'Come funziona il percorso Reformer o Holistic Class?'),
|
T('promo.faq.2.q', 'Come funziona il percorso Reformer o Holistic Class?'),
|
||||||
H('promo.faq.2.a', 'Acquisti il pacchetto online con pagamento sicuro via <span class="hl">Stripe</span>. Ricevi una conferma via email. Poi vai nella schermata Home, clicca il servizio che hai acquistato e seleziona autonomamente la class nel giorno e nell\'orario che desideri. In caso di problemi contattaci su <span class="hl">WhatsApp ({{whatsapp}})</span>! Gli incontri sono validi 2 mesi dalla data del primo incontro e comunque non oltre il 1° dicembre 2026.'),
|
H('promo.faq.2.a', 'Per acquistare il pacchetto online segui le istruzioni riportate nella risposta della prima domanda. Una volta scaricata l\'app <span class="hl">Bsport</span> e acquistato il pacchetto potrai procedere a selezionare autonomamente la class che preferisci nel giorno e nell\'orario che desideri. Gli orari delle class saranno pubblicati entro Settembre. In caso di problemi contattaci su <span class="hl">WhatsApp ({{whatsapp}})</span>! Gli incontri sono validi 2 mesi dalla data del primo incontro e comunque non oltre il 1° dicembre 2026.'),
|
||||||
T('promo.faq.3.q', 'Posso usare gli incontri su servizi diversi?'),
|
T('promo.faq.3.q', 'Posso usare gli incontri su servizi diversi?'),
|
||||||
H('promo.faq.3.a', 'Ogni pacchetto è dedicato a un singolo servizio (<span class="hl">One to One</span>, <span class="hl">Small Group</span>, <span class="hl">Reformer</span> o <span class="hl">Holistic Class</span>). Se vuoi accedere a più servizi puoi acquistare pacchetti separati per ciascuno.'),
|
H('promo.faq.3.a', 'Ogni pacchetto è dedicato a un singolo servizio (<span class="hl">One to One</span>, <span class="hl">Small Group</span>, <span class="hl">Reformer</span> o <span class="hl">Holistic Class</span>). Se vuoi accedere a più servizi puoi acquistare pacchetti separati per ciascuno.'),
|
||||||
T('promo.faq.4.q', 'Posso regalare un pacchetto a qualcun altro?'),
|
T('promo.faq.4.q', 'Posso regalare un pacchetto a qualcun altro?'),
|
||||||
|
|||||||
@@ -247,6 +247,27 @@ export function createDb(path?: string): Database.Database {
|
|||||||
// visibile ai soli admin): i tag che la servivano restano orfani nei DB esistenti.
|
// visibile ai soli admin): i tag che la servivano restano orfani nei DB esistenti.
|
||||||
db.prepare("DELETE FROM content_blocks WHERE tag IN ('global.nav.7.label', 'promo.pagehero.title')").run();
|
db.prepare("DELETE FROM content_blocks WHERE tag IN ('global.nav.7.label', 'promo.pagehero.title')").run();
|
||||||
|
|
||||||
|
// FAQ "Come faccio ad acquistare i pacchetti?": coda con il rimando a WhatsApp aggiunta dopo
|
||||||
|
// il primo deploy → i DB esistenti hanno ancora la versione senza. Append guardato dalla fine
|
||||||
|
// del vecchio testo e dall'assenza della coda → idempotente, non tocca riscritture da pannello.
|
||||||
|
db.prepare(
|
||||||
|
`UPDATE content_blocks SET value = value || '<br><br>Se hai bisogno di aiuto scrivi su <span class="hl">WhatsApp ({{whatsapp}})</span> e sarai presto ricontattato!'
|
||||||
|
WHERE tag = 'promo.faq.0.a' AND value LIKE '%effettuando il pagamento.'`,
|
||||||
|
).run();
|
||||||
|
|
||||||
|
// FAQ 1 e 2 riscritte (rimando alla prima domanda per l'acquisto, screening iniziale per
|
||||||
|
// One to One/Small Group, orari class entro Settembre). Guardia via frammento LIKE del vecchio
|
||||||
|
// testo → idempotente e rispettosa di eventuali riscritture da pannello.
|
||||||
|
const PROMO_FAQ_RISCRITTE: [string, string, string][] = [
|
||||||
|
['promo.faq.1.a', '%per prenotare le singole sessioni in base agli orari disponibili%',
|
||||||
|
'Per acquistare il pacchetto online segui le istruzioni riportate nella risposta della prima domanda. Una volta avvenuto con successo l\'acquisto, potrai contattarci scrivendoci su <span class="hl">WhatsApp ({{whatsapp}})</span> per prenotare lo screening iniziale ovvero il colloquio conoscitivo per la definizione dei tuoi obiettivi. Verrai ricontattato subito tramite messaggio o chiamata! Gli incontri sono validi 2 mesi dalla data del primo incontro e comunque non oltre il 1° dicembre 2026.'],
|
||||||
|
['promo.faq.2.a', '%vai nella schermata Home, clicca il servizio che hai acquistato%',
|
||||||
|
'Per acquistare il pacchetto online segui le istruzioni riportate nella risposta della prima domanda. Una volta scaricata l\'app <span class="hl">Bsport</span> e acquistato il pacchetto potrai procedere a selezionare autonomamente la class che preferisci nel giorno e nell\'orario che desideri. Gli orari delle class saranno pubblicati entro Settembre. In caso di problemi contattaci su <span class="hl">WhatsApp ({{whatsapp}})</span>! Gli incontri sono validi 2 mesi dalla data del primo incontro e comunque non oltre il 1° dicembre 2026.'],
|
||||||
|
];
|
||||||
|
const updFaq = db.prepare('UPDATE content_blocks SET value = ? WHERE tag = ? AND value LIKE ?');
|
||||||
|
const updFaqTx = db.transaction(() => { for (const [tag, frag, newV] of PROMO_FAQ_RISCRITTE) updFaq.run(newV, tag, frag); });
|
||||||
|
updFaqTx();
|
||||||
|
|
||||||
// Cestino degli articoli: colonna aggiunta a posteriori sui database già esistenti.
|
// Cestino degli articoli: colonna aggiunta a posteriori sui database già esistenti.
|
||||||
const colonnePost = db.prepare('PRAGMA table_info(posts)').all() as { name: string }[];
|
const colonnePost = db.prepare('PRAGMA table_info(posts)').all() as { name: string }[];
|
||||||
if (!colonnePost.some((c) => c.name === 'deleted_at')) {
|
if (!colonnePost.some((c) => c.name === 'deleted_at')) {
|
||||||
|
|||||||
Reference in New Issue
Block a user