=== Peptidewinkel Companion === Requires at least: 6.0 Requires PHP: 8.0 Tested up to: 6.7 Stable tag: 2.1.1 License: GPL-2.0-or-later Beheert alles wat de headless storefront uit WordPress nodig heeft: configuratie, het loyalty-programma en het contactformulier. == Wat het doet == * Peptidewijzer: vragen, antwoordopties (NL/EN) en de mapping van antwoorden naar WooCommerce-producten of -tags, allemaal bewerkbaar in WP-admin. * Loyalty: spaarfactor, waarde per punt, minimum voor inwisselen, vervaldatum, bonuspunten en de tiers met hun drempels en multiplier. * Logboek: gekozen antwoorden en doorkliks, om de wijzer bij te sturen. * Contactformulier: ondertekende inzendingen van de site komen binnen als WPForms-entry (Pro) en worden gemaild naar het opgegeven adres. Elke inzending wordt ook in de plugin bewaard, met een eigen overzicht: filteren op status (nieuw, gelezen, afgehandeld, spam), de melding opnieuw sturen en verwijderen. Werkt dus ook met WPForms Lite. * SliceWP-koppeling: affiliate-bezoeken vanaf de site worden in SliceWP gezet, bij een betaalde bestelling maakt de plugin de commissie aan (tarief uit SliceWP) en bij annulering of terugbetaling wordt een niet-uitbetaalde commissie afgewezen. Zelfverwijzing wordt genegeerd en het affiliate-dashboard krijgt de eigen slug, tarieven en cookieduur via de plugin. Alles met schakelaars in WP-admin. De storefront leest deze endpoints (openbaar, alleen-lezen): * `GET /wp-json/pw/v1/config/peptidewijzer` * `GET /wp-json/pw/v1/config/loyalty` * `POST /wp-json/pw/v1/quiz/events` (loggen, max. 1 per seconde per IP) En deze schrijfroute, die een geldige ondertekening vereist: * `POST /wp-json/peptidewinkel/v1/contact` (contactformulier; HMAC-SHA256 over `tijdstempel.body` met de sleutel van het tabblad Koppeling) * `POST /wp-json/peptidewinkel/v1/affiliate-visit` (affiliate-bezoek registreren) * `POST /wp-json/peptidewinkel/v1/affiliate-info` (slug, tarieven en cookieduur voor het affiliate-dashboard) Vraagt de frontend niets op of is de plugin niet actief, dan valt de storefront terug op de ingebouwde configuratie; er breekt dus niets. == Installatie == 1. Kopieer de map `pw-companion` naar `/wp-content/plugins/`. 2. Activeer de plugin in WordPress. 3. Beheer de configuratie onder **Peptidewinkel** in het admin-menu. 4. Kopieer de sleutel van **Peptidewinkel → Contactformulier → Koppeling** naar het beheerpaneel (Instellingen → WordPress → Contactformulier secret) en draai daar `php artisan settings export --env-file=.dev.vars`. 5. Verwijder een eventueel Code Snippets-snippet dat dezelfde contactroute registreerde; de plugin neemt dat over. 6. Had u de losse plugin "Peptidewinkel – SliceWP bridge" actief? Verwijder die ook; de affiliate-koppeling zit nu in deze plugin. == Changelog == = 2.1.1 = * Opgelost: de plugin liet wp-admin crashen met "Call to undefined method PW_Companion_Contact::unread_count()". Die methode ontbrak, terwijl het admin-menu hem gebruikte voor het teller-bubbeltje bij Contactformulier. De methode bestaat nu en het menu kan er nooit meer op stuklopen. = 2.1.0 = * SliceWP-koppeling toegevoegd: affiliate-bezoeken, commissies op betaalde bestellingen, afwijzen bij annulering, zelfverwijzingscontrole, en de affiliate-info voor het dashboard. Met eigen instellingen, sleutel en status. * Eén gedeelde ondertekeningscontrole voor alle ondertekende routes. * Na een update worden tabellen en sleutels automatisch bijgewerkt. = 2.0.0 = * Contactformulier toegevoegd: ondertekende inzendingen naar WPForms, een eigen inzendingenoverzicht, instellingen en de koppeling met het beheerpaneel. * De plugin is nu één pakket voor configuratie, loyalty en contact. = 1.0.0 = * Peptidewijzer, loyalty-configuratie en het wijzer-logboek.