Version Description
(2019-10-13) = * Added support for wp-config Contact Form 7 key constants. * Added support for reCaptcha alignment. * Fixed an issue with google response logging should the api return an error.
Download this release
Release Info
Developer | IQComputing |
Plugin | Contact Form 7 – reCaptcha v2 |
Version | 1.2.3 |
Comparing to | |
See all releases |
Code changes from version 1.2.2 to 1.2.3
- changelog.txt +12 -0
- readme.txt +8 -8
- recaptcha-v2.php +41 -10
- wpcf7-recaptcha.php +2 -2
changelog.txt
CHANGED
@@ -2,6 +2,18 @@
|
|
2 |
|
3 |
This is to keep track of all changes the plugin undertakes. The readme.txt should only contain the most recent 3.
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
= 1.2.2 =
|
6 |
|
7 |
Release Date: September 17, 2019
|
2 |
|
3 |
This is to keep track of all changes the plugin undertakes. The readme.txt should only contain the most recent 3.
|
4 |
|
5 |
+
= 1.2.3 =
|
6 |
+
|
7 |
+
Release Date: November 13, 2019
|
8 |
+
|
9 |
+
* Features
|
10 |
+
* Added reCaptcha alignment controls to the reCaptcha shortcode. Left, Center, Right.
|
11 |
+
* Added support for the Contact Form 7 constants `WPCF7_RECAPTCHA_SITEKEY` and `WPCF7_RECAPTCHA_SECRET` in the WP Config.
|
12 |
+
* For more information see the post by Takayuki Miyoshi ( https://contactform7.com/2019/08/04/contact-form-7-514/ )
|
13 |
+
|
14 |
+
* Fixes
|
15 |
+
* Updated the logging feature for whenever the reCaptcha returns an error. Uses Contact Form 7 log method.
|
16 |
+
|
17 |
= 1.2.2 =
|
18 |
|
19 |
Release Date: September 17, 2019
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: iqcomputing
|
3 |
Tags: contact-form-7, contact-form-7-recaptcha, recaptcha, spam
|
4 |
Requires at least: 4.9
|
5 |
-
Tested up to: 5.
|
6 |
-
Stable tag: 1.2.
|
7 |
License: GPLv2 or later
|
8 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -60,13 +60,13 @@ Should the above be correct, at this point it's time to open a support thread fo
|
|
60 |
|
61 |
== Changelog ==
|
62 |
|
|
|
|
|
|
|
|
|
|
|
63 |
= 1.2.2 (2019-09-17) =
|
64 |
* Fixed translation function to include plugin slug. Thanks @alexclassroom !
|
65 |
|
66 |
= 1.2.1 (2019-09-09) =
|
67 |
-
* Updated the plugin name to fix Trademark infringement.
|
68 |
-
|
69 |
-
= 1.2.0 (2019-06-13) =
|
70 |
-
* Removed jQuery dependecy.
|
71 |
-
* Converted jQuery reCaptcha submission check to vanilla JavaScript.
|
72 |
-
* Updated reCaptcha noscript to account for A3 Lazy Load Plugin.
|
2 |
Contributors: iqcomputing
|
3 |
Tags: contact-form-7, contact-form-7-recaptcha, recaptcha, spam
|
4 |
Requires at least: 4.9
|
5 |
+
Tested up to: 5.3
|
6 |
+
Stable tag: 1.2.3
|
7 |
License: GPLv2 or later
|
8 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
60 |
|
61 |
== Changelog ==
|
62 |
|
63 |
+
= 1.2.3 (2019-10-13) =
|
64 |
+
* Added support for wp-config Contact Form 7 key constants.
|
65 |
+
* Added support for reCaptcha alignment.
|
66 |
+
* Fixed an issue with google response logging should the api return an error.
|
67 |
+
|
68 |
= 1.2.2 (2019-09-17) =
|
69 |
* Fixed translation function to include plugin slug. Thanks @alexclassroom !
|
70 |
|
71 |
= 1.2.1 (2019-09-09) =
|
72 |
+
* Updated the plugin name to fix Trademark infringement.
|
|
|
|
|
|
|
|
|
|
recaptcha-v2.php
CHANGED
@@ -109,6 +109,7 @@ var recaptchaCallback = function() {
|
|
109 |
'type': divs[ j ].getAttribute( 'data-type' ),
|
110 |
'size': divs[ j ].getAttribute( 'data-size' ),
|
111 |
'theme': divs[ j ].getAttribute( 'data-theme' ),
|
|
|
112 |
'badge': divs[ j ].getAttribute( 'data-badge' ),
|
113 |
'tabindex': divs[ j ].getAttribute( 'data-tabindex' )
|
114 |
};
|
@@ -189,6 +190,7 @@ function iqfix_wpcf7_recaptcha_form_tag_handler( $tag ) {
|
|
189 |
$atts['data-size'] = $tag->get_option(
|
190 |
'size', '(compact|normal|invisible)', true );
|
191 |
$atts['data-theme'] = $tag->get_option( 'theme', '(dark|light)', true );
|
|
|
192 |
$atts['data-badge'] = $tag->get_option(
|
193 |
'badge', '(bottomright|bottomleft|inline)', true );
|
194 |
$atts['data-tabindex'] = $tag->get_option( 'tabindex', 'signed_int', true );
|
@@ -422,6 +424,26 @@ function iqfix_wpcf7_tag_generator_recaptcha( $contact_form, $args = '' ) {
|
|
422 |
</td>
|
423 |
</tr>
|
424 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
425 |
<tr>
|
426 |
<th scope="row"><label for="<?php echo esc_attr( $args['content'] . '-id' ); ?>"><?php
|
427 |
/* translators: HTML Attribute ID for reCaptcha box */
|
@@ -487,7 +509,13 @@ function iqfix_recaptcha_class_init() {
|
|
487 |
* return void
|
488 |
*/
|
489 |
private function __construct() {
|
490 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
491 |
}
|
492 |
|
493 |
|
@@ -585,19 +613,20 @@ function iqfix_recaptcha_class_init() {
|
|
585 |
return $is_human;
|
586 |
}
|
587 |
|
588 |
-
$source
|
589 |
-
$source
|
590 |
-
$
|
591 |
-
$sitekey
|
592 |
-
$secret
|
593 |
-
|
594 |
-
$response = wp_safe_remote_post( $url, array(
|
595 |
'body' => array(
|
596 |
'secret' => $secret,
|
597 |
'response' => $response_token,
|
598 |
'remoteip' => $_SERVER['REMOTE_ADDR'],
|
599 |
),
|
600 |
-
)
|
|
|
|
|
601 |
|
602 |
if ( 200 != wp_remote_retrieve_response_code( $response ) ) {
|
603 |
|
@@ -630,7 +659,9 @@ add_action( 'init', 'iqfix_recaptcha_class_init', 11 );
|
|
630 |
*/
|
631 |
function iqfix_recaptcha_inline_css() {
|
632 |
|
633 |
-
$iqfix_css
|
|
|
|
|
634 |
wp_add_inline_style( 'contact-form-7', $iqfix_css );
|
635 |
|
636 |
}
|
109 |
'type': divs[ j ].getAttribute( 'data-type' ),
|
110 |
'size': divs[ j ].getAttribute( 'data-size' ),
|
111 |
'theme': divs[ j ].getAttribute( 'data-theme' ),
|
112 |
+
'align': divs[ j ].getAttribute( 'data-align' ),
|
113 |
'badge': divs[ j ].getAttribute( 'data-badge' ),
|
114 |
'tabindex': divs[ j ].getAttribute( 'data-tabindex' )
|
115 |
};
|
190 |
$atts['data-size'] = $tag->get_option(
|
191 |
'size', '(compact|normal|invisible)', true );
|
192 |
$atts['data-theme'] = $tag->get_option( 'theme', '(dark|light)', true );
|
193 |
+
$atts['data-align'] = $tag->get_option( 'align', '(left|center|right)', true );
|
194 |
$atts['data-badge'] = $tag->get_option(
|
195 |
'badge', '(bottomright|bottomleft|inline)', true );
|
196 |
$atts['data-tabindex'] = $tag->get_option( 'tabindex', 'signed_int', true );
|
424 |
</td>
|
425 |
</tr>
|
426 |
|
427 |
+
<tr>
|
428 |
+
<th scope="row"><?php
|
429 |
+
/* translators: ReCaptcha theme (light or dark) */
|
430 |
+
esc_html_e( 'Alignment', 'wpcf7-recaptcha' );
|
431 |
+
?></th>
|
432 |
+
<td>
|
433 |
+
<fieldset>
|
434 |
+
<legend class="screen-reader-text"><?php
|
435 |
+
/* translators: Alignment of the reCaptcha box (left, center, right) */
|
436 |
+
esc_html_e( 'Alignment', 'wpcf7-recaptcha' );
|
437 |
+
?></legend>
|
438 |
+
<label for="<?php echo esc_attr( $args['content'] . '-align-left' ); ?>"><input type="radio" name="align" class="option default" id="<?php echo esc_attr( $args['content'] . '-align-left' ); ?>" value="left" checked="checked" /> <?php /* translators: ReCaptcha alignment: left */ esc_html_e( 'Left', 'wpcf7-recaptcha' ); ?></label>
|
439 |
+
<br />
|
440 |
+
<label for="<?php echo esc_attr( $args['content'] . '-align-center' ); ?>"><input type="radio" name="align" class="option" id="<?php echo esc_attr( $args['content'] . '-align-center' ); ?>" value="center" /> <?php /* translators: ReCaptcha alignment: center */ esc_html_e( 'Center', 'wpcf7-recaptcha' ); ?></label>
|
441 |
+
<br />
|
442 |
+
<label for="<?php echo esc_attr( $args['content'] . '-align-right' ); ?>"><input type="radio" name="align" class="option" id="<?php echo esc_attr( $args['content'] . '-align-right' ); ?>" value="right" /> <?php /* translators: ReCaptcha alignment: right */ esc_html_e( 'Right', 'wpcf7-recaptcha' ); ?></label>
|
443 |
+
</fieldset>
|
444 |
+
</td>
|
445 |
+
</tr>
|
446 |
+
|
447 |
<tr>
|
448 |
<th scope="row"><label for="<?php echo esc_attr( $args['content'] . '-id' ); ?>"><?php
|
449 |
/* translators: HTML Attribute ID for reCaptcha box */
|
509 |
* return void
|
510 |
*/
|
511 |
private function __construct() {
|
512 |
+
|
513 |
+
if( defined( 'WPCF7_RECAPTCHA_SITEKEY' ) && defined( 'WPCF7_RECAPTCHA_SECRET' ) ) {
|
514 |
+
$this->sitekeys = array( WPCF7_RECAPTCHA_SITEKEY => WPCF7_RECAPTCHA_SECRET );
|
515 |
+
} else {
|
516 |
+
$this->sitekeys = WPCF7::get_option( 'recaptcha' );
|
517 |
+
}
|
518 |
+
|
519 |
}
|
520 |
|
521 |
|
613 |
return $is_human;
|
614 |
}
|
615 |
|
616 |
+
$source = WPCF7::get_option( 'iqfix_recaptcha_source' );
|
617 |
+
$source = IQFix_WPCF7_Deity::verify_recaptcha_source( $source );
|
618 |
+
$endpoint = sprintf( 'https://www.%s/recaptcha/api/siteverify', $source );
|
619 |
+
$sitekey = $this->get_sitekey();
|
620 |
+
$secret = $this->get_secret( $sitekey );
|
621 |
+
$request = array(
|
|
|
622 |
'body' => array(
|
623 |
'secret' => $secret,
|
624 |
'response' => $response_token,
|
625 |
'remoteip' => $_SERVER['REMOTE_ADDR'],
|
626 |
),
|
627 |
+
);
|
628 |
+
|
629 |
+
$response = wp_safe_remote_post( esc_url_raw( $endpoint ), $request );
|
630 |
|
631 |
if ( 200 != wp_remote_retrieve_response_code( $response ) ) {
|
632 |
|
659 |
*/
|
660 |
function iqfix_recaptcha_inline_css() {
|
661 |
|
662 |
+
$iqfix_css = '.wpcf7 .wpcf7-recaptcha iframe {margin-bottom: 0;}';
|
663 |
+
$iqfix_css .= '.wpcf7 .wpcf7-recaptcha[data-align="center"] > div {margin: 0 auto;}';
|
664 |
+
$iqfix_css .= '.wpcf7 .wpcf7-recaptcha[data-align="right"] > div {margin: 0 0 0 auto;}';
|
665 |
wp_add_inline_style( 'contact-form-7', $iqfix_css );
|
666 |
|
667 |
}
|
wpcf7-recaptcha.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Plugin Name: ReCaptcha v2 for Contact Form 7
|
4 |
* Description: ReCaptcha v2 Fix for Contact Form 7 5.1 and later.
|
5 |
-
* Version: 1.2.
|
6 |
* Author: IQComputing
|
7 |
* Author URI: http://www.iqcomputing.com/
|
8 |
* License: GPL2
|
@@ -18,7 +18,7 @@ defined( 'ABSPATH' ) or die( 'You cannot be here.' );
|
|
18 |
*/
|
19 |
Class IQFix_WPCF7_Deity {
|
20 |
|
21 |
-
public static $version = '1.2.
|
22 |
|
23 |
|
24 |
/**
|
2 |
/**
|
3 |
* Plugin Name: ReCaptcha v2 for Contact Form 7
|
4 |
* Description: ReCaptcha v2 Fix for Contact Form 7 5.1 and later.
|
5 |
+
* Version: 1.2.3
|
6 |
* Author: IQComputing
|
7 |
* Author URI: http://www.iqcomputing.com/
|
8 |
* License: GPL2
|
18 |
*/
|
19 |
Class IQFix_WPCF7_Deity {
|
20 |
|
21 |
+
public static $version = '1.2.3';
|
22 |
|
23 |
|
24 |
/**
|