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 worden 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
  • Gebruik afhankelijk van je specifieke behoefte, een user meta plugin waar je vervolgens de registratie en profiel pagina’s kan aanmaken waar de extra gegevens ook zichtbaar zijn. (Bekijk ook -> Gebruikers aanmaken met Paytium – afgeschermd leden gedeelte / andere sites content > er zijn verschillende plugins om te gebruiken die rekening houden met gebruikers-rollen, en die werken dan ook samen met de WordPress gebruikers die Paytium na een betaling heeft aangemaakt)
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. Als je ervoor kiest om verdere aanpassingen door te voeren in een email zoals “verzender” aanpassen, de gehele mail registratie aanpassen, WordPress login aanpas en ervoor zorgen dat je email in de ongewenste map terecht moment of als spam gemarkeerd wordt, kan dat allemaal. Enkele plugins die je kunt bekijken zijn Hide Admin Bar for Non-Admins en Custom Login Page Customizer, Login Press. Of handmatig per gebruiker aanpassen of of het toevoegen van een stukje PHP-code aan het functions.php thema bestand Tips -> Emails in ongewenste map & Spam voorkomen  

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

Paytium -> Settings -> Advanced -> Allowed User Roles – gebruikersrollen toekennen aan een gebruiker die door de shortcode paytium_user_data wordt aangemaakt.

Vanaf Paytium 5.0.4 (aangeraden wordt WP 7.1) is er een nieuwe instelling toegevoegd voor wanneer een rol met beheerdersbevoegdheden wordt toegekend.

Code:
[paytium_user_data role= "role_with_admin_capabilities" /]

Nieuw locatie instelling
Paytium > Settings > Advanced > Allowed User Roles > waarbij je de doelomschrijving moet plaatsen.

Toegestane gebruikersrollen met beheerdersbevoegdheden
Wanneer er een rol met specifieke beheerdersbevoegdheden wordt toegewezen, is hiervoor de nieuwe instelling beschikbaar gemaakt.

Opties
Opties voor E-mails overschrijven zijn ‘default’ of ‘admin email’
Indien ingesteld, overschrijven deze twee opties de standaardnaam en het e-mailadres in de ‘From’-header van e-mails die door WordPress worden verzonden.

Gebruikersrollen
Bepaalt welke gebruikersrollen de paytium_user_data-shortcode mag toekennen aan een gebruiker die door de shortcode wordt aangemaakt.

Belangrijk
  • Toegestane gebruikersrollen door komma’s gescheiden lijst van ‘role slugs’ , die de shortcode paytium_user_data kan toewijzen, bovenop de rollen die standaard zijn toegestaan.
  • Paytium wijst automatisch elke rol toe die niet over beheerdersrechten beschikt, inclusief aangepaste rollen die door andere plugins zijn toegevoegd.
  • Let OP : Voeg hier alleen een rol toe als deze over dergelijke mogelijkheden beschikt en je toch wilt dat betalingen deze rol toekennen.
  • Let OP : De hier vermelde rollen kunnen je site beheren, dus wijs ze zorgvuldig toe.
  • Rollen op deze site: administrator, editor, author, contributor, subscriber, shop_manager, shop_accountant , shop_ worker , shop_vendor, brons, leden, custom

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:

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!). Als het doel is om een gebruikersprofiel aan te maken in een van user meta plugin en Paytium usermeta-velden weer te geven, dan wordt Ultimate Member waarschijnlijk een betere keuze, omdat je dit in de gratis versie kunt doen. Met de plugin kun je vervolgens in de WordPress admin bij Forms bijvoorbeeld een Edit Profile formulier aanmaken, en daar de extra velden uit Paytium tonen. Zodra er een geslaagde betaling is in de database, wordt die data herkent. Je opent dan 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 formulier met het voorvoegsel ‘paytium_’. De data wordt dan getoond 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