Na betaling gebruikers aanmaken in WordPress
Vanaf Paytium 2.1 kun je gebruikers aanmaken na een geslaagde betaling, met informatie uit het betaalformulier.Op deze pagina:
- WordPress registratie aanpassen
- WordPress roles aanmaken en toewijzen
- Paytium -> Settings -> Advanced -> Allowed User Roles – gebruikersrollen toekennen aan een gebruiker die door de shortcode paytium_user_data wordt aangemaakt.
- FAQ : De gebruikersrollen worden niet toegekend.
- Gegevens betaling bij user meta
- Profielen aanmaken met User Meta
- Data bij Gebruikers > Alle gebruikers tonen
- Technisch: waar staat de data in de database
- Technisch: code draaien nadat een gebruiker is aangemaakt
- Technisch: hook gebruiken na geslaagde betaling elders account aanmaken
- FAQ: Hoe voorkom ik de aanmaak van spam onechte gebruikers in mijn site??
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
nameenemail. - 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 denameenemailvelden - 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)
[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 voorkomenWordPress 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_datakan 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:- Belangrijk is om 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 > tab Gebruikersrol
Gegevens betaling bij user meta
Naast de metuser_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.
// 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 actionpaytium_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
}
