View Categories

Email verification with Emailable

You can add a feature to check whether a user’s email is fake or true. Using fluentform/validate_input_item_input_email & emailable API. You will need a true mail API key for this. Here is an example of the code:

add_filter('fluentform/validate_input_item_input_email', function ($default, $field, $formData, $fields, $form) {

    // You may change the following 3 lines
    $targetFormId = 140;
    $errorMessage = 'Looks like email is not correct'; // You may change here
    $emailableApiKey = 'live_b67c9cb0585e27dd256c';

    if ($form->id != $targetFormId) {
        return $default;
    }

    $fieldName = $field['name'];
    if (empty($formData[$fieldName])) {
        return $default;
    }
    $email = $formData[$fieldName];


    $request = wp_remote_get('https://api.emailable.com/v1/verify?email='.$email.'&api_key='.$emailableApiKey);

    if(is_wp_error($request)) {
        return $default; // request failed so we are skipping validation
    }

    $response = wp_remote_retrieve_body($request);

    $response = json_decode($response, true);

    if($response['state'] == 'deliverable') {
        return $default;
    }

    return $errorMessage;

}, 10, 5);

For details of the hook fluentform/validate_input_item_input_email check this documentation link.