Modèles du thème
Remplacement des modèles du thème
Section intitulée « Remplacement des modèles du thème »Personnaliser le HTML des formulaires ImmoSync, les e-mails de formulaire et le JavaScript des formulaires depuis le thème WordPress, sans modifier le plugin.
Il est possible de remplacer :
- le balisage des formulaires des shortcodes (
[wpis-form-contact],[wpis-form-estate],[wpis-form-evaluation]) - les corps des e-mails (notification à l’agence et confirmation au visiteur) et la mise en page HTML partagée
- le JavaScript des formulaires (
wpis-forms.js)
Ne remplacer que les fichiers nécessaires. Les fichiers absents du thème retombent sur les valeurs par défaut du plugin.
Ordre de résolution
Section intitulée « Ordre de résolution »Le HTML des formulaires, le HTML des e-mails et wpis-forms.js se résolvent tous dans cet ordre :
- Thème enfant (
get_stylesheet_directory()) - Thème parent (
get_template_directory()), s’il est différent - Valeur par défaut du plugin
Modèles de formulaire
Section intitulée « Modèles de formulaire »Remplacer le HTML rendu par les shortcodes de formulaire.
Il est possible de remplacer :
- le formulaire de contact (
[wpis-form-contact]) - le formulaire de contact étendu (
[wpis-form-contact type="extended"]) - le formulaire bien (
[wpis-form-estate]) - le formulaire d’évaluation (
[wpis-form-evaluation])
Mise en place
Section intitulée « Mise en place »Dans le thème actif (ou le thème enfant), créer :
immosync/form/Puis n’ajouter que les fichiers à personnaliser :
| Fichier du thème | Remplace | Shortcode |
|---|---|---|
immosync/form/contact.html |
contact.default.form.html |
[wpis-form-contact] |
immosync/form/contact-extended.html |
contact.extended.form.html |
[wpis-form-contact type="extended"] |
immosync/form/estate.html |
estate.default.form.html |
[wpis-form-estate] |
immosync/form/evaluation.html |
evaluation.default.form.html |
[wpis-form-evaluation] |
Exemple :
your-theme/ immosync/ form/ contact.html contact-extended.html estate.html evaluation.htmlSi un fichier est absent du thème, la valeur par défaut du plugin sous plugin/templates/form/ est utilisée. Il est possible de remplacer un seul formulaire et de laisser les autres inchangés.
Par où commencer
Section intitulée « Par où commencer »- Copier le fichier plugin correspondant dans le chemin du thème (le renommer comme dans le tableau ci-dessus).
- Modifier la copie.
- Recharger une page qui utilise le shortcode pour vérifier le balisage.
Sources plugin à copier :
plugin/templates/form/contact.default.form.html→immosync/form/contact.htmlplugin/templates/form/contact.extended.form.html→immosync/form/contact-extended.htmlplugin/templates/form/estate.default.form.html→immosync/form/estate.htmlplugin/templates/form/evaluation.default.form.html→immosync/form/evaluation.html
Espaces réservés
Section intitulée « Espaces réservés »Les libellés et messages traduits utilisent des balises de style Mustache remplacées par le shortcode, par exemple :
{{ form.gender.label }},{{ form.firstname.label }},{{ form.lastname.label }}{{ form.email.label }},{{ form.phone.label }},{{ form.message.label }}{{ form.policy.label }},{{ form.policy.value }},{{ form.submit.value }}{{ message.success }},{{ message.processing }}{{ error.single }},{{ error.multiple }}
Les champs d’adresse (contact étendu / évaluation) utilisent aussi {{ form.addressStreet.label }}, addressNumber, addressBox, addressZip, addressCity.
Attributs data
Section intitulée « Attributs data »Conserver data-lid="%listId%" sur la balise <form>. %listId% est remplacé par l’attribut de shortcode list-id (par défaut -1).
Formulaire bien uniquement
Section intitulée « Formulaire bien uniquement »Ces jetons sont remplacés par le shortcode :
%estateId%— depuis l’attributestate-idlorsqu’il est défini, sinon depuis la page de bien courante%postId%— ID de la publication courante
Les conserver dans le remplacement si le formulaire doit toujours cibler le bon bien.
Champs de sécurité
Section intitulée « Champs de sécurité »Le plugin injecte un champ CSRF vide (_wpis_token) et un honeypot masqué (website) avant </form> lors du rendu. Le script du formulaire charge un jeton frais depuis POST /wp-json/wpis/form-token après le chargement de la page, afin qu’une page mise en cache ne stocke pas un jeton actif. Les copies du thème peuvent inclure le même balisage ; le plugin retire les doublons et écrit un champ jeton vide.
Conserver les attributs id d’origine sur les champs visibles. Ne pas renommer _wpis_token ni website.
Chaque contrôle (et son minutage) peut être désactivé ou remplacé depuis le fichier wpis-settings.json du thème. Voir Réglages du thème.
- Les attributs de shortcode s’appliquent toujours (
style,submit,type,estate-id,list-id). type="extended"chargecontact-extended.htmllorsqu’il est présent ; sinon le modèle étendu du plugin.- Le JS d’envoi du formulaire et le comportement de l’API ne sont pas modifiés par ces remplacements HTML.
- Important : la balise formulaire et chaque champ doivent conserver leur attribut
idd’origine inchangé afin que le JS du plugin puisse trouver et traiter correctement les champs. - Hook de filtre pour un usage avancé :
wpis_form_template_path.
Modèles d’e-mail
Section intitulée « Modèles d’e-mail »Personnaliser les e-mails des formulaires ImmoSync depuis le thème WordPress, sans modifier le plugin.
Il est possible de remplacer :
- le corps de notification client (message envoyé à l’agence / à l’administrateur)
- le corps de confirmation destinataire (message envoyé au visiteur)
- le corps du rapport hebdomadaire des envois bloqués
- la mise en page HTML partagée qui enveloppe ces corps
Mise en place
Section intitulée « Mise en place »Dans le thème actif (ou le thème enfant), créer :
immosync/email/Puis n’ajouter que les fichiers à personnaliser :
| Fichier du thème | Remplace |
|---|---|
immosync/email/client-content.html |
content/client-email.html |
immosync/email/recipient-content.html |
content/recipient-email.html |
immosync/email/blocked-report-content.html |
content/blocked-report-email.html |
immosync/email/template.html |
default.email.html |
Exemple :
your-theme/ immosync/ email/ client-content.html recipient-content.html blocked-report-content.html template.htmlSi un fichier est absent du thème, la valeur par défaut du plugin sous plugin/templates/email/ est utilisée. Il est possible de remplacer un seul fichier et de laisser les autres inchangés.
Par où commencer
Section intitulée « Par où commencer »- Copier le fichier plugin correspondant dans le chemin du thème (le renommer comme dans le tableau ci-dessus).
- Modifier la copie.
- Envoyer un formulaire pour vérifier le rendu de l’e-mail.
Sources plugin à copier :
- Corps (client) :
plugin/templates/email/content/client-email.html→immosync/email/client-content.html - Corps (destinataire) :
plugin/templates/email/content/recipient-email.html→immosync/email/recipient-content.html - Corps (rapport des blocages) :
plugin/templates/email/content/blocked-report-email.html→immosync/email/blocked-report-content.html - Mise en page :
plugin/templates/email/default.email.html→immosync/email/template.html
Espaces réservés (modèles de corps)
Section intitulée « Espaces réservés (modèles de corps) »Valeurs simples (remplacées en texte) :
{{ firstname }},{{ lastname }},{{ email }},{{ phone }},{{ message }}{{ source }},{{ url }}- Adresse :
{{ addressStreet }},{{ addressNumber }},{{ addressBox }},{{ addressZip }},{{ addressCity }} - Recherche :
{{ searchPurpose }},{{ searchCategory }},{{ searchPriceMin }},{{ searchPriceMax }},{{ searchRooms }},{{ searchAreaMin }},{{ searchAreaMax }},{{ searchZips }} - Bien :
{{ estateId }},{{ estateReference }},{{ estateName }} - Rapport des blocages :
{{ siteName }},{{ total }},{{ periodStart }},{{ periodEnd }},{{ blockedTable }}
Sections conditionnelles (le contenu intérieur n’est conservé que lorsque la condition est vraie) :
{{#address}}...{{/address}}
{{#search}}...{{/search}}
{{#estate}}...{{/estate}}Espaces réservés (modèle de mise en page)
Section intitulée « Espaces réservés (modèle de mise en page) »Le fichier de mise en page doit inclure ces jetons :
{{ email.headline }}{{ email.message }}— contenu du corps rendu{{ email.signature }}{{ email.footer }}
- Les objets et les adresses From / To restent contrôlés par les réglages du plugin, pas par ces modèles.
- Hook de filtre pour un usage avancé :
wpis_email_template_path.
JavaScript des formulaires (wpis-forms.js)
Section intitulée « JavaScript des formulaires (wpis-forms.js) »Pour s’accrocher à l’envoi d’un formulaire depuis le thème (analytics, pixels, UI supplémentaire), écouter wpis_form_submission et wpis_form_success plutôt que de copier ce fichier. Voir Événements JavaScript.
Pour personnaliser le comportement ou l’apparence des formulaires en JavaScript, copier le script du plugin à la racine du thème actif (ou du thème enfant) :
your-theme/wpis-forms.jsSource plugin à copier :
plugin/dist/client/wpis-forms.js→wpis-forms.js
Le même ordre de résolution s’applique (thème enfant, puis thème parent, puis le fichier du plugin). La copie du thème est versionnée avec filemtime afin que les navigateurs prennent en compte les modifications.
Hook de filtre pour un usage avancé : wpis_forms_script.
Les remplacements de modèles HTML ne modifient pas ce script. Ne remplacer wpis-forms.js que lorsqu’un comportement côté client différent est nécessaire.
Liens connexes
Section intitulée « Liens connexes »- Réglages du thème — remplacer les options du plugin (y compris les contrôles de sécurité des formulaires) depuis
wpis-settings.json - Shortcodes — attributs et utilisation des shortcodes de formulaire