Provides features and functions to create an opt-in or double-opt in with contact form 7 (cf7) and other form plugins.
| Author: | Berg Informatik (profile at wordpress.org) |
| WordPress version required: | 4.9.8 |
| WordPress version tested: | 5.9.4 |
| Plugin version: | 1.2.3 |
| Added to WordPress repository: | 28-10-2019 |
| Last updated: | 16-09-2022
Warning! This plugin has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.
|
| Rating, %: | 0 |
| Rated by: | 0 |
| Plugin URI: | https://berginformatik.ch/plugin/bin-opt-in |
| Total downloads: | 3 314 |
| Active installs: | 10+ |
![]() Click to start download |
|
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;
}
