Contact Form 7 - Version 5.2.2

Version Description

  • Fixed: A REST API call aborted with a PHP fatal error when the WPCF7_USE_PIPE constant value was false.
  • Introduces the wpcf7_doing_it_wrong() function.
  • Sets the trigger_error() functions $error_type parameter explicitly.
  • Makes the wpcf7_special_mail_tags filter functions $mail_tag parameter optional.
Download this release

Release Info

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

Code changes from version 5.2.1 to 5.2.2

includes/contact-form-functions.php CHANGED
@@ -125,7 +125,10 @@ function wpcf7_contact_form_tag_func( $atts, $content = null, $code = '' ) {
125
  }
126
 
127
  if ( ! $contact_form ) {
128
- return '[contact-form-7 404 "Not Found"]';
 
 
 
129
  }
130
 
131
  return $contact_form->form_html( $atts );
125
  }
126
 
127
  if ( ! $contact_form ) {
128
+ return sprintf(
129
+ '[contact-form-7 404 "%s"]',
130
+ esc_html( __( 'Not Found', 'contact-form-7' ) )
131
+ );
132
  }
133
 
134
  return $contact_form->form_html( $atts );
includes/contact-form.php CHANGED
@@ -175,20 +175,28 @@ class WPCF7_ContactForm {
175
 
176
  if ( 'id' == $name ) {
177
  if ( WP_DEBUG ) {
178
- trigger_error( sprintf( $message, 'id', 'id()' ) );
 
 
 
179
  }
180
 
181
  return $this->id;
182
  } elseif ( 'title' == $name ) {
183
  if ( WP_DEBUG ) {
184
- trigger_error( sprintf( $message, 'title', 'title()' ) );
 
 
 
185
  }
186
 
187
  return $this->title;
188
  } elseif ( $prop = $this->prop( $name ) ) {
189
  if ( WP_DEBUG ) {
190
  trigger_error(
191
- sprintf( $message, $name, 'prop(\'' . $name . '\')' ) );
 
 
192
  }
193
 
194
  return $prop;
175
 
176
  if ( 'id' == $name ) {
177
  if ( WP_DEBUG ) {
178
+ trigger_error(
179
+ sprintf( $message, 'id', 'id()' ),
180
+ E_USER_DEPRECATED
181
+ );
182
  }
183
 
184
  return $this->id;
185
  } elseif ( 'title' == $name ) {
186
  if ( WP_DEBUG ) {
187
+ trigger_error(
188
+ sprintf( $message, 'title', 'title()' ),
189
+ E_USER_DEPRECATED
190
+ );
191
  }
192
 
193
  return $this->title;
194
  } elseif ( $prop = $this->prop( $name ) ) {
195
  if ( WP_DEBUG ) {
196
  trigger_error(
197
+ sprintf( $message, $name, 'prop(\'' . $name . '\')' ),
198
+ E_USER_DEPRECATED
199
+ );
200
  }
201
 
202
  return $prop;
includes/functions.php CHANGED
@@ -367,23 +367,23 @@ function wpcf7_is_localhost() {
367
  }
368
 
369
  function wpcf7_deprecated_function( $function, $version, $replacement ) {
370
- $trigger_error = apply_filters( 'deprecated_function_trigger_error', true );
371
-
372
- if ( WP_DEBUG and $trigger_error ) {
373
  if ( function_exists( '__' ) ) {
374
  trigger_error(
375
  sprintf(
376
  /* translators: 1: PHP function name, 2: version number, 3: alternative function name */
377
  __( '%1$s is <strong>deprecated</strong> since Contact Form 7 version %2$s! Use %3$s instead.', 'contact-form-7' ),
378
  $function, $version, $replacement
379
- )
 
380
  );
381
  } else {
382
  trigger_error(
383
  sprintf(
384
  '%1$s is <strong>deprecated</strong> since Contact Form 7 version %2$s! Use %3$s instead.',
385
  $function, $version, $replacement
386
- )
 
387
  );
388
  }
389
  }
@@ -394,19 +394,62 @@ function wpcf7_apply_filters_deprecated( $tag, $args, $version, $replacement ) {
394
  return $args[0];
395
  }
396
 
397
- if ( WP_DEBUG and apply_filters( 'deprecated_hook_trigger_error', true ) ) {
398
  trigger_error(
399
  sprintf(
400
  /* translators: 1: WordPress hook name, 2: version number, 3: alternative hook name */
401
  __( '%1$s is <strong>deprecated</strong> since Contact Form 7 version %2$s! Use %3$s instead.', 'contact-form-7' ),
402
  $tag, $version, $replacement
403
- )
 
404
  );
405
  }
406
 
407
  return apply_filters_ref_array( $tag, $args );
408
  }
409
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
410
  function wpcf7_log_remote_request( $url, $request, $response ) {
411
  $log = sprintf(
412
  /* translators: 1: response code, 2: message, 3: body, 4: URL */
367
  }
368
 
369
  function wpcf7_deprecated_function( $function, $version, $replacement ) {
370
+ if ( WP_DEBUG ) {
 
 
371
  if ( function_exists( '__' ) ) {
372
  trigger_error(
373
  sprintf(
374
  /* translators: 1: PHP function name, 2: version number, 3: alternative function name */
375
  __( '%1$s is <strong>deprecated</strong> since Contact Form 7 version %2$s! Use %3$s instead.', 'contact-form-7' ),
376
  $function, $version, $replacement
377
+ ),
378
+ E_USER_DEPRECATED
379
  );
380
  } else {
381
  trigger_error(
382
  sprintf(
383
  '%1$s is <strong>deprecated</strong> since Contact Form 7 version %2$s! Use %3$s instead.',
384
  $function, $version, $replacement
385
+ ),
386
+ E_USER_DEPRECATED
387
  );
388
  }
389
  }
394
  return $args[0];
395
  }
396
 
397
+ if ( WP_DEBUG ) {
398
  trigger_error(
399
  sprintf(
400
  /* translators: 1: WordPress hook name, 2: version number, 3: alternative hook name */
401
  __( '%1$s is <strong>deprecated</strong> since Contact Form 7 version %2$s! Use %3$s instead.', 'contact-form-7' ),
402
  $tag, $version, $replacement
403
+ ),
404
+ E_USER_DEPRECATED
405
  );
406
  }
407
 
408
  return apply_filters_ref_array( $tag, $args );
409
  }
410
 
411
+ function wpcf7_doing_it_wrong( $function, $message, $version ) {
412
+ if ( WP_DEBUG ) {
413
+ if ( function_exists( '__' ) ) {
414
+ if ( $version ) {
415
+ $version = sprintf(
416
+ /* translators: %s: Contact Form 7 version number. */
417
+ __( '(This message was added in Contact Form 7 version %s.)', 'contact-form-7' ),
418
+ $version
419
+ );
420
+ }
421
+
422
+ trigger_error(
423
+ sprintf(
424
+ /* translators: Developer debugging message. 1: PHP function name, 2: Explanatory message, 3: Contact Form 7 version number. */
425
+ __( '%1$s was called incorrectly. %2$s %3$s', 'contact-form-7' ),
426
+ $function,
427
+ $message,
428
+ $version
429
+ ),
430
+ E_USER_NOTICE
431
+ );
432
+ } else {
433
+ if ( $version ) {
434
+ $version = sprintf(
435
+ '(This message was added in Contact Form 7 version %s.)',
436
+ $version
437
+ );
438
+ }
439
+
440
+ trigger_error(
441
+ sprintf(
442
+ '%1$s was called incorrectly. %2$s %3$s',
443
+ $function,
444
+ $message,
445
+ $version
446
+ ),
447
+ E_USER_NOTICE
448
+ );
449
+ }
450
+ }
451
+ }
452
+
453
  function wpcf7_log_remote_request( $url, $request, $response ) {
454
  $log = sprintf(
455
  /* translators: 1: response code, 2: message, 3: body, 4: URL */
includes/rest-api.php CHANGED
@@ -394,7 +394,9 @@ function wpcf7_get_properties_for_api( WPCF7_ContactForm $contact_form ) {
394
  'raw_values' => $form_tag->raw_values,
395
  'labels' => $form_tag->labels,
396
  'values' => $form_tag->values,
397
- 'pipes' => $form_tag->pipes->to_array(),
 
 
398
  'content' => $form_tag->content,
399
  );
400
  },
394
  'raw_values' => $form_tag->raw_values,
395
  'labels' => $form_tag->labels,
396
  'values' => $form_tag->values,
397
+ 'pipes' => $form_tag->pipes instanceof WPCF7_Pipes
398
+ ? $form_tag->pipes->to_array()
399
+ : $form_tag->pipes,
400
  'content' => $form_tag->content,
401
  );
402
  },
includes/special-mail-tags.php CHANGED
@@ -6,7 +6,24 @@
6
 
7
  add_filter( 'wpcf7_special_mail_tags', 'wpcf7_special_mail_tag', 10, 4 );
8
 
9
- function wpcf7_special_mail_tag( $output, $name, $html, $mail_tag ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  $name = preg_replace( '/^wpcf7\./', '_', $name ); // for back-compat
11
 
12
  $submission = WPCF7_Submission::get_instance();
@@ -61,9 +78,27 @@ function wpcf7_special_mail_tag( $output, $name, $html, $mail_tag ) {
61
  return $output;
62
  }
63
 
 
64
  add_filter( 'wpcf7_special_mail_tags', 'wpcf7_post_related_smt', 10, 4 );
65
 
66
- function wpcf7_post_related_smt( $output, $name, $html, $mail_tag ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  if ( '_post_' != substr( $name, 0, 6 ) ) {
68
  return $output;
69
  }
@@ -110,9 +145,27 @@ function wpcf7_post_related_smt( $output, $name, $html, $mail_tag ) {
110
  return $output;
111
  }
112
 
 
113
  add_filter( 'wpcf7_special_mail_tags', 'wpcf7_site_related_smt', 10, 4 );
114
 
115
- function wpcf7_site_related_smt( $output, $name, $html, $mail_tag ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  $filter = $html ? 'display' : 'raw';
117
 
118
  if ( '_site_title' == $name ) {
@@ -134,9 +187,27 @@ function wpcf7_site_related_smt( $output, $name, $html, $mail_tag ) {
134
  return $output;
135
  }
136
 
 
137
  add_filter( 'wpcf7_special_mail_tags', 'wpcf7_user_related_smt', 10, 4 );
138
 
139
- function wpcf7_user_related_smt( $output, $name, $html, $mail_tag ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  if ( '_user_' != substr( $name, 0, 6 )
141
  or '_user_agent' == $name ) {
142
  return $output;
6
 
7
  add_filter( 'wpcf7_special_mail_tags', 'wpcf7_special_mail_tag', 10, 4 );
8
 
9
+ /**
10
+ * Returns output string of a special mail-tag.
11
+ *
12
+ * @param string $output The string to be output.
13
+ * @param string $name The tag name of the special mail-tag.
14
+ * @param bool $html Whether the mail-tag is used in an HTML content.
15
+ * @param WPCF7_MailTag $mail_tag An object representation of the mail-tag.
16
+ * @return string Output of the given special mail-tag.
17
+ */
18
+ function wpcf7_special_mail_tag( $output, $name, $html, $mail_tag = null ) {
19
+ if ( ! $mail_tag instanceof WPCF7_MailTag ) {
20
+ wpcf7_doing_it_wrong(
21
+ sprintf( '%s()', __FUNCTION__ ),
22
+ __( 'The fourth parameter ($mail_tag) must be an instance of the WPCF7_MailTag class.', 'contact-form-7' ),
23
+ '5.2.2'
24
+ );
25
+ }
26
+
27
  $name = preg_replace( '/^wpcf7\./', '_', $name ); // for back-compat
28
 
29
  $submission = WPCF7_Submission::get_instance();
78
  return $output;
79
  }
80
 
81
+
82
  add_filter( 'wpcf7_special_mail_tags', 'wpcf7_post_related_smt', 10, 4 );
83
 
84
+ /**
85
+ * Returns output string of a special mail-tag.
86
+ *
87
+ * @param string $output The string to be output.
88
+ * @param string $name The tag name of the special mail-tag.
89
+ * @param bool $html Whether the mail-tag is used in an HTML content.
90
+ * @param WPCF7_MailTag $mail_tag An object representation of the mail-tag.
91
+ * @return string Output of the given special mail-tag.
92
+ */
93
+ function wpcf7_post_related_smt( $output, $name, $html, $mail_tag = null ) {
94
+ if ( ! $mail_tag instanceof WPCF7_MailTag ) {
95
+ wpcf7_doing_it_wrong(
96
+ sprintf( '%s()', __FUNCTION__ ),
97
+ __( 'The fourth parameter ($mail_tag) must be an instance of the WPCF7_MailTag class.', 'contact-form-7' ),
98
+ '5.2.2'
99
+ );
100
+ }
101
+
102
  if ( '_post_' != substr( $name, 0, 6 ) ) {
103
  return $output;
104
  }
145
  return $output;
146
  }
147
 
148
+
149
  add_filter( 'wpcf7_special_mail_tags', 'wpcf7_site_related_smt', 10, 4 );
150
 
151
+ /**
152
+ * Returns output string of a special mail-tag.
153
+ *
154
+ * @param string $output The string to be output.
155
+ * @param string $name The tag name of the special mail-tag.
156
+ * @param bool $html Whether the mail-tag is used in an HTML content.
157
+ * @param WPCF7_MailTag $mail_tag An object representation of the mail-tag.
158
+ * @return string Output of the given special mail-tag.
159
+ */
160
+ function wpcf7_site_related_smt( $output, $name, $html, $mail_tag = null ) {
161
+ if ( ! $mail_tag instanceof WPCF7_MailTag ) {
162
+ wpcf7_doing_it_wrong(
163
+ sprintf( '%s()', __FUNCTION__ ),
164
+ __( 'The fourth parameter ($mail_tag) must be an instance of the WPCF7_MailTag class.', 'contact-form-7' ),
165
+ '5.2.2'
166
+ );
167
+ }
168
+
169
  $filter = $html ? 'display' : 'raw';
170
 
171
  if ( '_site_title' == $name ) {
187
  return $output;
188
  }
189
 
190
+
191
  add_filter( 'wpcf7_special_mail_tags', 'wpcf7_user_related_smt', 10, 4 );
192
 
193
+ /**
194
+ * Returns output string of a special mail-tag.
195
+ *
196
+ * @param string $output The string to be output.
197
+ * @param string $name The tag name of the special mail-tag.
198
+ * @param bool $html Whether the mail-tag is used in an HTML content.
199
+ * @param WPCF7_MailTag $mail_tag An object representation of the mail-tag.
200
+ * @return string Output of the given special mail-tag.
201
+ */
202
+ function wpcf7_user_related_smt( $output, $name, $html, $mail_tag = null ) {
203
+ if ( ! $mail_tag instanceof WPCF7_MailTag ) {
204
+ wpcf7_doing_it_wrong(
205
+ sprintf( '%s()', __FUNCTION__ ),
206
+ __( 'The fourth parameter ($mail_tag) must be an instance of the WPCF7_MailTag class.', 'contact-form-7' ),
207
+ '5.2.2'
208
+ );
209
+ }
210
+
211
  if ( '_user_' != substr( $name, 0, 6 )
212
  or '_user_agent' == $name ) {
213
  return $output;
modules/flamingo.php CHANGED
@@ -256,9 +256,27 @@ function wpcf7_flamingo_update_channel( $contact_form ) {
256
  }
257
  }
258
 
 
259
  add_filter( 'wpcf7_special_mail_tags', 'wpcf7_flamingo_serial_number', 10, 4 );
260
 
261
- function wpcf7_flamingo_serial_number( $output, $name, $html, $mail_tag ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
262
  if ( '_serial_number' != $name ) {
263
  return $output;
264
  }
256
  }
257
  }
258
 
259
+
260
  add_filter( 'wpcf7_special_mail_tags', 'wpcf7_flamingo_serial_number', 10, 4 );
261
 
262
+ /**
263
+ * Returns output string of a special mail-tag.
264
+ *
265
+ * @param string $output The string to be output.
266
+ * @param string $name The tag name of the special mail-tag.
267
+ * @param bool $html Whether the mail-tag is used in an HTML content.
268
+ * @param WPCF7_MailTag $mail_tag An object representation of the mail-tag.
269
+ * @return string Output of the given special mail-tag.
270
+ */
271
+ function wpcf7_flamingo_serial_number( $output, $name, $html, $mail_tag = null ) {
272
+ if ( ! $mail_tag instanceof WPCF7_MailTag ) {
273
+ wpcf7_doing_it_wrong(
274
+ sprintf( '%s()', __FUNCTION__ ),
275
+ __( 'The fourth parameter ($mail_tag) must be an instance of the WPCF7_MailTag class.', 'contact-form-7' ),
276
+ '5.2.2'
277
+ );
278
+ }
279
+
280
  if ( '_serial_number' != $name ) {
281
  return $output;
282
  }
readme.txt CHANGED
@@ -1,160 +1,167 @@
1
- === Contact Form 7 ===
2
- Contributors: takayukister
3
- Donate link: https://contactform7.com/donate/
4
- Tags: contact, form, contact form, feedback, email, ajax, captcha, akismet, multilingual
5
- Requires at least: 5.3
6
- Tested up to: 5.5
7
- Stable tag: 5.2.1
8
- License: GPLv2 or later
9
- License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
-
11
- Just another contact form plugin. Simple but flexible.
12
-
13
- == Description ==
14
-
15
- Contact Form 7 can manage multiple contact forms, plus you can customize the form and the mail contents flexibly with simple markup. The form supports Ajax-powered submitting, CAPTCHA, Akismet spam filtering and so on.
16
-
17
- = Docs and support =
18
-
19
- You can find [docs](https://contactform7.com/docs/), [FAQ](https://contactform7.com/faq/) and more detailed information about Contact Form 7 on [contactform7.com](https://contactform7.com/). When you can't find the answer to your question on the FAQ or in any of the documentation, check the [support forum](https://wordpress.org/support/plugin/contact-form-7/) on WordPress.org. If you can't locate any topics that pertain to your particular issue, post a new topic for it.
20
-
21
- = Contact Form 7 needs your support =
22
-
23
- It is hard to continue development and support for this free plugin without contributions from users like you. If you enjoy using Contact Form 7 and find it useful, please consider [making a donation](https://contactform7.com/donate/). Your donation will help encourage and support the plugin's continued development and better user support.
24
-
25
- = Privacy notices =
26
-
27
- With the default configuration, this plugin, in itself, does not:
28
-
29
- * track users by stealth;
30
- * write any user personal data to the database;
31
- * send any data to external servers;
32
- * use cookies.
33
-
34
- If you activate certain features in this plugin, the contact form submitter's personal data, including their IP address, may be sent to the service provider. Thus, confirming the provider's privacy policy is recommended. These features include:
35
-
36
- * reCAPTCHA ([Google](https://policies.google.com/?hl=en))
37
- * Akismet ([Automattic](https://automattic.com/privacy/))
38
- * Constant Contact ([Endurance International Group](https://www.endurance.com/privacy))
39
-
40
- = Recommended plugins =
41
-
42
- The following plugins are recommended for Contact Form 7 users:
43
-
44
- * [Flamingo](https://wordpress.org/plugins/flamingo/) by Takayuki Miyoshi - With Flamingo, you can save submitted messages via contact forms in the database.
45
- * [Bogo](https://wordpress.org/plugins/bogo/) by Takayuki Miyoshi - Bogo is a straight-forward multilingual plugin that doesn't cause headaches.
46
-
47
- = Translations =
48
-
49
- You can [translate Contact Form 7](https://contactform7.com/translating-contact-form-7/) on [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/contact-form-7).
50
-
51
- == Installation ==
52
-
53
- 1. Upload the entire `contact-form-7` folder to the `/wp-content/plugins/` directory.
54
- 1. Activate the plugin through the **Plugins** screen (**Plugins > Installed Plugins**).
55
-
56
- You will find **Contact** menu in your WordPress admin screen.
57
-
58
- For basic usage, have a look at the [plugin's website](https://contactform7.com/).
59
-
60
- == Frequently Asked Questions ==
61
-
62
- Do you have questions or issues with Contact Form 7? Use these support channels appropriately.
63
-
64
- 1. [Docs](https://contactform7.com/docs/)
65
- 1. [FAQ](https://contactform7.com/faq/)
66
- 1. [Support forum](https://wordpress.org/support/plugin/contact-form-7/)
67
-
68
- [Support](https://contactform7.com/support/)
69
-
70
- == Screenshots ==
71
-
72
- 1. screenshot-1.png
73
-
74
- == Changelog ==
75
-
76
- For more information, see [Releases](https://contactform7.com/category/releases/).
77
-
78
- = 5.2.1 =
79
-
80
- * Makes the [contact-form-7 404 "Not Found"] message localizable.
81
- * REST API: Adds the `permission_callback` argument to every endpoint definition.
82
- * Flamingo: Uses `id()` instead of `id`, if available.
83
- * Fixed: The `free_text` option did not work correctly with the `exclusive` option.
84
- * Applies `wpcf7_mail_tag_replaced` filters even when the `$posted_data` is null.
85
- * Adds custom mail-tag replacement for quiz fields.
86
- * Admin: Updates the date column format in the list table.
87
-
88
- = 5.2 =
89
-
90
- * Submission: Introduces the `$posted_data_hash` and `$skip_spam_check` properties.
91
- * Submission: Introduces the `wpcf7_skip_spam_check` filter hook.
92
- * Contact form: Introduces the `pref()` method.
93
- * REST API: Adds parsed form-tags data to the response.
94
- * REST API: Deprecates the `wpcf7_ajax_json_echo` and `wpcf7_ajax_onload` filter hooks and introduces the `wpcf7_feedback_response` and `wpcf7_refill_response` filter hooks as alternatives.
95
- * Frontend CSS: Style rules for the response output refer to the `form` element’s `class` attribute.
96
- * Frontend JavaScript: Abolishes the use of jQuery events.
97
- * reCAPTCHA: Moves script code to a separate file.
98
- * reCAPTCHA: Changes the name of the field for reCAPTCHA response token from `g-recaptcha-response` to `_wpcf7_recaptcha_response`.
99
-
100
- = 5.1.9 =
101
-
102
- * Special mail-tags: Reflects WP timezone to `[_date]` and `[_time]` mail-tags.
103
- * WPCF7_FormTag: Reflects WP timezone to `get_date_option()` output.
104
- * User input validation: Strictly compares to boolean _false_.
105
-
106
- = 5.1.8 =
107
-
108
- * reCAPTCHA: Shows no warning on upgrading from v2 if the global sitekey is defined.
109
- * reCAPTCHA: Improves the frontend JavaScript coding.
110
- * Accessibility: Improves the response message markup.
111
- * Fixes the regular expression pattern in `wpcf7_is_tel()`.
112
- * Fixed: Character count was not reset after a successful submission.
113
- * Fixed: The fourth parameter of the `wpcf7_special_mail_tags` filter hook was not correctly set.
114
-
115
- = 5.1.7 =
116
-
117
- * CSS: Adds an explicit LTR direction style rule for code inputs.
118
- * Accessibility: Uses _Error_ instead of _ERROR_ in warnings.
119
-
120
- = 5.1.6 =
121
-
122
- * CSS: removes a style rule from the stylesheet that was unnecessary and conflicting with Twenty Twenty’s rules.
123
- * REST API: retrieves the contact form ID explicitly from the route parameters.
124
-
125
- = 5.1.5 =
126
-
127
- * Config Validator: New test item for the unavailable_html_elements error.
128
- * Config Validator: New test item for the attachments_overweight error.
129
-
130
- = 5.1.4 =
131
-
132
- * reCAPTCHA: introduces the WPCF7_RECAPTCHA_SITEKEY and WPCF7_RECAPTCHA_SECRET constants.
133
- * reCAPTCHA: Introduces the wpcf7_recaptcha_sitekey and wpcf7_recaptcha_secret filter hooks.
134
- * Adds $status parameter to the wpcf7_form_response_output filter.
135
- * Creates a nonce only when the submitter is a logged-in user.
136
- * Introduces WPCF7_ContactForm::unit_tag(), a public method that returns a unit tag.
137
- * reCAPTCHA: gives a different spam log message for cases where the response token is empty.
138
- * Acceptance Checkbox: supports the label_first option in an acceptance form-tag.
139
-
140
- = 5.1.3 =
141
-
142
- * Fixes a bug making it unable to unselect an option in the Mail tab panel.
143
-
144
- = 5.1.2 =
145
-
146
- * Constant Contact: Introduces the contact list selector.
147
- * Constant Contact: Introduces the constant_contact additional setting.
148
- * reCAPTCHA: Introduces the wpcf7_recaptcha_actions and wpcf7_recaptcha_threshold filter hooks.
149
-
150
- = 5.1.1 =
151
-
152
- * reCAPTCHA: Modifies the reaction to empty response tokens.
153
-
154
- = 5.1 =
155
-
156
- * Introduces the Constant Contact integration module.
157
- * Updates the reCAPTCHA module to support reCAPTCHA v3.
158
- * Adds Dark Mode style rules.
159
-
160
- == Upgrade Notice ==
 
 
 
 
 
 
 
1
+ === Contact Form 7 ===
2
+ Contributors: takayukister
3
+ Donate link: https://contactform7.com/donate/
4
+ Tags: contact, form, contact form, feedback, email, ajax, captcha, akismet, multilingual
5
+ Requires at least: 5.3
6
+ Tested up to: 5.5
7
+ Stable tag: 5.2.2
8
+ License: GPLv2 or later
9
+ License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ Just another contact form plugin. Simple but flexible.
12
+
13
+ == Description ==
14
+
15
+ Contact Form 7 can manage multiple contact forms, plus you can customize the form and the mail contents flexibly with simple markup. The form supports Ajax-powered submitting, CAPTCHA, Akismet spam filtering and so on.
16
+
17
+ = Docs and support =
18
+
19
+ You can find [docs](https://contactform7.com/docs/), [FAQ](https://contactform7.com/faq/) and more detailed information about Contact Form 7 on [contactform7.com](https://contactform7.com/). When you can't find the answer to your question on the FAQ or in any of the documentation, check the [support forum](https://wordpress.org/support/plugin/contact-form-7/) on WordPress.org. If you can't locate any topics that pertain to your particular issue, post a new topic for it.
20
+
21
+ = Contact Form 7 needs your support =
22
+
23
+ It is hard to continue development and support for this free plugin without contributions from users like you. If you enjoy using Contact Form 7 and find it useful, please consider [making a donation](https://contactform7.com/donate/). Your donation will help encourage and support the plugin's continued development and better user support.
24
+
25
+ = Privacy notices =
26
+
27
+ With the default configuration, this plugin, in itself, does not:
28
+
29
+ * track users by stealth;
30
+ * write any user personal data to the database;
31
+ * send any data to external servers;
32
+ * use cookies.
33
+
34
+ If you activate certain features in this plugin, the contact form submitter's personal data, including their IP address, may be sent to the service provider. Thus, confirming the provider's privacy policy is recommended. These features include:
35
+
36
+ * reCAPTCHA ([Google](https://policies.google.com/?hl=en))
37
+ * Akismet ([Automattic](https://automattic.com/privacy/))
38
+ * Constant Contact ([Endurance International Group](https://www.endurance.com/privacy))
39
+
40
+ = Recommended plugins =
41
+
42
+ The following plugins are recommended for Contact Form 7 users:
43
+
44
+ * [Flamingo](https://wordpress.org/plugins/flamingo/) by Takayuki Miyoshi - With Flamingo, you can save submitted messages via contact forms in the database.
45
+ * [Bogo](https://wordpress.org/plugins/bogo/) by Takayuki Miyoshi - Bogo is a straight-forward multilingual plugin that doesn't cause headaches.
46
+
47
+ = Translations =
48
+
49
+ You can [translate Contact Form 7](https://contactform7.com/translating-contact-form-7/) on [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/contact-form-7).
50
+
51
+ == Installation ==
52
+
53
+ 1. Upload the entire `contact-form-7` folder to the `/wp-content/plugins/` directory.
54
+ 1. Activate the plugin through the **Plugins** screen (**Plugins > Installed Plugins**).
55
+
56
+ You will find **Contact** menu in your WordPress admin screen.
57
+
58
+ For basic usage, have a look at the [plugin's website](https://contactform7.com/).
59
+
60
+ == Frequently Asked Questions ==
61
+
62
+ Do you have questions or issues with Contact Form 7? Use these support channels appropriately.
63
+
64
+ 1. [Docs](https://contactform7.com/docs/)
65
+ 1. [FAQ](https://contactform7.com/faq/)
66
+ 1. [Support forum](https://wordpress.org/support/plugin/contact-form-7/)
67
+
68
+ [Support](https://contactform7.com/support/)
69
+
70
+ == Screenshots ==
71
+
72
+ 1. screenshot-1.png
73
+
74
+ == Changelog ==
75
+
76
+ For more information, see [Releases](https://contactform7.com/category/releases/).
77
+
78
+ = 5.2.2 =
79
+
80
+ * Fixed: A REST API call aborted with a PHP fatal error when the `WPCF7_USE_PIPE` constant value was false.
81
+ * Introduces the `wpcf7_doing_it_wrong()` function.
82
+ * Sets the `trigger_error()` function’s `$error_type` parameter explicitly.
83
+ * Makes the `wpcf7_special_mail_tags` filter functions’ `$mail_tag` parameter optional.
84
+
85
+ = 5.2.1 =
86
+
87
+ * Makes the [contact-form-7 404 "Not Found"] message localizable.
88
+ * REST API: Adds the `permission_callback` argument to every endpoint definition.
89
+ * Flamingo: Uses `id()` instead of `id`, if available.
90
+ * Fixed: The `free_text` option did not work correctly with the `exclusive` option.
91
+ * Applies `wpcf7_mail_tag_replaced` filters even when the `$posted_data` is null.
92
+ * Adds custom mail-tag replacement for quiz fields.
93
+ * Admin: Updates the date column format in the list table.
94
+
95
+ = 5.2 =
96
+
97
+ * Submission: Introduces the `$posted_data_hash` and `$skip_spam_check` properties.
98
+ * Submission: Introduces the `wpcf7_skip_spam_check` filter hook.
99
+ * Contact form: Introduces the `pref()` method.
100
+ * REST API: Adds parsed form-tags data to the response.
101
+ * REST API: Deprecates the `wpcf7_ajax_json_echo` and `wpcf7_ajax_onload` filter hooks and introduces the `wpcf7_feedback_response` and `wpcf7_refill_response` filter hooks as alternatives.
102
+ * Frontend CSS: Style rules for the response output refer to the `form` element’s `class` attribute.
103
+ * Frontend JavaScript: Abolishes the use of jQuery events.
104
+ * reCAPTCHA: Moves script code to a separate file.
105
+ * reCAPTCHA: Changes the name of the field for reCAPTCHA response token from `g-recaptcha-response` to `_wpcf7_recaptcha_response`.
106
+
107
+ = 5.1.9 =
108
+
109
+ * Special mail-tags: Reflects WP timezone to `[_date]` and `[_time]` mail-tags.
110
+ * WPCF7_FormTag: Reflects WP timezone to `get_date_option()` output.
111
+ * User input validation: Strictly compares to boolean _false_.
112
+
113
+ = 5.1.8 =
114
+
115
+ * reCAPTCHA: Shows no warning on upgrading from v2 if the global sitekey is defined.
116
+ * reCAPTCHA: Improves the frontend JavaScript coding.
117
+ * Accessibility: Improves the response message markup.
118
+ * Fixes the regular expression pattern in `wpcf7_is_tel()`.
119
+ * Fixed: Character count was not reset after a successful submission.
120
+ * Fixed: The fourth parameter of the `wpcf7_special_mail_tags` filter hook was not correctly set.
121
+
122
+ = 5.1.7 =
123
+
124
+ * CSS: Adds an explicit LTR direction style rule for code inputs.
125
+ * Accessibility: Uses _Error_ instead of _ERROR_ in warnings.
126
+
127
+ = 5.1.6 =
128
+
129
+ * CSS: removes a style rule from the stylesheet that was unnecessary and conflicting with Twenty Twenty’s rules.
130
+ * REST API: retrieves the contact form ID explicitly from the route parameters.
131
+
132
+ = 5.1.5 =
133
+
134
+ * Config Validator: New test item for the unavailable_html_elements error.
135
+ * Config Validator: New test item for the attachments_overweight error.
136
+
137
+ = 5.1.4 =
138
+
139
+ * reCAPTCHA: introduces the WPCF7_RECAPTCHA_SITEKEY and WPCF7_RECAPTCHA_SECRET constants.
140
+ * reCAPTCHA: Introduces the wpcf7_recaptcha_sitekey and wpcf7_recaptcha_secret filter hooks.
141
+ * Adds $status parameter to the wpcf7_form_response_output filter.
142
+ * Creates a nonce only when the submitter is a logged-in user.
143
+ * Introduces WPCF7_ContactForm::unit_tag(), a public method that returns a unit tag.
144
+ * reCAPTCHA: gives a different spam log message for cases where the response token is empty.
145
+ * Acceptance Checkbox: supports the label_first option in an acceptance form-tag.
146
+
147
+ = 5.1.3 =
148
+
149
+ * Fixes a bug making it unable to unselect an option in the Mail tab panel.
150
+
151
+ = 5.1.2 =
152
+
153
+ * Constant Contact: Introduces the contact list selector.
154
+ * Constant Contact: Introduces the constant_contact additional setting.
155
+ * reCAPTCHA: Introduces the wpcf7_recaptcha_actions and wpcf7_recaptcha_threshold filter hooks.
156
+
157
+ = 5.1.1 =
158
+
159
+ * reCAPTCHA: Modifies the reaction to empty response tokens.
160
+
161
+ = 5.1 =
162
+
163
+ * Introduces the Constant Contact integration module.
164
+ * Updates the reCAPTCHA module to support reCAPTCHA v3.
165
+ * Adds Dark Mode style rules.
166
+
167
+ == Upgrade Notice ==
wp-contact-form-7.php CHANGED
@@ -7,10 +7,10 @@ Author: Takayuki Miyoshi
7
  Author URI: https://ideasilo.wordpress.com/
8
  Text Domain: contact-form-7
9
  Domain Path: /languages/
10
- Version: 5.2.1
11
  */
12
 
13
- define( 'WPCF7_VERSION', '5.2.1' );
14
 
15
  define( 'WPCF7_REQUIRED_WP_VERSION', '5.3' );
16
 
7
  Author URI: https://ideasilo.wordpress.com/
8
  Text Domain: contact-form-7
9
  Domain Path: /languages/
10
+ Version: 5.2.2
11
  */
12
 
13
+ define( 'WPCF7_VERSION', '5.2.2' );
14
 
15
  define( 'WPCF7_REQUIRED_WP_VERSION', '5.3' );
16