Skip to main content

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

  1. L’utilisateur connecté soumet le formulaire Elementor.
  2. Un post est créé dans le CPT “Formulaire” avec le tag [NON PAYÉ].
  3. Redirection vers Stripe Checkout.
  4. 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 :

  1. Recherche du formulaire via [NON PAYE] + client_reference_id.
  2. Initialisation de l'objet Stripe et récupération de la session.
  3. 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.
  4. Appel update_subscription() pour fixer la date de fin réelle.
  5. 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ôle garage).
  • [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).