|
@@ -28,97 +28,54 @@ valt buiten de bestaande Cloudflare Cache Rules (die matchen op
|
|
|
er alleen nooit aan toe.
|
|
er alleen nooit aan toe.
|
|
|
|
|
|
|
|
|
|
|
|
|
-⚠️⚠️ TEST EERST OF DIE BEVESTIGINGSMAIL AANKOMT — er is reden tot twijfel
|
|
|
|
|
-------------------------------------------------------------------------
|
|
|
|
|
-Gemeten 2026-09-21 over de hele database (tid 1, een oude restterm, niet
|
|
|
|
|
-meegeteld):
|
|
|
|
|
|
|
+BEVESTIGINGSMAIL — waarom die er voor de app NIET is
|
|
|
|
|
+-----------------------------------------------------
|
|
|
|
|
+De drie nieuwsbrieven staan op opt-in/out-methode **Double**. Simplenews
|
|
|
|
|
+omschrijft die stand zelf zo:
|
|
|
|
|
+
|
|
|
|
|
+ "Double: When (un)subscribing at a subscription form, anonymous users
|
|
|
|
|
+ receive an (un)subscription confirmation email. Authenticated users
|
|
|
|
|
+ are (un)subscribed immediately."
|
|
|
|
|
+
|
|
|
|
|
+Bevestiging geldt dus alleen voor ANONIEME bezoekers. Een app-gebruiker is
|
|
|
|
|
+per definitie ingelogd en wordt direct (un)subscribed — net als op
|
|
|
|
|
+/user/<uid>/simplenews. Daarom staat `custom_nieuwsbrieven_confirm` op
|
|
|
|
|
+FALSE: zo doet de app exact hetzelfde als de website.
|
|
|
|
|
+
|
|
|
|
|
+Dit verklaart ook het cijfer dat eerder verdacht leek. Gemeten over de hele
|
|
|
|
|
+database (tid 1, een oude restterm, niet meegeteld):
|
|
|
|
|
|
|
|
anoniem (uid 0) met account (uid > 0)
|
|
anoniem (uid 0) met account (uid > 0)
|
|
|
status 1 0 45
|
|
status 1 0 45
|
|
|
status 0 0 3
|
|
status 0 0 3
|
|
|
status 2 450 0
|
|
status 2 450 0
|
|
|
|
|
|
|
|
-Dus: van de 450 anonieme inschrijvingen via de publieke formulieren is er
|
|
|
|
|
-in TIEN JAAR (2015-12 t/m 2025-12, gestaag verspreid — geen eenmalige
|
|
|
|
|
-import) GEEN ENKELE ooit bevestigd. Bij een werkende bevestigingsmail zou
|
|
|
|
|
-je 30-70% verwachten, niet 0%.
|
|
|
|
|
-
|
|
|
|
|
-De inschrijvingen mét account staan allemaal meteen goed, en dat is ook
|
|
|
|
|
-logisch: die liepen via /user/<uid>/simplenews, en dat pad gebruikt
|
|
|
|
|
-confirm=FALSE en stuurt dus nooit een mail. Met andere woorden: het enige
|
|
|
|
|
-pad dat wél een bevestigingsmail stuurt, is ook precies het pad waar nooit
|
|
|
|
|
-iemand doorheen komt.
|
|
|
|
|
-
|
|
|
|
|
-Dat kan twee dingen betekenen: de mail wordt niet bezorgd, of de
|
|
|
|
|
-bevestigingslink werkt niet. De mailconfiguratie zelf oogt in orde
|
|
|
|
|
-(smtp_on = 1, mailsystem delegeert naar mimemail, geen reroute_email,
|
|
|
|
|
-afzender contact@uitgaanskrant.com) en de watchdog bevat geen mailfouten —
|
|
|
|
|
-maar die is grotendeels leeg, dus dat bewijst niets.
|
|
|
|
|
-
|
|
|
|
|
-WAAROM DIT ERTOE DOET: zet je bevestiging aan voor de app zonder dit te
|
|
|
|
|
-testen, dan zet de gebruiker de switch aan, gebeurt er verder niets, en
|
|
|
|
|
-blijft het abonnement voor eeuwig op status 2 staan. Precies wat die 450
|
|
|
|
|
-nu doen.
|
|
|
|
|
-
|
|
|
|
|
-TEST (schrijft wel, en verstuurt een echte mail — daarom niet door Claude
|
|
|
|
|
-gedraaid):
|
|
|
|
|
-
|
|
|
|
|
- # 1. abonneer jezelf MET bevestiging op de bezoekersnieuwsbrief
|
|
|
|
|
- drush @uitgaanskrant.com php-eval \
|
|
|
|
|
- "simplenews_subscribe_user('JOUW@MAIL.NL', 36667, TRUE, 'test');"
|
|
|
|
|
-
|
|
|
|
|
- # 2. check de status — hoort 2 te zijn
|
|
|
|
|
- drush @uitgaanskrant.com sql-query \
|
|
|
|
|
- "SELECT s.tid, s.status FROM simplenews_subscription s
|
|
|
|
|
- INNER JOIN simplenews_subscriber sub ON sub.snid=s.snid
|
|
|
|
|
- WHERE sub.mail='JOUW@MAIL.NL';"
|
|
|
|
|
-
|
|
|
|
|
- # 3. komt de mail aan? klik de link. Daarna moet stap 2 status 1 geven.
|
|
|
|
|
-
|
|
|
|
|
- # 4. opruimen
|
|
|
|
|
- drush @uitgaanskrant.com php-eval \
|
|
|
|
|
- "simplenews_unsubscribe_user('JOUW@MAIL.NL', 36667, FALSE, 'test');"
|
|
|
|
|
-
|
|
|
|
|
-Komt de mail NIET aan, dan is dat eerst een mailprobleem om op te lossen —
|
|
|
|
|
-en zolang dat niet opgelost is, is `custom_nieuwsbrieven_confirm` op 0
|
|
|
|
|
-(direct abonneren, geen mail) de enige variant die voor de gebruiker
|
|
|
|
|
-werkt. De code hieronder ondersteunt beide zonder wijziging.
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-BEVESTIGINGSMAIL — hoe je dit aanpast
|
|
|
|
|
---------------------------------------
|
|
|
|
|
-Staat AAN (Bob 2026-09-21). Concreet gedrag:
|
|
|
|
|
-
|
|
|
|
|
- ABONNEREN -> simplenews zet het abonnement op status 2 (onbevestigd)
|
|
|
|
|
- en mailt een link. Pas na het klikken wordt het status 1
|
|
|
|
|
- en ontvangt de gebruiker de nieuwsbrief.
|
|
|
|
|
- UITSCHRIJVEN-> gaat ALTIJD direct, zonder mail. Bewust: met bevestiging
|
|
|
|
|
- zou de gebruiker in de app op 'uit' drukken en tóch
|
|
|
|
|
- abonnee blijven tot hij een mail opent. Dat is slechte UX
|
|
|
|
|
- en juridisch precies de verkeerde kant op — afmelden moet
|
|
|
|
|
- makkelijker zijn dan aanmelden.
|
|
|
|
|
-
|
|
|
|
|
-Omzetten naar 'direct abonneren, geen mail' kan zonder codewijziging:
|
|
|
|
|
- drush @uitgaanskrant.com vset custom_nieuwsbrieven_confirm 0
|
|
|
|
|
-Terug naar bevestiging:
|
|
|
|
|
|
|
+Precies de tweedeling die de Double-stand voorschrijft: anoniem gaat naar
|
|
|
|
|
+status 2 (wacht op de bevestigingslink), ingelogd gaat meteen naar 1. Geen
|
|
|
|
|
+kapotte mailroute. Wel blijft staan dat van die 450 anonieme inschrijvingen
|
|
|
|
|
+er in tien jaar nul zijn bevestigd — dat is een lage conversie op de
|
|
|
|
|
+publieke formulieren en misschien ooit een eigen kijkje waard, maar het
|
|
|
|
|
+raakt de app niet.
|
|
|
|
|
+
|
|
|
|
|
+WIL JE HET TOCH MET BEVESTIGING (dan blijft het abonnement op status 2 tot
|
|
|
|
|
+de gebruiker op de link klikt — de app toont die stand al):
|
|
|
|
|
+ drush @uitgaanskrant.com vset custom_nieuwsbrieven_confirm 1
|
|
|
|
|
+Terug naar direct abonneren:
|
|
|
drush @uitgaanskrant.com vdel custom_nieuwsbrieven_confirm
|
|
drush @uitgaanskrant.com vdel custom_nieuwsbrieven_confirm
|
|
|
|
|
|
|
|
-De TEKST van die bevestigingsmail is al Nederlands en staat in variabelen,
|
|
|
|
|
-te bewerken op /admin/config/services/simplenews (tab Subscription):
|
|
|
|
|
- simplenews_confirm_subscribe_subject
|
|
|
|
|
- "Bevestiging voor [simplenews-category:name] van [site:name]"
|
|
|
|
|
- simplenews_confirm_subscribe_unsubscribed
|
|
|
|
|
- "Wij hebben een verzoek ontvangen om [simplenews-subscriber:mail] in
|
|
|
|
|
- te schrijven op de [simplenews-category:name] nieuwsbrief …
|
|
|
|
|
- [simplenews-subscriber:subscribe-url]"
|
|
|
|
|
-De tekst noemt nu "de website op [site:url]" — dat klopt straks niet meer
|
|
|
|
|
-voor een aanmelding vanuit de app. Overweeg een neutralere formulering.
|
|
|
|
|
|
|
|
|
|
-⚠️ Deze instelling raakt ALLEEN de app. De website-pagina uit je screenshot
|
|
|
|
|
-(/user/<uid>/simplenews) heeft confirm=FALSE HARDCODED in simplenews zelf
|
|
|
|
|
-(includes/simplenews.subscription.inc regel 97) en stuurt dus nog steeds
|
|
|
|
|
-geen mail. Wil je dat gelijktrekken, dan is dat een aparte ingreep
|
|
|
|
|
-(hook_form_alter die dat submit-handler vervangt) — niet in deze patch.
|
|
|
|
|
|
|
+GEDRAG IN HET KORT
|
|
|
|
|
+-------------------
|
|
|
|
|
+ ABONNEREN -> direct actief (status 1), geen mail. Zie hierboven.
|
|
|
|
|
+ UITSCHRIJVEN -> altijd direct, zonder mail. Ook met bevestiging aan:
|
|
|
|
|
+ anders drukt de gebruiker in de app op "uit" en blijft
|
|
|
|
|
+ hij abonnee tot hij een mail opent. Afmelden hoort
|
|
|
|
|
+ makkelijker te zijn dan aanmelden, en "Double" schrijft
|
|
|
|
|
+ voor ingelogde gebruikers sowieso direct uitschrijven voor.
|
|
|
|
|
+
|
|
|
|
|
+⚠️ Deze instelling raakt ALLEEN de app. De website-pagina
|
|
|
|
|
+(/user/<uid>/simplenews) heeft confirm=FALSE hardcoded in simplenews zelf
|
|
|
|
|
+(includes/simplenews.subscription.inc regel 97); daar verandert niets aan.
|
|
|
|
|
|
|
|
|
|
|
|
|
=====================================================================
|
|
=====================================================================
|
|
@@ -295,11 +252,13 @@ function _custom_nieuwsbrieven_wijzig($tid, $aan) {
|
|
|
// Al actief? Niets doen. Anders stuurt simplenews bij confirm=TRUE tóch
|
|
// Al actief? Niets doen. Anders stuurt simplenews bij confirm=TRUE tóch
|
|
|
// een mail ("je bent al ingeschreven") bij elke dubbele tik.
|
|
// een mail ("je bent al ingeschreven") bij elke dubbele tik.
|
|
|
if ($huidig !== 1) {
|
|
if ($huidig !== 1) {
|
|
|
- // TRUE = bevestigingsmail, abonnement blijft op status 2 tot de
|
|
|
|
|
- // gebruiker op de link klikt.
|
|
|
|
|
- // FALSE = meteen actief, geen mail (wat de website zelf doet voor
|
|
|
|
|
- // ingelogde gebruikers).
|
|
|
|
|
- $confirm = (bool) variable_get('custom_nieuwsbrieven_confirm', TRUE);
|
|
|
|
|
|
|
+ // FALSE (default) = meteen actief, geen mail. Dit is wat de
|
|
|
|
|
+ // opt-in/out-methode "Double" voorschrijft: anonieme bezoekers
|
|
|
|
|
+ // krijgen een bevestigingsmail, ingelogde gebruikers worden
|
|
|
|
|
+ // direct (un)subscribed. Een app-gebruiker is altijd ingelogd.
|
|
|
|
|
+ // TRUE = bevestigingsmail; het abonnement blijft dan op status 2
|
|
|
|
|
+ // tot de gebruiker op de link klikt.
|
|
|
|
|
+ $confirm = (bool) variable_get('custom_nieuwsbrieven_confirm', FALSE);
|
|
|
simplenews_subscribe_user($account->mail, $tid, $confirm, 'app');
|
|
simplenews_subscribe_user($account->mail, $tid, $confirm, 'app');
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|