Contact Form 7 - Version 4.4.1

Version Description

  • Config Validation: Added a link to FAQ.
  • Config Validation: Relaxed email domain validation.
  • Config Validation: Added mail header syntax check for Cc, Bcc, and Reply-To.
  • Fixed: Incorrect character count for quotation marks.
  • Language Packs: Language files for German (de_DE), Italian (it_IT), Romanian (ro_RO), Estonian (et), Spanish (es_ES), and Finnish (fi) have been removed.
Download this release

Release Info

Developer takayukister
Plugin Icon 128x128 Contact Form 7
Version 4.4.1
Comparing to
See all releases

Code changes from version 4.4 to 4.4.1

admin/admin.php CHANGED
@@ -327,6 +327,8 @@ function wpcf7_admin_bulk_validate_page() {
327
  <p><input type="submit" class="button" value="<?php echo esc_attr( $submit_text ); ?>" /></p>
328
  </form>
329
 
 
 
330
  </div>
331
  <?php
332
  }
@@ -397,7 +399,14 @@ function wpcf7_admin_updated_message() {
397
  $updated_message = __( "Contact form saved.", 'contact-form-7' );
398
  } elseif ( 'deleted' == $_REQUEST['message'] ) {
399
  $updated_message = __( "Contact form deleted.", 'contact-form-7' );
400
- } elseif ( 'validated' == $_REQUEST['message'] ) {
 
 
 
 
 
 
 
401
  $bulk_validate = WPCF7::get_option( 'bulk_validate', array() );
402
  $count_invalid = isset( $bulk_validate['count_invalid'] )
403
  ? absint( $bulk_validate['count_invalid'] ) : 0;
@@ -409,13 +418,15 @@ function wpcf7_admin_updated_message() {
409
  "Configuration validation completed. %s invalid contact forms were found.",
410
  $count_invalid, 'contact-form-7' ),
411
  number_format_i18n( $count_invalid ) );
 
 
412
  } else {
413
  $updated_message = __( "Configuration validation completed. No invalid contact form was found.", 'contact-form-7' );
 
 
414
  }
415
- }
416
 
417
- if ( ! empty( $updated_message ) ) {
418
- echo sprintf( '<div id="message" class="updated notice notice-success is-dismissible"><p>%s</p></div>', esc_html( $updated_message ) );
419
  }
420
  }
421
 
@@ -573,7 +584,7 @@ function wpcf7_notice_config_errors() {
573
  __( 'http://contactform7.com/configuration-errors/', 'contact-form-7' ),
574
  __( 'How to Resolve Configuration Errors', 'contact-form-7' ) );
575
 
576
- echo sprintf( '<div class="notice notice-error is-dismissible"><p>%s &raquo; %s</p></div>', esc_html( $message ), $link );
577
  }
578
  }
579
 
327
  <p><input type="submit" class="button" value="<?php echo esc_attr( $submit_text ); ?>" /></p>
328
  </form>
329
 
330
+ <?php echo wpcf7_link( __( 'http://contactform7.com/configuration-validator-faq/', 'contact-form-7' ), __( 'FAQ about Configuration Validator', 'contact-form-7' ) ); ?>
331
+
332
  </div>
333
  <?php
334
  }
399
  $updated_message = __( "Contact form saved.", 'contact-form-7' );
400
  } elseif ( 'deleted' == $_REQUEST['message'] ) {
401
  $updated_message = __( "Contact form deleted.", 'contact-form-7' );
402
+ }
403
+
404
+ if ( ! empty( $updated_message ) ) {
405
+ echo sprintf( '<div id="message" class="updated notice notice-success is-dismissible"><p>%s</p></div>', esc_html( $updated_message ) );
406
+ return;
407
+ }
408
+
409
+ if ( 'validated' == $_REQUEST['message'] ) {
410
  $bulk_validate = WPCF7::get_option( 'bulk_validate', array() );
411
  $count_invalid = isset( $bulk_validate['count_invalid'] )
412
  ? absint( $bulk_validate['count_invalid'] ) : 0;
418
  "Configuration validation completed. %s invalid contact forms were found.",
419
  $count_invalid, 'contact-form-7' ),
420
  number_format_i18n( $count_invalid ) );
421
+
422
+ echo sprintf( '<div id="message" class="notice notice-warning is-dismissible"><p>%s</p></div>', esc_html( $updated_message ) );
423
  } else {
424
  $updated_message = __( "Configuration validation completed. No invalid contact form was found.", 'contact-form-7' );
425
+
426
+ echo sprintf( '<div id="message" class="notice notice-success is-dismissible"><p>%s</p></div>', esc_html( $updated_message ) );
427
  }
 
428
 
429
+ return;
 
430
  }
431
  }
432
 
584
  __( 'http://contactform7.com/configuration-errors/', 'contact-form-7' ),
585
  __( 'How to Resolve Configuration Errors', 'contact-form-7' ) );
586
 
587
+ echo sprintf( '<div class="notice notice-warning is-dismissible"><p>%s &raquo; %s</p></div>', esc_html( $message ), $link );
588
  }
589
  }
590
 
admin/includes/editor.php CHANGED
@@ -191,7 +191,8 @@ function wpcf7_editor_box_mail( $post, $args = '' ) {
191
  function wpcf7_editor_panel_messages( $post ) {
192
  $messages = wpcf7_messages();
193
 
194
- if ( ! wpcf7_use_really_simple_captcha() ) {
 
195
  unset( $messages['captcha_not_match'] );
196
  }
197
 
191
  function wpcf7_editor_panel_messages( $post ) {
192
  $messages = wpcf7_messages();
193
 
194
+ if ( isset( $messages['captcha_not_match'] )
195
+ && ! wpcf7_use_really_simple_captcha() ) {
196
  unset( $messages['captcha_not_match'] );
197
  }
198
 
includes/config-validator.php CHANGED
@@ -109,10 +109,10 @@ class WPCF7_ConfigValidator {
109
  $sender = $sender->replace_tags();
110
  $sender = wpcf7_strip_newline( $sender );
111
 
112
- if ( ! $this->test_from_field_syntax( $sender ) ) {
113
  $this->add_error( sprintf( '%s.sender', $template ),
114
  self::error_invalid_syntax );
115
- } elseif ( ! $this->test_email_in_site_domain( $sender ) ) {
116
  $this->add_error( sprintf( '%s.sender', $template ),
117
  self::error_email_not_in_site_domain );
118
  }
@@ -123,7 +123,7 @@ class WPCF7_ConfigValidator {
123
  $recipient = $recipient->replace_tags();
124
  $recipient = wpcf7_strip_newline( $recipient );
125
 
126
- if ( ! $this->test_to_field_syntax( $recipient ) ) {
127
  $this->add_error( sprintf( '%s.recipient', $template ),
128
  self::error_invalid_syntax );
129
  }
@@ -149,58 +149,6 @@ class WPCF7_ConfigValidator {
149
  }
150
  }
151
 
152
- public function test_from_field_syntax( $content ) {
153
- $content = trim( $content );
154
-
155
- if ( preg_match( '/<(.+)>$/', $content, $matches ) ) {
156
- $email = $matches[1];
157
- } else {
158
- $email = $content;
159
- }
160
-
161
- return wpcf7_is_email( $email );
162
- }
163
-
164
- public function test_email_in_site_domain( $content ) {
165
- if ( wpcf7_is_localhost() ) {
166
- return true;
167
- }
168
-
169
- $site_domain = strtolower( $_SERVER['SERVER_NAME'] );
170
-
171
- if ( substr( $site_domain, 0, 4 ) == 'www.' ) {
172
- $site_domain = substr( $site_domain, 4 );
173
- }
174
-
175
- $content = trim( $content );
176
-
177
- if ( preg_match( '/<(.+)>$/', $content, $matches ) ) {
178
- $email = strtolower( $matches[1] );
179
- } else {
180
- $email = strtolower( $content );
181
- }
182
-
183
- return ( substr( $email, - strlen( $site_domain ) ) == $site_domain );
184
- }
185
-
186
- public function test_to_field_syntax( $content ) {
187
- $tos = explode( ',', $content );
188
-
189
- foreach ( $tos as $to ) {
190
- $to = trim( $to );
191
-
192
- if ( preg_match( '/<(.+)>$/', $to, $matches ) ) {
193
- $to = $matches[1];
194
- }
195
-
196
- if ( ! wpcf7_is_email( $to ) ) {
197
- return false;
198
- }
199
- }
200
-
201
- return true;
202
- }
203
-
204
  public function test_additional_headers_syntax( $content ) {
205
  $headers = explode( "\n", $content );
206
 
@@ -211,7 +159,15 @@ class WPCF7_ConfigValidator {
211
  continue;
212
  }
213
 
214
- if ( ! preg_match( '/^[0-9A-Za-z-]+:.+$/', $header ) ) {
 
 
 
 
 
 
 
 
215
  return false;
216
  }
217
  }
@@ -226,6 +182,11 @@ class WPCF7_ConfigValidator {
226
  return;
227
  }
228
 
 
 
 
 
 
229
  foreach ( $messages as $key => $message ) {
230
  $stripped = wp_strip_all_tags( $message );
231
 
@@ -297,7 +258,7 @@ class WPCF7_ConfigValidator {
297
  $last_item = array_pop( $form_tag->values );
298
  }
299
 
300
- if ( $last_item && wpcf7_is_email( $last_item ) ) {
301
  return $example_email;
302
  } else {
303
  return $example_text;
109
  $sender = $sender->replace_tags();
110
  $sender = wpcf7_strip_newline( $sender );
111
 
112
+ if ( ! wpcf7_is_mailbox_list( $sender ) ) {
113
  $this->add_error( sprintf( '%s.sender', $template ),
114
  self::error_invalid_syntax );
115
+ } elseif ( ! wpcf7_is_email_in_site_domain( $sender ) ) {
116
  $this->add_error( sprintf( '%s.sender', $template ),
117
  self::error_email_not_in_site_domain );
118
  }
123
  $recipient = $recipient->replace_tags();
124
  $recipient = wpcf7_strip_newline( $recipient );
125
 
126
+ if ( ! wpcf7_is_mailbox_list( $recipient ) ) {
127
  $this->add_error( sprintf( '%s.recipient', $template ),
128
  self::error_invalid_syntax );
129
  }
149
  }
150
  }
151
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  public function test_additional_headers_syntax( $content ) {
153
  $headers = explode( "\n", $content );
154
 
159
  continue;
160
  }
161
 
162
+ if ( ! preg_match( '/^([0-9A-Za-z-]+):(.+)$/', $header, $matches ) ) {
163
+ return false;
164
+ }
165
+
166
+ $is_mailbox_list_field = in_array( strtolower( $matches[1] ),
167
+ array( 'reply-to', 'cc', 'bcc' ) );
168
+
169
+ if ( $is_mailbox_list_field
170
+ && ! wpcf7_is_mailbox_list( $matches[2] ) ) {
171
  return false;
172
  }
173
  }
182
  return;
183
  }
184
 
185
+ if ( isset( $messages['captcha_not_match'] )
186
+ && ! wpcf7_use_really_simple_captcha() ) {
187
+ unset( $messages['captcha_not_match'] );
188
+ }
189
+
190
  foreach ( $messages as $key => $message ) {
191
  $stripped = wp_strip_all_tags( $message );
192
 
258
  $last_item = array_pop( $form_tag->values );
259
  }
260
 
261
+ if ( $last_item && wpcf7_is_mailbox_list( $last_item ) ) {
262
  return $example_email;
263
  } else {
264
  return $example_text;
includes/formatting.php CHANGED
@@ -195,6 +195,86 @@ function wpcf7_is_date( $date ) {
195
  return apply_filters( 'wpcf7_is_date', $result, $date );
196
  }
197
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
  function wpcf7_antiscript_file_name( $filename ) {
199
  $filename = basename( $filename );
200
  $parts = explode( '.', $filename );
195
  return apply_filters( 'wpcf7_is_date', $result, $date );
196
  }
197
 
198
+ function wpcf7_is_mailbox_list( $mailbox_list ) {
199
+ if ( ! is_array( $mailbox_list ) ) {
200
+ $mailbox_list = explode( ',', (string) $mailbox_list );
201
+ }
202
+
203
+ $addresses = array();
204
+
205
+ foreach ( $mailbox_list as $mailbox ) {
206
+ if ( ! is_string( $mailbox ) ) {
207
+ return false;
208
+ }
209
+
210
+ $mailbox = trim( $mailbox );
211
+
212
+ if ( preg_match( '/<(.+)>$/', $mailbox, $matches ) ) {
213
+ $addr_spec = $matches[1];
214
+ } else {
215
+ $addr_spec = $mailbox;
216
+ }
217
+
218
+ if ( ! wpcf7_is_email( $addr_spec ) ) {
219
+ return false;
220
+ }
221
+
222
+ $addresses[] = $addr_spec;
223
+ }
224
+
225
+ return $addresses;
226
+ }
227
+
228
+ function wpcf7_is_email_in_domain( $email, $domain ) {
229
+ $email_list = wpcf7_is_mailbox_list( $email );
230
+
231
+ foreach ( $email_list as $email ) {
232
+ $email_domain = substr( $email, strrpos( $email, '@' ) + 1 );
233
+ $domain_parts = explode( '.', $domain );
234
+
235
+ do {
236
+ $site_domain = implode( '.', $domain_parts );
237
+
238
+ if ( $site_domain == $email_domain ) {
239
+ continue 2;
240
+ }
241
+
242
+ array_shift( $domain_parts );
243
+ } while ( $domain_parts );
244
+
245
+ return false;
246
+ }
247
+
248
+ return true;
249
+ }
250
+
251
+ function wpcf7_is_email_in_site_domain( $email ) {
252
+ if ( wpcf7_is_localhost() ) {
253
+ return true;
254
+ }
255
+
256
+ $site_domain = strtolower( $_SERVER['SERVER_NAME'] );
257
+
258
+ if ( preg_match( '/^[0-9.]+$/', $site_domain ) ) { // 123.456.789.012
259
+ return true;
260
+ }
261
+
262
+ if ( wpcf7_is_email_in_domain( $email, $site_domain ) ) {
263
+ return true;
264
+ }
265
+
266
+ if ( preg_match( '%^https?://([^/]+)%', home_url(), $matches ) ) {
267
+ $site_domain = strtolower( $matches[1] );
268
+
269
+ if ( $site_domain != strtolower( $_SERVER['SERVER_NAME'] )
270
+ && wpcf7_is_email_in_domain( $email, $site_domain ) ) {
271
+ return true;
272
+ }
273
+ }
274
+
275
+ return false;
276
+ }
277
+
278
  function wpcf7_antiscript_file_name( $filename ) {
279
  $filename = basename( $filename );
280
  $parts = explode( '.', $filename );
languages/contact-form-7-de_DE.mo DELETED
Binary file
languages/contact-form-7-es_ES.mo DELETED
Binary file
languages/contact-form-7-et.mo DELETED
Binary file
languages/contact-form-7-fi.mo DELETED
Binary file
languages/contact-form-7-it_IT.mo DELETED
Binary file
languages/contact-form-7-ro_RO.mo DELETED
Binary file
languages/contact-form-7.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Contact Form 7\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2016-02-20 13:50+0900\n"
7
  "PO-Revision-Date: 2015-05-18 21:49+0900\n"
8
  "Last-Translator: Takayuki Miyoshi <takayukister@gmail.com>\n"
9
  "Language-Team: \n"
@@ -49,7 +49,7 @@ msgstr ""
49
  msgid "Add New"
50
  msgstr ""
51
 
52
- #: contact-form-7/admin/admin.php:46 contact-form-7/admin/admin.php:366
53
  msgid "Integration with Other Services"
54
  msgstr ""
55
 
@@ -96,159 +96,167 @@ msgstr[0] ""
96
  msgid "Validate Configuration"
97
  msgstr ""
98
 
99
- #: contact-form-7/admin/admin.php:395
100
- msgid "Contact form created."
 
 
 
 
101
  msgstr ""
102
 
103
  #: contact-form-7/admin/admin.php:397
104
- msgid "Contact form saved."
105
  msgstr ""
106
 
107
  #: contact-form-7/admin/admin.php:399
 
 
 
 
108
  msgid "Contact form deleted."
109
  msgstr ""
110
 
111
- #: contact-form-7/admin/admin.php:408
112
  #, php-format
113
  msgid "Configuration validation completed. An invalid contact form was found."
114
  msgid_plural ""
115
  "Configuration validation completed. %s invalid contact forms were found."
116
  msgstr[0] ""
117
 
118
- #: contact-form-7/admin/admin.php:413
119
  msgid "Configuration validation completed. No invalid contact form was found."
120
  msgstr ""
121
 
122
- #: contact-form-7/admin/admin.php:429
123
  msgid "Settings"
124
  msgstr ""
125
 
126
- #: contact-form-7/admin/admin.php:447
127
  #, php-format
128
  msgid ""
129
  "<strong>Contact Form 7 %1$s requires WordPress %2$s or higher.</strong> "
130
  "Please <a href=\"%3$s\">update WordPress</a> first."
131
  msgstr ""
132
 
133
- #: contact-form-7/admin/admin.php:473
134
  msgid "Dismiss"
135
  msgstr ""
136
 
137
- #: contact-form-7/admin/admin.php:478
138
  msgid "Contact Form 7 Needs Your Support"
139
  msgstr ""
140
 
141
- #: contact-form-7/admin/admin.php:479
142
  msgid ""
143
  "It is hard to continue development and support for this plugin without "
144
  "contributions from users like you. If you enjoy using Contact Form 7 and "
145
  "find it useful, please consider making a donation."
146
  msgstr ""
147
 
148
- #: contact-form-7/admin/admin.php:480
149
  msgid "http://contactform7.com/donate/"
150
  msgstr ""
151
 
152
- #: contact-form-7/admin/admin.php:480
153
  msgid "Donate"
154
  msgstr ""
155
 
156
- #: contact-form-7/admin/admin.php:484
157
  msgid "Get Started"
158
  msgstr ""
159
 
160
- #: contact-form-7/admin/admin.php:486
161
  msgid "http://contactform7.com/getting-started-with-contact-form-7/"
162
  msgstr ""
163
 
164
- #: contact-form-7/admin/admin.php:486
165
  msgid "Getting Started with Contact Form 7"
166
  msgstr ""
167
 
168
- #: contact-form-7/admin/admin.php:487
169
  msgid "http://contactform7.com/admin-screen/"
170
  msgstr ""
171
 
172
- #: contact-form-7/admin/admin.php:487
173
  msgid "Admin Screen"
174
  msgstr ""
175
 
176
- #: contact-form-7/admin/admin.php:488
177
  msgid "http://contactform7.com/tag-syntax/"
178
  msgstr ""
179
 
180
- #: contact-form-7/admin/admin.php:488
181
  msgid "How Tags Work"
182
  msgstr ""
183
 
184
- #: contact-form-7/admin/admin.php:489
185
  msgid "http://contactform7.com/setting-up-mail/"
186
  msgstr ""
187
 
188
- #: contact-form-7/admin/admin.php:489
189
  msgid "Setting Up Mail"
190
  msgstr ""
191
 
192
- #: contact-form-7/admin/admin.php:494
193
  msgid "Did You Know?"
194
  msgstr ""
195
 
196
- #: contact-form-7/admin/admin.php:496
197
  msgid "http://contactform7.com/spam-filtering-with-akismet/"
198
  msgstr ""
199
 
200
- #: contact-form-7/admin/admin.php:496
201
  msgid "Spam Filtering with Akismet"
202
  msgstr ""
203
 
204
- #: contact-form-7/admin/admin.php:497
205
  msgid "http://contactform7.com/save-submitted-messages-with-flamingo/"
206
  msgstr ""
207
 
208
- #: contact-form-7/admin/admin.php:497
209
  msgid "Save Messages with Flamingo"
210
  msgstr ""
211
 
212
- #: contact-form-7/admin/admin.php:498
213
  msgid "http://contactform7.com/selectable-recipient-with-pipes/"
214
  msgstr ""
215
 
216
- #: contact-form-7/admin/admin.php:498
217
  msgid "Selectable Recipient with Pipes"
218
  msgstr ""
219
 
220
- #: contact-form-7/admin/admin.php:499
221
  msgid ""
222
  "http://contactform7.com/tracking-form-submissions-with-google-analytics/"
223
  msgstr ""
224
 
225
- #: contact-form-7/admin/admin.php:499
226
  msgid "Tracking with Google Analytics"
227
  msgstr ""
228
 
229
- #: contact-form-7/admin/admin.php:544
230
  msgid "You are not allowed to edit this contact form."
231
  msgstr ""
232
 
233
- #: contact-form-7/admin/admin.php:567
234
  #, php-format
235
  msgid "This contact form has a configuration error."
236
  msgid_plural "This contact form has %s configuration errors."
237
  msgstr[0] ""
238
 
239
- #: contact-form-7/admin/admin.php:573
240
  msgid "http://contactform7.com/configuration-errors/"
241
  msgstr ""
242
 
243
- #: contact-form-7/admin/admin.php:574
244
  msgid "How to Resolve Configuration Errors"
245
  msgstr ""
246
 
247
- #: contact-form-7/admin/admin.php:601
248
  msgid "Validate Contact Form 7 Configuration"
249
  msgstr ""
250
 
251
- #: contact-form-7/admin/admin.php:603
252
  msgid ""
253
  "Misconfiguration leads to mail delivery failure or other troubles. Validate "
254
  "your contact forms now."
@@ -344,7 +352,7 @@ msgid "Mail"
344
  msgstr ""
345
 
346
  #: contact-form-7/admin/edit-contact-form.php:188
347
- #: contact-form-7/admin/includes/editor.php:201
348
  msgid "Messages"
349
  msgstr ""
350
 
@@ -354,8 +362,8 @@ msgid "Additional Settings (%d)"
354
  msgstr ""
355
 
356
  #: contact-form-7/admin/edit-contact-form.php:201
357
- #: contact-form-7/admin/includes/editor.php:233
358
- #: contact-form-7/admin/includes/editor.php:238
359
  msgid "Additional Settings"
360
  msgstr ""
361
 
@@ -452,15 +460,15 @@ msgstr ""
452
  msgid "File Attachments"
453
  msgstr ""
454
 
455
- #: contact-form-7/admin/includes/editor.php:203
456
  msgid "Edit messages used in the following situations."
457
  msgstr ""
458
 
459
- #: contact-form-7/admin/includes/editor.php:232
460
  msgid "http://contactform7.com/additional-settings/"
461
  msgstr ""
462
 
463
- #: contact-form-7/admin/includes/editor.php:234
464
  #, php-format
465
  msgid "You can add customization code snippets here. For details, see %s."
466
  msgstr ""
@@ -1445,7 +1453,7 @@ msgid ""
1445
  "%s."
1446
  msgstr ""
1447
 
1448
- #: contact-form-7/settings.php:132
1449
  #, php-format
1450
  msgid "Contact form %d"
1451
  msgstr ""
3
  msgstr ""
4
  "Project-Id-Version: Contact Form 7\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2016-03-13 09:12+0900\n"
7
  "PO-Revision-Date: 2015-05-18 21:49+0900\n"
8
  "Last-Translator: Takayuki Miyoshi <takayukister@gmail.com>\n"
9
  "Language-Team: \n"
49
  msgid "Add New"
50
  msgstr ""
51
 
52
+ #: contact-form-7/admin/admin.php:46 contact-form-7/admin/admin.php:368
53
  msgid "Integration with Other Services"
54
  msgstr ""
55
 
96
  msgid "Validate Configuration"
97
  msgstr ""
98
 
99
+ #: contact-form-7/admin/admin.php:330
100
+ msgid "http://contactform7.com/configuration-validator-faq/"
101
+ msgstr ""
102
+
103
+ #: contact-form-7/admin/admin.php:330
104
+ msgid "FAQ about Configuration Validator"
105
  msgstr ""
106
 
107
  #: contact-form-7/admin/admin.php:397
108
+ msgid "Contact form created."
109
  msgstr ""
110
 
111
  #: contact-form-7/admin/admin.php:399
112
+ msgid "Contact form saved."
113
+ msgstr ""
114
+
115
+ #: contact-form-7/admin/admin.php:401
116
  msgid "Contact form deleted."
117
  msgstr ""
118
 
119
+ #: contact-form-7/admin/admin.php:417
120
  #, php-format
121
  msgid "Configuration validation completed. An invalid contact form was found."
122
  msgid_plural ""
123
  "Configuration validation completed. %s invalid contact forms were found."
124
  msgstr[0] ""
125
 
126
+ #: contact-form-7/admin/admin.php:424
127
  msgid "Configuration validation completed. No invalid contact form was found."
128
  msgstr ""
129
 
130
+ #: contact-form-7/admin/admin.php:440
131
  msgid "Settings"
132
  msgstr ""
133
 
134
+ #: contact-form-7/admin/admin.php:458
135
  #, php-format
136
  msgid ""
137
  "<strong>Contact Form 7 %1$s requires WordPress %2$s or higher.</strong> "
138
  "Please <a href=\"%3$s\">update WordPress</a> first."
139
  msgstr ""
140
 
141
+ #: contact-form-7/admin/admin.php:484
142
  msgid "Dismiss"
143
  msgstr ""
144
 
145
+ #: contact-form-7/admin/admin.php:489
146
  msgid "Contact Form 7 Needs Your Support"
147
  msgstr ""
148
 
149
+ #: contact-form-7/admin/admin.php:490
150
  msgid ""
151
  "It is hard to continue development and support for this plugin without "
152
  "contributions from users like you. If you enjoy using Contact Form 7 and "
153
  "find it useful, please consider making a donation."
154
  msgstr ""
155
 
156
+ #: contact-form-7/admin/admin.php:491
157
  msgid "http://contactform7.com/donate/"
158
  msgstr ""
159
 
160
+ #: contact-form-7/admin/admin.php:491
161
  msgid "Donate"
162
  msgstr ""
163
 
164
+ #: contact-form-7/admin/admin.php:495
165
  msgid "Get Started"
166
  msgstr ""
167
 
168
+ #: contact-form-7/admin/admin.php:497
169
  msgid "http://contactform7.com/getting-started-with-contact-form-7/"
170
  msgstr ""
171
 
172
+ #: contact-form-7/admin/admin.php:497
173
  msgid "Getting Started with Contact Form 7"
174
  msgstr ""
175
 
176
+ #: contact-form-7/admin/admin.php:498
177
  msgid "http://contactform7.com/admin-screen/"
178
  msgstr ""
179
 
180
+ #: contact-form-7/admin/admin.php:498
181
  msgid "Admin Screen"
182
  msgstr ""
183
 
184
+ #: contact-form-7/admin/admin.php:499
185
  msgid "http://contactform7.com/tag-syntax/"
186
  msgstr ""
187
 
188
+ #: contact-form-7/admin/admin.php:499
189
  msgid "How Tags Work"
190
  msgstr ""
191
 
192
+ #: contact-form-7/admin/admin.php:500
193
  msgid "http://contactform7.com/setting-up-mail/"
194
  msgstr ""
195
 
196
+ #: contact-form-7/admin/admin.php:500
197
  msgid "Setting Up Mail"
198
  msgstr ""
199
 
200
+ #: contact-form-7/admin/admin.php:505
201
  msgid "Did You Know?"
202
  msgstr ""
203
 
204
+ #: contact-form-7/admin/admin.php:507
205
  msgid "http://contactform7.com/spam-filtering-with-akismet/"
206
  msgstr ""
207
 
208
+ #: contact-form-7/admin/admin.php:507
209
  msgid "Spam Filtering with Akismet"
210
  msgstr ""
211
 
212
+ #: contact-form-7/admin/admin.php:508
213
  msgid "http://contactform7.com/save-submitted-messages-with-flamingo/"
214
  msgstr ""
215
 
216
+ #: contact-form-7/admin/admin.php:508
217
  msgid "Save Messages with Flamingo"
218
  msgstr ""
219
 
220
+ #: contact-form-7/admin/admin.php:509
221
  msgid "http://contactform7.com/selectable-recipient-with-pipes/"
222
  msgstr ""
223
 
224
+ #: contact-form-7/admin/admin.php:509
225
  msgid "Selectable Recipient with Pipes"
226
  msgstr ""
227
 
228
+ #: contact-form-7/admin/admin.php:510
229
  msgid ""
230
  "http://contactform7.com/tracking-form-submissions-with-google-analytics/"
231
  msgstr ""
232
 
233
+ #: contact-form-7/admin/admin.php:510
234
  msgid "Tracking with Google Analytics"
235
  msgstr ""
236
 
237
+ #: contact-form-7/admin/admin.php:555
238
  msgid "You are not allowed to edit this contact form."
239
  msgstr ""
240
 
241
+ #: contact-form-7/admin/admin.php:578
242
  #, php-format
243
  msgid "This contact form has a configuration error."
244
  msgid_plural "This contact form has %s configuration errors."
245
  msgstr[0] ""
246
 
247
+ #: contact-form-7/admin/admin.php:584
248
  msgid "http://contactform7.com/configuration-errors/"
249
  msgstr ""
250
 
251
+ #: contact-form-7/admin/admin.php:585
252
  msgid "How to Resolve Configuration Errors"
253
  msgstr ""
254
 
255
+ #: contact-form-7/admin/admin.php:612
256
  msgid "Validate Contact Form 7 Configuration"
257
  msgstr ""
258
 
259
+ #: contact-form-7/admin/admin.php:614
260
  msgid ""
261
  "Misconfiguration leads to mail delivery failure or other troubles. Validate "
262
  "your contact forms now."
352
  msgstr ""
353
 
354
  #: contact-form-7/admin/edit-contact-form.php:188
355
+ #: contact-form-7/admin/includes/editor.php:202
356
  msgid "Messages"
357
  msgstr ""
358
 
362
  msgstr ""
363
 
364
  #: contact-form-7/admin/edit-contact-form.php:201
365
+ #: contact-form-7/admin/includes/editor.php:234
366
+ #: contact-form-7/admin/includes/editor.php:239
367
  msgid "Additional Settings"
368
  msgstr ""
369
 
460
  msgid "File Attachments"
461
  msgstr ""
462
 
463
+ #: contact-form-7/admin/includes/editor.php:204
464
  msgid "Edit messages used in the following situations."
465
  msgstr ""
466
 
467
+ #: contact-form-7/admin/includes/editor.php:233
468
  msgid "http://contactform7.com/additional-settings/"
469
  msgstr ""
470
 
471
+ #: contact-form-7/admin/includes/editor.php:235
472
  #, php-format
473
  msgid "You can add customization code snippets here. For details, see %s."
474
  msgstr ""
1453
  "%s."
1454
  msgstr ""
1455
 
1456
+ #: contact-form-7/settings.php:134
1457
  #, php-format
1458
  msgid "Contact form %d"
1459
  msgstr ""
modules/text.php CHANGED
@@ -144,7 +144,7 @@ function wpcf7_text_validation_filter( $result, $tag ) {
144
  $maxlength = $minlength = null;
145
  }
146
 
147
- $code_units = wpcf7_count_code_units( $value );
148
 
149
  if ( false !== $code_units ) {
150
  if ( $maxlength && $maxlength < $code_units ) {
144
  $maxlength = $minlength = null;
145
  }
146
 
147
+ $code_units = wpcf7_count_code_units( stripslashes( $value ) );
148
 
149
  if ( false !== $code_units ) {
150
  if ( $maxlength && $maxlength < $code_units ) {
modules/textarea.php CHANGED
@@ -101,7 +101,7 @@ function wpcf7_textarea_validation_filter( $result, $tag ) {
101
  $maxlength = $minlength = null;
102
  }
103
 
104
- $code_units = wpcf7_count_code_units( $value );
105
 
106
  if ( false !== $code_units ) {
107
  if ( $maxlength && $maxlength < $code_units ) {
101
  $maxlength = $minlength = null;
102
  }
103
 
104
+ $code_units = wpcf7_count_code_units( stripslashes( $value ) );
105
 
106
  if ( false !== $code_units ) {
107
  if ( $maxlength && $maxlength < $code_units ) {
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: takayukister
3
  Donate link: http://contactform7.com/donate/
4
  Tags: contact, form, contact form, feedback, email, ajax, captcha, akismet, multilingual
5
  Requires at least: 4.3
6
- Tested up to: 4.4.2
7
- Stable tag: 4.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -63,6 +63,14 @@ Do you have questions or issues with Contact Form 7? Use these support channels
63
 
64
  For more information, see [Releases](http://contactform7.com/category/releases/).
65
 
 
 
 
 
 
 
 
 
66
  = 4.4 =
67
 
68
  * The configuration validator has been introduced.
3
  Donate link: http://contactform7.com/donate/
4
  Tags: contact, form, contact form, feedback, email, ajax, captcha, akismet, multilingual
5
  Requires at least: 4.3
6
+ Tested up to: 4.5
7
+ Stable tag: 4.4.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
63
 
64
  For more information, see [Releases](http://contactform7.com/category/releases/).
65
 
66
+ = 4.4.1 =
67
+
68
+ * Config Validation: Added a link to FAQ.
69
+ * Config Validation: Relaxed email domain validation.
70
+ * Config Validation: Added mail header syntax check for Cc, Bcc, and Reply-To.
71
+ * Fixed: Incorrect character count for quotation marks.
72
+ * Language Packs: Language files for German (de_DE), Italian (it_IT), Romanian (ro_RO), Estonian (et), Spanish (es_ES), and Finnish (fi) have been removed.
73
+
74
  = 4.4 =
75
 
76
  * The configuration validator has been introduced.
settings.php CHANGED
@@ -118,18 +118,26 @@ function wpcf7_upgrade() {
118
  add_action( 'activate_' . WPCF7_PLUGIN_BASENAME, 'wpcf7_install' );
119
 
120
  function wpcf7_install() {
121
- if ( $opt = get_option( 'wpcf7' ) )
122
  return;
 
123
 
124
  wpcf7_load_textdomain();
125
  wpcf7_register_post_types();
126
  wpcf7_upgrade();
127
 
128
- if ( get_posts( array( 'post_type' => 'wpcf7_contact_form' ) ) )
129
  return;
 
130
 
131
  $contact_form = WPCF7_ContactForm::get_template( array(
132
  'title' => sprintf( __( 'Contact form %d', 'contact-form-7' ), 1 ) ) );
133
 
134
  $contact_form->save();
 
 
 
 
 
 
135
  }
118
  add_action( 'activate_' . WPCF7_PLUGIN_BASENAME, 'wpcf7_install' );
119
 
120
  function wpcf7_install() {
121
+ if ( $opt = get_option( 'wpcf7' ) ) {
122
  return;
123
+ }
124
 
125
  wpcf7_load_textdomain();
126
  wpcf7_register_post_types();
127
  wpcf7_upgrade();
128
 
129
+ if ( get_posts( array( 'post_type' => 'wpcf7_contact_form' ) ) ) {
130
  return;
131
+ }
132
 
133
  $contact_form = WPCF7_ContactForm::get_template( array(
134
  'title' => sprintf( __( 'Contact form %d', 'contact-form-7' ), 1 ) ) );
135
 
136
  $contact_form->save();
137
+
138
+ WPCF7::update_option( 'bulk_validate', array(
139
+ 'timestamp' => current_time( 'timestamp' ),
140
+ 'version' => WPCF7_VERSION,
141
+ 'count_valid' => 1,
142
+ 'count_invalid' => 0 ) );
143
  }
wp-contact-form-7.php CHANGED
@@ -7,10 +7,10 @@ Author: Takayuki Miyoshi
7
  Author URI: http://ideasilo.wordpress.com/
8
  Text Domain: contact-form-7
9
  Domain Path: /languages/
10
- Version: 4.4
11
  */
12
 
13
- define( 'WPCF7_VERSION', '4.4' );
14
 
15
  define( 'WPCF7_REQUIRED_WP_VERSION', '4.3' );
16
 
7
  Author URI: http://ideasilo.wordpress.com/
8
  Text Domain: contact-form-7
9
  Domain Path: /languages/
10
+ Version: 4.4.1
11
  */
12
 
13
+ define( 'WPCF7_VERSION', '4.4.1' );
14
 
15
  define( 'WPCF7_REQUIRED_WP_VERSION', '4.3' );
16