Last updated on October 18, 2023

WP Forms email confirmation

Don’t know where to add this snippet? Read our guide: How to add code snippets.

Implement email confirmation for submissions.

To add email confirmation functionality to WP Forms, you can use the wpforms_process_complete hook along with a custom PHP function. This will allow you to send a confirmation email to the user after they submit a form.

Here’s an example code snippet that demonstrates how to achieve this:

function wpsnippets_send_confirmation_email($fields, $entry, $form_data) {
    // Get the user's email address from the form submission
    $user_email = $fields['email']['value'];

    // Set up the email subject and message
    $subject = 'Thank you for your form submission';
    $message = 'Dear user, thank you for submitting the form.';

    // Send the confirmation email
    wp_mail($user_email, $subject, $message);
}
add_action('wpforms_process_complete', 'wpsnippets_send_confirmation_email', 10, 3);

In this code snippet, we define a custom PHP function wpsnippets_send_confirmation_email that takes three parameters: $fields, $entry, and $form_data. These parameters contain the form submission data.

Inside the function, we retrieve the user’s email address from the form submission using $fields['email']['value']. You may need to adjust this depending on the field name and structure of your form.

Next, we set up the email subject and message that will be sent to the user. You can customize these to fit your needs.

Finally, we use the wp_mail() function to send the confirmation email to the user’s email address.

By adding this code snippet to your WordPress theme’s functions.php file or a custom plugin, you can enable email confirmation for WP Forms.

Examples

Example 1: Adding Email Confirmation Field to WP Forms

This example demonstrates how to add an email confirmation field to a WP Forms form. The code snippet adds a new field to the form and validates that the email and email confirmation fields match before submitting the form.

/**
 * Add email confirmation field to WP Forms form.
 */
function wpsnippets_add_email_confirmation_field( $fields ) {
    $fields['email_confirmation'] = array(
        'label' => 'Confirm Email',
        'type' => 'email',
        'required' => true,
        'error_message' => 'Email confirmation does not match.',
        'validators' => array(
            'email_confirmation' => 'wpsnippets_validate_email_confirmation',
        ),
    );
    return $fields;
}
add_filter( 'wpforms_form_fields', 'wpsnippets_add_email_confirmation_field' );

/**
 * Validate email confirmation field.
 */
function wpsnippets_validate_email_confirmation( $value, $field ) {
    $email_field_id = $field['id'];
    $email_confirmation_field_id = str_replace( '_confirmation', '', $email_field_id );
    $email_confirmation_value = isset( $_POST[ $email_confirmation_field_id ] ) ? sanitize_email( $_POST[ $email_confirmation_field_id ] ) : '';

    if ( $value !== $email_confirmation_value ) {
        wpforms()->process->errors[ $field['id'] ] = $field['error_message'];
    }

    return $value;
}

The wpsnippets_add_email_confirmation_field function adds a new email confirmation field to the WP Forms form. The field is required and has a custom error message. The wpsnippets_validate_email_confirmation function validates that the email confirmation field matches the original email field and displays an error message if they do not match.

Example 2: Customizing Email Confirmation Error Message

This example demonstrates how to customize the error message displayed when the email confirmation field does not match the original email field.

/**
 * Customize email confirmation error message.
 */
function wpsnippets_customize_email_confirmation_error_message( $errors, $form_data ) {
    $errors['email_confirmation'] = 'The email confirmation does not match the original email. Please try again.';
    return $errors;
}
add_filter( 'wpforms_process_errors', 'wpsnippets_customize_email_confirmation_error_message', 10, 2 );

The wpsnippets_customize_email_confirmation_error_message function customizes the error message displayed when the email confirmation field does not match the original email field. It replaces the default error message with a more user-friendly message.

Example 3: Conditional Logic Based on Email Confirmation Field

This example demonstrates how to use the value of the email confirmation field in conditional logic within WP Forms.

/**
 * Perform conditional logic based on email confirmation field.
 */
function wpsnippets_perform_email_confirmation_conditional_logic( $fields, $form_data ) {
    $email_confirmation_value = isset( $_POST['email_confirmation'] ) ? sanitize_email( $_POST['email_confirmation'] ) : '';

    if ( $email_confirmation_value === 'example@example.com' ) {
        $fields['other_field']['visible'] = false;
    }

    return $fields;
}
add_filter( 'wpforms_frontend_form_fields', 'wpsnippets_perform_email_confirmation_conditional_logic', 10, 2 );

The wpsnippets_perform_email_confirmation_conditional_logic function performs conditional logic based on the value of the email confirmation field. In this example, if the email confirmation field value is ‘example@example.com’, the visibility of another field (‘other_field’) is set to false, hiding it from the form.

Last updated on October 18, 2023. Originally posted on January 12, 2024.

Leave a Reply

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