Forminator Work Emails – Αποδοχή μόνο συγκεκριμένων καταλήξεων email

Δημοσιεύθηκε 26/09/2021

$forbitten_public_emails: Δηλώνουμε καταλήξεις που δεν θέλουμε να είναι αποδεκτές

$form_ids_arr: Id των forms που θέλουμε να ισχύει ο αποκλεισμός

/**
 * FORMINATOR WORK EMAILS
 */
add_filter('forminator_custom_form_submit_errors', function ($submit_errors, $form_id, $field_data_array) {

	// run check only for this ids
	$form_ids = array(100, 200);
	if(!in_array((int) $form_id, $form_ids)){
        return;
    }

    $email_field = 'email-1';
    $forbitten_public_emails = array('gmail', 'yahoo', 'hotmail', 'outlook');

    $email = isset($_POST[$email_field]) ? $_POST[$email_field] : false;
    if (!$email) {
        return $submit_errors;
    }

    list($user, $domain) = explode('@', $email);

    foreach ($forbitten_public_emails as $forbitten_public_email) {

        if (strpos($domain, $forbitten_public_email) !== false) {
            $submit_errors[][$email_field] = __('Please avoid using gmail, yahoo etc and use a work email instead');
            break;
        }
    }

    return $submit_errors;
}, 20, 3);