4. Développement custom
4.1 Formulaire sur mesure
4.1.1 Emplacement du code
La majorité du code métier est situé dans le dossier : /wp-content/plugins/malocead/.
Les fichiers PDF générés sont temporairement stockés dans /wp-content/uploads/.
4.1.2 Étapes clés du flux
- L’utilisateur connecté soumet le formulaire Elementor.
- Un post est créé dans le CPT “Formulaire” avec le tag
[NON PAYÉ]. - Redirection vers Stripe Checkout.
- Après paiement, retour sur la page de confirmation et mise à jour des données.
4.1.3 Validations
- Vérification des champs obligatoire dans Elementor.
- Rapprochement Stripe $\leftrightarrow$ CPT via
client_reference_id. - Validation des pièces jointes.
4.2 Intégration Stripe
4.2.1 Mode d’intégration
Utilisation de Stripe Checkout via des liens de paiement préconfigurés. L'abonnement est mis à jour dynamiquement selon la durée choisie (3, 6 ou 9 mois).
4.2.2 Gestion du retour (Success)
Le hook template_redirect gère le retour de Stripe :
- Recherche du formulaire via
[NON PAYE] + client_reference_id. - Initialisation de l'objet Stripe et récupération de la session.
- Mise à jour du CPT :
- Stockage lien facture et
customer_id. - Création commande WooCommerce via
create_EAD_order. - Changement d'état (
etat = 1). - Suppression du tag
[NON PAYÉ]du titre. - Incrémentation du numéro de contrat.
- Stockage lien facture et
- Appel
update_subscription()pour fixer la date de fin réelle. - Génération du PDF et envoi des notifications.
4.3 Système de notifications
4.3.1 Emails (moteurs wp_mail)
- Action de paiement : Notification HTML au garage, à l'administration (DPAN) et au client avec le contrat en pièce jointe.
- Changement d'état : Email automatique au client lors de chaque étape (validé, en cours d'installation, installé, désinstallé).
4.4 Génération de certificats et contrats
Utilisation de Dompdf (fichier pdf_gen.php).
4.4.1 Documents générés
- Certificat d’installation (
generate_certif_install) : Détails véhicule/garage/matériel + signature. - Certificat de désinstallation (
generate_certif_desinstall). - Contrat utilisateur (
generate_contrat_utilisateur) : Identité, durée, clauses légales, plafond contractuel.
4.4.2 Déclencheurs (Paramètres GET)
Le script intercepte des paramètres dans l'URL pour générer les PDFs à la volée :
?generatecertifinstall=ID?generatecertifdesinstall=ID?generatecontratutilisateur=ID
4.5 Shortcodes disponibles
Récapitulatif & Post-soumission
[display_recap]: Interface responsive avant soumission.[confirmation_details]: Détails après paiement.[invoice_link]: Lien vers la facture Stripe.[link_page]: Lien vers le contrat PDF.
Garage
[garage_dropdown]: Liste sélecteur des garages (utilisateurs rôlegarage).[garage_siret]: Champ SIRET dynamique.
Suivi
[last_command_EAD]: État de la commande (0 à 4) avec icônes.[invoice_list]: Liste historique des factures pour l'utilisateur.
4.6 Automatisation (CRON)
Rappel SMS (Brevo)
Fonction sr_send_sms_reminder() :
- Recherche les formulaires avec désinstallation à J+15.
- Formatage international via
libphonenumber. - Envoi via l'API Brevo.
- Marquage
sms_reminder_envoye = true.
Nettoyage & Rapports
- Suppression automatique des formulaires "Non payé" > 24h.
- Rapports hebdomadaires (DPAN) et mensuels (Garages).