[1.8.0] - 2026-06-16
### 🏦 Virement bancaire (paiement manuel) / Bank transfer (manual payment)
---
#### 🇫🇷 Français
##### Nouveau moyen de paiement : virement bancaire
- **Contexte** : plus de 50 % des entreprises règlent par virement. Ajout d'un moyen de paiement manuel complet, calqué sur le fonctionnement du paiement en espèces (« cash »).
- **Flux** : le client choisit « Virement bancaire », voit les coordonnées bancaires (IBAN, BIC, titulaire) et confirme. La **réservation** passe en statut `waiting` et la **commande WooCommerce** en `on-hold` (en attente). Les commissions vendeur sont créées mais restent en attente. **Aucun encaissement en ligne.**
- **Libellé normé** : chaque réservation reçoit une référence unique `LPP-{ID}` (ex. `LPP-42`) que le client doit indiquer dans son virement, pour permettre le rapprochement.
- **Validation manuelle** : nouveau menu **« 🏦 Virements »** pour valider/rejeter chaque virement reçu. La validation passe la réservation et la commande en `payé` et finalise les commissions.
- **E-mails automatiques** : envoi au client des coordonnées + libellé à la création, notifications admin (nouveau virement en attente, confirmation client), e-mail de validation/rejet au client.
- **Compatibilité Listeo Booking Plus (LBP)** : fonctionne dans la modale popup exactement comme le cash. LBP crée la réservation + la commande, que le plugin bascule en attente de validation (`capture_lbp_bank_transfer_order_id()` / `finalize_lbp_bank_transfer_order()`).
##### Rapports & Rapprochement bancaire
- Nouvelle page **« 📊 Rapports »** avec deux onglets :
- **Journal des ventes** : liste filtrable (méthode, statut, dates) de toutes les réservations + export CSV (mode de paiement, date, montant, référence, entreprise, statut OK/KO).
- **Rapprochement bancaire** : import du relevé bancaire au format CSV. Le système recherche la référence (ex. `LPP-42`), compare le montant, rapproche automatiquement les virements en attente, puis permet de les valider en masse.
##### Réglages & page de confirmation
- Nouvelle section de réglages **Virement Bancaire** : titulaire, banque, IBAN, BIC/SWIFT, informations, instructions, fichier RIB, option « exiger une preuve de virement », et sélection/création automatique de la page de confirmation (`[lpp_bank_transfer]`).
- Nouveau shortcode `[lpp_bank_transfer]` pour la page de confirmation/suivi côté client.
##### Design natif Listeo
- Toutes les sections front (formulaire de paiement, page de confirmation) utilisent désormais les **classes natives du thème Listeo** (`notification notice/success/warning`, `button fullwidth`, `button border`) au lieu de styles personnalisés, pour une intégration parfaite au thème et à la modale LBP.
##### Documentation
- Ajout d'une section complète « Virement Bancaire » dans la page de documentation du plugin.
##### Corrections virement bancaire (modale LBP & Wallet)
- **Confirmation dans le popup** : après création de la réservation par virement, les coordonnées bancaires, le libellé normé et l'upload de preuve s'affichent désormais directement dans l'**écran de succès** de la modale LBP (auparavant injectés dans l'étape masquée, donc invisibles).
- **Deux options client** : bouton « J'ai effectué mon virement » (preuve **obligatoire** si l'option est activée) et lien « Je confirmerai plus tard » — la réservation est créée dans tous les cas.
- **Bouton de confirmation a posteriori** : nouvelle section « Virement bancaire » dans la page **Mes Réservations** permettant au client ayant choisi « plus tard » de confirmer son virement (et d'uploader la preuve) ultérieurement.
- **Bug de jeton (nonce)** corrigé : le bouton de confirmation virement n'envoyait rien (mauvais nonce `lpp_nonce` au lieu de `lpp_payment_nonce`).
- **Indicateur de chargement** : le bouton reste en « Traitement… » pendant la création asynchrone de la réservation (virement et espèces).
- **Largeur** de la section de paiement alignée sur le champ « Message » de la modale (pleine largeur, à plat).
- **Upload du fichier RIB** dans les réglages corrigé (ajout de `enctype="multipart/form-data"` au formulaire admin).
- **Wallet** : la section Virement Bancaire s'affiche désormais **toujours** (que WiPay/2Checkout soient configurés ou non) ; l'admin peut toujours la masquer manuellement via l'option dédiée.
- **Multi-pays** : libellés des champs (IBAN/BIC, RIB, numéro de compte, etc.) adaptés au pays sélectionné dans la confirmation virement.
- **Nouvelle page « ✅ Virements validés »** : historique des virements validés avec **filtres** (période de validation, montant min/max, recherche réf./client/email/ID), KPI (nombre + total encaissé) et **exports Excel (.xls), CSV, XML et PDF** (PDF via vue imprimable du navigateur).
- **Boutons Valider / Rejeter** de la page « Virements » redessinés (conteneur flex, icônes, plus de chevauchement, plus de coupure en bord de colonne).
- **Référence & n° de réservation** corrigés dans la page « Virements à valider » : la colonne SQL `ID` (majuscules) n'était pas lue (`$booking->id` → 0), ce qui affichait « LPP-0 » et masquait la preuve. Le n° de réservation est désormais affiché sous la référence.
- **Lien « Je confirmerai plus tard »** masqué pendant le traitement (évite tout double-clic).
- **Traductions anglaises** complétées (message « preuve obligatoire », « Je confirmerai plus tard », formats acceptés, nouvelle page virements validés et ses exports).
---
#### 🇬🇧 English
##### New payment method: bank transfer
- **Context**: more than 50% of companies pay by bank transfer. Added a complete manual payment method, modeled on the cash payment flow.
- **Flow**: the customer chooses "Bank transfer", sees the bank details (IBAN, BIC, account holder) and confirms. The **booking** is set to `waiting` and the **WooCommerce order** to `on-hold` (pending). Vendor commissions are created but remain pending. **No online charge.**
- **Standardized reference**: each booking receives a unique reference `LPP-{ID}` (e.g. `LPP-42`) that the customer must include in their transfer, enabling reconciliation.
- **Manual validation**: new **"🏦 Transfers"** menu to validate/reject each received transfer. Validation marks the booking and order as `paid` and finalizes the commissions.
- **Automatic emails**: bank details + reference sent to the customer on creation, admin notifications (new pending transfer, customer confirmation), validation/rejection email to the customer.
- **Listeo Booking Plus (LBP) compatibility**: works inside the popup modal exactly like cash. LBP creates the booking + order, which the plugin switches to pending validation (`capture_lbp_bank_transfer_order_id()` / `finalize_lbp_bank_transfer_order()`).
##### Reports & Bank reconciliation
- New **"📊 Reports"** page with two tabs:
- **Sales journal**: filterable list (method, status, dates) of all bookings + CSV export (payment method, date, amount, reference, company, OK/KO status).
- **Bank reconciliation**: import the bank statement as CSV. The system looks for the reference (e.g. `LPP-42`), compares the amount, automatically reconciles pending transfers, then lets you validate them in bulk.
##### Settings & confirmation page
- New **Bank Transfer** settings section: account holder, bank, IBAN, BIC/SWIFT, info, instructions, RIB file, "require a proof of transfer" option, and selection/automatic creation of the confirmation page (`[lpp_bank_transfer]`).
- New `[lpp_bank_transfer]` shortcode for the customer-facing confirmation/tracking page.
##### Native Listeo design
- All front-end sections (payment form, confirmation page) now use the **native Listeo theme classes** (`notification notice/success/warning`, `button fullwidth`, `button border`) instead of custom styles, for seamless integration with the theme and the LBP modal.
##### Documentation
- Added a complete "Bank Transfer" section to the plugin documentation page.
##### Bank transfer fixes (LBP modal & Wallet)
- **In-popup confirmation**: after a bank-transfer booking is created, the bank details, standardized reference and proof upload now appear directly in the LBP modal's **success screen** (previously injected into the hidden step, so invisible).
- **Two customer options**: an "I've made the transfer" button (proof **required** when the option is enabled) and an "I'll confirm later" link — the booking is created in all cases.
- **Confirm-later button**: new "Bank transfer" section on the **My Bookings** page letting a customer who chose "later" confirm their transfer (and upload the proof) afterwards.
- **Nonce bug fixed**: the transfer confirmation button did nothing (wrong `lpp_nonce` instead of `lpp_payment_nonce`).
- **Loading indicator**: the button stays in "Processing…" during the asynchronous booking creation (bank transfer and cash).
- **Width** of the payment section aligned with the modal's "Message" field (full width, flush).
- **RIB file upload** in settings fixed (added `enctype="multipart/form-data"` to the admin form).
- **Wallet**: the Bank Transfer section now **always** shows (whether or not WiPay/2Checkout is configured); the admin can still hide it manually via the dedicated option.
- **Multi-country**: field labels (IBAN/BIC, account number, etc.) adapt to the selected country in the transfer confirmation.
- **New "✅ Validated transfers" page**: history of validated transfers with **filters** (validation date range, min/max amount, search by ref./client/email/ID), KPIs (count + total collected) and **Excel (.xls), CSV, XML and PDF exports** (PDF via the browser's printable view).
- **Validate / Reject buttons** on the "Transfers" page redesigned (flex container, icons, no more overlap or clipping at the column edge).
- **Reference & booking number** fixed on the "Transfers to validate" page: the SQL column `ID` (uppercase) was not read (`$booking->id` → 0), which displayed "LPP-0" and hid the proof. The booking number now appears under the reference.
- **"I'll confirm later" link** hidden during processing (prevents double-clicks).
- **English translations** completed ("proof required" message, "I'll confirm later", accepted formats, new validated-transfers page and its exports).
---