Bin Opt-In

Deskripsi

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.

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)

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;
}

Tangkapan Layar

  • Backend: Settings page

Pemasangan

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

Kontributor & Pengembang

“Bin Opt-In” adalah perangkat lunak sumber terbuka. Berikut ini mereka yang sudah berkontribusi pada plugin ini.

Para Kontributor

Terjemahkan “Bin Opt-In” dalam bahasa Anda.

Tertarik mengembangkan?

Lihat kode, periksa repositori SVN , atau mendaftar ke log pengembangan melalui RSS.

Log Perubahan

  • Version 1.0.1
    • Backend text correction
    • Conditional logic update
    • Do not delete settings on plugin deactivate
  • Version 1.0.0
    • Initial release