WP Manifestindependent plugin directory
manifest / forms / newplg2

WAsender QR Message Pro (Multi-Tenant)

Plugin per creare QR Code WhatsApp con messaggi personalizzati - Versione Multi-Tenant

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/ferrantealberto/newplg2/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

WAsender QR Message Pro - Multi-Tenant Version

Versione 2.0.0 - Multi-Tenant Edition

Questa è la versione multi-tenant del plugin WAsender QR Message Pro, sviluppata per funzionare in perfetta integrazione con WAsender Manager Pro. Mantiene tutte le funzionalità della versione originale aggiungendo il supporto completo per ambienti multi-tenant.

🚀 Caratteristiche Multi-Tenant

✅ Funzionalità Mantenute

  • Generazione QR Code WhatsApp con messaggi personalizzati
  • Form Builder avanzato per creare form personalizzati
  • Invio Diretto tramite API WAsender
  • Shortcodes per inserire form nelle pagine
  • Sistema di log e analytics
  • Interface responsive e mobile-friendly
  • Tutte le customizzazioni della versione originale

🆕 Nuove Funzionalità Multi-Tenant

  • 🏢 Isolamento per Tenant: Ogni tenant ha i propri form, dati e configurazioni
  • 🔧 Configurazione Automatica: API URL, token e webhook secret gestiti automaticamente dal Manager Pro
  • 🔒 Sicurezza Avanzata: Accesso ai dati limitato al tenant corrente
  • 📊 Analytics Separate: Log e statistiche isolate per ogni tenant
  • ⚙️ Interface Adattiva: L'admin si adatta automaticamente alla modalità multi-tenant
  • 🔄 Compatibilità Totale: Funziona sia in modalità single-tenant che multi-tenant

🏗️ Architettura

Rilevamento Automatico

Il plugin rileva automaticamente la presenza di WAsender Manager Pro e si configura di conseguenza:

// Rilevamento multi-tenant
$this->is_manager_active = class_exists('WAsender_Manager_Pro_Manager');

Configurazione API Dinamica

Le configurazioni API vengono ottenute dinamicamente dal tenant:

// Single-tenant: usa get_option()
// Multi-tenant: usa dati del tenant
$config = WAsender_QR_Pro_Multi_Tenant::get_tenant_api_config($tenant);

Database Multi-Tenant

Tutte le tabelle supportano il campo tenant_id per l'isolamento:

-- Esempio struttura
CREATE TABLE wp_wasender_forms (
    id int(11) NOT NULL AUTO_INCREMENT,
    tenant_id int(11) DEFAULT NULL,  -- NUOVO CAMPO
    name varchar(255) NOT NULL,
    -- altri campi...
    UNIQUE KEY unique_tenant_slug (tenant_id, slug)
);

📋 Tabelle Database

Tabelle Modificate per Multi-Tenant

  1. wasender_forms - Form Builder

    • ➕ tenant_id - ID del tenant proprietario
    • ➕ Indice unico su (tenant_id, slug)
  2. wasender_submissions - Dati form inviati

    • ➕ tenant_id - ID del tenant
    • ➕ Indici per performance
  3. wasender_logs - Log eventi

    • ➕ tenant_id - ID del tenant
    • ➕ Filtri per tenant negli analytics

🔧 Configurazione

Modalità Single-Tenant (Legacy)

Se WAsender Manager Pro non è attivo, il plugin funziona come la versione originale:

  • Configurazione manuale nelle impostazioni
  • Dati globali senza isolamento tenant
  • tenant_id = NULL in tutte le tabelle

Modalità Multi-Tenant

Con WAsender Manager Pro attivo:

  • ✅ Configurazione API automatica per ogni tenant
  • ✅ Webhook unificato gestito centralmente
  • ✅ Isolamento completo dei dati
  • ✅ Interface admin adattiva

🎯 Shortcodes

Tutti gli shortcodes originali sono supportati e compatibili con multi-tenant:

Form Base

[wasender phone="+39123456789" message="Ciao!" title="Contattaci"]

Form Personalizzato

[wasender_form id="123" show_title="true"]

Solo QR Code

[wasender_qr phone="+39123456789" message="Messaggio" auto_generate="true"]

Bottone WhatsApp

[wasender_button phone="+39123456789" text="Contattaci" style="green"]

⚙️ API Multi-Tenant

Classe Principale

// Ottieni istanza per tenant specifico
$qr_pro = WAsender_QR_Pro::for_tenant($tenant);

// Ottieni istanza per tenant corrente
$qr_pro = WAsender_QR_Pro::get_current_instance();

// Verifica modalità
if ($qr_pro->is_multi_tenant()) {
    // Logica multi-tenant
}

Configurazione Dinamica

// Ottieni config per il tenant
$config = WAsender_QR_Pro_Multi_Tenant::get_tenant_api_config($tenant);

// Contiene: api_url, api_token, session_name, webhook_secret, tenant_id, tenant_slug

🔄 Migrazione

Da Single-Tenant a Multi-Tenant

  1. Installazione WAsender Manager Pro
  2. Aggiornamento Plugin: Il plugin rileva automaticamente il Manager Pro
  3. Migrazione Database: Le tabelle vengono aggiornate con i campi tenant_id
  4. Dati Legacy: I dati esistenti rimangono con tenant_id = NULL per compatibilità
  5. Configurazione: Le impostazioni API passano al controllo del Manager Pro

Compatibilità Indietro

  • ✅ Dati esistenti sono preservati
  • ✅ Shortcodes continuano a funzionare
  • ✅ Form esistenti rimangono attivi
  • ✅ Possibilità di ritornare a single-tenant

🔐 Sicurezza

Isolamento Dati

  • Ogni tenant vede solo i propri dati
  • Filtri WHERE tenant_id = ? su tutte le query
  • Validazione rigorosa dell'accesso ai dati

Webhook Sicuri

  • Webhook unificato con autenticazione per tenant
  • Header X-Webhook-Secret specifico per tenant
  • Validazione centralizzata nel Manager Pro

Controllo Accessi

  • Interface admin disabilita campi gestiti centralmente
  • Prevenzione modifiche non autorizzate
  • Log di tutte le operazioni sensibili

📊 Analytics Multi-Tenant

Log Separati

Ogni tenant ha i propri analytics:

  • Messaggi inviati per tenant
  • Form submissions per tenant
  • Eventi e errori isolati
  • Performance metrics separate

Dashboard Admin

  • Statistiche filtrate per tenant corrente
  • Indicatori visivi della modalità multi-tenant
  • Info tenant nell'header admin

🧪 Testing

Test di Compatibilità

$installer = new WAsender_Installer();
$compatibility = $installer->test_multi_tenant_compatibility();

// Verifica:
// - Presenza Manager Pro
// - Metodi richiesti disponibili  
// - Database pronto per multi-tenant
// - Assenza errori di configurazione

Diagnostica Sistema

$installer = new WAsender_Installer();
$info = $installer->get_system_info();

// Informazioni su:
// - Versione plugin e WordPress
// - Stato multi-tenant
// - Statistiche database per tenant
// - Configurazione corrente

🐛 Risoluzione Problemi

1. Plugin Non Rileva Manager Pro

  • Verificare che WAsender Manager Pro sia attivo
  • Controllare che la classe WAsender_Manager_Pro_Manager esista
  • Verificare ordine di caricamento plugin

2. Dati Non Visualizzati

  • Controllare che ci sia un tenant attivo
  • Verificare filtri tenant_id nelle query
  • Controllare log per errori di configurazione

3. API Non Funziona

  • Verificare configurazione tenant nel Manager Pro
  • Controllare token API e URL nel tenant
  • Testare connessione API dall'admin

4. Shortcode Non Funziona

  • Controllare contesto tenant nella pagina
  • Verificare che il form esista per il tenant corrente
  • Controllare parametri shortcode

📝 Log e Debug

File di Log

  • wp-content/wasender-debug.log - Log principale
  • Log eventi nel database con tenant_id
  • Log centralizzato nel Manager Pro

Messaggi Debug

// Attivare logging nelle impostazioni
update_option('wasender_enable_logs', 1);

// Log specifici per tenant
$this->debug_log('[Tenant:' . $tenant_id . '] Messaggio di debug');

🆙 Aggiornamenti

Versioning

  • v1.x: Versione single-tenant originale
  • v2.0+: Versione multi-tenant con backward compatibility

Upgrade Automatico

  • Database migrato automaticamente
  • Impostazioni legacy preservate
  • Notifiche di upgrade nell'admin

🏢 Requisiti

Requisiti Base

  • WordPress 5.0+
  • PHP 7.4+
  • MySQL 5.7+ / MariaDB 10.2+

Requisiti Multi-Tenant

  • WAsender Manager Pro attivo
  • Permessi database per ALTER TABLE
  • Memoria PHP sufficiente per tenant multipli

📞 Supporto

Per supporto e documentazione aggiuntiva:

  • Versione Original: Documentazione plugin originale
  • Multi-Tenant: Documentazione WAsender Manager Pro
  • Integrazione: Questa documentazione

🎉 Conclusione

Questa versione multi-tenant mantiene al 100% tutte le funzionalità del plugin originale, aggiungendo il supporto per ambienti multi-tenant senza compromessi. È la soluzione ideale per:

  • 🏢 Agenzie che gestiscono più clienti
  • 🌐 SaaS con tenant multipli
  • 🔧 Reseller che offrono servizi WhatsApp
  • 📈 Scalabilità per crescita aziendale

Nessuna funzionalità persa, solo potenza aggiunta! 🚀