Implement the Iubenda Consent Database in Joomla with Convert Forms

This tutorial’ll guide you through integrating the Iubenda Consent Database with your Joomla forms using Convert Forms and the Iubenda HTTP API method. This process will help you manage user consent more effectively and ensure compliance with privacy regulations.

Step 1: Obtain Your Iubenda API Key

To start, you’ll need a private API Key from your Iubenda application dashboard. This key is essential for authenticating your requests to the Iubenda Consent Database.

Step 2: Configure the PHP Script in Convert Forms

Navigate to your form settings in Convert Forms and locate the PHP Scripts section. In the After Form Submission option, paste the following PHP snippet. Be sure to review and update all variables before the “DO NOT EDIT BELOW” line:

$formData = new Joomla\Registry\Registry($submission->params);

// Your Iubenda API Key
$apiKey = 'ENTER_YOUR_API_KEY_HERE';

// The name of the form
$form_name = 'Contact Form';

// The name of the field representing the submitter's email address
$submitter_email = $formData->get('email');

// The name of the field representing the submitter's name
$submitter_name  = $formData->get('name');

// Optionally set the name of the fields representing the Privacy Policy and Newsletter fields
$legal_notices = [
    'privacy_policy' => $formData->get('privacy_policy_field'),
    'newsletter'     => $formData->get('newsletter_field')
];

// DO NOT EDIT BELOW
$options = new Joomla\Registry\Registry;
$options->set('headers.ApiKey', $apiKey);
$options->set('headers.Content-Type', 'application/json');
$http = Joomla\CMS\Http\HttpFactory::getHttp($options);

$data = [
    'subject' => [
        'email' => $submitter_email,
        'full_name' => $submitter_name,
        'verified' => true
    ],
    'proofs' => [
        [
            'content' => json_encode($formData),
            'form' => $form_name
        ]
    ]
];

foreach ($legal_notices as $key => $value)
{
    $data['legal_notices'][] = [
        'identifier' => $key
    ];

    $data['preferences'][$key] = (bool) $value;
}

$response = $http->post('https://consent.iubenda.com/consent', json_encode($data));
$success = ($response->code >= 200 && $response->code <= 299) ? true : false;
$body = json_decode($response->body);

if (!$success)
{
    throw new Exception(isset($body->message) ? $body->message : 'Iubenda Error');
}

By following these steps, you can effectively integrate the Iubenda Consent Database with your Joomla forms using Convert Forms. This setup helps in collecting and storing user consent data securely and compliantly.

Last updated on Nov 26th 2024 12:11