Contact Form 7 - Version 4.0

Version Description

  • The default mail template changed (see Best Practice to Set Up Mail).
  • Translations for Slovak, German, Turkish and Portuguese have been updated.
  • WordPress 3.9 or higher is required.
Download this release

Release Info

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

Code changes from version 3.9.3 to 4.0

includes/contact-form-template.php ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class WPCF7_ContactFormTemplate {
4
+
5
+ public static function get_default( $prop = 'form' ) {
6
+ $prop = preg_replace( '/[^a-z0-9_]/', '', $prop );
7
+ $callback = 'self::' . $prop;
8
+ $template = is_callable( $callback ) ? call_user_func( $callback ) : null;
9
+
10
+ return apply_filters( 'wpcf7_default_template', $template, $prop );
11
+ }
12
+
13
+ public static function form() {
14
+ $template =
15
+ '<p>' . __( 'Your Name', 'contact-form-7' )
16
+ . ' ' . __( '(required)', 'contact-form-7' ) . '<br />' . "\n"
17
+ . ' [text* your-name] </p>' . "\n\n"
18
+ . '<p>' . __( 'Your Email', 'contact-form-7' )
19
+ . ' ' . __( '(required)', 'contact-form-7' ) . '<br />' . "\n"
20
+ . ' [email* your-email] </p>' . "\n\n"
21
+ . '<p>' . __( 'Subject', 'contact-form-7' ) . '<br />' . "\n"
22
+ . ' [text your-subject] </p>' . "\n\n"
23
+ . '<p>' . __( 'Your Message', 'contact-form-7' ) . '<br />' . "\n"
24
+ . ' [textarea your-message] </p>' . "\n\n"
25
+ . '<p>[submit "' . __( 'Send', 'contact-form-7' ) . '"]</p>';
26
+
27
+ return $template;
28
+ }
29
+
30
+ public static function mail() {
31
+ $template = array(
32
+ 'subject' => '[your-subject]',
33
+ 'sender' => sprintf( '[your-name] <%s>', self::from_email() ),
34
+ 'body' =>
35
+ sprintf( __( 'From: %s', 'contact-form-7' ),
36
+ '[your-name] <[your-email]>' ) . "\n"
37
+ . sprintf( __( 'Subject: %s', 'contact-form-7' ),
38
+ '[your-subject]' ) . "\n\n"
39
+ . __( 'Message Body:', 'contact-form-7' )
40
+ . "\n" . '[your-message]' . "\n\n"
41
+ . '--' . "\n"
42
+ . sprintf( __( 'This e-mail was sent from a contact form on %1$s (%2$s)',
43
+ 'contact-form-7' ), get_bloginfo( 'name' ), get_bloginfo( 'url' ) ),
44
+ 'recipient' => get_option( 'admin_email' ),
45
+ 'additional_headers' => 'Reply-To: [your-email]',
46
+ 'attachments' => '',
47
+ 'use_html' => 0,
48
+ 'exclude_blank' => 0 );
49
+
50
+ return $template;
51
+ }
52
+
53
+ public static function mail_2() {
54
+ $template = array(
55
+ 'active' => false,
56
+ 'subject' => '[your-subject]',
57
+ 'sender' => sprintf( '%s <%s>',
58
+ get_bloginfo( 'name' ), self::from_email() ),
59
+ 'body' =>
60
+ __( 'Message Body:', 'contact-form-7' )
61
+ . "\n" . '[your-message]' . "\n\n"
62
+ . '--' . "\n"
63
+ . sprintf( __( 'This e-mail was sent from a contact form on %1$s (%2$s)',
64
+ 'contact-form-7' ), get_bloginfo( 'name' ), get_bloginfo( 'url' ) ),
65
+ 'recipient' => '[your-email]',
66
+ 'additional_headers' => sprintf( 'Reply-To: %s',
67
+ get_option( 'admin_email' ) ),
68
+ 'attachments' => '',
69
+ 'use_html' => 0,
70
+ 'exclude_blank' => 0 );
71
+
72
+ return $template;
73
+ }
74
+
75
+ public static function from_email() {
76
+ $admin_email = get_option( 'admin_email' );
77
+ $sitename = strtolower( $_SERVER['SERVER_NAME'] );
78
+
79
+ if ( 'localhost' == $sitename ) {
80
+ return $admin_email;
81
+ }
82
+
83
+ if ( substr( $sitename, 0, 4 ) == 'www.' ) {
84
+ $sitename = substr( $sitename, 4 );
85
+ }
86
+
87
+ if ( strpbrk( $admin_email, '@' ) == '@' . $sitename ) {
88
+ return $admin_email;
89
+ }
90
+
91
+ return 'wordpress@' . $sitename;
92
+ }
93
+
94
+ public static function messages() {
95
+ $messages = array();
96
+
97
+ foreach ( wpcf7_messages() as $key => $arr ) {
98
+ $messages[$key] = $arr['default'];
99
+ }
100
+
101
+ return $messages;
102
+ }
103
+ }
104
+
105
+ function wpcf7_messages() {
106
+ $messages = array(
107
+ 'mail_sent_ok' => array(
108
+ 'description'
109
+ => __( "Sender's message was sent successfully", 'contact-form-7' ),
110
+ 'default'
111
+ => __( 'Your message was sent successfully. Thanks.', 'contact-form-7' )
112
+ ),
113
+
114
+ 'mail_sent_ng' => array(
115
+ 'description'
116
+ => __( "Sender's message was failed to send", 'contact-form-7' ),
117
+ 'default'
118
+ => __( 'Failed to send your message. Please try later or contact the administrator by another method.', 'contact-form-7' )
119
+ ),
120
+
121
+ 'validation_error' => array(
122
+ 'description'
123
+ => __( "Validation errors occurred", 'contact-form-7' ),
124
+ 'default'
125
+ => __( 'Validation errors occurred. Please confirm the fields and submit it again.', 'contact-form-7' )
126
+ ),
127
+
128
+ 'spam' => array(
129
+ 'description'
130
+ => __( "Submission was referred to as spam", 'contact-form-7' ),
131
+ 'default'
132
+ => __( 'Failed to send your message. Please try later or contact the administrator by another method.', 'contact-form-7' )
133
+ ),
134
+
135
+ 'accept_terms' => array(
136
+ 'description'
137
+ => __( "There are terms that the sender must accept", 'contact-form-7' ),
138
+ 'default'
139
+ => __( 'Please accept the terms to proceed.', 'contact-form-7' )
140
+ ),
141
+
142
+ 'invalid_required' => array(
143
+ 'description'
144
+ => __( "There is a field that the sender must fill in", 'contact-form-7' ),
145
+ 'default'
146
+ => __( 'Please fill the required field.', 'contact-form-7' )
147
+ )
148
+ );
149
+
150
+ return apply_filters( 'wpcf7_messages', $messages );
151
+ }
152
+
153
+ ?>
includes/contact-form.php CHANGED
@@ -79,7 +79,7 @@ class WPCF7_ContactForm {
79
  $properties = $contact_form->get_properties();
80
 
81
  foreach ( $properties as $key => $value ) {
82
- $properties[$key] = wpcf7_get_default_template( $key );
83
  }
84
 
85
  $contact_form->properties = $properties;
@@ -811,111 +811,4 @@ function wpcf7_form_controls_class( $type, $default = '' ) {
811
  return implode( ' ', $classes );
812
  }
813
 
814
- function wpcf7_get_default_template( $prop = 'form' ) {
815
- if ( 'form' == $prop )
816
- $template = wpcf7_default_form_template();
817
- elseif ( 'mail' == $prop )
818
- $template = wpcf7_default_mail_template();
819
- elseif ( 'mail_2' == $prop )
820
- $template = wpcf7_default_mail_2_template();
821
- elseif ( 'messages' == $prop )
822
- $template = wpcf7_default_messages_template();
823
- else
824
- $template = null;
825
-
826
- return apply_filters( 'wpcf7_default_template', $template, $prop );
827
- }
828
-
829
- function wpcf7_default_form_template() {
830
- $template =
831
- '<p>' . __( 'Your Name', 'contact-form-7' ) . ' ' . __( '(required)', 'contact-form-7' ) . '<br />' . "\n"
832
- . ' [text* your-name] </p>' . "\n\n"
833
- . '<p>' . __( 'Your Email', 'contact-form-7' ) . ' ' . __( '(required)', 'contact-form-7' ) . '<br />' . "\n"
834
- . ' [email* your-email] </p>' . "\n\n"
835
- . '<p>' . __( 'Subject', 'contact-form-7' ) . '<br />' . "\n"
836
- . ' [text your-subject] </p>' . "\n\n"
837
- . '<p>' . __( 'Your Message', 'contact-form-7' ) . '<br />' . "\n"
838
- . ' [textarea your-message] </p>' . "\n\n"
839
- . '<p>[submit "' . __( 'Send', 'contact-form-7' ) . '"]</p>';
840
-
841
- return $template;
842
- }
843
-
844
- function wpcf7_default_mail_template() {
845
- $subject = '[your-subject]';
846
- $sender = '[your-name] <[your-email]>';
847
- $body = sprintf( __( 'From: %s', 'contact-form-7' ), '[your-name] <[your-email]>' ) . "\n"
848
- . sprintf( __( 'Subject: %s', 'contact-form-7' ), '[your-subject]' ) . "\n\n"
849
- . __( 'Message Body:', 'contact-form-7' ) . "\n" . '[your-message]' . "\n\n" . '--' . "\n"
850
- . sprintf( __( 'This e-mail was sent from a contact form on %1$s (%2$s)', 'contact-form-7' ),
851
- get_bloginfo( 'name' ), get_bloginfo( 'url' ) );
852
- $recipient = get_option( 'admin_email' );
853
- $additional_headers = '';
854
- $attachments = '';
855
- $use_html = 0;
856
- $exclude_blank = 0;
857
- return compact( 'subject', 'sender', 'body', 'recipient', 'additional_headers', 'attachments', 'use_html', 'exclude_blank' );
858
- }
859
-
860
- function wpcf7_default_mail_2_template() {
861
- $active = false;
862
- $subject = '[your-subject]';
863
- $sender = '[your-name] <[your-email]>';
864
- $body = __( 'Message Body:', 'contact-form-7' ) . "\n" . '[your-message]' . "\n\n" . '--' . "\n"
865
- . sprintf( __( 'This e-mail was sent from a contact form on %1$s (%2$s)', 'contact-form-7' ),
866
- get_bloginfo( 'name' ), get_bloginfo( 'url' ) );
867
- $recipient = '[your-email]';
868
- $additional_headers = '';
869
- $attachments = '';
870
- $use_html = 0;
871
- $exclude_blank = 0;
872
- return compact( 'active', 'subject', 'sender', 'body', 'recipient', 'additional_headers', 'attachments', 'use_html', 'exclude_blank' );
873
- }
874
-
875
- function wpcf7_default_messages_template() {
876
- $messages = array();
877
-
878
- foreach ( wpcf7_messages() as $key => $arr ) {
879
- $messages[$key] = $arr['default'];
880
- }
881
-
882
- return $messages;
883
- }
884
-
885
- function wpcf7_messages() {
886
- $messages = array(
887
- 'mail_sent_ok' => array(
888
- 'description' => __( "Sender's message was sent successfully", 'contact-form-7' ),
889
- 'default' => __( 'Your message was sent successfully. Thanks.', 'contact-form-7' )
890
- ),
891
-
892
- 'mail_sent_ng' => array(
893
- 'description' => __( "Sender's message was failed to send", 'contact-form-7' ),
894
- 'default' => __( 'Failed to send your message. Please try later or contact the administrator by another method.', 'contact-form-7' )
895
- ),
896
-
897
- 'validation_error' => array(
898
- 'description' => __( "Validation errors occurred", 'contact-form-7' ),
899
- 'default' => __( 'Validation errors occurred. Please confirm the fields and submit it again.', 'contact-form-7' )
900
- ),
901
-
902
- 'spam' => array(
903
- 'description' => __( "Submission was referred to as spam", 'contact-form-7' ),
904
- 'default' => __( 'Failed to send your message. Please try later or contact the administrator by another method.', 'contact-form-7' )
905
- ),
906
-
907
- 'accept_terms' => array(
908
- 'description' => __( "There are terms that the sender must accept", 'contact-form-7' ),
909
- 'default' => __( 'Please accept the terms to proceed.', 'contact-form-7' )
910
- ),
911
-
912
- 'invalid_required' => array(
913
- 'description' => __( "There is a field that the sender must fill in", 'contact-form-7' ),
914
- 'default' => __( 'Please fill the required field.', 'contact-form-7' )
915
- )
916
- );
917
-
918
- return apply_filters( 'wpcf7_messages', $messages );
919
- }
920
-
921
  ?>
79
  $properties = $contact_form->get_properties();
80
 
81
  foreach ( $properties as $key => $value ) {
82
+ $properties[$key] = WPCF7_ContactFormTemplate::get_default( $key );
83
  }
84
 
85
  $contact_form->properties = $properties;
811
  return implode( ' ', $classes );
812
  }
813
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
814
  ?>
includes/functions.php CHANGED
@@ -40,26 +40,25 @@ function wpcf7_l10n() {
40
  'sq' => __( 'Albanian', 'contact-form-7' ),
41
  'ar' => __( 'Arabic', 'contact-form-7' ),
42
  'hy_AM' => __( 'Armenian', 'contact-form-7' ),
43
- 'az_AZ' => __( 'Azerbaijani', 'contact-form-7' ),
44
  'bn_BD' => __( 'Bangla', 'contact-form-7' ),
45
  'eu' => __( 'Basque', 'contact-form-7' ),
46
  'be_BY' => __( 'Belarusian', 'contact-form-7' ),
47
- 'bs' => __( 'Bosnian', 'contact-form-7' ),
48
- 'pt_BR' => __( 'Brazilian Portuguese', 'contact-form-7' ),
49
  'bg_BG' => __( 'Bulgarian', 'contact-form-7' ),
50
  'ca' => __( 'Catalan', 'contact-form-7' ),
51
  'ckb' => __( 'Central Kurdish', 'contact-form-7' ),
52
- 'zh_CN' => __( 'Chinese (Simplified)', 'contact-form-7' ),
53
- 'zh_TW' => __( 'Chinese (Traditional)', 'contact-form-7' ),
54
  'hr' => __( 'Croatian', 'contact-form-7' ),
55
  'cs_CZ' => __( 'Czech', 'contact-form-7' ),
56
  'da_DK' => __( 'Danish', 'contact-form-7' ),
57
  'nl_NL' => __( 'Dutch', 'contact-form-7' ),
58
- 'en_US' => __( 'English', 'contact-form-7' ),
59
  'eo_EO' => __( 'Esperanto', 'contact-form-7' ),
60
  'et' => __( 'Estonian', 'contact-form-7' ),
61
  'fi' => __( 'Finnish', 'contact-form-7' ),
62
- 'fr_FR' => __( 'French', 'contact-form-7' ),
63
  'gl_ES' => __( 'Galician', 'contact-form-7' ),
64
  'gu_IN' => __( 'Gujarati', 'contact-form-7' ),
65
  'ka_GE' => __( 'Georgian', 'contact-form-7' ),
@@ -81,10 +80,11 @@ function wpcf7_l10n() {
81
  'ms_MY' => __( 'Malay', 'contact-form-7' ),
82
  'ml_IN' => __( 'Malayalam', 'contact-form-7' ),
83
  'mt_MT' => __( 'Maltese', 'contact-form-7' ),
84
- 'nb_NO' => __( 'Norwegian', 'contact-form-7' ),
85
  'fa_IR' => __( 'Persian', 'contact-form-7' ),
86
  'pl_PL' => __( 'Polish', 'contact-form-7' ),
87
- 'pt_PT' => __( 'Portuguese', 'contact-form-7' ),
 
88
  'pa_IN' => __( 'Punjabi', 'contact-form-7' ),
89
  'ru_RU' => __( 'Russian', 'contact-form-7' ),
90
  'ro_RO' => __( 'Romanian', 'contact-form-7' ),
@@ -92,7 +92,7 @@ function wpcf7_l10n() {
92
  'si_LK' => __( 'Sinhala', 'contact-form-7' ),
93
  'sk_SK' => __( 'Slovak', 'contact-form-7' ),
94
  'sl_SI' => __( 'Slovene', 'contact-form-7' ),
95
- 'es_ES' => __( 'Spanish', 'contact-form-7' ),
96
  'sv_SE' => __( 'Swedish', 'contact-form-7' ),
97
  'ta' => __( 'Tamil', 'contact-form-7' ),
98
  'th' => __( 'Thai', 'contact-form-7' ),
40
  'sq' => __( 'Albanian', 'contact-form-7' ),
41
  'ar' => __( 'Arabic', 'contact-form-7' ),
42
  'hy_AM' => __( 'Armenian', 'contact-form-7' ),
43
+ 'az' => __( 'Azerbaijani', 'contact-form-7' ),
44
  'bn_BD' => __( 'Bangla', 'contact-form-7' ),
45
  'eu' => __( 'Basque', 'contact-form-7' ),
46
  'be_BY' => __( 'Belarusian', 'contact-form-7' ),
47
+ 'bs_BA' => __( 'Bosnian', 'contact-form-7' ),
 
48
  'bg_BG' => __( 'Bulgarian', 'contact-form-7' ),
49
  'ca' => __( 'Catalan', 'contact-form-7' ),
50
  'ckb' => __( 'Central Kurdish', 'contact-form-7' ),
51
+ 'zh_CN' => __( 'Chinese (China)', 'contact-form-7' ),
52
+ 'zh_TW' => __( 'Chinese (Taiwan)', 'contact-form-7' ),
53
  'hr' => __( 'Croatian', 'contact-form-7' ),
54
  'cs_CZ' => __( 'Czech', 'contact-form-7' ),
55
  'da_DK' => __( 'Danish', 'contact-form-7' ),
56
  'nl_NL' => __( 'Dutch', 'contact-form-7' ),
57
+ 'en_US' => __( 'English (United States)', 'contact-form-7' ),
58
  'eo_EO' => __( 'Esperanto', 'contact-form-7' ),
59
  'et' => __( 'Estonian', 'contact-form-7' ),
60
  'fi' => __( 'Finnish', 'contact-form-7' ),
61
+ 'fr_FR' => __( 'French (France)', 'contact-form-7' ),
62
  'gl_ES' => __( 'Galician', 'contact-form-7' ),
63
  'gu_IN' => __( 'Gujarati', 'contact-form-7' ),
64
  'ka_GE' => __( 'Georgian', 'contact-form-7' ),
80
  'ms_MY' => __( 'Malay', 'contact-form-7' ),
81
  'ml_IN' => __( 'Malayalam', 'contact-form-7' ),
82
  'mt_MT' => __( 'Maltese', 'contact-form-7' ),
83
+ 'nb_NO' => __( 'Norwegian (Bokmål)', 'contact-form-7' ),
84
  'fa_IR' => __( 'Persian', 'contact-form-7' ),
85
  'pl_PL' => __( 'Polish', 'contact-form-7' ),
86
+ 'pt_BR' => __( 'Portuguese (Brazil)', 'contact-form-7' ),
87
+ 'pt_PT' => __( 'Portuguese (Portugal)', 'contact-form-7' ),
88
  'pa_IN' => __( 'Punjabi', 'contact-form-7' ),
89
  'ru_RU' => __( 'Russian', 'contact-form-7' ),
90
  'ro_RO' => __( 'Romanian', 'contact-form-7' ),
92
  'si_LK' => __( 'Sinhala', 'contact-form-7' ),
93
  'sk_SK' => __( 'Slovak', 'contact-form-7' ),
94
  'sl_SI' => __( 'Slovene', 'contact-form-7' ),
95
+ 'es_ES' => __( 'Spanish (Spain)', 'contact-form-7' ),
96
  'sv_SE' => __( 'Swedish', 'contact-form-7' ),
97
  'ta' => __( 'Tamil', 'contact-form-7' ),
98
  'th' => __( 'Thai', 'contact-form-7' ),
includes/mail.php CHANGED
@@ -35,7 +35,6 @@ class WPCF7_Mail {
35
 
36
  private function compose( $send = true ) {
37
  $template = $this->template;
38
-
39
  $use_html = (bool) $template['use_html'];
40
 
41
  $subject = $this->replace_tags( $template['subject'] );
@@ -58,11 +57,12 @@ class WPCF7_Mail {
58
  $components = apply_filters( 'wpcf7_mail_components',
59
  $components, wpcf7_get_current_contact_form() );
60
 
61
- extract( $components );
62
-
63
- $subject = wpcf7_strip_newline( $subject );
64
- $sender = wpcf7_strip_newline( $sender );
65
- $recipient = wpcf7_strip_newline( $recipient );
 
66
 
67
  $headers = "From: $sender\n";
68
 
@@ -70,14 +70,12 @@ class WPCF7_Mail {
70
  $headers .= "Content-Type: text/html\n";
71
  }
72
 
73
- $additional_headers = trim( $additional_headers );
74
-
75
  if ( $additional_headers ) {
76
  $headers .= $additional_headers . "\n";
77
  }
78
 
79
  if ( $send ) {
80
- return @wp_mail( $recipient, $subject, $body, $headers, $attachments );
81
  }
82
 
83
  $components = compact( 'subject', 'sender', 'body',
35
 
36
  private function compose( $send = true ) {
37
  $template = $this->template;
 
38
  $use_html = (bool) $template['use_html'];
39
 
40
  $subject = $this->replace_tags( $template['subject'] );
57
  $components = apply_filters( 'wpcf7_mail_components',
58
  $components, wpcf7_get_current_contact_form() );
59
 
60
+ $subject = wpcf7_strip_newline( $components['subject'] );
61
+ $sender = wpcf7_strip_newline( $components['sender'] );
62
+ $recipient = wpcf7_strip_newline( $components['recipient'] );
63
+ $body = $components['body'];
64
+ $additional_headers = trim( $components['additional_headers'] );
65
+ $attachments = $components['attachments'];
66
 
67
  $headers = "From: $sender\n";
68
 
70
  $headers .= "Content-Type: text/html\n";
71
  }
72
 
 
 
73
  if ( $additional_headers ) {
74
  $headers .= $additional_headers . "\n";
75
  }
76
 
77
  if ( $send ) {
78
+ return wp_mail( $recipient, $subject, $body, $headers, $attachments );
79
  }
80
 
81
  $components = compact( 'subject', 'sender', 'body',
includes/submission.php CHANGED
@@ -205,6 +205,12 @@ class WPCF7_Submission {
205
  private function spam() {
206
  $spam = false;
207
 
 
 
 
 
 
 
208
  if ( WPCF7_VERIFY_NONCE && ! $this->verify_nonce() ) {
209
  $spam = true;
210
  }
@@ -222,8 +228,8 @@ class WPCF7_Submission {
222
 
223
  private function blacklist_check() {
224
  $target = wpcf7_array_flatten( $this->posted_data );
225
- $target[] = $_SERVER['REMOTE_ADDR'];
226
- $target[] = $_SERVER['HTTP_USER_AGENT'];
227
 
228
  $target = implode( "\n", $target );
229
 
205
  private function spam() {
206
  $spam = false;
207
 
208
+ $user_agent = (string) $this->get_meta( 'user_agent' );
209
+
210
+ if ( strlen( $user_agent ) < 2 ) {
211
+ $spam = true;
212
+ }
213
+
214
  if ( WPCF7_VERIFY_NONCE && ! $this->verify_nonce() ) {
215
  $spam = true;
216
  }
228
 
229
  private function blacklist_check() {
230
  $target = wpcf7_array_flatten( $this->posted_data );
231
+ $target[] = $this->get_meta( 'remote_ip' );
232
+ $target[] = $this->get_meta( 'user_agent' );
233
 
234
  $target = implode( "\n", $target );
235
 
languages/{contact-form-7-az_AZ.mo → contact-form-7-az.mo} RENAMED
File without changes
languages/{contact-form-7-bs.mo → contact-form-7-bs_BA.mo} RENAMED
File without changes
languages/contact-form-7-de_DE.mo CHANGED
Binary file
languages/contact-form-7-ja.mo CHANGED
Binary file
languages/contact-form-7-pt_PT.mo CHANGED
Binary file
languages/contact-form-7-sk_SK.mo CHANGED
Binary file
languages/contact-form-7-tr_TR.mo CHANGED
Binary file
languages/contact-form-7.pot CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Contact Form 7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2014-08-31 15:20+0900\n"
6
- "PO-Revision-Date: 2014-08-31 15:20+0900\n"
7
  "Last-Translator: Takayuki Miyoshi <takayukister@gmail.com>\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@ msgstr ""
20
  msgid "Just another contact form plugin. Simple but flexible."
21
  msgstr ""
22
 
23
- #: contact-form-7/settings.php:71
24
  #, php-format
25
  msgid "Contact form %d"
26
  msgstr ""
@@ -363,117 +363,117 @@ msgstr ""
363
  msgid "Exclude lines with blank mail-tags from output"
364
  msgstr ""
365
 
366
- #: contact-form-7/includes/contact-form.php:30
367
- msgid "Contact Form"
368
- msgstr ""
369
-
370
- #: contact-form-7/includes/contact-form.php:76
371
- #: contact-form-7/includes/contact-form.php:226
372
- msgid "Untitled"
373
- msgstr ""
374
-
375
- #: contact-form-7/includes/contact-form.php:152
376
- #, php-format
377
- msgid ""
378
- "<code>%1$s</code> property of a <code>WPCF7_ContactForm</code> object is "
379
- "<strong>no longer accessible</strong>. Use <code>%2$s</code> method instead."
380
- msgstr ""
381
-
382
- #: contact-form-7/includes/contact-form.php:831
383
  msgid "Your Name"
384
  msgstr ""
385
 
386
- #: contact-form-7/includes/contact-form.php:831
387
- #: contact-form-7/includes/contact-form.php:833
388
  msgid "(required)"
389
  msgstr ""
390
 
391
- #: contact-form-7/includes/contact-form.php:833
392
  msgid "Your Email"
393
  msgstr ""
394
 
395
- #: contact-form-7/includes/contact-form.php:835
396
  msgid "Subject"
397
  msgstr ""
398
 
399
- #: contact-form-7/includes/contact-form.php:837
400
  msgid "Your Message"
401
  msgstr ""
402
 
403
- #: contact-form-7/includes/contact-form.php:839
404
  #: contact-form-7/modules/submit.php:28
405
  msgid "Send"
406
  msgstr ""
407
 
408
- #: contact-form-7/includes/contact-form.php:847
409
  #, php-format
410
  msgid "From: %s"
411
  msgstr ""
412
 
413
- #: contact-form-7/includes/contact-form.php:848
414
  #, php-format
415
  msgid "Subject: %s"
416
  msgstr ""
417
 
418
- #: contact-form-7/includes/contact-form.php:849
419
- #: contact-form-7/includes/contact-form.php:864
420
  msgid "Message Body:"
421
  msgstr ""
422
 
423
- #: contact-form-7/includes/contact-form.php:850
424
- #: contact-form-7/includes/contact-form.php:865
425
  #, php-format
426
  msgid "This e-mail was sent from a contact form on %1$s (%2$s)"
427
  msgstr ""
428
 
429
- #: contact-form-7/includes/contact-form.php:888
430
  msgid "Sender's message was sent successfully"
431
  msgstr ""
432
 
433
- #: contact-form-7/includes/contact-form.php:889
434
  msgid "Your message was sent successfully. Thanks."
435
  msgstr ""
436
 
437
- #: contact-form-7/includes/contact-form.php:893
438
  msgid "Sender's message was failed to send"
439
  msgstr ""
440
 
441
- #: contact-form-7/includes/contact-form.php:894
442
- #: contact-form-7/includes/contact-form.php:904
443
  msgid ""
444
  "Failed to send your message. Please try later or contact the administrator "
445
  "by another method."
446
  msgstr ""
447
 
448
- #: contact-form-7/includes/contact-form.php:898
449
  msgid "Validation errors occurred"
450
  msgstr ""
451
 
452
- #: contact-form-7/includes/contact-form.php:899
453
  msgid ""
454
  "Validation errors occurred. Please confirm the fields and submit it again."
455
  msgstr ""
456
 
457
- #: contact-form-7/includes/contact-form.php:903
458
  msgid "Submission was referred to as spam"
459
  msgstr ""
460
 
461
- #: contact-form-7/includes/contact-form.php:908
462
  msgid "There are terms that the sender must accept"
463
  msgstr ""
464
 
465
- #: contact-form-7/includes/contact-form.php:909
466
  msgid "Please accept the terms to proceed."
467
  msgstr ""
468
 
469
- #: contact-form-7/includes/contact-form.php:913
470
  msgid "There is a field that the sender must fill in"
471
  msgstr ""
472
 
473
- #: contact-form-7/includes/contact-form.php:914
474
  msgid "Please fill the required field."
475
  msgstr ""
476
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
477
  #: contact-form-7/includes/controller.php:211
478
  msgid "Sending ..."
479
  msgstr ""
@@ -515,163 +515,163 @@ msgid "Bosnian"
515
  msgstr ""
516
 
517
  #: contact-form-7/includes/functions.php:48
518
- msgid "Brazilian Portuguese"
519
  msgstr ""
520
 
521
  #: contact-form-7/includes/functions.php:49
522
- msgid "Bulgarian"
523
  msgstr ""
524
 
525
  #: contact-form-7/includes/functions.php:50
526
- msgid "Catalan"
527
  msgstr ""
528
 
529
  #: contact-form-7/includes/functions.php:51
530
- msgid "Central Kurdish"
531
  msgstr ""
532
 
533
  #: contact-form-7/includes/functions.php:52
534
- msgid "Chinese (Simplified)"
535
  msgstr ""
536
 
537
  #: contact-form-7/includes/functions.php:53
538
- msgid "Chinese (Traditional)"
539
  msgstr ""
540
 
541
  #: contact-form-7/includes/functions.php:54
542
- msgid "Croatian"
543
  msgstr ""
544
 
545
  #: contact-form-7/includes/functions.php:55
546
- msgid "Czech"
547
  msgstr ""
548
 
549
  #: contact-form-7/includes/functions.php:56
550
- msgid "Danish"
551
  msgstr ""
552
 
553
  #: contact-form-7/includes/functions.php:57
554
- msgid "Dutch"
555
  msgstr ""
556
 
557
  #: contact-form-7/includes/functions.php:58
558
- msgid "English"
559
  msgstr ""
560
 
561
  #: contact-form-7/includes/functions.php:59
562
- msgid "Esperanto"
563
  msgstr ""
564
 
565
  #: contact-form-7/includes/functions.php:60
566
- msgid "Estonian"
567
  msgstr ""
568
 
569
  #: contact-form-7/includes/functions.php:61
570
- msgid "Finnish"
571
  msgstr ""
572
 
573
  #: contact-form-7/includes/functions.php:62
574
- msgid "French"
575
  msgstr ""
576
 
577
  #: contact-form-7/includes/functions.php:63
578
- msgid "Galician"
579
  msgstr ""
580
 
581
  #: contact-form-7/includes/functions.php:64
582
- msgid "Gujarati"
583
  msgstr ""
584
 
585
  #: contact-form-7/includes/functions.php:65
586
- msgid "Georgian"
587
  msgstr ""
588
 
589
  #: contact-form-7/includes/functions.php:66
590
- msgid "German"
591
  msgstr ""
592
 
593
  #: contact-form-7/includes/functions.php:67
594
- msgid "Greek"
595
  msgstr ""
596
 
597
  #: contact-form-7/includes/functions.php:68
598
- msgid "Haitian"
599
  msgstr ""
600
 
601
  #: contact-form-7/includes/functions.php:69
602
- msgid "Hebrew"
603
  msgstr ""
604
 
605
  #: contact-form-7/includes/functions.php:70
606
- msgid "Hindi"
607
  msgstr ""
608
 
609
  #: contact-form-7/includes/functions.php:71
610
- msgid "Hungarian"
611
  msgstr ""
612
 
613
  #: contact-form-7/includes/functions.php:72
614
- msgid "Indian Bengali"
615
  msgstr ""
616
 
617
  #: contact-form-7/includes/functions.php:73
618
- msgid "Indonesian"
619
  msgstr ""
620
 
621
  #: contact-form-7/includes/functions.php:74
622
- msgid "Irish"
623
  msgstr ""
624
 
625
  #: contact-form-7/includes/functions.php:75
626
- msgid "Italian"
627
  msgstr ""
628
 
629
  #: contact-form-7/includes/functions.php:76
630
- msgid "Japanese"
631
  msgstr ""
632
 
633
  #: contact-form-7/includes/functions.php:77
634
- msgid "Korean"
635
  msgstr ""
636
 
637
  #: contact-form-7/includes/functions.php:78
638
- msgid "Latvian"
639
  msgstr ""
640
 
641
  #: contact-form-7/includes/functions.php:79
642
- msgid "Lithuanian"
643
  msgstr ""
644
 
645
  #: contact-form-7/includes/functions.php:80
646
- msgid "Macedonian"
647
  msgstr ""
648
 
649
  #: contact-form-7/includes/functions.php:81
650
- msgid "Malay"
651
  msgstr ""
652
 
653
  #: contact-form-7/includes/functions.php:82
654
- msgid "Malayalam"
655
  msgstr ""
656
 
657
  #: contact-form-7/includes/functions.php:83
658
- msgid "Maltese"
659
  msgstr ""
660
 
661
  #: contact-form-7/includes/functions.php:84
662
- msgid "Norwegian"
663
  msgstr ""
664
 
665
  #: contact-form-7/includes/functions.php:85
666
- msgid "Persian"
667
  msgstr ""
668
 
669
  #: contact-form-7/includes/functions.php:86
670
- msgid "Polish"
671
  msgstr ""
672
 
673
  #: contact-form-7/includes/functions.php:87
674
- msgid "Portuguese"
675
  msgstr ""
676
 
677
  #: contact-form-7/includes/functions.php:88
@@ -703,7 +703,7 @@ msgid "Slovene"
703
  msgstr ""
704
 
705
  #: contact-form-7/includes/functions.php:95
706
- msgid "Spanish"
707
  msgstr ""
708
 
709
  #: contact-form-7/includes/functions.php:96
2
  msgstr ""
3
  "Project-Id-Version: Contact Form 7\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2014-10-13 14:52+0900\n"
6
+ "PO-Revision-Date: 2014-10-13 14:53+0900\n"
7
  "Last-Translator: Takayuki Miyoshi <takayukister@gmail.com>\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
20
  msgid "Just another contact form plugin. Simple but flexible."
21
  msgstr ""
22
 
23
+ #: contact-form-7/settings.php:72
24
  #, php-format
25
  msgid "Contact form %d"
26
  msgstr ""
363
  msgid "Exclude lines with blank mail-tags from output"
364
  msgstr ""
365
 
366
+ #: contact-form-7/includes/contact-form-template.php:15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
367
  msgid "Your Name"
368
  msgstr ""
369
 
370
+ #: contact-form-7/includes/contact-form-template.php:16
371
+ #: contact-form-7/includes/contact-form-template.php:19
372
  msgid "(required)"
373
  msgstr ""
374
 
375
+ #: contact-form-7/includes/contact-form-template.php:18
376
  msgid "Your Email"
377
  msgstr ""
378
 
379
+ #: contact-form-7/includes/contact-form-template.php:21
380
  msgid "Subject"
381
  msgstr ""
382
 
383
+ #: contact-form-7/includes/contact-form-template.php:23
384
  msgid "Your Message"
385
  msgstr ""
386
 
387
+ #: contact-form-7/includes/contact-form-template.php:25
388
  #: contact-form-7/modules/submit.php:28
389
  msgid "Send"
390
  msgstr ""
391
 
392
+ #: contact-form-7/includes/contact-form-template.php:35
393
  #, php-format
394
  msgid "From: %s"
395
  msgstr ""
396
 
397
+ #: contact-form-7/includes/contact-form-template.php:37
398
  #, php-format
399
  msgid "Subject: %s"
400
  msgstr ""
401
 
402
+ #: contact-form-7/includes/contact-form-template.php:39
403
+ #: contact-form-7/includes/contact-form-template.php:60
404
  msgid "Message Body:"
405
  msgstr ""
406
 
407
+ #: contact-form-7/includes/contact-form-template.php:42
408
+ #: contact-form-7/includes/contact-form-template.php:63
409
  #, php-format
410
  msgid "This e-mail was sent from a contact form on %1$s (%2$s)"
411
  msgstr ""
412
 
413
+ #: contact-form-7/includes/contact-form-template.php:109
414
  msgid "Sender's message was sent successfully"
415
  msgstr ""
416
 
417
+ #: contact-form-7/includes/contact-form-template.php:111
418
  msgid "Your message was sent successfully. Thanks."
419
  msgstr ""
420
 
421
+ #: contact-form-7/includes/contact-form-template.php:116
422
  msgid "Sender's message was failed to send"
423
  msgstr ""
424
 
425
+ #: contact-form-7/includes/contact-form-template.php:118
426
+ #: contact-form-7/includes/contact-form-template.php:132
427
  msgid ""
428
  "Failed to send your message. Please try later or contact the administrator "
429
  "by another method."
430
  msgstr ""
431
 
432
+ #: contact-form-7/includes/contact-form-template.php:123
433
  msgid "Validation errors occurred"
434
  msgstr ""
435
 
436
+ #: contact-form-7/includes/contact-form-template.php:125
437
  msgid ""
438
  "Validation errors occurred. Please confirm the fields and submit it again."
439
  msgstr ""
440
 
441
+ #: contact-form-7/includes/contact-form-template.php:130
442
  msgid "Submission was referred to as spam"
443
  msgstr ""
444
 
445
+ #: contact-form-7/includes/contact-form-template.php:137
446
  msgid "There are terms that the sender must accept"
447
  msgstr ""
448
 
449
+ #: contact-form-7/includes/contact-form-template.php:139
450
  msgid "Please accept the terms to proceed."
451
  msgstr ""
452
 
453
+ #: contact-form-7/includes/contact-form-template.php:144
454
  msgid "There is a field that the sender must fill in"
455
  msgstr ""
456
 
457
+ #: contact-form-7/includes/contact-form-template.php:146
458
  msgid "Please fill the required field."
459
  msgstr ""
460
 
461
+ #: contact-form-7/includes/contact-form.php:30
462
+ msgid "Contact Form"
463
+ msgstr ""
464
+
465
+ #: contact-form-7/includes/contact-form.php:76
466
+ #: contact-form-7/includes/contact-form.php:226
467
+ msgid "Untitled"
468
+ msgstr ""
469
+
470
+ #: contact-form-7/includes/contact-form.php:152
471
+ #, php-format
472
+ msgid ""
473
+ "<code>%1$s</code> property of a <code>WPCF7_ContactForm</code> object is "
474
+ "<strong>no longer accessible</strong>. Use <code>%2$s</code> method instead."
475
+ msgstr ""
476
+
477
  #: contact-form-7/includes/controller.php:211
478
  msgid "Sending ..."
479
  msgstr ""
515
  msgstr ""
516
 
517
  #: contact-form-7/includes/functions.php:48
518
+ msgid "Bulgarian"
519
  msgstr ""
520
 
521
  #: contact-form-7/includes/functions.php:49
522
+ msgid "Catalan"
523
  msgstr ""
524
 
525
  #: contact-form-7/includes/functions.php:50
526
+ msgid "Central Kurdish"
527
  msgstr ""
528
 
529
  #: contact-form-7/includes/functions.php:51
530
+ msgid "Chinese (China)"
531
  msgstr ""
532
 
533
  #: contact-form-7/includes/functions.php:52
534
+ msgid "Chinese (Taiwan)"
535
  msgstr ""
536
 
537
  #: contact-form-7/includes/functions.php:53
538
+ msgid "Croatian"
539
  msgstr ""
540
 
541
  #: contact-form-7/includes/functions.php:54
542
+ msgid "Czech"
543
  msgstr ""
544
 
545
  #: contact-form-7/includes/functions.php:55
546
+ msgid "Danish"
547
  msgstr ""
548
 
549
  #: contact-form-7/includes/functions.php:56
550
+ msgid "Dutch"
551
  msgstr ""
552
 
553
  #: contact-form-7/includes/functions.php:57
554
+ msgid "English (United States)"
555
  msgstr ""
556
 
557
  #: contact-form-7/includes/functions.php:58
558
+ msgid "Esperanto"
559
  msgstr ""
560
 
561
  #: contact-form-7/includes/functions.php:59
562
+ msgid "Estonian"
563
  msgstr ""
564
 
565
  #: contact-form-7/includes/functions.php:60
566
+ msgid "Finnish"
567
  msgstr ""
568
 
569
  #: contact-form-7/includes/functions.php:61
570
+ msgid "French (France)"
571
  msgstr ""
572
 
573
  #: contact-form-7/includes/functions.php:62
574
+ msgid "Galician"
575
  msgstr ""
576
 
577
  #: contact-form-7/includes/functions.php:63
578
+ msgid "Gujarati"
579
  msgstr ""
580
 
581
  #: contact-form-7/includes/functions.php:64
582
+ msgid "Georgian"
583
  msgstr ""
584
 
585
  #: contact-form-7/includes/functions.php:65
586
+ msgid "German"
587
  msgstr ""
588
 
589
  #: contact-form-7/includes/functions.php:66
590
+ msgid "Greek"
591
  msgstr ""
592
 
593
  #: contact-form-7/includes/functions.php:67
594
+ msgid "Haitian"
595
  msgstr ""
596
 
597
  #: contact-form-7/includes/functions.php:68
598
+ msgid "Hebrew"
599
  msgstr ""
600
 
601
  #: contact-form-7/includes/functions.php:69
602
+ msgid "Hindi"
603
  msgstr ""
604
 
605
  #: contact-form-7/includes/functions.php:70
606
+ msgid "Hungarian"
607
  msgstr ""
608
 
609
  #: contact-form-7/includes/functions.php:71
610
+ msgid "Indian Bengali"
611
  msgstr ""
612
 
613
  #: contact-form-7/includes/functions.php:72
614
+ msgid "Indonesian"
615
  msgstr ""
616
 
617
  #: contact-form-7/includes/functions.php:73
618
+ msgid "Irish"
619
  msgstr ""
620
 
621
  #: contact-form-7/includes/functions.php:74
622
+ msgid "Italian"
623
  msgstr ""
624
 
625
  #: contact-form-7/includes/functions.php:75
626
+ msgid "Japanese"
627
  msgstr ""
628
 
629
  #: contact-form-7/includes/functions.php:76
630
+ msgid "Korean"
631
  msgstr ""
632
 
633
  #: contact-form-7/includes/functions.php:77
634
+ msgid "Latvian"
635
  msgstr ""
636
 
637
  #: contact-form-7/includes/functions.php:78
638
+ msgid "Lithuanian"
639
  msgstr ""
640
 
641
  #: contact-form-7/includes/functions.php:79
642
+ msgid "Macedonian"
643
  msgstr ""
644
 
645
  #: contact-form-7/includes/functions.php:80
646
+ msgid "Malay"
647
  msgstr ""
648
 
649
  #: contact-form-7/includes/functions.php:81
650
+ msgid "Malayalam"
651
  msgstr ""
652
 
653
  #: contact-form-7/includes/functions.php:82
654
+ msgid "Maltese"
655
  msgstr ""
656
 
657
  #: contact-form-7/includes/functions.php:83
658
+ msgid "Norwegian (Bokmål)"
659
  msgstr ""
660
 
661
  #: contact-form-7/includes/functions.php:84
662
+ msgid "Persian"
663
  msgstr ""
664
 
665
  #: contact-form-7/includes/functions.php:85
666
+ msgid "Polish"
667
  msgstr ""
668
 
669
  #: contact-form-7/includes/functions.php:86
670
+ msgid "Portuguese (Brazil)"
671
  msgstr ""
672
 
673
  #: contact-form-7/includes/functions.php:87
674
+ msgid "Portuguese (Portugal)"
675
  msgstr ""
676
 
677
  #: contact-form-7/includes/functions.php:88
703
  msgstr ""
704
 
705
  #: contact-form-7/includes/functions.php:95
706
+ msgid "Spanish (Spain)"
707
  msgstr ""
708
 
709
  #: contact-form-7/includes/functions.php:96
modules/file.php CHANGED
@@ -298,12 +298,13 @@ function wpcf7_file_display_warning_message() {
298
 
299
  function wpcf7_init_uploads() {
300
  $dir = wpcf7_upload_tmp_dir();
301
- wp_mkdir_p( trailingslashit( $dir ) );
302
- @chmod( $dir, 0733 );
303
 
304
  $htaccess_file = trailingslashit( $dir ) . '.htaccess';
305
- if ( file_exists( $htaccess_file ) )
 
306
  return;
 
307
 
308
  if ( $handle = @fopen( $htaccess_file, 'w' ) ) {
309
  fwrite( $handle, "Deny from all\n" );
298
 
299
  function wpcf7_init_uploads() {
300
  $dir = wpcf7_upload_tmp_dir();
301
+ wp_mkdir_p( $dir );
 
302
 
303
  $htaccess_file = trailingslashit( $dir ) . '.htaccess';
304
+
305
+ if ( file_exists( $htaccess_file ) ) {
306
  return;
307
+ }
308
 
309
  if ( $handle = @fopen( $htaccess_file, 'w' ) ) {
310
  fwrite( $handle, "Deny from all\n" );
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  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: 3.8
6
  Tested up to: 4.0
7
- Stable tag: 3.9.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -32,69 +32,69 @@ The following are other recommended plugins by the author of Contact Form 7.
32
 
33
  = Translators =
34
 
35
- * Afrikaans (af) - [Schalk Burger](http://www.schalkburger.za.net/)
36
- * Albanian (sq) - [Olgi Zenullari](http://www.olgizenullari.com/)
37
- * Arabic (ar) - [Tarek Chaaban](http://www.chaaban.info/), Muhammed Lardi, [Yaser Maadan](http://www.englize.com/)
38
- * Armenian (hy_AM) - [Emmanuelle Traduction](http://www.translatonline.com/)
39
- * Azerbaijani (az_AZ) - [Zaur Bayramov](http://bloglayaq.com/)
40
- * Bangla (bn_BD) - [SM Mehdi Akram](http://www.shamokaldarpon.com/)
41
- * Basque (Euskara; eu) - [karrikas](http://blog.karrikas.com/)
42
- * Belarusian (be_BY) - [Igor Dubilei](http://www.iflexion.com/)
43
- * Bosnian (bs) - [Vedran](http://www.seorabbit.com/)
44
- * Brazilian Portuguese (pt_BR) - [Leonardo Pinheiro](http://www.eletrikabarbarella.com.br/), [Henrique Vianna](http://henriquevianna.com/), [Caciano Gabriel Batista](http://www.gn10.com.br/), [Gervásio Antônio](http://twitter.com/gervasioantonio), Gilvanilson Santos
45
- * Bulgarian (bg_BG) - [Iliyan Darganov](http://www.darganov.com/)
46
- * Catalan (ca) - [Jordi Sancho](http://www.qasolutions.net/blog), Robert Buj, Jaume Aragay Badia
47
  * Central Kurdish (ckb) - Mahr Hassan
48
- * Chinese, Simplified (zh_CN) - [Soz](http://www.webtoolol.com/), [Keefe Dunn](http://dengkefu.com/), [Stella Hu](http://prowordpresser.com/)
49
- * Chinese, Traditional (zh_TW) - [James Wu](http://jameswublog.com)
50
- * Croatian (hr) - [tolingo Translation Services](http://www.tolingo.com)
51
- * Czech (cs_CZ) - Korry, [Radovan Fiser](http://algymsa.cz/), [Tomas Vesely](http://www.mcmotylek.cz/), [Pavel Bilek](http://chcistranky.eu/zdarma/), Vladislav Šenk
52
- * Danish (da_DK) - [Jens Griebel](http://www.kompas-it.dk/), [Georg S. Adamsen](http://wordpress.blogos.dk/)
53
- * Dutch (nl_NL) - [Chris Devriese](http://www.100it.be/), [Martin Hein](http://www.split-a-pixel.nl/), [Rene](http://wpwebshop.com/), [TenSheep](http://tensheep.nl/), [Tim de Hoog](http://www.ecommany.com/)
54
  * Esperanto (eo_EO) - Arkadiusz Zychewicz
55
- * Estonian (et) - [Peeter Rahuvarm](http://www.kraabus.ee), Egon Elbre
56
- * Finnish (fi) - [Miika Turunen](http://www.webwork.fi/), [Mediajalostamo](http://www.mediajalostamo.fi/), [Jani Alha](http://www.wysiwyg.fi/)
57
- * French (fr_FR) - [Jillij](http://www.jillij.com/), [Oncle Tom](http://case.oncle-tom.net/), [Maître Mô](http://maitremo.fr/), Emmanuel Simond, Hédi Sellami
58
- * Galician (gl_ES) - [Arume Desenvolvementos Informáticos](http://www.arumeinformatica.es/)
59
- * Georgian (ka_GE) - [Nodar Rocko Davituri](http://davituri.com/)
60
- * German (de_DE) - [Marcel Spitau](http://blog.spitau.de), [Ivan Graf](http://blog.bildergallery.com/)
61
- * Greek (el) - [Nick Mouratidis](http://www.kepik.gr/), [Pr. friedlich](http://friedlich.wordpress.com/), John D. Dimoferlias
62
- * Gujarati (gu_IN) - [Apoto](http://www.apoto.com/)
63
- * Haitian (ht) - [Lam Tu Do](http://bizover.net/)
64
- * Hebrew (he_IL) - [Yaron Ofer](http://www.gadgetguru.co.il/), [Arik Galansky](http://www.arikg.co.il/)
65
- * Hindi (hi_IN) - [Tarun Joshi](http://www.readers-cafe.net/), [Ashish](http://outshinesolutions.com/)
66
- * Hungarian (hu_HU) - [Andras Hirschler](http://hia.itblog.hu/), [János Csárdi-Braunstein](http://blogocska.org/), [Farkas Győző](http://www.sakraft.hu/)
67
- * Indian Bengali (bn_IN) - [Suman Manna](http://www.gwebpro.com/)
68
- * Indonesian (Bahasa Indonesia; id_ID) - [Hendry Lee](http://blogbuildingu.com/), [Belajar Seo Indonesia](http://dhany.web.id/panduan-seo)
69
- * Irish (ga_IE) - [Vikas Arora](http://www.wiznicworld.com/)
70
- * Italian (it_IT) - [Bruno](http://www.brunosalzano.com), [Gianni Diurno](http://gidibao.net/)
71
- * Japanese (ja) - [Takayuki Miyoshi](http://ideasilo.wordpress.com)
72
- * Korean (ko_KR) - Seong Eun Lee, [Jong-In Kim](http://incommunity.codex.kr/wordpress/), [martian36](http://martian36.tistory.com/)
73
- * Latvian (lv) - [Sandis Veinbergs](http://www.kleofass.lv/)
74
- * Lithuanian (lt_LT) - [Ernestas Kardzys](http://www.ernestas.info/), [Vincent G](http://www.host1free.com/), [Mantas Malcius](http://mantas.malcius.lt/)
75
- * Macedonian (mk_MK) - [Darko](http://www.findermind.com/)
76
- * Malay (ms_MY) - [Zairul Azmil](http://www.zairul.com/)
77
- * Malayalam (ml_IN) - [RAHUL.S.A](http://www.infution.co.cc/)
78
- * Maltese (mt_MT) - [Ajoft Technologies](http://www.ajoft.com/)
79
- * Norwegian (nb_NO) - Kjetil M. Bergem, [aanvik.net](http://www.aanvik.net), [Peter Holme](http://holme.se/nettsteder/)
80
- * Persian (Farsi; fa_IR) - [Mohammad Musavi](http://www.musavis.com/), [Mohsen Firoozmandan](http://www.rankbazar.com/), Ghaem Omidi
81
- * Polish (pl_PL) - [Zbigniew Czernik](http://zibik.jogger.pl/), [Daniel Fruzynski](http://www.poradnik-webmastera.com), [RafalDesign](http://www.rafaldesign.pl/), [Bartosz Arendt](http://digitalfactory.pl/)
82
- * Portuguese (pt_PT) - [Hugo Baeta](http://hugobaeta.com), [Pedro Nave](http://pedronave.com/)
 
83
  * Punjabi (pa_IN) - Jasvinder Sing
84
- * Russian (ru_RU) - Dmitry Volotovich, [Denis Voituk](http://artprima.cz/), [kg69design](http://kg69design.com/)
85
- * Romanian (ro_RO) - [Stas Sushkov](http://stas.nerd.ro/), [Anunturi Jibo](http://www.jibo.ro/), [Marius Olar](http://webdudes.ro/), [Inbox Translation](http://inboxtranslation.com/)
86
- * Serbian (sr_RS) - [Vedran](http://www.seorabbit.com/), [Aleksandar Urošević](http://blog.urosevic.net/)
87
- * Sinhala (si_LK) - [Nitin Aggarwal](http://offshoreally.com/)
88
- * Slovak (sk_SK) - [Patrik Bóna](http://www.mrhead.sk/), [WordPress Slovakia](http://wp.sk/)
89
- * Slovene (sl_SI) - [Mihael Simonič](http://smihael.bplaced.net), Jani Roskar
90
- * Spanish (es_ES) - [Jordi Sancho](http://www.qasolutions.net/blog), [Vladimir Prieto](http://vladimir.prie.to/), [Federico Mikaelian](http://www.fedemika.com.ar/), [Matias Baldanza](http://matiasbaldanza.com/), [Carlos Agnese](http://albumdecarlitos.com.ar/), [Lourdes Cuesta](http://www.morote.net)
91
- * Swedish (sv_SE) - [Fredrik Jonsson](http://www.fredda-o-ac.se/), [the Swedish community](http://wp-support.se/)
92
- * Tagalog (tl) - [Rupert Agnew Lanuza](http://www.rupertlanuza.com/), [Hanne](http://pointen.dk/), [Language Connect](http://www.languageconnect.net/)
93
- * Tamil (ta) - [Nitin Aggarwal](http://offshoreally.com/)
94
- * Thai (th) - [ToshiK](http://www.tuntikorn.com/), [kazama](http://blog.wordthai.com/), [TG Knowledge](http://www.เกร็ดความรู้.com/)
95
- * Turkish (tr_TR) - [Roman Neumuller](http://katpatuka.wordpress.com), [Hasan Yılmaz](http://hedefturkce.com/), [Emin Buğra Saral](http://www.rahmetli.info/), Burak Yavuz
96
- * Ukrainian (uk) - [Andrey Kovba](http://myserver.com.ua/), [Ukrainian WordPress localization team](http://wordpress.co.ua/plugins/contact-form-7.html), Myroslava Pabyrivska
97
- * Vietnamese (vi) - Thanh Hải, Hà, [Khang Minh](http://betterwp.net/)
98
 
99
  If you have created your own language pack, or have an update of an existing one, you can send [gettext PO and MO files](http://codex.wordpress.org/Translating_WordPress) to [me](http://ideasilo.wordpress.com/about/) so that I can bundle it into Contact Form 7. You can download the latest [POT file](http://plugins.svn.wordpress.org/contact-form-7/trunk/languages/contact-form-7.pot), and [PO files in each language](http://plugins.svn.wordpress.org/contact-form-7/branches/languages/).
100
 
@@ -125,6 +125,12 @@ Do you have questions or issues with Contact Form 7? Use these support channels
125
 
126
  For more information, see [Releases](http://contactform7.com/category/releases/).
127
 
 
 
 
 
 
 
128
  = 3.9.3 =
129
 
130
  * Fixed: file uploading was disabled in some of server environments because of wrong use of mt_rand() function.
2
  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: 3.9
6
  Tested up to: 4.0
7
+ Stable tag: 4.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
32
 
33
  = Translators =
34
 
35
+ * Afrikaans (af) - Schalk Burger
36
+ * Albanian (sq) - Olgi Zenullari
37
+ * Arabic (ar) - Tarek Chaaban, Muhammed Lardi, Yaser Maadan
38
+ * Armenian (hy_AM) - Emmanuelle Traduction
39
+ * Azerbaijani (az) - Zaur Bayramov
40
+ * Bangla (bn_BD) - SM Mehdi Akram
41
+ * Basque (Euskara; eu) - karrikas
42
+ * Belarusian (be_BY) - Igor Dubilei
43
+ * Bosnian (bs_BA) - Vedran
44
+ * Bulgarian (bg_BG) - Iliyan Darganov
45
+ * Catalan (ca) - Jordi Sancho, Robert Buj, Jaume Aragay Badia
 
46
  * Central Kurdish (ckb) - Mahr Hassan
47
+ * Chinese (China; zh_CN) - Soz, Keefe Dunn, Stella Hu
48
+ * Chinese (Taiwan; zh_TW) - James Wu
49
+ * Croatian (hr) - tolingo Translation Services
50
+ * Czech (cs_CZ) - Korry, Radovan Fiser, Tomas Vesely, Pavel Bilek, Vladislav Šenk
51
+ * Danish (da_DK) - Jens Griebel, Georg S. Adamsen
52
+ * Dutch (nl_NL) - Chris Devriese, Martin Hein, Rene, TenSheep, Tim de Hoog
53
  * Esperanto (eo_EO) - Arkadiusz Zychewicz
54
+ * Estonian (et) - Peeter Rahuvarm, Egon Elbre
55
+ * Finnish (fi) - Miika Turunen, Mediajalostamo, Jani Alha
56
+ * French (fr_FR) - Jillij, Oncle Tom, Maître Mô, Emmanuel Simond, Hédi Sellami
57
+ * Galician (gl_ES) - Arume Desenvolvementos Informáticos
58
+ * Georgian (ka_GE) - Nodar Rocko Davituri
59
+ * German (de_DE) - Marcel Spitau, Ivan Graf
60
+ * Greek (el) - Nick Mouratidis, Pr. friedlich, John D. Dimoferlias
61
+ * Gujarati (gu_IN) - Apoto
62
+ * Haitian (ht) - Lam Tu Do
63
+ * Hebrew (he_IL) - Yaron Ofer, Arik Galansky
64
+ * Hindi (hi_IN) - Tarun Joshi, Ashish
65
+ * Hungarian (hu_HU) - Andras Hirschler, János Csárdi-Braunstein, Farkas Győző
66
+ * Indian Bengali (bn_IN) - Suman Manna
67
+ * Indonesian (Bahasa Indonesia; id_ID) - Hendry Lee, Belajar Seo Indonesia
68
+ * Irish (ga_IE) - Vikas Arora
69
+ * Italian (it_IT) - Bruno, Gianni Diurno
70
+ * Japanese (ja) - Takayuki Miyoshi
71
+ * Korean (ko_KR) - Seong Eun Lee, Jong-In Kim, martian36
72
+ * Latvian (lv) - Sandis Veinbergs
73
+ * Lithuanian (lt_LT) - Ernestas Kardzys, Vincent G, Mantas Malcius
74
+ * Macedonian (mk_MK) - Darko
75
+ * Malay (ms_MY) - Zairul Azmil
76
+ * Malayalam (ml_IN) - RAHUL.S.A
77
+ * Maltese (mt_MT) - Ajoft Technologies
78
+ * Norwegian (nb_NO) - Kjetil M. Bergem, aanvik.net, Peter Holme
79
+ * Persian (Farsi; fa_IR) - Mohammad Musavi, Mohsen Firoozmandan, Ghaem Omidi
80
+ * Polish (pl_PL) - Zbigniew Czernik, Daniel Fruzynski, RafalDesign, Bartosz Arendt
81
+ * Portuguese (Brazil; pt_BR) - Leonardo Pinheiro, Henrique Vianna, Caciano Gabriel Batista, Gervásio Antônio, Gilvanilson Santos
82
+ * Portuguese (Portugal; pt_PT) - Hugo Baeta, Pedro Nave, Pedro Mendonça
83
  * Punjabi (pa_IN) - Jasvinder Sing
84
+ * Russian (ru_RU) - Dmitry Volotovich, Denis Voituk, kg69design
85
+ * Romanian (ro_RO) - Stas Sushkov, Anunturi Jibo, Marius Olar, Inbox Translation
86
+ * Serbian (sr_RS) - Vedran, Aleksandar Urošević
87
+ * Sinhala (si_LK) - Nitin Aggarwal
88
+ * Slovak (sk_SK) - Patrik Bóna, WordPress Slovakia
89
+ * Slovene (sl_SI) - Mihael Simonič, Jani Roskar
90
+ * Spanish (es_ES) - Jordi Sancho, Vladimir Prieto, Federico Mikaelian, Matias Baldanza, Carlos Agnese, Lourdes Cuesta
91
+ * Swedish (sv_SE) - Fredrik Jonsson, the Swedish community
92
+ * Tagalog (tl) - Rupert Agnew Lanuza, Hanne, Language Connect
93
+ * Tamil (ta) - Nitin Aggarwal
94
+ * Thai (th) - ToshiK, kazama, TG Knowledge
95
+ * Turkish (tr_TR) - Roman Neumuller, Hasan Yılmaz, Emin Buğra Saral, Burak Yavuz
96
+ * Ukrainian (uk) - Andrey Kovba, Ukrainian WordPress localization team, Myroslava Pabyrivska
97
+ * Vietnamese (vi) - Thanh Hải, Hà, Khang Minh
98
 
99
  If you have created your own language pack, or have an update of an existing one, you can send [gettext PO and MO files](http://codex.wordpress.org/Translating_WordPress) to [me](http://ideasilo.wordpress.com/about/) so that I can bundle it into Contact Form 7. You can download the latest [POT file](http://plugins.svn.wordpress.org/contact-form-7/trunk/languages/contact-form-7.pot), and [PO files in each language](http://plugins.svn.wordpress.org/contact-form-7/branches/languages/).
100
 
125
 
126
  For more information, see [Releases](http://contactform7.com/category/releases/).
127
 
128
+ = 4.0 =
129
+
130
+ * The default mail template changed (see [Best Practice to Set Up Mail](http://contactform7.com/best-practice-to-set-up-mail/)).
131
+ * Translations for Slovak, German, Turkish and Portuguese have been updated.
132
+ * WordPress 3.9 or higher is required.
133
+
134
  = 3.9.3 =
135
 
136
  * Fixed: file uploading was disabled in some of server environments because of wrong use of mt_rand() function.
settings.php CHANGED
@@ -5,6 +5,7 @@ require_once WPCF7_PLUGIN_DIR . '/includes/formatting.php';
5
  require_once WPCF7_PLUGIN_DIR . '/includes/pipe.php';
6
  require_once WPCF7_PLUGIN_DIR . '/includes/shortcodes.php';
7
  require_once WPCF7_PLUGIN_DIR . '/includes/capabilities.php';
 
8
  require_once WPCF7_PLUGIN_DIR . '/includes/contact-form.php';
9
  require_once WPCF7_PLUGIN_DIR . '/includes/mail.php';
10
  require_once WPCF7_PLUGIN_DIR . '/includes/submission.php';
5
  require_once WPCF7_PLUGIN_DIR . '/includes/pipe.php';
6
  require_once WPCF7_PLUGIN_DIR . '/includes/shortcodes.php';
7
  require_once WPCF7_PLUGIN_DIR . '/includes/capabilities.php';
8
+ require_once WPCF7_PLUGIN_DIR . '/includes/contact-form-template.php';
9
  require_once WPCF7_PLUGIN_DIR . '/includes/contact-form.php';
10
  require_once WPCF7_PLUGIN_DIR . '/includes/mail.php';
11
  require_once WPCF7_PLUGIN_DIR . '/includes/submission.php';
wp-contact-form-7.php CHANGED
@@ -7,7 +7,7 @@ Author: Takayuki Miyoshi
7
  Author URI: http://ideasilo.wordpress.com/
8
  Text Domain: contact-form-7
9
  Domain Path: /languages/
10
- Version: 3.9.3
11
  */
12
 
13
  /* Copyright 2007-2014 Takayuki Miyoshi (email: takayukister at gmail.com)
@@ -27,9 +27,9 @@ Version: 3.9.3
27
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
  */
29
 
30
- define( 'WPCF7_VERSION', '3.9.3' );
31
 
32
- define( 'WPCF7_REQUIRED_WP_VERSION', '3.8' );
33
 
34
  define( 'WPCF7_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
35
 
7
  Author URI: http://ideasilo.wordpress.com/
8
  Text Domain: contact-form-7
9
  Domain Path: /languages/
10
+ Version: 4.0
11
  */
12
 
13
  /* Copyright 2007-2014 Takayuki Miyoshi (email: takayukister at gmail.com)
27
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
  */
29
 
30
+ define( 'WPCF7_VERSION', '4.0' );
31
 
32
+ define( 'WPCF7_REQUIRED_WP_VERSION', '3.9' );
33
 
34
  define( 'WPCF7_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
35