{"id":111540,"date":"2019-10-28T08:07:37","date_gmt":"2019-10-28T08:07:37","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bin-opt-in\/"},"modified":"2022-09-16T08:39:44","modified_gmt":"2022-09-16T08:39:44","slug":"bin-opt-in","status":"closed","type":"plugin","link":"https:\/\/bs.wordpress.org\/plugins\/bin-opt-in\/","author":13513200,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.3","stable_tag":"1.2.3","tested":"5.9.13","requires":"4.9.8","requires_php":"","requires_plugins":"","header_name":"Opt-In","header_author":"Berg Informatik","header_description":"Provides features and functions to create an opt-in or double-opt in with contact form 7 (cf7) and other form plugins.","assets_banners_color":"","last_updated":"2022-09-16 08:39:44","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/berginformatik.ch\/plugin\/bin-opt-in","header_author_uri":"https:\/\/berginformatik.ch","rating":0,"author_block_rating":0,"active_installs":10,"downloads":4866,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["installation","changelog","description"],"tags":{"1.0.1":{"tag":"1.0.1","author":"berginformatik","date":"2019-11-13 14:30:59"},"1.1.0":{"tag":"1.1.0","author":"berginformatik","date":"2021-05-04 06:52:49"},"1.2.1":{"tag":"1.2.1","author":"berginformatik","date":"2022-03-09 15:30:04"},"1.2.3":{"tag":"1.2.3","author":"berginformatik","date":"2022-09-16 08:39:44"}},"upgrade_notice":{"":"<p>Nothing here :)<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2181490,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2181490,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.1.0","1.2.1","1.2.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2181466,"resolution":"1","location":"assets","locale":""}},"screenshots":{"1":"Backend: Settings page"}},"plugin_section":[],"plugin_tags":[5445,24592,463],"plugin_category":[42],"plugin_contributors":[161259],"plugin_business_model":[],"class_list":["post-111540","plugin","type-plugin","status-closed","hentry","plugin_tags-cf7","plugin_tags-double-opt-in","plugin_tags-opt-in","plugin_category-contact-forms","plugin_contributors-berginformatik","plugin_committers-berginformatik"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/bin-opt-in.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/bin-opt-in\/assets\/screenshot-1.png?rev=2181466","caption":"Backend: Settings page"}],"raw_content":"<!--section=installation-->\n<ol>\n<li>Download, unzip and upload to your WordPress plugins directory<\/li>\n<li>Activate the plugin within you WordPress Administration Backend<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<ul>\n<li>Version 1.2.3\n\n<ul>\n<li>Image embedding removed: not supported by gmail<\/li>\n<li>Translation corrections<\/li>\n<\/ul><\/li>\n<li>Version 1.2.2\n\n<ul>\n<li>Minor bugfix<\/li>\n<\/ul><\/li>\n<li>Version 1.2.2\n\n<ul>\n<li>Fix: fatal error if bin-contact is not installed<\/li>\n<\/ul><\/li>\n<li>Version 1.2.0\n\n<ul>\n<li>New: Mailchimp integration<\/li>\n<li>New: Add default settings on plugin activate<\/li>\n<li>New: Text settings<\/li>\n<li>New: Change button color<\/li>\n<li>Fix: Wrong link to wpml translation page<\/li>\n<li>Fix: Wrong installation path of bin-contact plugin<\/li>\n<li>Fix: Missing hero background image<\/li>\n<\/ul><\/li>\n<li>Version 1.1.0\n\n<ul>\n<li>New option for Social Share Buttons<\/li>\n<li>BinOptIn_UrlLinker removed<\/li>\n<li>Double-opt-in routing fix<\/li>\n<li>Show additional content on confirmation page<\/li>\n<li>Logo height setting added<\/li>\n<li>Image embed enhancements<\/li>\n<li>Attribute publicly_visible added<\/li>\n<li>Wpml-config file added<\/li>\n<li>More options for optIn<\/li>\n<li>Better email template management<\/li>\n<\/ul><\/li>\n<li>Version 1.0.1\n\n<ul>\n<li>Backend text correction<\/li>\n<li>Conditional logic update<\/li>\n<li>Do not delete settings on plugin deactivate<\/li>\n<\/ul><\/li>\n<li>Version 1.0.0\n\n<ul>\n<li>Initial release<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<!--section=description-->\n<p>Provides features and functions to create an opt-in or double-opt in with contact form 7 (cf7) and other form plugins.<\/p>\n\n<h3>Save contacts<\/h3>\n\n<p>To store your contacts, please install the additional plugin called bin contact. This plugin assists you installing all the necessary dependencies.<\/p>\n\n<h3>Opt-In Function<\/h3>\n\n<pre>BinOptIn::optIn($postdata, [\n    'opt_in_admin_message' =&gt; false,\n    'double_opt_in' =&gt; false,\n    'admin_unlock' =&gt; false,\n    'unlock_message' =&gt; false\n]);<\/pre>\n\n<ul>\n<li><p><strong>opt_in_admin_message<\/strong>\n(bool) Notify the site owner of any new contact, regardless of whether or not he has confirmed his e-mail address. Default false.<\/p><\/li>\n<li><p><strong>double_opt_in<\/strong>\n(bool) The contact must confirm the e-mail address by clicking on a confirmation link. Default false.<\/p><\/li>\n<li><p><strong>admin_unlock<\/strong>\n(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.<\/p><\/li>\n<li><p><strong>unlock_message<\/strong>\n(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.<\/p><\/li>\n<li><p><strong>mailchimp_opt_in<\/strong>\n(bool) This option allows you to specify whether the contact will be forwarded to Mailchimp. Default false.<\/p><\/li>\n<\/ul>\n\n<h3>Accepted postdata<\/h3>\n\n<ul>\n<li><p><strong>salutation<\/strong>\n(int) Default empty.<\/p>\n\n<ul>\n<li>0 (Mister)<\/li>\n<li>1 (Miss)<\/li>\n<li>2 (Other)<\/li>\n<\/ul><\/li>\n<li><p><strong>polite_form<\/strong>\n(int) Default empty.<\/p>\n\n<ul>\n<li>0 (Personally)<\/li>\n<li>1 (Formally)<\/li>\n<\/ul><\/li>\n<li><p><strong>language_of_correspondence<\/strong> \n(int) Check this functions to see a list of all available languages: BinContact::formLanguage() and BinContact::formLanguageValue()<\/p><\/li>\n<li><p><strong>name_suffix<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>first_name<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>last_name<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>designation<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>mobile<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>phone_private<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>phone_work<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>street_and_number<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>zip<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>city<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>country<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>website<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>facebook<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>twitter<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>instagram<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>flickr<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>linkedin<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>xing<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>youtube<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>socialmedia_other1<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>socialmedia_other2<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>socialmedia_other3<\/strong>\n(string) Default empty.<\/p><\/li>\n<li><p><strong>terms_and_conditions_accepted<\/strong>\n(string) Default empty.<\/p>\n\n<ul>\n<li>empty (Not filled)<\/li>\n<li>no (No)<\/li>\n<li>yes (Yes)<\/li>\n<\/ul><\/li>\n<li><p><strong>privacy_policy_accepted<\/strong>\n(string) Default empty.<\/p>\n\n<ul>\n<li>empty (Not filled)<\/li>\n<li>no (No)<\/li>\n<li>yes (Yes)<\/li>\n<\/ul><\/li>\n<li><p><strong>contact_group<\/strong>\n(string) Comma seperated list of contact_group taxonomy terms or ID's. Default empty.<\/p><\/li>\n<\/ul>\n\n<h3>Integrate with Contact Form 7<\/h3>\n\n<p>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.<\/p>\n\n<pre>add_action('wpcf7_before_send_mail', 'bin_opt_in_contact');\nfunction bin_opt_in_contact($cf7)\n{\n    \/\/ Get current form id\n    $formId = $cf7-&gt;id;\n\n    \/\/ Array of form ids\n    $forms = [159, 454];\n\n    \/\/ Only apply to certain forms\n    if(in_array($formId, $forms))\n    {\n        \/\/ Dont do anything if class is missing\n        if(class_exists('BinOptIn'))\n        {\n            \/\/ At least, the email must be present\n            if(is_email($_POST['email']))\n            {\n                \/\/ map salutation\n                $salutationMap = [ \n                    'Frau' =&gt; 0,\n                    'Madame' =&gt; 0,\n                    'Mrs' =&gt; 0,\n                    'Herr' =&gt; 1,\n                    'Monsieur' =&gt; 1,\n                    'Mr' =&gt; 1,\n                    '*' =&gt; 2\n                ];\n\n                \/\/ assign form data with corresponding meta fields\n                $postdata = [];\n                $postdata['email'] = sanitize_email($_POST['email']);\n                $postdata['first_name'] = sanitize_text_field($_POST['first_name']);\n                $postdata['last_name'] = sanitize_text_field($_POST['last_name']);\n                $postdata['salutation'] = $salutationMap[$_POST['salutation']];\n                $postdata['terms_and_conditions_accepted'] = isset($_POST['terms_and_conditions_accepted']) ? 'yes' : '';\n\n                \/\/ save contact\n                BinOptIn::optIn($postdata, [\n                    'opt_in_admin_message' =&gt; false,\n                    'double_opt_in' =&gt; false,\n                    'admin_unlock' =&gt; false,\n                    'unlock_message' =&gt; false\n                ]);\n            }\n        }\n    }\n}<\/pre>\n\n<h3>Integrate with Contact Form 7 Multi-Step Pro<\/h3>\n\n<p>Save form data at every step by using the filter <em>wpcf7_validate<\/em>.<\/p>\n\n<pre>\nadd_filter('wpcf7_validate', 'save_contact_step', 10, 2);\nfunction save_contact_step($result, $tags)\n{\n    \/\/ Get current form id\n    $formId = $_POST['_wpcf7'];\n\n    \/\/ Array of form ids\n    $forms = [159, 454];\n\n    \/\/ Only apply to certain forms\n    if(in_array($formId, $forms))\n    {\n        \/\/ Dont do anything if class is missing\n        if(class_exists('BinOptIn'))\n        {\n            \/\/ save contact info here\n            \/\/ BinOptIn::optIn()\n        }\n    }\n\n    return $result;\n}\n<\/pre>","raw_excerpt":"Provides features and functions to create an opt-in or double-opt in with contact form 7 (cf7) and other form plugins.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/111540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=111540"}],"author":[{"embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/berginformatik"}],"wp:attachment":[{"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=111540"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=111540"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=111540"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=111540"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=111540"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=111540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}