This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Opt-In

Description

Provides features and functions to create an opt-in or double-opt in with contact form 7 (cf7) and other form plugins.

Save contacts

To store your contacts, please install the additional plugin called bin contact. This plugin assists you installing all the necessary dependencies.

Opt-In Function

BinOptIn::optIn($postdata, [
    'opt_in_admin_message' => false,
    'double_opt_in' => false,
    'admin_unlock' => false,
    'unlock_message' => false
]);
  • opt_in_admin_message
    (bool) Notify the site owner of any new contact, regardless of whether or not he has confirmed his e-mail address. Default false.

  • double_opt_in
    (bool) The contact must confirm the e-mail address by clicking on a confirmation link. Default false.

  • admin_unlock
    (bool) The site owner has to confirm every new contact by clicking on a confirmation link. This is useful if you want to show a list of contacts (like a committee or a list of supporters). Default false.

  • unlock_message
    (bool) This option allows you to specify whether the contact should receive a notification once the site owner has confirmed the committee subscription. Default false.

  • mailchimp_opt_in
    (bool) This option allows you to specify whether the contact will be forwarded to Mailchimp. Default false.

Accepted postdata

  • salutation
    (int) Default empty.

    • 0 (Mister)
    • 1 (Miss)
    • 2 (Other)
  • polite_form
    (int) Default empty.

    • 0 (Personally)
    • 1 (Formally)
  • language_of_correspondence
    (int) Check this functions to see a list of all available languages: BinContact::formLanguage() and BinContact::formLanguageValue()

  • name_suffix
    (string) Default empty.

  • first_name
    (string) Default empty.

  • last_name
    (string) Default empty.

  • designation
    (string) Default empty.

  • mobile
    (string) Default empty.

  • phone_private
    (string) Default empty.

  • phone_work
    (string) Default empty.

  • street_and_number
    (string) Default empty.

  • zip
    (string) Default empty.

  • city
    (string) Default empty.

  • country
    (string) Default empty.

  • website
    (string) Default empty.

  • facebook
    (string) Default empty.

  • twitter
    (string) Default empty.

  • instagram
    (string) Default empty.

  • flickr
    (string) Default empty.

  • linkedin
    (string) Default empty.

  • xing
    (string) Default empty.

  • youtube
    (string) Default empty.

  • socialmedia_other1
    (string) Default empty.

  • socialmedia_other2
    (string) Default empty.

  • socialmedia_other3
    (string) Default empty.

  • terms_and_conditions_accepted
    (string) Default empty.

    • empty (Not filled)
    • no (No)
    • yes (Yes)
  • privacy_policy_accepted
    (string) Default empty.

    • empty (Not filled)
    • no (No)
    • yes (Yes)
  • contact_group
    (string) Comma seperated list of contact_group taxonomy terms or ID’s. Default empty.

Integrate with Contact Form 7

Bin Opt-In works best with contact form seven. To integrate it into your contact forms, you need to add custom code like this to your theme functions.php.

add_action('wpcf7_before_send_mail', 'bin_opt_in_contact');
function bin_opt_in_contact($cf7)
{
    // Get current form id
    $formId = $cf7->id;

    // Array of form ids
    $forms = [159, 454];

    // Only apply to certain forms
    if(in_array($formId, $forms))
    {
        // Dont do anything if class is missing
        if(class_exists('BinOptIn'))
        {
            // At least, the email must be present
            if(is_email($_POST['email']))
            {
                // map salutation
                $salutationMap = [ 
                    'Frau' => 0,
                    'Madame' => 0,
                    'Mrs' => 0,
                    'Herr' => 1,
                    'Monsieur' => 1,
                    'Mr' => 1,
                    '*' => 2
                ];

                // assign form data with corresponding meta fields
                $postdata = [];
                $postdata['email'] = sanitize_email($_POST['email']);
                $postdata['first_name'] = sanitize_text_field($_POST['first_name']);
                $postdata['last_name'] = sanitize_text_field($_POST['last_name']);
                $postdata['salutation'] = $salutationMap[$_POST['salutation']];
                $postdata['terms_and_conditions_accepted'] = isset($_POST['terms_and_conditions_accepted']) ? 'yes' : '';

                // save contact
                BinOptIn::optIn($postdata, [
                    'opt_in_admin_message' => false,
                    'double_opt_in' => false,
                    'admin_unlock' => false,
                    'unlock_message' => false
                ]);
            }
        }
    }
}

Integrate with Contact Form 7 Multi-Step Pro

Save form data at every step by using the filter wpcf7_validate.

add_filter('wpcf7_validate', 'save_contact_step', 10, 2);
function save_contact_step($result, $tags)
{
    // Get current form id
    $formId = $_POST['_wpcf7'];

    // Array of form ids
    $forms = [159, 454];

    // Only apply to certain forms
    if(in_array($formId, $forms))
    {
        // Dont do anything if class is missing
        if(class_exists('BinOptIn'))
        {
            // save contact info here
            // BinOptIn::optIn()
        }
    }

    return $result;
}

Screenshots

  • Backend: Settings page

Installation

  1. Download, unzip and upload to your WordPress plugins directory
  2. Activate the plugin within you WordPress Administration Backend

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Opt-In” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Opt-In” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

  • Version 1.2.3
    • Image embedding removed: not supported by gmail
    • Translation corrections
  • Version 1.2.2
    • Minor bugfix
  • Version 1.2.2
    • Fix: fatal error if bin-contact is not installed
  • Version 1.2.0
    • New: Mailchimp integration
    • New: Add default settings on plugin activate
    • New: Text settings
    • New: Change button color
    • Fix: Wrong link to wpml translation page
    • Fix: Wrong installation path of bin-contact plugin
    • Fix: Missing hero background image
  • Version 1.1.0
    • New option for Social Share Buttons
    • BinOptIn_UrlLinker removed
    • Double-opt-in routing fix
    • Show additional content on confirmation page
    • Logo height setting added
    • Image embed enhancements
    • Attribute publicly_visible added
    • Wpml-config file added
    • More options for optIn
    • Better email template management
  • Version 1.0.1
    • Backend text correction
    • Conditional logic update
    • Do not delete settings on plugin deactivate
  • Version 1.0.0
    • Initial release