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 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”.

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. 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. 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.

iDEAL + WordPress nieuws

één email per maand • informatief • eenvoudig afmelden

Please wait...

Bedankt, je bent succesvol toegevoegd aan de nieuwsbrief!

WordPress expert

Paytium is een project van WordPress expert David de Boer, iDEAL specialist sinds 2008.

Mail gerust naar david@paytium.nl