logo
logo

Na betaling gebruikers aanmaken in WordPress

Vanaf Paytium 2.1 kun je gebruikers aanmaken na een geslaagde betaling, met informatie uit het betaalformulier. Velden van type name en email gebruikt voor de WordPress gebruiker, er wordt een notificatie naar de admin en de nieuwe gebruiker gemaild, en extra informatie (zoals NAW gegevens) worden opgeslagen als user meta. Dit betekent dat het echt een volledige WordPress gebruiker is, die je ook kunt benaderen en gebruiken met andere plugins die omgaan met WordPress gebruikers.
  • Het formulier heeft minimaal velden van type name en email.
  • Naast de standaard velden kun je een onbeperkt aantal andere velden aanmaken die als gebruikersinformatie in de database en bij de WordPress gebruiker opgeslagen worden. Denk aan NAW gegevens, voorkeuren, opmerkingen van de gebruiker en noem maar op.
  • Alle velden die je als gebruikersinformatie wilt gebruiken moet je de waarde geven user_data="true", ook bij de name en email velden
  • Met de plugin User Meta kun je vervolgens registratie en profiel pagina’s maken waar de extra gegevens ook zichtbaar zijn
Voorbeeld van een formulier met de benodigde velden:
[paytium name="Your webshop name" description="Your product or description" button_label="Pay"]
[paytium_field type="email" label="Email" required="true"  user_data="true" /]
[paytium_field type="name" label="Name" required="true" user_data="true"/]
[paytium_field type="text" label="Address" required="true" default="Laanse straatweg" user_data="false" /]
[paytium_field type="text" label="Postcode" required="true" default="1234ZY" user_data="true" /]
[paytium_field type="text" label="City" required="true" default="StadDorp" user_data="true" /]
[paytium_field type="text" label="Country" required="true" default="Lagelanden" user_data="true" /]
[paytium_field type="label" label="Product ABC for €19,95" amount="19,95" /][paytium_total /]
[/paytium]

WordPress registratie aanpassen

Als je met Paytium een gebruiker aanmaakt zal WordPress die gebruiker een mail sturen. Het kan zijn dat je die mail of de inlog pagina waarop de gebruiker moet inloggen, wilt aanpassen. Misschien wil je ook de “verzender” van die mail aanpassen? Dat kan allemaal.

WordPress roles aanmaken en toewijzen

Optioneel kun je ook een gebruiker direct aan bepaalde “WordPress role” meegeven. Als die role nog niet bestaat, dan zal Paytium deze aanmaken. Dit kun je doen met de volgende code: [paytium_user_data role="role-slug" /].  Dit werkt heel handig in combinatie met Paytium Memberships, als je content op de site alleen wilt tonen aan gebruiker met of zonder een bepaalde rol. Je volledige shortcode ziet er dan zo uit:

[paytium name="Your webshop name" description="Your product or description" button_label="Pay"]
[paytium_user_data role="role-slug" /]
[paytium_field type="email" label="Email" required="true"  user_data="true" /]
[paytium_field type="name" label="Name" required="true" user_data="true"/]
[paytium_field type="text" label="Address" required="true" default="Laanse straatweg" user_data="false" /]
[paytium_field type="text" label="Postcode" required="true" default="1234ZY" user_data="true" /]
[paytium_field type="text" label="City" required="true" default="StadDorp" user_data="true" /]
[paytium_field type="text" label="Country" required="true" default="Lagelanden" user_data="true" /]
[paytium_field type="label" label="Product ABC for €19,95" amount="19,95" /][paytium_total /]
[/paytium]

Voor de role="role-slug" moet je echt de slug van de user role gebruiker, niet de naam. Als je zelf een role aangemaakt hebt, zijn die meestal hetzelfde. Maar als je een plugin gebruikt voor het aanmaken van de role, of als je de role uit een andere plugin wilt gebruiken in het Paytium formulier, dan kan de slug van de role anders zijn dan de naam van de role. Controleer dit dus even in die andere plugin. Bijvoorbeeld bij ultimate member staat voor iedere slug “um_”. Dus als je wilt dat gebruikers role “Member” krijgen is de slug “um_member”.

FAQ : De gebruikersrollen worden niet toegekend.

Scenario: Je wilt een functionaliteit toepassen waarbij een gebruikerssrol wordt toegekend na betaling. Dit om daarna content af te schermen op basis van rollen met Ultimate Member. De rechten worden wel toegekend maar deze kunnen niet gebruikt worden om de content op te filteren/blokkeren. De nieuw aangemaakte gebruikers krijgen wel een rol toegekend maar bestaande gebruikers alleen de rechten.

Oplossing:
  • Belangrijk is om [paytium\_user\_data role=”betaald” /] niet te overschrijven.
  • Als je 2 rollen wilt toewijzen, heb je slechts 1 shortcode nodig met rollen gescheiden door komma’s!
  • Let op je content Zie : Paytium Memberships -> De shortcode -> Gebruikersrol

Gegevens betaling bij user meta

Naast de met user_data="true" gemarkeerde velden zal Paytium ook automatisch enkele gegevens van de betaling bij de user meta opslaan.
  • paytium_customer_id – klant nummer van Mollie (in het dashboard onder “Klanten”)
  • paytium_description – omschrijving van het formulier waar betaling vandaan kwam
  • paytium_amount – totaalbedrag van de betaling
  • paytium_mollie_transaction – transactie ID van Mollie (zichtbaar in Mollie dashboard)
  • paytium_payment_id – betaling ID van Paytium (onder Paytium > Betalingen, ook bekend als post ID)

Profielen aanmaken met User Meta

Op basis van het formulier slaat Paytium straks bij geslaagde betalingen de gegevens van de user op als WordPress user. Afhankelijk van de velden van het formulier (als je het formulier ingrijpend wijzigt zal dit dus ook gevolgen hebben voor hoe de data in de database opgeslagen is!). Met de plugin User Meta kun je vervolgens in de WordPress admin bij User Meta > Forms bijvoorbeeld een Edit Profile formulier aanmaken, en daar de extra velden uit Paytium tonen. Zodra er een geslaagde betaling is in de database, zal User Meta die data herkennen. Je opent dan User Meta > Forms > Jouw formulier en klikt rechts “Extra fields” en selecteert het veld type dat je wilt gebruiken (bijvoorbeeld Textbox). Bij Field Label kan je een gewenste naam voor dat veld invoeren, bijvoorbeeld dezelfde naam/label als in het Paytium formulier met ‘paytium_’ ervoor. Voor de data uit Paytium is het eigenlijk alleen maar vereist dat de exacte naam van het veld (bijvoorbeeld Land) in het Paytium formulier, ook ingevuld wordt bij “Meta Key” in het User Meta formulier met het voorvoegsel ‘paytium_’. Dan zal User meta die data tonen in het formulier.

Data bij Gebruikers > Alle gebruikers tonen

De extra data voor gebruikers kun je ook in de tabel met gebruikers weergeven bij WordPress admin > Gebruikers > Alle gebruikers. Het meest eenvoudige is om dit te doen met Admin Columns. Maar je kunt dit ook met wat PHP code doen, zie het voorbeeld hieronder.
  • Nadat je die plugin hebt geinstalleerd, ga je naar Gebruikers > Alle gebruikers en klik je op de nieuwe knop “Kolommen bewerken”.
  • Klik in het nieuwe scherm op “+ Kolom toevoegen”.
  • Selecteer bij “Type” de optie Custom veld (onder groep Extra velden).
  • Vul bij ‘Label’ de gewenste naam van het veld in (bijvoorbeeld hetzelfde zoals in het Paytium formulier).
  • Zoek in de dropdown bij ‘Veld’ naar de custom meta die door Paytium is toevoevoegd.
  • Klik op ‘Bijwerken’ onderaan dat overzicht.
  • Klik op ‘Bekijk’ bovenaan dat scherm en nu zie je het kolom met de Paytium data ook staan in de tabel met Gebruikers.
Als je dit liever met PHP code doet, dan kun je de onderstaande code aanpassen voor jou situatie.
// Kolommen toevoegen aan tabel met gebruikers
function paytium_add_user_columns($column) {
$column['school_naam'] = 'School naam';
$column['school_plaats'] = 'School plaats';

return $column;
}
add_filter( 'manage_users_columns', 'paytium_add_user_columns' );

// De data voor kolommen toevoegen
function paytium_add_user_column_data( $val, $column_name, $user_id ) {
$user = get_userdata($user_id);

switch ($column_name) {
case 'school_naam' :
return get_user_meta($user_id, 'Naam van school', true);
break;
case 'school_plaats' :
return get_user_meta($user_id, 'Plaats van school', true);
break;
default:
}
return;
}
add_filter( 'manage_users_custom_column', 'paytium_add_user_column_data', 10, 3 );

Technisch: waar staat de data in de database

De extra velden worden als user meta opgeslagen in de usermeta tabel van WordPress, met formaat paytium_naam_van_veld. De basis van de key is de “label” of naam van het veld in het Paytium formulier. Er wordt een prefix ‘paytium_’ toegevoegd, spaties worden vervangen met underscores ‘_’ en alles wordt omgebouwd tot kleine letters.

Technisch: code draaien nadat een gebruiker is aangemaakt

Het kan zijn dat je je eigen code wilt “draaien” nadat een gebruiker is aangemaakt. Dan kan dan het beste op de action paytium_after_paytium_user_data_processing. Er is ook een hook direct nadat de status van de betaling wordt geupdate in Paytium, maar die vindt te vroeg plaats, de gebruiker is dan misschien nog niet aangemaakt.

Technisch: hook gebruiken na geslaagde betaling elders account aanmaken

Je wilt na een geslaagde betaling via Paytium, in neem bijvoorbeeld de plugin WP eMember, automatisch een account voor een klant laten aanmaken en dat niet in WP zelf maar in de plugin WP eMember ? Yes you can. Je kan de volgende hook gebruiken: Voeg vervolgens je code toe om een gebruiker aan te maken in WP eMember na een geslaagde betaling: Code:
add_action( 'paytium_after_full_payment_saved', 'create_emember', 10, 1 );
function create_emember($payment_post_id) {
$payment_field_data = get_post_meta( $payment_post_id, null, true ); //
get all payment data from postmeta DB table
// Your code here
}

FAQ: Hoe voorkom ik de aanmaak van spam onechte gebruikers in mijn site??

Situatie: Alles werkt naar behoren maar je krijgt alleen heel veel spam aanmeldingen en worden er zo ook nieuwe gebruikers aangemaakt in WordPress. In deze scenario moet er altijd eerst alle verplichte velden ingevuld worden, vervolgens afgerekend worden om een gebruiker te worden. Desondanks melden er steeds nieuwe spam gebruikers op je website. Het kan een bot zijn en er vind een PHP foutmelding plaats wanneer de betaling naar Mollie gestuurd wordt. Dus als je PHP error logs hebt die even nakijken. Je mag jezelf ook het volgende afvragen: Wanneer is de spam begonnen is. Of dat direct is gebeurd nadat je de Paytium formulier had toegevoegd. Of je gemaakte betalingen (met enige status) gerelateerd aan deze gebruikers, ziet. Of de betalingen verwijderd zijn of nooit gemaakt zijn. Of er andere registratieformulieren dan het Paytium-formulier op de site zijn.
Is je site Spam protected?

Raadpleeg volgende links. Het is aangeraden om ze te installeren.
https://www.projecthoneypot.org/
https://wordpress.org/plugins/akismet/

Wat je ook kan doen:
Raadpleeg het/je WordPress log-in scherm : Daar waar een automatische link staat vanuit WordPress om te registreren, re-direct deze link naar je inschrijf pagina, wellicht is het handig gebruik te maken van een redirect plugin.

iDEAL + WordPress nieuws

één email per maand • informatief • eenvoudig afmelden

Please wait...

Bedankt, je bent succesvol toegevoegd aan de nieuwsbrief!

WordPress expert

Paytium is ontwikkeld door David de Boer

Het bedrijf bekijkt de technologische ontwikkelingen vanuit het oogpunt van de eindgebruiker. Het accent ligt op toegankelijkheid en gebruikers mogelijkheden.

Mail gerust naar support@paytium.nl