Ultimate Member registratieformulier koppelen aan MailPoet

Vraag:

Hoe koppel je Ultimate Member aan MailPoet?Je hebt een website met de plugin Ultimate Member zodat gebruikers zich kunnen registreren. Deze gebruikers krijgen vervolgens toegang tot afgeschermde content. Per pagina of bericht kan je met Ultimate Member aangeven of mensen hiervoor in moeten loggen.

Voor het versturen van nieuwsbrieven maak je gebruik van MailPoet. Om jouw lijst met abonnees uit te breiden wil je het registratieformulier uitbreiden met de mogelijkheid dat mensen zich meteen kunnen abonneren. Een checkbox is hiervoor de beste oplossing.

Hoe verbind je Ultimate Member met MailPoet?

Antwoord:

Ultimate Member heeft geen optie om ingevulde gegevens op het registratieformulier door te geven aan MailPoet. Ook MailPoet heeft geen integratie optie met Ultimate Member.

De oplossing is daarom om een stukje maatwerk PHP code toe te voegen aan het functions.php bestand van jouw child thema. Heb je geen child thema dan kan je ook gebruik maken van een drop-in plugin.

Stap 1:

Voeg in Ultimate Member > Forms > Registration een checkbox veld toe met als titel “ik wil de nieuwsbrief ontvangen”.

Geef dit veld als meta_key de naam “subscribe_newsletter”.

De meta_key wordt gebruikt om in de database het antwoord van het veld op te slaan. Zo kan je het later weer ophalen.

> Meld je meteen ook aan voor mijn nieuwsbrief 😉

Stap 2:

Voeg onderstaande PHP code toe aan het functions.php bestand.

function custom_um_update_user_data($user_id, $args) {
    // Add the user to Mailpoet if needed.
    if(!isset($args['subscribe_newsletter']) || '' == $args['subscribe_newsletter'])) {
       return false;
    }

    if (!class_exists(\MailPoet\API\API::class)) {
        return false;
    }

    $mailpoet_api = \MailPoet\API\API::MP('v1');

    // List the list id where to the subscriber must be added.
    $list_ids = array(1);

    // Build up Subscriber block.
    $subscriber = array('email' => sanitize_text_field($args['user_email'], 
                        'first_name' => sanitize_text_field($args['first_name']), 
                        'last_name' => sanitize_text_field($args['last_name']));

    // Check if subscriber exists. If subscriber doesn't exist an exception is thrown but we ignore it.
    try {
        $get_subscriber = $mailpoet_api->getSubscriber($subscriber['email']);
    } catch (\Exception $e) { }

    try {
        if (!$get_subscriber) {
            $mailpoet_api->addSubscriber($subscriber, $list_ids);
        } else {
            $mailpoet_api->subscribeToLists($subscriber['email'], $list_ids);
        }
    } catch (\Exception $e) {
        $error_message = $e->getMessage();
    }
}
add_action("um_registration_complete", "custom_um_update_user_data", 10, 2);

Stap 3:

Upload functions.php naar de server waar jouw website staat. Test de functionaliteit.

Tips om MailPoet goed te testen:

  • Het beste kan je testen met een e-mailadres dat nog niet geregistreerd is in MailPoet.
  • Een e-mailadres dat in de Prullenbak van MailPoet staat zal hetzelfde behandelt worden als een e-mailadres dat lid is van een lijst.
  • Je kan natuurlijk altijd jouw eigen e-mailadres een aantal keren verwijderen.

> Bekijk mijn andere MailPoet blogs

Laat een reactie achter

Your email address will not be published. Required fields are marked *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.