Constant Contact Forms - Version 1.4.3

Version Description

  • Fixed: Persistent spinner on Constant Contact Forms submit button when Google reCAPTCHA is anywhere on the page.
  • Fixed: Better messaging around debug logging when unable to write to the intended log file.
  • Updated: Changed the modal popup content for when we need to display Endurance Privacy Policy information.
Download this release

Release Info

Developer constantcontact
Plugin Icon 128x128 Constant Contact Forms
Version 1.4.3
Comparing to
See all releases

Code changes from version 1.4.2 to 1.4.3

assets/css/admin-style.css CHANGED
@@ -51,7 +51,7 @@
51
  top: 50%;
52
  transform: translate(-50%, -50%);
53
  width: 100%;
54
- max-width: 720px;
55
  }
56
 
57
  @media screen and (max-width: 1024px) {
@@ -312,6 +312,10 @@
312
  background-color: #005990;
313
  }
314
 
 
 
 
 
315
  .post-type-ctct_forms .misc-pub-section.misc-pub-visibility, .post-type-ctct_forms .misc-pub-section.misc-pub-curtime {
316
  display: none;
317
  }
51
  top: 50%;
52
  transform: translate(-50%, -50%);
53
  width: 100%;
54
+ max-width: 760px;
55
  }
56
 
57
  @media screen and (max-width: 1024px) {
312
  background-color: #005990;
313
  }
314
 
315
+ .ctct-modal .ctct-modal-content .ctct-modal-body .privacy-center-container a.button {
316
+ color: #555;
317
+ }
318
+
319
  .post-type-ctct_forms .misc-pub-section.misc-pub-visibility, .post-type-ctct_forms .misc-pub-section.misc-pub-curtime {
320
  display: none;
321
  }
assets/js/ctct-plugin-frontend.js CHANGED
@@ -6,14 +6,14 @@
6
  * Temporarily prevent the submit button from being clicked.
7
  */
8
  $( document ).ready( function() {
9
- $( '#ctct-submitted' ).on( 'click', function() {
10
  setTimeout( function() {
11
  disable_send_button();
12
  setTimeout( enable_send_button, 3000 );
13
  }, 100 );
14
  } );
15
  } );
16
-
17
  function disable_send_button() {
18
  return $( '#ctct-submitted' ).attr( 'disabled', 'disabled' );
19
  }
@@ -49,7 +49,7 @@ window.CTCTSupport = {};
49
  form: '.ctct-form-wrapper form',
50
  honeypot: $( '#ctct_usage_field' ),
51
  submitButton: $( '.ctct-form-wrapper form input[type=submit]' ),
52
- recaptcha: $( '.g-recaptcha' )
53
  };
54
 
55
  that.timeout = null;
6
  * Temporarily prevent the submit button from being clicked.
7
  */
8
  $( document ).ready( function() {
9
+ $( '#ctct-submitted' ).on( 'click', function() {
10
  setTimeout( function() {
11
  disable_send_button();
12
  setTimeout( enable_send_button, 3000 );
13
  }, 100 );
14
  } );
15
  } );
16
+
17
  function disable_send_button() {
18
  return $( '#ctct-submitted' ).attr( 'disabled', 'disabled' );
19
  }
49
  form: '.ctct-form-wrapper form',
50
  honeypot: $( '#ctct_usage_field' ),
51
  submitButton: $( '.ctct-form-wrapper form input[type=submit]' ),
52
+ recaptcha: $( '.ctct-form-wrapper form .g-recaptcha' )
53
  };
54
 
55
  that.timeout = null;
assets/js/ctct-plugin-frontend.min.js CHANGED
@@ -1 +1 @@
1
- !function(t,e){function c(){return e("#ctct-submitted").attr("disabled","disabled")}function o(){return e("#ctct-submitted").attr("disabled",null)}e(document).ready(function(){e("#ctct-submitted").on("click",function(){setTimeout(function(){c(),setTimeout(o,3e3)},100)})})}(window,jQuery),window.CTCTSupport={},function(t,e,c){c.init=function(){c.cache(),c.bindEvents(),c.removePlaceholder()},c.removePlaceholder=function(){e(".ctct-form-field input,textarea").focus(function(){e(this).data("placeholder",e(this).attr("placeholder")).attr("placeholder","")}).blur(function(){e(this).attr("placeholder",e(this).data("placeholder"))})},c.cache=function(){c.$c={window:e(t),body:e("body"),form:".ctct-form-wrapper form",honeypot:e("#ctct_usage_field"),submitButton:e(".ctct-form-wrapper form input[type=submit]"),recaptcha:e(".g-recaptcha")},c.timeout=null},c.setAllInputsValid=function(){e(c.$c.form+" .ctct-invalid").removeClass("ctct-invalid")},c.clearFormInputs=function(t){var c=e(t+" form");c[0].reset()},c.processError=function(t){"undefined"!=typeof t.id&&e("#"+t.id).addClass("ctct-invalid")},c.checkHoneypot=function(){var t=c.$c.honeypot.val().length;t>0?c.$c.submitButton.attr("disabled","disabled"):c.$c.submitButton.attr("disabled",!1)},c.bindEvents=function(){e(c.$c.form).on("click","input[type=submit]",function(t){if("on"===e(".ctct-form").attr("data-doajax")){var o=e(this).closest(".ctct-form-wrapper").attr("id"),i="";""!=o&&(i="#"+o+" ");var n=!0;if(e.each(e(i+".ctct-form [required]"),function(t,e){e.checkValidity()===!1&&(n=!1)}),!1===n)return;t.preventDefault(),clearTimeout(c.timeout),c.timeout=setTimeout(function(){e("#ctct-submitted").prop("disabled",!0),e.post(ajaxurl,{action:"ctct_process_form",data:e(i+"form").serialize()},function(t){if(e("#ctct-submitted").prop("disabled",!1),"undefined"!=typeof t.status)if("success"===t.status){var o="message-time-"+e.now(),n="ctct-message "+t.status+" "+o;e(i+".ctct-form").before('<p class="'+n+'">'+t.message+"</p>"),""!==i&&c.clearFormInputs(i),setTimeout(function(){e("."+o).fadeOut("slow")},5e3)}else"undefined"!=typeof t.errors?(c.setAllInputsValid(),t.errors.forEach(c.processError)):e(i+".ctct-form").before('<p class="ctct-message '+t.status+'">'+t.message+"</p>")})},500)}}),e(c.$c.honeypot).on("change keyup",function(t){c.checkHoneypot()}),c.$c.recaptcha.length>0&&c.$c.submitButton.attr("disabled","disabled")},e(c.init)}(window,jQuery,window.CTCTSupport);
1
+ !function(t,e){function c(){return e("#ctct-submitted").attr("disabled","disabled")}function o(){return e("#ctct-submitted").attr("disabled",null)}e(document).ready(function(){e("#ctct-submitted").on("click",function(){setTimeout(function(){c(),setTimeout(o,3e3)},100)})})}(window,jQuery),window.CTCTSupport={},function(t,e,c){c.init=function(){c.cache(),c.bindEvents(),c.removePlaceholder()},c.removePlaceholder=function(){e(".ctct-form-field input,textarea").focus(function(){e(this).data("placeholder",e(this).attr("placeholder")).attr("placeholder","")}).blur(function(){e(this).attr("placeholder",e(this).data("placeholder"))})},c.cache=function(){c.$c={window:e(t),body:e("body"),form:".ctct-form-wrapper form",honeypot:e("#ctct_usage_field"),submitButton:e(".ctct-form-wrapper form input[type=submit]"),recaptcha:e(".ctct-form-wrapper form .g-recaptcha")},c.timeout=null},c.setAllInputsValid=function(){e(c.$c.form+" .ctct-invalid").removeClass("ctct-invalid")},c.clearFormInputs=function(t){var c=e(t+" form");c[0].reset()},c.processError=function(t){"undefined"!=typeof t.id&&e("#"+t.id).addClass("ctct-invalid")},c.checkHoneypot=function(){var t=c.$c.honeypot.val().length;t>0?c.$c.submitButton.attr("disabled","disabled"):c.$c.submitButton.attr("disabled",!1)},c.bindEvents=function(){e(c.$c.form).on("click","input[type=submit]",function(t){if("on"===e(".ctct-form").attr("data-doajax")){var o=e(this).closest(".ctct-form-wrapper").attr("id"),i="";""!=o&&(i="#"+o+" ");var n=!0;if(e.each(e(i+".ctct-form [required]"),function(t,e){e.checkValidity()===!1&&(n=!1)}),!1===n)return;t.preventDefault(),clearTimeout(c.timeout),c.timeout=setTimeout(function(){e("#ctct-submitted").prop("disabled",!0),e.post(ajaxurl,{action:"ctct_process_form",data:e(i+"form").serialize()},function(t){if(e("#ctct-submitted").prop("disabled",!1),"undefined"!=typeof t.status)if("success"===t.status){var o="message-time-"+e.now(),n="ctct-message "+t.status+" "+o;e(i+".ctct-form").before('<p class="'+n+'">'+t.message+"</p>"),""!==i&&c.clearFormInputs(i),setTimeout(function(){e("."+o).fadeOut("slow")},5e3)}else"undefined"!=typeof t.errors?(c.setAllInputsValid(),t.errors.forEach(c.processError)):e(i+".ctct-form").before('<p class="ctct-message '+t.status+'">'+t.message+"</p>")})},500)}}),e(c.$c.honeypot).on("change keyup",function(t){c.checkHoneypot()}),c.$c.recaptcha.length>0&&c.$c.submitButton.attr("disabled","disabled")},e(c.init)}(window,jQuery,window.CTCTSupport);
assets/js/ctct-plugin-frontend/validation.js CHANGED
@@ -24,7 +24,7 @@ window.CTCTSupport = {};
24
  form: '.ctct-form-wrapper form',
25
  honeypot: $( '#ctct_usage_field' ),
26
  submitButton: $( '.ctct-form-wrapper form input[type=submit]' ),
27
- recaptcha: $( '.g-recaptcha' )
28
  };
29
 
30
  that.timeout = null;
24
  form: '.ctct-form-wrapper form',
25
  honeypot: $( '#ctct_usage_field' ),
26
  submitButton: $( '.ctct-form-wrapper form input[type=submit]' ),
27
+ recaptcha: $( '.ctct-form-wrapper form .g-recaptcha' )
28
  };
29
 
30
  that.timeout = null;
assets/sass/_modal.scss CHANGED
@@ -53,7 +53,7 @@
53
  top: 50%;
54
  transform: translate(-50%, -50%);
55
  width: 100%;
56
- max-width: 720px;
57
 
58
  @media screen and (max-width: 1024px) {
59
  max-width: 75%;
@@ -297,6 +297,9 @@
297
  }
298
  } // button blue
299
  } // button
 
 
 
300
  } // modal-body
301
  } // modal content
302
  } // modal
53
  top: 50%;
54
  transform: translate(-50%, -50%);
55
  width: 100%;
56
+ max-width: 760px;
57
 
58
  @media screen and (max-width: 1024px) {
59
  max-width: 75%;
297
  }
298
  } // button blue
299
  } // button
300
+ .privacy-center-container a.button {
301
+ color: #555
302
+ }
303
  } // modal-body
304
  } // modal content
305
  } // modal
constant-contact-forms.php CHANGED
@@ -12,7 +12,7 @@
12
  * Plugin Name: Constant Contact Forms for WordPress
13
  * Plugin URI: https://www.constantcontact.com
14
  * Description: Be a better marketer. All it takes is Constant Contact email marketing.
15
- * Version: 1.4.2
16
  * Author: Constant Contact
17
  * Author URI: https://www.constantcontact.com/index?pn=miwordpress
18
  * License: GPLv3
@@ -78,7 +78,7 @@ class Constant_Contact {
78
  * @since 1.0.0
79
  * @var string
80
  */
81
- const VERSION = '1.4.2';
82
 
83
  /**
84
  * URL of plugin directory.
12
  * Plugin Name: Constant Contact Forms for WordPress
13
  * Plugin URI: https://www.constantcontact.com
14
  * Description: Be a better marketer. All it takes is Constant Contact email marketing.
15
+ * Version: 1.4.3
16
  * Author: Constant Contact
17
  * Author URI: https://www.constantcontact.com/index?pn=miwordpress
18
  * License: GPLv3
78
  * @since 1.0.0
79
  * @var string
80
  */
81
+ const VERSION = '1.4.3';
82
 
83
  /**
84
  * URL of plugin directory.
includes/class-logging.php CHANGED
@@ -145,7 +145,16 @@ class ConstantContact_Logging {
145
  $log_location = '#';
146
 
147
  if ( ! file_exists( constant_contact()->logger_location ) ) {
148
- $contents .= esc_html__( 'No error log exists', 'constant-contact-forms' );
 
 
 
 
 
 
 
 
 
149
  } elseif ( ! is_writable( constant_contact()->logger_location ) ) {
150
  $contents .= sprintf(
151
  /* Translators: placeholder holds the log location. */
145
  $log_location = '#';
146
 
147
  if ( ! file_exists( constant_contact()->logger_location ) ) {
148
+
149
+ if ( ! is_writable( constant_contact()->logger_location ) ) {
150
+ $contents .= sprintf(
151
+ /* Translators: placeholder holds the log location. */
152
+ esc_html__( 'We are not able to write to the %s file.', 'constant-contact-forms' ),
153
+ constant_contact()->logger_location
154
+ );
155
+ } else {
156
+ $contents .= esc_html__( 'No error log exists', 'constant-contact-forms' );
157
+ }
158
  } elseif ( ! is_writable( constant_contact()->logger_location ) ) {
159
  $contents .= sprintf(
160
  /* Translators: placeholder holds the log location. */
includes/class-optin.php CHANGED
@@ -130,7 +130,7 @@ class ConstantContact_Optin {
130
  </div>
131
  <div class="ctct-modal-body ctct-privacy-modal-body">
132
  <?php
133
- echo $this->privacy_notice_modal_content();
134
  ?>
135
  </div><!-- modal body -->
136
  <div id="ctct-modal-footer-privacy" class="ctct-modal-footer ctct-modal-footer-privacy">
@@ -142,23 +142,4 @@ class ConstantContact_Optin {
142
  </div>
143
  <?php
144
  }
145
-
146
- /**
147
- * Returns the remote privacy policy page content for Constant Contact.
148
- *
149
- * @since 1.2.0
150
- *
151
- * @return mixed
152
- */
153
- public function privacy_notice_modal_content() {
154
- $policy_output = wp_remote_get( 'https://www.constantcontact.com/legal/privacy-statement' );
155
- if ( ! is_wp_error( $policy_output ) && 200 === wp_remote_retrieve_response_code( $policy_output ) ) {
156
- $content = wp_remote_retrieve_body( $policy_output );
157
- preg_match( '/<body[^>]*>(.*?)<\/body>/si', $content, $match );
158
- $output = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $match[1] );
159
- $output = preg_replace( '@<section class=header>.*?</section>@si', '', $output );
160
- return $output;
161
- }
162
- return '';
163
- }
164
  }
130
  </div>
131
  <div class="ctct-modal-body ctct-privacy-modal-body">
132
  <?php
133
+ echo constant_contact_privacy_policy_content();
134
  ?>
135
  </div><!-- modal body -->
136
  <div id="ctct-modal-footer-privacy" class="ctct-modal-footer ctct-modal-footer-privacy">
142
  </div>
143
  <?php
144
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  }
includes/class-settings.php CHANGED
@@ -816,7 +816,7 @@ class ConstantContact_Settings {
816
  </div>
817
  <div class="ctct-modal-body ctct-privacy-modal-body">
818
  <?php
819
- echo $this->privacy_notice_modal_content();
820
  ?>
821
  </div><!-- modal body -->
822
  <div id="ctct-modal-footer-privacy" class="ctct-modal-footer ctct-modal-footer-privacy">
@@ -829,25 +829,6 @@ class ConstantContact_Settings {
829
  <?php
830
  }
831
 
832
- /**
833
- * Returns the remote privacy policy page content for Constant Contact.
834
- *
835
- * @since 1.2.0
836
- *
837
- * @return mixed
838
- */
839
- public function privacy_notice_modal_content() {
840
- $policy_output = wp_remote_get( 'https://www.constantcontact.com/legal/privacy-statement' );
841
- if ( ! is_wp_error( $policy_output ) && 200 === wp_remote_retrieve_response_code( $policy_output ) ) {
842
- $content = wp_remote_retrieve_body( $policy_output );
843
- preg_match( '/<body[^>]*>(.*?)<\/body>/si', $content, $match );
844
- $output = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $match[1] );
845
- $output = preg_replace( '@<section class=header>.*?</section>@si', '', $output );
846
- return $output;
847
- }
848
- return '';
849
- }
850
-
851
  public function has_recaptcha() {
852
  $site_key = ctct_get_settings_option( '_ctct_recaptcha_site_key', '' );
853
  $secret_key = ctct_get_settings_option( '_ctct_recaptcha_secret_key', '' );
816
  </div>
817
  <div class="ctct-modal-body ctct-privacy-modal-body">
818
  <?php
819
+ echo constant_contact_privacy_policy_content();
820
  ?>
821
  </div><!-- modal body -->
822
  <div id="ctct-modal-footer-privacy" class="ctct-modal-footer ctct-modal-footer-privacy">
829
  <?php
830
  }
831
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
832
  public function has_recaptcha() {
833
  $site_key = ctct_get_settings_option( '_ctct_recaptcha_site_key', '' );
834
  $secret_key = ctct_get_settings_option( '_ctct_recaptcha_secret_key', '' );
includes/helper-functions.php CHANGED
@@ -597,3 +597,17 @@ function constant_contact_get_css_customization( $form_id, $customization_key =
597
 
598
  return ( ! empty( $global_setting ) ) ? $global_setting : '';
599
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
597
 
598
  return ( ! empty( $global_setting ) ) ? $global_setting : '';
599
  }
600
+
601
+ function constant_contact_privacy_policy_content() {
602
+ $policy_output = wp_remote_get( 'https://www.endurance.com/privacy' );
603
+ if ( ! is_wp_error( $policy_output ) && 200 === wp_remote_retrieve_response_code( $policy_output ) ) {
604
+ $content = wp_remote_retrieve_body( $policy_output );
605
+ preg_match( '/<body[^>]*>(.*?)<\/body>/si', $content, $match );
606
+ $output = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $match[1] );
607
+ preg_match_all( '@<section class="container privacy-center-container">.*?</section>@si', $output, $final );
608
+
609
+ return $final[0][0] . $final[0][2];
610
+ }
611
+
612
+ return '';
613
+ }
languages/constant-contact-forms.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: Constant Contact Forms for WordPress\n"
6
- "POT-Creation-Date: 2018-10-30 11:27-0500\n"
7
  "PO-Revision-Date: 2017-01-12 14:46-0600\n"
8
  "Last-Translator: Michael Beckwith <michael.d.beckwith@gmail.com>\n"
9
  "Language-Team: Constant Contact\n"
@@ -1321,44 +1321,44 @@ msgstr ""
1321
  msgid "Debug logs"
1322
  msgstr ""
1323
 
1324
- #: includes/class-logging.php:148
1325
- msgid "No error log exists"
1326
- msgstr ""
1327
-
1328
- #: includes/class-logging.php:152
1329
  #, php-format
1330
  msgid "We are not able to write to the %s file."
1331
  msgstr ""
1332
 
1333
- #: includes/class-logging.php:163
 
 
 
 
1334
  #, php-format
1335
  msgid "Log display error: %s"
1336
  msgstr ""
1337
 
1338
- #: includes/class-logging.php:173
1339
  msgid ""
1340
  "Error log below can be used with support requests to help identify issues "
1341
  "with Constant Contact Forms."
1342
  msgstr ""
1343
 
1344
- #: includes/class-logging.php:174
1345
  msgid ""
1346
  "When available, you can share information by copying and pasting the content "
1347
  "in the textarea, or by using the \"Download logs\" link at the end. Logs can "
1348
  "be cleared by using the \"Delete logs\" link."
1349
  msgstr ""
1350
 
1351
- #: includes/class-logging.php:181
1352
  msgid ""
1353
  "Error log may still have content, even if an error is shown above. Please "
1354
  "use the download link below."
1355
  msgstr ""
1356
 
1357
- #: includes/class-logging.php:190
1358
  msgid "Download logs"
1359
  msgstr ""
1360
 
1361
- #: includes/class-logging.php:198
1362
  msgid "Delete logs"
1363
  msgstr ""
1364
 
3
  msgstr ""
4
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: Constant Contact Forms for WordPress\n"
6
+ "POT-Creation-Date: 2018-11-20 09:30-0600\n"
7
  "PO-Revision-Date: 2017-01-12 14:46-0600\n"
8
  "Last-Translator: Michael Beckwith <michael.d.beckwith@gmail.com>\n"
9
  "Language-Team: Constant Contact\n"
1321
  msgid "Debug logs"
1322
  msgstr ""
1323
 
1324
+ #: includes/class-logging.php:152 includes/class-logging.php:161
 
 
 
 
1325
  #, php-format
1326
  msgid "We are not able to write to the %s file."
1327
  msgstr ""
1328
 
1329
+ #: includes/class-logging.php:156
1330
+ msgid "No error log exists"
1331
+ msgstr ""
1332
+
1333
+ #: includes/class-logging.php:172
1334
  #, php-format
1335
  msgid "Log display error: %s"
1336
  msgstr ""
1337
 
1338
+ #: includes/class-logging.php:182
1339
  msgid ""
1340
  "Error log below can be used with support requests to help identify issues "
1341
  "with Constant Contact Forms."
1342
  msgstr ""
1343
 
1344
+ #: includes/class-logging.php:183
1345
  msgid ""
1346
  "When available, you can share information by copying and pasting the content "
1347
  "in the textarea, or by using the \"Download logs\" link at the end. Logs can "
1348
  "be cleared by using the \"Delete logs\" link."
1349
  msgstr ""
1350
 
1351
+ #: includes/class-logging.php:190
1352
  msgid ""
1353
  "Error log may still have content, even if an error is shown above. Please "
1354
  "use the download link below."
1355
  msgstr ""
1356
 
1357
+ #: includes/class-logging.php:199
1358
  msgid "Download logs"
1359
  msgstr ""
1360
 
1361
+ #: includes/class-logging.php:207
1362
  msgid "Delete logs"
1363
  msgstr ""
1364
 
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: constantcontact
3
  Tags: capture, contacts, constant contact, constant contact form, constant contact newsletter, constant contact official, contact forms, email, form, forms, marketing, mobile, newsletter, opt-in, plugin, signup, subscribe, subscription, widget
4
  Requires at least: 4.0.0
5
  Tested up to: 4.9.8
6
- Stable tag: 1.4.2
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
  Requires PHP: 5.4
@@ -35,6 +35,11 @@ BONUS: If you have a Constant Contact account, all new email addresses that you
35
 
36
  == Changelog ==
37
 
 
 
 
 
 
38
  = 1.4.2 =
39
  * Fixed: Issue with mismatched meta key for per-form destination email address.
40
  * Fixed: Ability to successfully submit a form with Google reCAPTCHA enabled, but when not validated, with a custom redirect URL is set.
3
  Tags: capture, contacts, constant contact, constant contact form, constant contact newsletter, constant contact official, contact forms, email, form, forms, marketing, mobile, newsletter, opt-in, plugin, signup, subscribe, subscription, widget
4
  Requires at least: 4.0.0
5
  Tested up to: 4.9.8
6
+ Stable tag: 1.4.3
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
  Requires PHP: 5.4
35
 
36
  == Changelog ==
37
 
38
+ = 1.4.3 =
39
+ * Fixed: Persistent spinner on Constant Contact Forms submit button when Google reCAPTCHA is anywhere on the page.
40
+ * Fixed: Better messaging around debug logging when unable to write to the intended log file.
41
+ * Updated: Changed the modal popup content for when we need to display Endurance Privacy Policy information.
42
+
43
  = 1.4.2 =
44
  * Fixed: Issue with mismatched meta key for per-form destination email address.
45
  * Fixed: Ability to successfully submit a form with Google reCAPTCHA enabled, but when not validated, with a custom redirect URL is set.
vendor/CMB2/languages/cmb2-pt_PT.mo.orig ADDED
Binary file