Version Description
- Feature: Prevent Lockout - Admins can still log in when the API keys are invalid
- Feature: Customize error message on contact form 7 and ninja forms
- Filters: add actions
recaptcha_print
,print_comments_recaptcha
and filtersrecaptcha_valid
,recaptcha_error
for custom forms. - Redesign: settings page
- Fix: woocommerce checkout form: fix unnecessary captcha test on new customer registration
- Fix: settings: testing keys for multiple times
- Fix: settings: key setup -> cancel button target
- Fix: settings: test keys only with a nocaptcha
Download this release
Release Info
Developer | podpirate |
Plugin | WordPress ReCaptcha Integration |
Version | 1.1.0 |
Comparing to | |
See all releases |
Code changes from version 1.0.9 to 1.1.0
- css/recaptcha-options.css +67 -5
- inc/class-wp_recaptcha_captcha.php +22 -0
- inc/class-wp_recaptcha_contactform7.php +18 -2
- inc/class-wp_recaptcha_ninjaforms.php +25 -5
- inc/class-wp_recaptcha_nocaptcha.php +34 -6
- inc/class-wp_recaptcha_options.php +183 -78
- inc/class-wp_recaptcha_woocommerce.php +30 -4
- js/recaptcha-options.js +12 -4
- languages/wp-recaptcha-integration-de_DE.mo +0 -0
- languages/wp-recaptcha-integration-de_DE.po +121 -115
- languages/wp-recaptcha-integration-es_ES.mo +0 -0
- languages/wp-recaptcha-integration-es_ES.po +221 -163
- languages/wp-recaptcha-integration-pt_BR.mo +0 -0
- languages/wp-recaptcha-integration-pt_BR.po +224 -183
- readme.txt +116 -15
- screenshot-1.png +0 -0
- screenshot-2.png +0 -0
- screenshot-3.png +0 -0
- wp-recaptcha-integration.php +111 -56
css/recaptcha-options.css
CHANGED
@@ -3,11 +3,13 @@
|
|
3 |
}
|
4 |
.recaptcha-select-theme label {
|
5 |
display:inline-block;
|
6 |
-
margin:
|
7 |
-
padding:
|
8 |
background-color:transparent;
|
9 |
border-radius:10px;
|
10 |
max-width:200px;
|
|
|
|
|
11 |
}
|
12 |
.recaptcha-select-theme input[type="radio"] {
|
13 |
display:none;
|
@@ -15,6 +17,8 @@
|
|
15 |
.recaptcha-select-theme input[type="radio"]:checked + label {
|
16 |
background-color:#0074A2;
|
17 |
color:#fff;
|
|
|
|
|
18 |
box-shadow: rgba(0,0,0,.3) 0 0 15px 5px;
|
19 |
}
|
20 |
.recaptcha-select-theme .title {
|
@@ -40,10 +44,68 @@
|
|
40 |
border-radius:10px;
|
41 |
border:5px dashed #444;
|
42 |
}
|
43 |
-
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
display:none;
|
46 |
}
|
47 |
.warning {
|
48 |
color:red;
|
49 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
}
|
4 |
.recaptcha-select-theme label {
|
5 |
display:inline-block;
|
6 |
+
margin:30px;
|
7 |
+
padding:0px;
|
8 |
background-color:transparent;
|
9 |
border-radius:10px;
|
10 |
max-width:200px;
|
11 |
+
-webkit-transition: all 0.125s ease-in-out;
|
12 |
+
transition: all 0.125s ease-in-out;
|
13 |
}
|
14 |
.recaptcha-select-theme input[type="radio"] {
|
15 |
display:none;
|
17 |
.recaptcha-select-theme input[type="radio"]:checked + label {
|
18 |
background-color:#0074A2;
|
19 |
color:#fff;
|
20 |
+
margin:15px;
|
21 |
+
padding:15px;
|
22 |
box-shadow: rgba(0,0,0,.3) 0 0 15px 5px;
|
23 |
}
|
24 |
.recaptcha-select-theme .title {
|
44 |
border-radius:10px;
|
45 |
border:5px dashed #444;
|
46 |
}
|
47 |
+
|
48 |
+
|
49 |
+
|
50 |
+
.recaptcha-onoff {
|
51 |
+
}
|
52 |
+
.recaptcha-onoff input[type="checkbox"] {
|
53 |
+
display:none;
|
54 |
+
}
|
55 |
+
.recaptcha-onoff label {
|
56 |
+
display:block;
|
57 |
+
width:250px;
|
58 |
+
color:#999;
|
59 |
+
border-radius:7px;
|
60 |
+
border:2px solid #bbb;
|
61 |
+
float:left;
|
62 |
+
margin:0.5em 1em;
|
63 |
+
-webkit-transition: all 0.125s ease-in-out;
|
64 |
+
transition: all 0.125s ease-in-out;
|
65 |
+
}
|
66 |
+
.recaptcha-onoff label .title {
|
67 |
+
font-weight:bold;
|
68 |
+
display:block;
|
69 |
+
padding:0.5em 0.5em 0.5em 2.5em;
|
70 |
+
}
|
71 |
+
.recaptcha-onoff label .dashicons-lock {
|
72 |
+
position:absolute;
|
73 |
+
font-size:1.5em;
|
74 |
+
float:left;
|
75 |
+
padding:6px;
|
76 |
+
color:#bbb;
|
77 |
+
-webkit-transition: all 0.25s cubic-bezier(0, 1.8, 1, 1.8);
|
78 |
+
transition: all 0.25s cubic-bezier(0, 1.8, 1, 1.8);
|
79 |
+
}
|
80 |
+
.recaptcha-onoff input[type="checkbox"]:checked + label {
|
81 |
+
background-color:#fff;
|
82 |
+
border-color:#0074A2;
|
83 |
+
border-style:solid;
|
84 |
+
color:#333;
|
85 |
+
box-shadow: rgba(0,0,0,.5) 0 0 5px 0px;
|
86 |
+
}
|
87 |
+
.recaptcha-onoff input[type="checkbox"]:checked + label .dashicons-lock {
|
88 |
+
color:#0074A2;
|
89 |
+
font-size:2em;
|
90 |
+
padding-left:4px;
|
91 |
+
padding-right:8px;
|
92 |
+
padding-top:2px;
|
93 |
+
}
|
94 |
+
|
95 |
+
.flavor-grecaptcha .flavor-recaptcha,
|
96 |
+
.flavor-recaptcha .flavor-grecaptcha {
|
97 |
display:none;
|
98 |
}
|
99 |
.warning {
|
100 |
color:red;
|
101 |
+
}
|
102 |
+
|
103 |
+
|
104 |
+
|
105 |
+
|
106 |
+
|
107 |
+
.recaptcha-explain .loading .spinner {
|
108 |
+
display:inline-block;
|
109 |
+
float:none;
|
110 |
+
vertical-align:middle;
|
111 |
+
}
|
inc/class-wp_recaptcha_captcha.php
CHANGED
@@ -24,6 +24,28 @@ abstract class WP_reCaptcha_Captcha {
|
|
24 |
return $this->supported_languages;
|
25 |
}
|
26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
/**
|
28 |
* Get last result of recaptcha check
|
29 |
* @return string recaptcha html
|
24 |
return $this->supported_languages;
|
25 |
}
|
26 |
|
27 |
+
/**
|
28 |
+
* Get recaptcha language code that matches input language code
|
29 |
+
*
|
30 |
+
* @param $lang string language code
|
31 |
+
* @return string recaptcha language code if supported by current flavor, empty string otherwise
|
32 |
+
*/
|
33 |
+
public function get_language( $lang ) {
|
34 |
+
$lang = str_replace( '_' , '-' , $lang );
|
35 |
+
|
36 |
+
// direct hit: return it.
|
37 |
+
if ( isset($this->supported_languages[$lang]) )
|
38 |
+
return $lang;
|
39 |
+
|
40 |
+
// remove countrycode, try again
|
41 |
+
$lang = preg_replace('/-(.*)$/','',$lang);
|
42 |
+
if ( isset($this->supported_languages[$lang]) )
|
43 |
+
return $lang;
|
44 |
+
|
45 |
+
// lang does not exist.
|
46 |
+
return '';
|
47 |
+
}
|
48 |
+
|
49 |
/**
|
50 |
* Get last result of recaptcha check
|
51 |
* @return string recaptcha html
|
inc/class-wp_recaptcha_contactform7.php
CHANGED
@@ -34,9 +34,18 @@ class WP_reCaptcha_ContactForm7 {
|
|
34 |
add_action( 'admin_init', array( &$this , 'add_tag_generator_recaptcha' ), 45 );
|
35 |
add_filter( 'wpcf7_validate_recaptcha', array( &$this , 'recaptcha_validation_filter' ) , 10, 2 );
|
36 |
add_filter( 'wpcf7_validate_recaptcha*', array( &$this , 'recaptcha_validation_filter' ) , 10, 2 );
|
|
|
37 |
}
|
38 |
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
function add_shortcode_recaptcha() {
|
41 |
wpcf7_add_shortcode(
|
42 |
array( 'recaptcha','recaptcha*'),
|
@@ -92,6 +101,7 @@ class WP_reCaptcha_ContactForm7 {
|
|
92 |
<tr><td>
|
93 |
<?php echo esc_html( __( 'Name', 'contact-form-7' ) ); ?><br />
|
94 |
<input type="text" name="name" class="tg-name oneline" />
|
|
|
95 |
</td><td><?php
|
96 |
if ( 'grecaptcha' === WP_reCaptcha::instance()->get_option('recaptcha_flavor') ) {
|
97 |
$themes = WP_reCaptcha::instance()->captcha_instance()->get_supported_themes();
|
@@ -109,6 +119,9 @@ class WP_reCaptcha_ContactForm7 {
|
|
109 |
$(document).on('change','[name="recaptcha-theme-ui"]',function(){
|
110 |
$(this).next('[name="theme"]').val( $(this).val() ).trigger('change');
|
111 |
});
|
|
|
|
|
|
|
112 |
|
113 |
})(jQuery)
|
114 |
</script><?php
|
@@ -134,7 +147,10 @@ class WP_reCaptcha_ContactForm7 {
|
|
134 |
$name = $tag->name;
|
135 |
|
136 |
if ( ! WP_reCaptcha::instance()->recaptcha_check() ) {
|
137 |
-
$message =
|
|
|
|
|
|
|
138 |
if ( method_exists($result, 'invalidate' ) ) { // since CF7 4.1
|
139 |
$result->invalidate( $tag , $message );
|
140 |
} else {
|
34 |
add_action( 'admin_init', array( &$this , 'add_tag_generator_recaptcha' ), 45 );
|
35 |
add_filter( 'wpcf7_validate_recaptcha', array( &$this , 'recaptcha_validation_filter' ) , 10, 2 );
|
36 |
add_filter( 'wpcf7_validate_recaptcha*', array( &$this , 'recaptcha_validation_filter' ) , 10, 2 );
|
37 |
+
add_filter( 'wpcf7_messages' , array( &$this , 'add_error_message' ) );
|
38 |
}
|
39 |
|
40 |
+
|
41 |
+
function add_error_message( $messages ) {
|
42 |
+
$messages['wp_recaptcha_invalid'] = array(
|
43 |
+
'description' => __( "Google reCaptcha does not validate.", 'wp-recaptcha-integration' ),
|
44 |
+
'default' => __("The Captcha didn’t verify.",'wp-recaptcha-integration')
|
45 |
+
);
|
46 |
+
return $messages;
|
47 |
+
}
|
48 |
+
|
49 |
function add_shortcode_recaptcha() {
|
50 |
wpcf7_add_shortcode(
|
51 |
array( 'recaptcha','recaptcha*'),
|
101 |
<tr><td>
|
102 |
<?php echo esc_html( __( 'Name', 'contact-form-7' ) ); ?><br />
|
103 |
<input type="text" name="name" class="tg-name oneline" />
|
104 |
+
<?php echo esc_html( __( 'Error message', 'wp-recaptcha-integration' ) ); ?><br />
|
105 |
</td><td><?php
|
106 |
if ( 'grecaptcha' === WP_reCaptcha::instance()->get_option('recaptcha_flavor') ) {
|
107 |
$themes = WP_reCaptcha::instance()->captcha_instance()->get_supported_themes();
|
119 |
$(document).on('change','[name="recaptcha-theme-ui"]',function(){
|
120 |
$(this).next('[name="theme"]').val( $(this).val() ).trigger('change');
|
121 |
});
|
122 |
+
$(document).on('change','[name="recaptcha-message-ui"]',function(){
|
123 |
+
$(this).next('[name="message"]').val( $(this).val() ).trigger('change');
|
124 |
+
});
|
125 |
|
126 |
})(jQuery)
|
127 |
</script><?php
|
147 |
$name = $tag->name;
|
148 |
|
149 |
if ( ! WP_reCaptcha::instance()->recaptcha_check() ) {
|
150 |
+
$message = wpcf7_get_message( 'wp_recaptcha_invalid' );
|
151 |
+
if ( ! $message )
|
152 |
+
$message = __("The Captcha didn’t verify.",'wp-recaptcha-integration');
|
153 |
+
|
154 |
if ( method_exists($result, 'invalidate' ) ) { // since CF7 4.1
|
155 |
$result->invalidate( $tag , $message );
|
156 |
} else {
|
inc/class-wp_recaptcha_ninjaforms.php
CHANGED
@@ -27,10 +27,27 @@ class WP_reCaptcha_NinjaForms {
|
|
27 |
* Prevent from creating more than one instance
|
28 |
*/
|
29 |
private function __construct() {
|
30 |
-
add_action('init', array(&$this,'register_field_recaptcha'));
|
31 |
-
add_action('
|
32 |
-
|
|
|
|
|
33 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
function register_field_recaptcha(){
|
35 |
$args = array(
|
36 |
'name' => __( 'reCAPTCHA', 'wp-recaptcha-integration' ),
|
@@ -131,14 +148,17 @@ class WP_reCaptcha_NinjaForms {
|
|
131 |
|
132 |
function field_recaptcha_pre_process( $field_id, $user_value ){
|
133 |
global $ninja_forms_processing;
|
134 |
-
$
|
|
|
|
|
|
|
|
|
135 |
|
136 |
$field_row = ninja_forms_get_field_by_id($field_id);
|
137 |
$field_data = $field_row['data'];
|
138 |
$form_row = ninja_forms_get_form_by_field_id($field_id);
|
139 |
$form_id = $form_row['id'];
|
140 |
|
141 |
-
|
142 |
$require_recaptcha = WP_reCaptcha::instance()->is_required();
|
143 |
|
144 |
if ( $ninja_forms_processing->get_action() != 'save' && $ninja_forms_processing->get_action() != 'mp_save' && $require_recaptcha && ! WP_reCaptcha::instance()->recaptcha_check() ){
|
27 |
* Prevent from creating more than one instance
|
28 |
*/
|
29 |
private function __construct() {
|
30 |
+
add_action( 'init', array(&$this,'register_field_recaptcha'));
|
31 |
+
add_action( 'init' , array( &$this , 'late_init' ) , 99 );
|
32 |
+
add_action( 'wp_footer' , array(&$this,'recaptcha_script'),9999 );
|
33 |
+
add_filter( 'ninja_forms_field' , array(&$this,'recaptcha_field_data'), 10, 2 );
|
34 |
+
add_filter( 'ninja_forms_settings' , array( &$this , 'nf_settings' ) );
|
35 |
}
|
36 |
+
function nf_settings( $settings ) {
|
37 |
+
if ( ! isset($settings['wp_recaptcha_invalid']) )
|
38 |
+
$settings['wp_recaptcha_invalid'] = __("The Captcha didn’t verify.",'wp-recaptcha-integration');
|
39 |
+
return $settings;
|
40 |
+
}
|
41 |
+
function late_init() {
|
42 |
+
global $ninja_forms_tabs_metaboxes;
|
43 |
+
|
44 |
+
$ninja_forms_tabs_metaboxes['ninja-forms-settings']['label_settings']['label_labels']['settings'][] = array(
|
45 |
+
'name' => 'wp_recaptcha_invalid',
|
46 |
+
'type' => 'text',
|
47 |
+
'label' => __( "Google reCaptcha does not validate.", 'wp-recaptcha-integration' ),
|
48 |
+
);
|
49 |
+
}
|
50 |
+
|
51 |
function register_field_recaptcha(){
|
52 |
$args = array(
|
53 |
'name' => __( 'reCAPTCHA', 'wp-recaptcha-integration' ),
|
148 |
|
149 |
function field_recaptcha_pre_process( $field_id, $user_value ){
|
150 |
global $ninja_forms_processing;
|
151 |
+
$plugin_settings = nf_get_settings();
|
152 |
+
|
153 |
+
$recaptcha_error = __("The Captcha didn’t verify.",'wp-recaptcha-integration');
|
154 |
+
if ( isset( $plugin_settings['wp_recaptcha_invalid'] ) )
|
155 |
+
$recaptcha_error = $plugin_settings['wp_recaptcha_invalid'];
|
156 |
|
157 |
$field_row = ninja_forms_get_field_by_id($field_id);
|
158 |
$field_data = $field_row['data'];
|
159 |
$form_row = ninja_forms_get_form_by_field_id($field_id);
|
160 |
$form_id = $form_row['id'];
|
161 |
|
|
|
162 |
$require_recaptcha = WP_reCaptcha::instance()->is_required();
|
163 |
|
164 |
if ( $ninja_forms_processing->get_action() != 'save' && $ninja_forms_processing->get_action() != 'mp_save' && $require_recaptcha && ! WP_reCaptcha::instance()->recaptcha_check() ){
|
inc/class-wp_recaptcha_nocaptcha.php
CHANGED
@@ -92,6 +92,28 @@ class WP_reCaptcha_NoCaptcha extends WP_reCaptcha_Captcha {
|
|
92 |
),
|
93 |
);
|
94 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
|
96 |
public function print_head() {
|
97 |
?><style type="text/css">
|
@@ -103,10 +125,11 @@ class WP_reCaptcha_NoCaptcha extends WP_reCaptcha_Captcha {
|
|
103 |
|
104 |
|
105 |
public function print_foot() {
|
|
|
106 |
$language_param = '';
|
107 |
if ( $language_code = apply_filters( 'wp_recaptcha_language' , WP_reCaptcha::instance()->get_option( 'recaptcha_language' ) ) )
|
108 |
$language_param = "&hl=$language_code";
|
109 |
-
|
110 |
?><script type="text/javascript">
|
111 |
var recaptcha_widgets={};
|
112 |
function recaptchaLoadCallback(){
|
@@ -115,18 +138,20 @@ class WP_reCaptcha_NoCaptcha extends WP_reCaptcha_Captcha {
|
|
115 |
} catch(err){
|
116 |
return;
|
117 |
}
|
118 |
-
var e=document.getElementsByClassName('g-recaptcha'),form_submits;
|
119 |
|
120 |
for (var i=0;i<e.length;i++) {
|
121 |
(function(el){
|
122 |
<?php if ( WP_reCaptcha::instance()->get_option( 'recaptcha_disable_submit' ) ) { ?>
|
123 |
var form_submits = get_form_submits(el).setEnabled(false),wid;
|
|
|
|
|
124 |
<?php } ?>
|
125 |
// check if captcha element is unrendered
|
|
|
126 |
if ( ! el.childNodes.length) {
|
127 |
-
|
128 |
wid = grecaptcha.render(el,{
|
129 |
-
'sitekey':'<?php echo
|
130 |
'theme':el.getAttribute('data-theme') || '<?php echo WP_reCaptcha::instance()->get_option('recaptcha_theme'); ?>'
|
131 |
<?php if ( WP_reCaptcha::instance()->get_option( 'recaptcha_disable_submit' ) ) { ?>
|
132 |
,
|
@@ -144,7 +169,10 @@ class WP_reCaptcha_NoCaptcha extends WP_reCaptcha_Captcha {
|
|
144 |
|
145 |
// if jquery present re-render jquery/ajax loaded captcha elements
|
146 |
if ( typeof jQuery !== 'undefined' )
|
147 |
-
jQuery(document).ajaxComplete(
|
|
|
|
|
|
|
148 |
|
149 |
</script><?php
|
150 |
?><script src="https://www.google.com/recaptcha/api.js?onload=recaptchaLoadCallback&render=explicit<?php echo $language_param ?>" async defer></script><?php
|
@@ -173,7 +201,7 @@ class WP_reCaptcha_NoCaptcha extends WP_reCaptcha_Captcha {
|
|
173 |
public function check() {
|
174 |
$private_key = WP_reCaptcha::instance()->get_option( 'recaptcha_privatekey' );
|
175 |
$user_response = isset( $_REQUEST['g-recaptcha-response'] ) ? $_REQUEST['g-recaptcha-response'] : false;
|
176 |
-
if ( $user_response ) {
|
177 |
if ( ! $this->_last_result ) {
|
178 |
$remote_ip = $_SERVER['REMOTE_ADDR'];
|
179 |
$url = "https://www.google.com/recaptcha/api/siteverify?secret=$private_key&response=$user_response&remoteip=$remote_ip";
|
92 |
),
|
93 |
);
|
94 |
}
|
95 |
+
/**
|
96 |
+
* Override method
|
97 |
+
* Get recaptcha language code that matches input language code
|
98 |
+
* Sometimes WP uses different locales the the ones supported by nocaptcha.
|
99 |
+
*
|
100 |
+
* @param $lang string language code
|
101 |
+
* @return string recaptcha language code if supported by current flavor, empty string otherwise
|
102 |
+
*/
|
103 |
+
public function get_language( $lang ) {
|
104 |
+
/*
|
105 |
+
Map WP locale to recatcha locale.
|
106 |
+
*/
|
107 |
+
$mapping = array(
|
108 |
+
'es_MX' => 'es-419',
|
109 |
+
'es_PE' => 'es-419',
|
110 |
+
'es_CL' => 'es-419',
|
111 |
+
'he_IL' => 'iw',
|
112 |
+
);
|
113 |
+
if ( isset( $mapping[$lang] ) )
|
114 |
+
$lang = $mapping[$lang];
|
115 |
+
return parent::get_language( $lang );
|
116 |
+
}
|
117 |
|
118 |
public function print_head() {
|
119 |
?><style type="text/css">
|
125 |
|
126 |
|
127 |
public function print_foot() {
|
128 |
+
$sitekey = WP_reCaptcha::instance()->get_option('recaptcha_publickey');
|
129 |
$language_param = '';
|
130 |
if ( $language_code = apply_filters( 'wp_recaptcha_language' , WP_reCaptcha::instance()->get_option( 'recaptcha_language' ) ) )
|
131 |
$language_param = "&hl=$language_code";
|
132 |
+
|
133 |
?><script type="text/javascript">
|
134 |
var recaptcha_widgets={};
|
135 |
function recaptchaLoadCallback(){
|
138 |
} catch(err){
|
139 |
return;
|
140 |
}
|
141 |
+
var e=document.querySelectorAll ? document.querySelectorAll('.g-recaptcha') : document.getElementsByClassName('g-recaptcha'),form_submits;
|
142 |
|
143 |
for (var i=0;i<e.length;i++) {
|
144 |
(function(el){
|
145 |
<?php if ( WP_reCaptcha::instance()->get_option( 'recaptcha_disable_submit' ) ) { ?>
|
146 |
var form_submits = get_form_submits(el).setEnabled(false),wid;
|
147 |
+
<?php } else { ?>
|
148 |
+
var wid;
|
149 |
<?php } ?>
|
150 |
// check if captcha element is unrendered
|
151 |
+
console.log(el);
|
152 |
if ( ! el.childNodes.length) {
|
|
|
153 |
wid = grecaptcha.render(el,{
|
154 |
+
'sitekey':'<?php echo $sitekey ?>',
|
155 |
'theme':el.getAttribute('data-theme') || '<?php echo WP_reCaptcha::instance()->get_option('recaptcha_theme'); ?>'
|
156 |
<?php if ( WP_reCaptcha::instance()->get_option( 'recaptcha_disable_submit' ) ) { ?>
|
157 |
,
|
169 |
|
170 |
// if jquery present re-render jquery/ajax loaded captcha elements
|
171 |
if ( typeof jQuery !== 'undefined' )
|
172 |
+
jQuery(document).ajaxComplete( function(evt,xhr,set){
|
173 |
+
if( xhr.responseText && xhr.responseText.indexOf('<?php echo $sitekey ?>') !== -1)
|
174 |
+
recaptchaLoadCallback();
|
175 |
+
} );
|
176 |
|
177 |
</script><?php
|
178 |
?><script src="https://www.google.com/recaptcha/api.js?onload=recaptchaLoadCallback&render=explicit<?php echo $language_param ?>" async defer></script><?php
|
201 |
public function check() {
|
202 |
$private_key = WP_reCaptcha::instance()->get_option( 'recaptcha_privatekey' );
|
203 |
$user_response = isset( $_REQUEST['g-recaptcha-response'] ) ? $_REQUEST['g-recaptcha-response'] : false;
|
204 |
+
if ( $user_response !== false ) {
|
205 |
if ( ! $this->_last_result ) {
|
206 |
$remote_ip = $_SERVER['REMOTE_ADDR'];
|
207 |
$url = "https://www.google.com/recaptcha/api/siteverify?secret=$private_key&response=$user_response&remoteip=$remote_ip";
|
inc/class-wp_recaptcha_options.php
CHANGED
@@ -121,6 +121,7 @@ class WP_reCaptcha_Options {
|
|
121 |
* @param old old option value
|
122 |
*/
|
123 |
function update_option_recaptcha_apikey( $new , $old ){
|
|
|
124 |
add_filter( 'wp_redirect' , array( &$this , 'remove_new_apikey_url' ) );
|
125 |
return $new;
|
126 |
}
|
@@ -131,6 +132,7 @@ class WP_reCaptcha_Options {
|
|
131 |
* @param value option value
|
132 |
*/
|
133 |
function add_option_recaptcha_apikey( $option , $value ){
|
|
|
134 |
if ( in_array( $option , array('recaptcha_publickey','recaptcha_privatekey') ) )
|
135 |
add_filter( 'wp_redirect' , array( &$this , 'remove_new_apikey_url' ) );
|
136 |
}
|
@@ -160,25 +162,32 @@ class WP_reCaptcha_Options {
|
|
160 |
* admin init hook. Setup settings according.
|
161 |
*/
|
162 |
function admin_init( ) {
|
163 |
-
$has_api_key = WP_reCaptcha::instance()->has_api_key();
|
164 |
if ( ! $has_api_key && current_user_can( 'manage_options' ) ) {
|
165 |
add_action('admin_notices',array( &$this , 'api_key_notice'));
|
166 |
}
|
167 |
|
168 |
$this->enter_api_key = ! $has_api_key || ( isset($_REQUEST['recaptcha-action']) && $_REQUEST['recaptcha-action'] == 'recaptcha-set-api-key');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
if ( $this->enter_api_key ) {
|
170 |
// no API Key. Let the user enter it.
|
171 |
register_setting( 'recaptcha_options', 'recaptcha_publickey' , 'trim' );
|
172 |
register_setting( 'recaptcha_options', 'recaptcha_privatekey' , 'trim' );
|
173 |
-
add_settings_field('recaptcha_publickey', __('
|
174 |
-
add_settings_field('recaptcha_privatekey', __('
|
175 |
-
add_settings_section('recaptcha_apikey', __( 'Connecting' , 'wp-recaptcha-integration' ), array(&$this,'explain_apikey'), 'recaptcha');
|
176 |
if ( $has_api_key ) {
|
177 |
add_settings_field('cancel', '' , array(&$this,'cancel_enter_api_key'), 'recaptcha', 'recaptcha_apikey' );
|
178 |
}
|
179 |
} else {
|
180 |
// API Key. Add test tool.
|
181 |
-
|
182 |
add_action('wp_ajax_recaptcha-test-api-key' , array( &$this , 'ajax_test_api_key' ) );
|
183 |
add_action('wp_ajax_recaptcha-test-verification' , array( &$this , 'ajax_test_api_key_verification' ) );
|
184 |
}
|
@@ -191,11 +200,9 @@ class WP_reCaptcha_Options {
|
|
191 |
register_setting( 'recaptcha_options', 'recaptcha_theme' , array( &$this , 'sanitize_theme' ) );
|
192 |
register_setting( 'recaptcha_options', 'recaptcha_disable_submit' , 'intval');
|
193 |
|
194 |
-
add_settings_field('recaptcha_language', __( 'Language Settings' ), array(&$this,'select_language'), 'recaptcha', 'recaptcha_options');
|
195 |
-
|
196 |
|
197 |
add_settings_field('recaptcha_flavor', __('Flavor','wp-recaptcha-integration'),
|
198 |
-
array(&$this,'input_radio'), 'recaptcha', '
|
199 |
array(
|
200 |
'name' => 'recaptcha_flavor',
|
201 |
'items' => array(
|
@@ -209,15 +216,17 @@ class WP_reCaptcha_Options {
|
|
209 |
),
|
210 |
),
|
211 |
) );
|
212 |
-
|
213 |
-
add_settings_field('
|
|
|
|
|
214 |
|
215 |
add_settings_field('recaptcha_disable_submit', __('Disable Submit Button','wp-recaptcha-integration'),
|
216 |
-
array(&$this,'input_checkbox'), 'recaptcha', '
|
217 |
array('name'=>'recaptcha_disable_submit','label'=>__( 'Disable Form Submit Button until no-captcha is entered.' ,'wp-recaptcha-integration' ) )
|
218 |
);
|
219 |
-
|
220 |
}
|
|
|
221 |
if ( ! WP_reCaptcha::is_network_activated() || is_network_admin() ) {
|
222 |
// network options
|
223 |
register_setting( 'recaptcha_options', 'recaptcha_enable_comments' , 'intval');
|
@@ -229,31 +238,32 @@ class WP_reCaptcha_Options {
|
|
229 |
register_setting( 'recaptcha_options', 'recaptcha_enable_wc_order' , 'intval');
|
230 |
|
231 |
register_setting( 'recaptcha_options', 'recaptcha_disable_for_known_users' , 'intval');
|
232 |
-
|
|
|
233 |
add_settings_field('recaptcha_enable_comments', __('Protect Comments','wp-recaptcha-integration'),
|
234 |
-
array(&$this,'
|
235 |
array('name'=>'recaptcha_enable_comments','label'=>__( 'Protect comment forms with recaptcha.' ,'wp-recaptcha-integration' ) )
|
236 |
);
|
237 |
|
238 |
add_settings_field('recaptcha_enable_signup', __('Protect Signup','wp-recaptcha-integration'),
|
239 |
-
array(&$this,'
|
240 |
array('name'=>'recaptcha_enable_signup','label'=>__( 'Protect signup form with recaptcha.','wp-recaptcha-integration' ) )
|
241 |
);
|
242 |
|
243 |
add_settings_field('recaptcha_enable_login', __('Protect Login','wp-recaptcha-integration'),
|
244 |
-
array(&$this,'
|
245 |
array('name'=>'recaptcha_enable_login','label'=>__( 'Protect Login form with recaptcha.','wp-recaptcha-integration' ))
|
246 |
);
|
247 |
|
248 |
add_settings_field('recaptcha_enable_lostpw', __('Protect Lost Password','wp-recaptcha-integration'),
|
249 |
-
array(&$this,'
|
250 |
array('name'=>'recaptcha_enable_lostpw','label'=>__( 'Protect Lost Password form with recaptcha.','wp-recaptcha-integration' ))
|
251 |
);
|
252 |
// woocommerce integration
|
253 |
if ( function_exists('WC') ) {
|
254 |
$wc_warn = WP_reCaptcha::instance()->get_option('recaptcha_enable_wc_order') && WP_reCaptcha::instance()->get_option('recaptcha_flavor') !== 'grecaptcha';
|
255 |
add_settings_field('recaptcha_enable_wc_order', __('Protect WooCommerce Checkout','wp-recaptcha-integration'),
|
256 |
-
array(&$this,'
|
257 |
array(
|
258 |
'name'=>'recaptcha_enable_wc_order',
|
259 |
'label'=>__( 'Protect wooCommerce Checkout with a recaptcha.','wp-recaptcha-integration' ),
|
@@ -265,12 +275,54 @@ class WP_reCaptcha_Options {
|
|
265 |
add_settings_error('recaptcha',2,__( 'The Old Style recaptcha doesn‘t work together with the WooCommerce checkout form. The Captcha will not be displayed,' ,'wp-recaptcha-integration' ) );
|
266 |
}
|
267 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
add_settings_field('recaptcha_disable_for_known_users', __('Disable for known users','wp-recaptcha-integration'),
|
269 |
-
array(&$this,'input_checkbox'), 'recaptcha', '
|
270 |
array('name'=>'recaptcha_disable_for_known_users','label'=>__( 'Disable reCaptcha verification for logged in users.','wp-recaptcha-integration' ))
|
271 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
}
|
273 |
-
add_settings_section('recaptcha_options', __( 'Features' , 'wp-recaptcha-integration' ), '__return_false', 'recaptcha');
|
274 |
|
275 |
if ( ! WP_reCaptcha::instance()->get_option( 'recaptcha_publickey' ) || ! WP_reCaptcha::instance()->get_option( 'recaptcha_privatekey' ) )
|
276 |
add_settings_error('recaptcha',1,__('Please configure the public and private key. <a href="http://www.google.com/recaptcha/whyrecaptcha">What are you trying to tell me?</a>','wp-recaptcha-integration'),'updated');
|
@@ -286,7 +338,7 @@ class WP_reCaptcha_Options {
|
|
286 |
$info_url = 'https://developers.google.com/recaptcha/intro';
|
287 |
$admin_url = 'https://www.google.com/recaptcha/admin';
|
288 |
printf(
|
289 |
-
__( 'Please register your blog through the <a href="%s">Google reCAPTCHA admin page</a> and enter the public and private key in the fields below. <a href="%s">What is this all about
|
290 |
$admin_url , $info_url
|
291 |
);
|
292 |
?></p><?php
|
@@ -304,15 +356,53 @@ class WP_reCaptcha_Options {
|
|
304 |
$nonce = wp_create_nonce( $action );
|
305 |
$test_url = add_query_arg( array('_wpnonce' => $nonce , 'action' => $action ) , admin_url( 'admin-ajax.php' ) );
|
306 |
|
|
|
|
|
|
|
|
|
307 |
?><p class="submit"><?php
|
308 |
?><a class="button" href="<?php echo $new_url ?>"><?php _e('New API Key' , 'wp-recaptcha-integration') ?></a><?php
|
309 |
-
?><a id="test-api-key" class="button" href="<?php echo $test_url ?>"><?php _e('Test API Key' , 'wp-recaptcha-integration') ?></a><?php
|
310 |
?></p><?php
|
311 |
?></div><?php
|
312 |
}
|
313 |
}
|
314 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
315 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
/**
|
317 |
* Test api key ajax response.
|
318 |
* Returns reCaptcha HTML
|
@@ -320,9 +410,9 @@ class WP_reCaptcha_Options {
|
|
320 |
public function ajax_test_api_key() {
|
321 |
if ( isset( $_REQUEST['_wpnonce'] ) && wp_verify_nonce( $_REQUEST['_wpnonce'] , $_REQUEST['action'] ) ) {
|
322 |
header('Content-Type: text/html');
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
$action = 'recaptcha-test-verification';
|
327 |
$nonce = wp_create_nonce( $action );
|
328 |
?><input type="hidden" name="<?php echo $action ?>-nonce" value="<?php echo $nonce ?>" /><?php
|
@@ -337,14 +427,14 @@ class WP_reCaptcha_Options {
|
|
337 |
public function ajax_test_api_key_verification() {
|
338 |
if ( isset( $_REQUEST['_wpnonce'] ) && wp_verify_nonce( $_REQUEST['_wpnonce'] , $_REQUEST['action'] ) ) {
|
339 |
header('Content-Type: text/html');
|
340 |
-
if ( !
|
341 |
$errs = array(
|
342 |
'missing-input-secret' => __('The secret Key is missing.','wp-recaptcha-integration'),
|
343 |
'invalid-input-secret' => __('The secret Key is invalid. You better check your domain configuration and enter it again.','wp-recaptcha-integration'),
|
344 |
'missing-input-response' => __('The user response was missing','wp-recaptcha-integration'),
|
345 |
'invalid-input-response' => __('Invalid user response','wp-recaptcha-integration'),
|
346 |
);
|
347 |
-
$result =
|
348 |
if ( isset( $result['error-codes'] ) ) {
|
349 |
foreach ( $result['error-codes'] as $err ) {
|
350 |
?><div class="error"><p><?php echo $errs[$err]; ?></p></div><?php
|
@@ -362,7 +452,7 @@ class WP_reCaptcha_Options {
|
|
362 |
* checks the verification process and shows an error on fail.
|
363 |
*/
|
364 |
public function cancel_enter_api_key() {
|
365 |
-
$url = $this->remove_new_apikey_url( );
|
366 |
?><a class="button" href="<?php echo $url ?>"><?php _e( 'Cancel' ) ?></a><?php
|
367 |
}
|
368 |
|
@@ -416,11 +506,46 @@ class WP_reCaptcha_Options {
|
|
416 |
?><input id="<?php echo $name ?>" type="checkbox" name="<?php echo $name ?>" value="1" <?php checked($value,1,true) ?> />
|
417 |
<?php
|
418 |
echo $label;
|
|
|
|
|
|
|
419 |
?></label><?php
|
420 |
-
if ( $description ) {
|
421 |
-
?><p class="description"><?php echo $description ?></p><?php
|
422 |
-
}
|
423 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
424 |
/**
|
425 |
* A Text field.
|
426 |
* Used for api key input.
|
@@ -441,18 +566,23 @@ class WP_reCaptcha_Options {
|
|
441 |
$option_name = 'recaptcha_language';
|
442 |
$option_value = WP_reCaptcha::instance()->get_option( $option_name );
|
443 |
|
444 |
-
$
|
445 |
-
|
|
|
|
|
|
|
446 |
?><div class="recaptcha-select-language flavor-<?php echo $option_flavor ?>"><?php
|
447 |
-
|
448 |
-
?><
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
|
|
|
|
456 |
?></div><?php
|
457 |
}
|
458 |
/**
|
@@ -461,37 +591,6 @@ class WP_reCaptcha_Options {
|
|
461 |
public function select_theme() {
|
462 |
$option_name = 'recaptcha_theme';
|
463 |
|
464 |
-
// $themes = array(
|
465 |
-
// 'light' => array(
|
466 |
-
// 'label' => __('Light','wp-recaptcha-integration') ,
|
467 |
-
// 'flavor' => 'grecaptcha',
|
468 |
-
// ),
|
469 |
-
// 'dark' => array(
|
470 |
-
// 'label' => __('Dark','wp-recaptcha-integration') ,
|
471 |
-
// 'flavor' => 'grecaptcha',
|
472 |
-
// ),
|
473 |
-
//
|
474 |
-
// 'red' => array(
|
475 |
-
// 'label' => __('Red','wp-recaptcha-integration') ,
|
476 |
-
// 'flavor' => 'recaptcha',
|
477 |
-
// ),
|
478 |
-
// 'white' => array(
|
479 |
-
// 'label' => __('White','wp-recaptcha-integration') ,
|
480 |
-
// 'flavor' => 'recaptcha',
|
481 |
-
// ),
|
482 |
-
// 'blackglass' => array(
|
483 |
-
// 'label' => __('Black Glass','wp-recaptcha-integration') ,
|
484 |
-
// 'flavor' => 'recaptcha',
|
485 |
-
// ),
|
486 |
-
// 'clean' => array(
|
487 |
-
// 'label' => __('Clean','wp-recaptcha-integration') ,
|
488 |
-
// 'flavor' => 'recaptcha',
|
489 |
-
// ),
|
490 |
-
// 'custom' => array(
|
491 |
-
// 'label' => __('Custom','wp-recaptcha-integration') ,
|
492 |
-
// 'flavor' => 'recaptcha',
|
493 |
-
// ),
|
494 |
-
// );
|
495 |
$grecaptcha_themes = WP_reCaptcha_NoCaptcha::instance()->get_supported_themes();
|
496 |
$grecaptcha_themes = array_map( array( $this , '_map_grecaptcha' ) , $grecaptcha_themes );
|
497 |
|
@@ -503,7 +602,7 @@ class WP_reCaptcha_Options {
|
|
503 |
$option_theme = WP_reCaptcha::instance()->get_option($option_name);
|
504 |
$option_flavor = WP_reCaptcha::instance()->get_option( 'recaptcha_flavor' );
|
505 |
|
506 |
-
?><div class="recaptcha-select-theme
|
507 |
|
508 |
foreach ( $themes as $value => $theme ) {
|
509 |
extract( $theme ); // label, flavor
|
@@ -545,11 +644,16 @@ class WP_reCaptcha_Options {
|
|
545 |
}
|
546 |
|
547 |
/**
|
548 |
-
* Check
|
549 |
*/
|
550 |
public function sanitize_language( $language ) {
|
|
|
|
|
|
|
|
|
|
|
551 |
if ( $language != 'WPLANG' )
|
552 |
-
$language = WP_reCaptcha::instance()->
|
553 |
return $language;
|
554 |
}
|
555 |
/**
|
@@ -603,7 +707,8 @@ class WP_reCaptcha_Options {
|
|
603 |
* Rendering the options page
|
604 |
*/
|
605 |
public function render_options_page() {
|
606 |
-
|
|
|
607 |
?><h2><?php /*icon*/
|
608 |
_e('Settings');
|
609 |
echo ' › ';
|
@@ -613,7 +718,7 @@ class WP_reCaptcha_Options {
|
|
613 |
?><form action="options.php" method="post"><?php
|
614 |
settings_fields( 'recaptcha_options' );
|
615 |
do_settings_sections( 'recaptcha' );
|
616 |
-
submit_button();
|
617 |
?></form><?php
|
618 |
?></div><?php
|
619 |
}
|
121 |
* @param old old option value
|
122 |
*/
|
123 |
function update_option_recaptcha_apikey( $new , $old ){
|
124 |
+
delete_transient('recaptcha_keys_okay');
|
125 |
add_filter( 'wp_redirect' , array( &$this , 'remove_new_apikey_url' ) );
|
126 |
return $new;
|
127 |
}
|
132 |
* @param value option value
|
133 |
*/
|
134 |
function add_option_recaptcha_apikey( $option , $value ){
|
135 |
+
delete_transient('recaptcha_keys_okay');
|
136 |
if ( in_array( $option , array('recaptcha_publickey','recaptcha_privatekey') ) )
|
137 |
add_filter( 'wp_redirect' , array( &$this , 'remove_new_apikey_url' ) );
|
138 |
}
|
162 |
* admin init hook. Setup settings according.
|
163 |
*/
|
164 |
function admin_init( ) {
|
165 |
+
$has_api_key = WP_reCaptcha::instance()->has_api_key() && WP_reCaptcha::instance()->test_keys();
|
166 |
if ( ! $has_api_key && current_user_can( 'manage_options' ) ) {
|
167 |
add_action('admin_notices',array( &$this , 'api_key_notice'));
|
168 |
}
|
169 |
|
170 |
$this->enter_api_key = ! $has_api_key || ( isset($_REQUEST['recaptcha-action']) && $_REQUEST['recaptcha-action'] == 'recaptcha-set-api-key');
|
171 |
+
|
172 |
+
if ( $this->enter_api_key )
|
173 |
+
add_settings_section( 'recaptcha_apikey' , __( 'Connect' , 'wp-recaptcha-integration' ), array( &$this , 'explain_apikey' ), 'recaptcha');
|
174 |
+
add_settings_section( 'recaptcha_protection' , __( 'Protect' , 'wp-recaptcha-integration' ), array( &$this , 'explain_protection' ), 'recaptcha');
|
175 |
+
add_settings_section( 'recaptcha_styling' , __( 'Style' , 'wp-recaptcha-integration' ), array( &$this , 'explain_styling' ), 'recaptcha');
|
176 |
+
if ( ! $this->enter_api_key )
|
177 |
+
add_settings_section( 'recaptcha_apikey' , __( 'Connect' , 'wp-recaptcha-integration' ), array( &$this , 'explain_apikey' ), 'recaptcha');
|
178 |
+
|
179 |
if ( $this->enter_api_key ) {
|
180 |
// no API Key. Let the user enter it.
|
181 |
register_setting( 'recaptcha_options', 'recaptcha_publickey' , 'trim' );
|
182 |
register_setting( 'recaptcha_options', 'recaptcha_privatekey' , 'trim' );
|
183 |
+
add_settings_field('recaptcha_publickey', __('Site key','wp-recaptcha-integration'), array(&$this,'secret_input_text'), 'recaptcha', 'recaptcha_apikey' , array('name'=>'recaptcha_publickey') );
|
184 |
+
add_settings_field('recaptcha_privatekey', __('Secret key','wp-recaptcha-integration'), array(&$this,'secret_input_text'), 'recaptcha', 'recaptcha_apikey', array('name'=>'recaptcha_privatekey'));
|
|
|
185 |
if ( $has_api_key ) {
|
186 |
add_settings_field('cancel', '' , array(&$this,'cancel_enter_api_key'), 'recaptcha', 'recaptcha_apikey' );
|
187 |
}
|
188 |
} else {
|
189 |
// API Key. Add test tool.
|
190 |
+
add_action('wp_ajax_recaptcha-init-test-api-key' , array( &$this , 'ajax_init_test_api_key' ) );
|
191 |
add_action('wp_ajax_recaptcha-test-api-key' , array( &$this , 'ajax_test_api_key' ) );
|
192 |
add_action('wp_ajax_recaptcha-test-verification' , array( &$this , 'ajax_test_api_key_verification' ) );
|
193 |
}
|
200 |
register_setting( 'recaptcha_options', 'recaptcha_theme' , array( &$this , 'sanitize_theme' ) );
|
201 |
register_setting( 'recaptcha_options', 'recaptcha_disable_submit' , 'intval');
|
202 |
|
|
|
|
|
203 |
|
204 |
add_settings_field('recaptcha_flavor', __('Flavor','wp-recaptcha-integration'),
|
205 |
+
array(&$this,'input_radio'), 'recaptcha', 'recaptcha_styling',
|
206 |
array(
|
207 |
'name' => 'recaptcha_flavor',
|
208 |
'items' => array(
|
216 |
),
|
217 |
),
|
218 |
) );
|
219 |
+
|
220 |
+
add_settings_field('recaptcha_language', __( 'Language Settings' ), array(&$this,'select_language'), 'recaptcha', 'recaptcha_styling');
|
221 |
+
|
222 |
+
add_settings_field('recaptcha_theme', __('Theme','wp-recaptcha-integration'), array(&$this,'select_theme'), 'recaptcha', 'recaptcha_styling');
|
223 |
|
224 |
add_settings_field('recaptcha_disable_submit', __('Disable Submit Button','wp-recaptcha-integration'),
|
225 |
+
array(&$this,'input_checkbox'), 'recaptcha', 'recaptcha_styling' ,
|
226 |
array('name'=>'recaptcha_disable_submit','label'=>__( 'Disable Form Submit Button until no-captcha is entered.' ,'wp-recaptcha-integration' ) )
|
227 |
);
|
|
|
228 |
}
|
229 |
+
|
230 |
if ( ! WP_reCaptcha::is_network_activated() || is_network_admin() ) {
|
231 |
// network options
|
232 |
register_setting( 'recaptcha_options', 'recaptcha_enable_comments' , 'intval');
|
238 |
register_setting( 'recaptcha_options', 'recaptcha_enable_wc_order' , 'intval');
|
239 |
|
240 |
register_setting( 'recaptcha_options', 'recaptcha_disable_for_known_users' , 'intval');
|
241 |
+
|
242 |
+
/*
|
243 |
add_settings_field('recaptcha_enable_comments', __('Protect Comments','wp-recaptcha-integration'),
|
244 |
+
array(&$this,'input_check_onoff'), 'recaptcha', 'recaptcha_protection' ,
|
245 |
array('name'=>'recaptcha_enable_comments','label'=>__( 'Protect comment forms with recaptcha.' ,'wp-recaptcha-integration' ) )
|
246 |
);
|
247 |
|
248 |
add_settings_field('recaptcha_enable_signup', __('Protect Signup','wp-recaptcha-integration'),
|
249 |
+
array(&$this,'input_check_onoff'), 'recaptcha', 'recaptcha_protection',
|
250 |
array('name'=>'recaptcha_enable_signup','label'=>__( 'Protect signup form with recaptcha.','wp-recaptcha-integration' ) )
|
251 |
);
|
252 |
|
253 |
add_settings_field('recaptcha_enable_login', __('Protect Login','wp-recaptcha-integration'),
|
254 |
+
array(&$this,'input_check_onoff'), 'recaptcha', 'recaptcha_protection' ,
|
255 |
array('name'=>'recaptcha_enable_login','label'=>__( 'Protect Login form with recaptcha.','wp-recaptcha-integration' ))
|
256 |
);
|
257 |
|
258 |
add_settings_field('recaptcha_enable_lostpw', __('Protect Lost Password','wp-recaptcha-integration'),
|
259 |
+
array(&$this,'input_check_onoff'), 'recaptcha', 'recaptcha_protection' ,
|
260 |
array('name'=>'recaptcha_enable_lostpw','label'=>__( 'Protect Lost Password form with recaptcha.','wp-recaptcha-integration' ))
|
261 |
);
|
262 |
// woocommerce integration
|
263 |
if ( function_exists('WC') ) {
|
264 |
$wc_warn = WP_reCaptcha::instance()->get_option('recaptcha_enable_wc_order') && WP_reCaptcha::instance()->get_option('recaptcha_flavor') !== 'grecaptcha';
|
265 |
add_settings_field('recaptcha_enable_wc_order', __('Protect WooCommerce Checkout','wp-recaptcha-integration'),
|
266 |
+
array(&$this,'input_check_onoff'), 'recaptcha', 'recaptcha_protection' ,
|
267 |
array(
|
268 |
'name'=>'recaptcha_enable_wc_order',
|
269 |
'label'=>__( 'Protect wooCommerce Checkout with a recaptcha.','wp-recaptcha-integration' ),
|
275 |
add_settings_error('recaptcha',2,__( 'The Old Style recaptcha doesn‘t work together with the WooCommerce checkout form. The Captcha will not be displayed,' ,'wp-recaptcha-integration' ) );
|
276 |
}
|
277 |
}
|
278 |
+
/*/
|
279 |
+
$protect_settings = array();
|
280 |
+
$protect_settings[] = array(
|
281 |
+
'name' => 'recaptcha_enable_comments',
|
282 |
+
'label' => __('Comment Form','wp-recaptcha-integration'),
|
283 |
+
'class' => '',
|
284 |
+
);
|
285 |
+
$protect_settings[] = array(
|
286 |
+
'name' => 'recaptcha_enable_signup',
|
287 |
+
'label' => __('Signup Form','wp-recaptcha-integration'),
|
288 |
+
'class' => '',
|
289 |
+
);
|
290 |
+
$protect_settings[] = array(
|
291 |
+
'name' => 'recaptcha_enable_login',
|
292 |
+
'label' => __('Login Form','wp-recaptcha-integration'),
|
293 |
+
'class' => '',
|
294 |
+
);
|
295 |
+
$protect_settings[] = array(
|
296 |
+
'name' => 'recaptcha_enable_lostpw',
|
297 |
+
'label' => __('Lost Password Form','wp-recaptcha-integration'),
|
298 |
+
'class' => '',
|
299 |
+
);
|
300 |
+
if ( function_exists('WC') ) {
|
301 |
+
$wc_warn = WP_reCaptcha::instance()->get_option('recaptcha_enable_wc_order') && WP_reCaptcha::instance()->get_option('recaptcha_flavor') !== 'grecaptcha';
|
302 |
+
$protect_settings[] = array(
|
303 |
+
'name'=>'recaptcha_enable_wc_order',
|
304 |
+
'label'=>__( 'woocommerce Checkout','wp-recaptcha-integration' ),
|
305 |
+
'class' => 'flavor-grecaptcha',
|
306 |
+
);
|
307 |
+
}
|
308 |
+
add_settings_field('recaptcha_protection', __('Forms to protect','wp-recaptcha-integration'),
|
309 |
+
array(&$this,'input_protect'), 'recaptcha', 'recaptcha_protection' ,
|
310 |
+
$protect_settings
|
311 |
+
);
|
312 |
+
|
313 |
add_settings_field('recaptcha_disable_for_known_users', __('Disable for known users','wp-recaptcha-integration'),
|
314 |
+
array(&$this,'input_checkbox'), 'recaptcha', 'recaptcha_protection' ,
|
315 |
array('name'=>'recaptcha_disable_for_known_users','label'=>__( 'Disable reCaptcha verification for logged in users.','wp-recaptcha-integration' ))
|
316 |
);
|
317 |
+
add_settings_field('recaptcha_lockout', __('Prevent lockout','wp-recaptcha-integration'),
|
318 |
+
array(&$this,'input_checkbox'), 'recaptcha', 'recaptcha_protection' ,
|
319 |
+
array(
|
320 |
+
'name'=>'recaptcha_lockout',
|
321 |
+
'label'=>__( 'Allow administrator to log in if API keys do not work.','wp-recaptcha-integration' ),
|
322 |
+
'description' => __( 'When the captcha verification fails, and the private or public API key does not work the plugin will let you in anyway. Please note that with this option checked plus a broken keypair your site will be open to brute force attacks, that try to guess an administrator password.','wp-recaptcha-integration' ),
|
323 |
+
)
|
324 |
+
);
|
325 |
}
|
|
|
326 |
|
327 |
if ( ! WP_reCaptcha::instance()->get_option( 'recaptcha_publickey' ) || ! WP_reCaptcha::instance()->get_option( 'recaptcha_privatekey' ) )
|
328 |
add_settings_error('recaptcha',1,__('Please configure the public and private key. <a href="http://www.google.com/recaptcha/whyrecaptcha">What are you trying to tell me?</a>','wp-recaptcha-integration'),'updated');
|
338 |
$info_url = 'https://developers.google.com/recaptcha/intro';
|
339 |
$admin_url = 'https://www.google.com/recaptcha/admin';
|
340 |
printf(
|
341 |
+
__( 'Please register your blog through the <a href="%s">Google reCAPTCHA admin page</a> and enter the public and private key in the fields below. <a href="%s">What is this all about?</a>', 'wp-recaptcha-integration' ) ,
|
342 |
$admin_url , $info_url
|
343 |
);
|
344 |
?></p><?php
|
356 |
$nonce = wp_create_nonce( $action );
|
357 |
$test_url = add_query_arg( array('_wpnonce' => $nonce , 'action' => $action ) , admin_url( 'admin-ajax.php' ) );
|
358 |
|
359 |
+
$action = 'recaptcha-init-test-api-key';
|
360 |
+
$nonce = wp_create_nonce( $action );
|
361 |
+
$init_test_url = add_query_arg( array('_wpnonce' => $nonce , 'action' => $action ) , admin_url( 'admin-ajax.php' ) );
|
362 |
+
|
363 |
?><p class="submit"><?php
|
364 |
?><a class="button" href="<?php echo $new_url ?>"><?php _e('New API Key' , 'wp-recaptcha-integration') ?></a><?php
|
365 |
+
?><a id="test-api-key" class="button" data-init-href="<?php echo $init_test_url ?>" href="<?php echo $test_url ?>"><?php _e('Test API Key' , 'wp-recaptcha-integration') ?></a><?php
|
366 |
?></p><?php
|
367 |
?></div><?php
|
368 |
}
|
369 |
}
|
370 |
|
371 |
+
/**
|
372 |
+
* Intro text for the Protection setting
|
373 |
+
*/
|
374 |
+
public function explain_protection() {
|
375 |
+
?><div class="recaptcha-explain"><?php
|
376 |
+
?><p class="description"><?php
|
377 |
+
_e( 'Select which forms you want to protect with a captcha.' , 'wp-recaptcha-integration' );
|
378 |
+
?></p><?php
|
379 |
+
?></div><?php
|
380 |
+
}
|
381 |
+
/**
|
382 |
+
* Intro text for the Styling setting
|
383 |
+
*/
|
384 |
+
public function explain_styling() {
|
385 |
+
?><div class="recaptcha-explain"><?php
|
386 |
+
?><p class="description"><?php
|
387 |
+
_e( 'Choose a flavor and theme for your Captcha. Please note that with the old style reCaptcha you cannot have more than one captcha per page.' , 'wp-recaptcha-integration' );
|
388 |
+
?></p><?php
|
389 |
+
?></div><?php
|
390 |
+
}
|
391 |
+
|
392 |
|
393 |
+
/**
|
394 |
+
* Test api key ajax response.
|
395 |
+
* Returns reCaptcha HTML
|
396 |
+
*/
|
397 |
+
public function ajax_init_test_api_key() {
|
398 |
+
if ( isset( $_REQUEST['_wpnonce'] ) && wp_verify_nonce( $_REQUEST['_wpnonce'] , $_REQUEST['action'] ) ) {
|
399 |
+
header('Content-Type: text/html');
|
400 |
+
add_filter('option_recaptcha_disable_submit','__return_false');
|
401 |
+
WP_reCaptcha_noCaptcha::instance()->print_head( 'grecaptcha' );
|
402 |
+
WP_reCaptcha_noCaptcha::instance()->print_foot( 'grecaptcha' );
|
403 |
+
}
|
404 |
+
exit(0);
|
405 |
+
}
|
406 |
/**
|
407 |
* Test api key ajax response.
|
408 |
* Returns reCaptcha HTML
|
410 |
public function ajax_test_api_key() {
|
411 |
if ( isset( $_REQUEST['_wpnonce'] ) && wp_verify_nonce( $_REQUEST['_wpnonce'] , $_REQUEST['action'] ) ) {
|
412 |
header('Content-Type: text/html');
|
413 |
+
// WP_reCaptcha::instance()->recaptcha_head( 'grecaptcha' );
|
414 |
+
// WP_reCaptcha::instance()->recaptcha_foot( 'grecaptcha' );
|
415 |
+
echo WP_reCaptcha_noCaptcha::instance()->get_html( 'grecaptcha' );
|
416 |
$action = 'recaptcha-test-verification';
|
417 |
$nonce = wp_create_nonce( $action );
|
418 |
?><input type="hidden" name="<?php echo $action ?>-nonce" value="<?php echo $nonce ?>" /><?php
|
427 |
public function ajax_test_api_key_verification() {
|
428 |
if ( isset( $_REQUEST['_wpnonce'] ) && wp_verify_nonce( $_REQUEST['_wpnonce'] , $_REQUEST['action'] ) ) {
|
429 |
header('Content-Type: text/html');
|
430 |
+
if ( ! WP_reCaptcha_noCaptcha::instance()->check( 'grecaptcha' ) ) {
|
431 |
$errs = array(
|
432 |
'missing-input-secret' => __('The secret Key is missing.','wp-recaptcha-integration'),
|
433 |
'invalid-input-secret' => __('The secret Key is invalid. You better check your domain configuration and enter it again.','wp-recaptcha-integration'),
|
434 |
'missing-input-response' => __('The user response was missing','wp-recaptcha-integration'),
|
435 |
'invalid-input-response' => __('Invalid user response','wp-recaptcha-integration'),
|
436 |
);
|
437 |
+
$result = (array) WP_reCaptcha_noCaptcha::instance()->get_last_result();
|
438 |
if ( isset( $result['error-codes'] ) ) {
|
439 |
foreach ( $result['error-codes'] as $err ) {
|
440 |
?><div class="error"><p><?php echo $errs[$err]; ?></p></div><?php
|
452 |
* checks the verification process and shows an error on fail.
|
453 |
*/
|
454 |
public function cancel_enter_api_key() {
|
455 |
+
$url = $this->remove_new_apikey_url( add_query_arg(null,null) );
|
456 |
?><a class="button" href="<?php echo $url ?>"><?php _e( 'Cancel' ) ?></a><?php
|
457 |
}
|
458 |
|
506 |
?><input id="<?php echo $name ?>" type="checkbox" name="<?php echo $name ?>" value="1" <?php checked($value,1,true) ?> />
|
507 |
<?php
|
508 |
echo $label;
|
509 |
+
if ( $description ) {
|
510 |
+
?><p class="description"><?php echo $description ?></p><?php
|
511 |
+
}
|
512 |
?></label><?php
|
|
|
|
|
|
|
513 |
}
|
514 |
+
|
515 |
+
/**
|
516 |
+
* On/off switch. Basically A Checkbox
|
517 |
+
*
|
518 |
+
* @param args array(
|
519 |
+
* 'name' => '', // checkbox field name, must match an option name
|
520 |
+
* 'label' => '', // button label
|
521 |
+
* 'description' => '', // button label
|
522 |
+
* 'class' => '', // button label
|
523 |
+
* )
|
524 |
+
*/
|
525 |
+
public function input_check_onoff($args) {
|
526 |
+
$args = wp_parse_args($args,array(
|
527 |
+
'name' => '',
|
528 |
+
'label' => '',
|
529 |
+
'class' => '',
|
530 |
+
));
|
531 |
+
extract($args);
|
532 |
+
$value = WP_reCaptcha::instance()->get_option( $name );
|
533 |
+
|
534 |
+
?><div class="recaptcha-onoff <?php echo $class ?>"><?php
|
535 |
+
?><input type="hidden" name="<?php echo $name ?>" value="0" /><?php
|
536 |
+
?><input id="<?php echo $name ?>" type="checkbox" name="<?php echo $name ?>" value="1" <?php checked($value,1,true) ?> /><?php
|
537 |
+
?><label for="<?php echo $name ?>"><?php
|
538 |
+
?><span class="dashicons dashicons-lock"></span><?php
|
539 |
+
?><span class="title"><?php echo $label ?></span><?php
|
540 |
+
?></label><?php
|
541 |
+
?></div><?php
|
542 |
+
}
|
543 |
+
|
544 |
+
public function input_protect( $switches ) {
|
545 |
+
foreach ( $switches as $switch )
|
546 |
+
$this->input_check_onoff( $switch );
|
547 |
+
}
|
548 |
+
|
549 |
/**
|
550 |
* A Text field.
|
551 |
* Used for api key input.
|
566 |
$option_name = 'recaptcha_language';
|
567 |
$option_value = WP_reCaptcha::instance()->get_option( $option_name );
|
568 |
|
569 |
+
$all_available_langs = array(
|
570 |
+
'recaptcha' => WP_reCaptcha_ReCaptcha::instance()->get_supported_languages(),
|
571 |
+
'grecaptcha' => WP_reCaptcha_NoCaptcha::instance()->get_supported_languages(),
|
572 |
+
);
|
573 |
+
|
574 |
?><div class="recaptcha-select-language flavor-<?php echo $option_flavor ?>"><?php
|
575 |
+
foreach( $all_available_langs as $flavor => $available_langs ) {
|
576 |
+
?><select class="flavor-<?php echo $flavor ?>" name="<?php echo $option_name ?>[<?php echo $flavor ?>]"><?php
|
577 |
+
?><option <?php selected($option_value,'',true); ?> value=""><?php _e( 'Automatic','wp-recaptcha-integration' ); ?></option><?php
|
578 |
+
?><option <?php selected($option_value,'WPLANG',true); ?> value="WPLANG"><?php _e( 'Site Language' ); ?></option><?php
|
579 |
+
?><optgroup label="<?php _e('Other') ?>"><?php
|
580 |
+
foreach ( $available_langs as $lang => $lang_name ) {
|
581 |
+
?><option <?php selected($option_value,$lang,true); ?> value="<?php echo $lang; ?>"><?php _e( $lang_name ); ?></option><?php
|
582 |
+
}
|
583 |
+
?></optgroup><?php
|
584 |
+
?></select><?php
|
585 |
+
}
|
586 |
?></div><?php
|
587 |
}
|
588 |
/**
|
591 |
public function select_theme() {
|
592 |
$option_name = 'recaptcha_theme';
|
593 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
594 |
$grecaptcha_themes = WP_reCaptcha_NoCaptcha::instance()->get_supported_themes();
|
595 |
$grecaptcha_themes = array_map( array( $this , '_map_grecaptcha' ) , $grecaptcha_themes );
|
596 |
|
602 |
$option_theme = WP_reCaptcha::instance()->get_option($option_name);
|
603 |
$option_flavor = WP_reCaptcha::instance()->get_option( 'recaptcha_flavor' );
|
604 |
|
605 |
+
?><div class="recaptcha-select-theme"><?php
|
606 |
|
607 |
foreach ( $themes as $value => $theme ) {
|
608 |
extract( $theme ); // label, flavor
|
644 |
}
|
645 |
|
646 |
/**
|
647 |
+
* Check if language is supported by current recaptcha flavor
|
648 |
*/
|
649 |
public function sanitize_language( $language ) {
|
650 |
+
$flavor = isset($_REQUEST['recaptcha_flavor']) ? $_REQUEST['recaptcha_flavor'] : WP_reCaptcha::instance()->get_option('recaptcha_flavor');
|
651 |
+
|
652 |
+
if ( isset( $language[$flavor] ) )
|
653 |
+
$language = $language[$flavor];
|
654 |
+
|
655 |
if ( $language != 'WPLANG' )
|
656 |
+
$language = WP_reCaptcha::instance()->captcha_instance_by_flavor( $flavor )->get_language( $language );
|
657 |
return $language;
|
658 |
}
|
659 |
/**
|
707 |
* Rendering the options page
|
708 |
*/
|
709 |
public function render_options_page() {
|
710 |
+
$option_flavor = WP_reCaptcha::instance()->get_option( 'recaptcha_flavor' );
|
711 |
+
?><div class="wrap flavor-<?php echo $option_flavor ?>"><?php
|
712 |
?><h2><?php /*icon*/
|
713 |
_e('Settings');
|
714 |
echo ' › ';
|
718 |
?><form action="options.php" method="post"><?php
|
719 |
settings_fields( 'recaptcha_options' );
|
720 |
do_settings_sections( 'recaptcha' );
|
721 |
+
submit_button( null , 'primary' , null, null, array('autocomplete'=>'off'));
|
722 |
?></form><?php
|
723 |
?></div><?php
|
724 |
}
|
inc/class-wp_recaptcha_woocommerce.php
CHANGED
@@ -39,29 +39,45 @@ class WP_reCaptcha_WooCommerce {
|
|
39 |
function init() {
|
40 |
$wp_recaptcha = WP_reCaptcha::instance();
|
41 |
$require_recaptcha = $wp_recaptcha->is_required();
|
42 |
-
|
|
|
|
|
43 |
if ( $require_recaptcha ) {
|
44 |
// WooCommerce support
|
45 |
if ( $wp_recaptcha->get_option('recaptcha_flavor') == 'grecaptcha' && function_exists( 'wc_add_notice' ) ) {
|
46 |
-
if ( $
|
47 |
add_action('woocommerce_review_order_before_submit' , array($wp_recaptcha,'print_recaptcha_html'),10,0);
|
48 |
add_action('woocommerce_checkout_process', array( &$this , 'recaptcha_check' ) );
|
|
|
|
|
49 |
}
|
50 |
-
if ( $
|
51 |
add_action('woocommerce_login_form' , array($wp_recaptcha,'print_recaptcha_html'),10,0);
|
52 |
add_filter('woocommerce_process_login_errors', array( &$this , 'login_errors' ) , 10 , 3 );
|
53 |
|
54 |
}
|
55 |
-
if ( $
|
56 |
// displaying the captcha at hook 'registration_form' already done by core plugin
|
57 |
add_filter('woocommerce_registration_errors', array( &$this , 'login_errors' ) , 10 , 3 );
|
|
|
|
|
58 |
}
|
|
|
59 |
/*
|
60 |
LOSTPW: Not possible yet. Needs https://github.com/woothemes/woocommerce/pull/7029 being applied.
|
61 |
*/
|
62 |
}
|
63 |
}
|
64 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
/**
|
66 |
* WooCommerce recaptcha Check
|
67 |
* hooks into action `woocommerce_checkout_process`
|
@@ -80,6 +96,16 @@ class WP_reCaptcha_WooCommerce {
|
|
80 |
$validation_error->add( 'captcha_error' , __("<strong>Error:</strong> the Captcha didn’t verify.",'wp-recaptcha-integration') );
|
81 |
return $validation_error;
|
82 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
}
|
84 |
|
85 |
|
39 |
function init() {
|
40 |
$wp_recaptcha = WP_reCaptcha::instance();
|
41 |
$require_recaptcha = $wp_recaptcha->is_required();
|
42 |
+
$enable_order = $wp_recaptcha->get_option('recaptcha_enable_wc_order') ;
|
43 |
+
$enable_signup = $wp_recaptcha->get_option('recaptcha_enable_signup') ;
|
44 |
+
$enable_login = $wp_recaptcha->get_option('recaptcha_enable_login');
|
45 |
if ( $require_recaptcha ) {
|
46 |
// WooCommerce support
|
47 |
if ( $wp_recaptcha->get_option('recaptcha_flavor') == 'grecaptcha' && function_exists( 'wc_add_notice' ) ) {
|
48 |
+
if ( $enable_order ) {
|
49 |
add_action('woocommerce_review_order_before_submit' , array($wp_recaptcha,'print_recaptcha_html'),10,0);
|
50 |
add_action('woocommerce_checkout_process', array( &$this , 'recaptcha_check' ) );
|
51 |
+
} else if ( $enable_signup ) {
|
52 |
+
add_filter( 'wp_recaptcha_required' , array( &$this , 'disable_on_checkout' ) );
|
53 |
}
|
54 |
+
if ( $enable_login ) {
|
55 |
add_action('woocommerce_login_form' , array($wp_recaptcha,'print_recaptcha_html'),10,0);
|
56 |
add_filter('woocommerce_process_login_errors', array( &$this , 'login_errors' ) , 10 , 3 );
|
57 |
|
58 |
}
|
59 |
+
if ( $enable_signup ) {
|
60 |
// displaying the captcha at hook 'registration_form' already done by core plugin
|
61 |
add_filter('woocommerce_registration_errors', array( &$this , 'login_errors' ) , 10 , 3 );
|
62 |
+
// if ( ! $enable_order )
|
63 |
+
// add_filter('woocommerce_checkout_fields', array( &$this , 'checkout_fields' ) , 10 , 3 );
|
64 |
}
|
65 |
+
add_filter('woocommerce_form_field_recaptcha', array( $wp_recaptcha , 'recaptcha_html' ) , 10 , 3 );
|
66 |
/*
|
67 |
LOSTPW: Not possible yet. Needs https://github.com/woothemes/woocommerce/pull/7029 being applied.
|
68 |
*/
|
69 |
}
|
70 |
}
|
71 |
}
|
72 |
+
/*
|
73 |
+
function checkout_fields( $checkout_fields ) {
|
74 |
+
$checkout_fields['account']['recaptcha'] = array(
|
75 |
+
'type' => 'recaptcha',
|
76 |
+
'label' => __( 'Are you human', 'wp-recaptcha-integration' ),
|
77 |
+
);
|
78 |
+
return $checkout_fields;
|
79 |
+
}
|
80 |
+
*/
|
81 |
/**
|
82 |
* WooCommerce recaptcha Check
|
83 |
* hooks into action `woocommerce_checkout_process`
|
96 |
$validation_error->add( 'captcha_error' , __("<strong>Error:</strong> the Captcha didn’t verify.",'wp-recaptcha-integration') );
|
97 |
return $validation_error;
|
98 |
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* WooCommerce recaptcha Check
|
102 |
+
* hooks into actions `woocommerce_process_login_errors` and `woocommerce_registration_errors`
|
103 |
+
*/
|
104 |
+
function disable_on_checkout( $enabled ) {
|
105 |
+
if ( defined( 'WOOCOMMERCE_CHECKOUT' ) )
|
106 |
+
return false;
|
107 |
+
return $enabled;
|
108 |
+
}
|
109 |
}
|
110 |
|
111 |
|
js/recaptcha-options.js
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
$('[name="recaptcha_flavor"]:checked').trigger('click');
|
4 |
});
|
5 |
$(document).on('click','[name="recaptcha_flavor"]',function(){
|
6 |
-
$('.
|
7 |
.removeClass('flavor-recaptcha')
|
8 |
.removeClass('flavor-grecaptcha')
|
9 |
.addClass('flavor-'+$(this).val());
|
@@ -11,25 +11,33 @@
|
|
11 |
|
12 |
|
13 |
$(document).on('click','#test-api-key' , function(e){
|
|
|
|
|
14 |
if ( ! $('#recaptcha-test-result').length )
|
15 |
$(this).closest('div').append('<div id="recaptcha-test-result" />');
|
|
|
|
|
|
|
|
|
16 |
$('#recaptcha-test-result').load( $(this).prop('href') );
|
17 |
e.preventDefault();
|
18 |
e.stopPropagation();
|
19 |
-
$(this).
|
|
|
20 |
return false;
|
21 |
});
|
22 |
$(document).on('click','#recaptcha-test-verification' , function(e){
|
23 |
var data = {
|
24 |
'action' : 'recaptcha-test-verification',
|
25 |
'_wpnonce' : $('[name="recaptcha-test-verification-nonce"]').val(),
|
26 |
-
'g-recaptcha-response' : $('
|
27 |
};
|
28 |
-
|
29 |
$.post( ajaxurl ,
|
30 |
data ,
|
31 |
function(response) {
|
32 |
$('#recaptcha-test-result').html(response);
|
|
|
33 |
});
|
34 |
|
35 |
e.preventDefault();
|
3 |
$('[name="recaptcha_flavor"]:checked').trigger('click');
|
4 |
});
|
5 |
$(document).on('click','[name="recaptcha_flavor"]',function(){
|
6 |
+
$(this).closest('.wrap')
|
7 |
.removeClass('flavor-recaptcha')
|
8 |
.removeClass('flavor-grecaptcha')
|
9 |
.addClass('flavor-'+$(this).val());
|
11 |
|
12 |
|
13 |
$(document).on('click','#test-api-key' , function(e){
|
14 |
+
if ( ! $('#recaptcha-test-head').length )
|
15 |
+
$(this).closest('div').append('<div id="recaptcha-test-head" />');
|
16 |
if ( ! $('#recaptcha-test-result').length )
|
17 |
$(this).closest('div').append('<div id="recaptcha-test-result" />');
|
18 |
+
|
19 |
+
if ( ! $('#recaptcha-test-head').html() )
|
20 |
+
$('#recaptcha-test-head').load( $(this).data('init-href') );
|
21 |
+
|
22 |
$('#recaptcha-test-result').load( $(this).prop('href') );
|
23 |
e.preventDefault();
|
24 |
e.stopPropagation();
|
25 |
+
$(this).hide();
|
26 |
+
|
27 |
return false;
|
28 |
});
|
29 |
$(document).on('click','#recaptcha-test-verification' , function(e){
|
30 |
var data = {
|
31 |
'action' : 'recaptcha-test-verification',
|
32 |
'_wpnonce' : $('[name="recaptcha-test-verification-nonce"]').val(),
|
33 |
+
'g-recaptcha-response' : $('.g-recaptcha-response:first').val()
|
34 |
};
|
35 |
+
$('#recaptcha-test-result').addClass('loading').html('<span class="spinner"></span>');
|
36 |
$.post( ajaxurl ,
|
37 |
data ,
|
38 |
function(response) {
|
39 |
$('#recaptcha-test-result').html(response);
|
40 |
+
$('#test-api-key').show();
|
41 |
});
|
42 |
|
43 |
e.preventDefault();
|
languages/wp-recaptcha-integration-de_DE.mo
CHANGED
Binary file
|
languages/wp-recaptcha-integration-de_DE.po
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
-
"Project-Id-Version: WP reCaptcha Integration v1.0
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: \n"
|
6 |
-
"PO-Revision-Date: 2015-02-
|
7 |
"Last-Translator: admin <joern@flyingletters.com>\n"
|
8 |
"Language-Team: \n"
|
9 |
"MIME-Version: 1.0\n"
|
@@ -21,11 +21,12 @@ msgstr ""
|
|
21 |
"X-Textdomain-Support: yes"
|
22 |
|
23 |
#: inc/class-wp_recaptcha_ninjaforms.php:134
|
24 |
-
#: inc/class-wp_recaptcha_woocommerce.php:
|
25 |
-
#: inc/class-wp_recaptcha_woocommerce.php:
|
26 |
-
#: wp-recaptcha-integration.php:
|
27 |
-
#: wp-recaptcha-integration.php:
|
28 |
-
#: wp-recaptcha-integration.php:
|
|
|
29 |
#@ wp-recaptcha-integration
|
30 |
msgid "<strong>Error:</strong> the Captcha didn’t verify."
|
31 |
msgstr "<strong>Fehler:</strong> Sicherheitstest nicht bestanden"
|
@@ -86,7 +87,7 @@ msgstr ""
|
|
86 |
msgid "The Captcha didn’t verify."
|
87 |
msgstr "Sicherheitstest nicht bestanden"
|
88 |
|
89 |
-
#: inc/class-wp_recaptcha_options.php:
|
90 |
#, php-format
|
91 |
#@ wp-recaptcha-integration
|
92 |
msgid "<strong>reCaptcha needs your attention:</strong> To make it work You need to enter an api key. <br />You can do so at the <a href=\"%s\">reCaptcha settings page</a>."
|
@@ -95,110 +96,69 @@ msgstr ""
|
|
95 |
"braucht Deine Aufmerksamkeit:</strong> Damit das reCaptch funktioniert, mußt Du einen API-Schlüssel eintragen. <br />Zu den <a \n"
|
96 |
"href=\"%s\">reCaptcha Einstellungen</a>."
|
97 |
|
98 |
-
#: inc/class-wp_recaptcha_options.php:
|
99 |
#@ wp-recaptcha-integration
|
100 |
-
msgid "
|
101 |
-
msgstr "
|
102 |
|
103 |
-
#: inc/class-wp_recaptcha_options.php:
|
104 |
-
#@ wp-recaptcha-integration
|
105 |
-
msgid "Private Key"
|
106 |
-
msgstr "Private Key"
|
107 |
-
|
108 |
-
#: inc/class-wp_recaptcha_options.php:175
|
109 |
-
#: inc/class-wp_recaptcha_options.php:181
|
110 |
#@ wp-recaptcha-integration
|
111 |
-
msgid "
|
112 |
-
msgstr "
|
113 |
|
114 |
-
#: inc/class-wp_recaptcha_options.php:
|
115 |
-
#@ wp-recaptcha-integration
|
116 |
-
msgid "Features"
|
117 |
-
msgstr "Funktionen"
|
118 |
-
|
119 |
-
#: inc/class-wp_recaptcha_options.php:197
|
120 |
#@ wp-recaptcha-integration
|
121 |
msgid "Flavor"
|
122 |
msgstr "Geschmacksrichtung"
|
123 |
|
124 |
-
#: inc/class-wp_recaptcha_options.php:
|
125 |
#@ wp-recaptcha-integration
|
126 |
msgid "Old style reCAPTCHA where you type some cryptic text"
|
127 |
msgstr "Klassisch, man muß kryptische Wörter eingeben"
|
128 |
|
129 |
#: inc/class-wp_recaptcha_contactform7.php:98
|
130 |
#: inc/class-wp_recaptcha_ninjaforms.php:72
|
131 |
-
#: inc/class-wp_recaptcha_options.php:
|
132 |
#@ contact-form-7
|
133 |
#@ wp-recaptcha-integration
|
134 |
msgid "Theme"
|
135 |
msgstr "Theme"
|
136 |
|
137 |
-
#: inc/class-wp_recaptcha_options.php:
|
138 |
-
#@ wp-recaptcha-integration
|
139 |
-
msgid "Protect Comments"
|
140 |
-
msgstr "Kommentare schützen"
|
141 |
-
|
142 |
-
#: inc/class-wp_recaptcha_options.php:235
|
143 |
-
#@ wp-recaptcha-integration
|
144 |
-
msgid "Protect comment forms with recaptcha."
|
145 |
-
msgstr "Das Kommentarformular mit einem reCaptcha schützen"
|
146 |
-
|
147 |
-
#: inc/class-wp_recaptcha_options.php:238
|
148 |
-
#@ wp-recaptcha-integration
|
149 |
-
msgid "Protect Signup"
|
150 |
-
msgstr "Registrierung schützen"
|
151 |
-
|
152 |
-
#: inc/class-wp_recaptcha_options.php:240
|
153 |
-
#@ wp-recaptcha-integration
|
154 |
-
msgid "Protect signup form with recaptcha."
|
155 |
-
msgstr "Die Registrierung mit einem reCaptcha schützen."
|
156 |
-
|
157 |
-
#: inc/class-wp_recaptcha_options.php:243
|
158 |
-
#@ wp-recaptcha-integration
|
159 |
-
msgid "Protect Login"
|
160 |
-
msgstr "Login schützen"
|
161 |
-
|
162 |
-
#: inc/class-wp_recaptcha_options.php:245
|
163 |
-
#@ wp-recaptcha-integration
|
164 |
-
msgid "Protect Login form with recaptcha."
|
165 |
-
msgstr "Das Anmeldeformular mit einem reCaptcha schützen"
|
166 |
-
|
167 |
-
#: inc/class-wp_recaptcha_options.php:268
|
168 |
#@ wp-recaptcha-integration
|
169 |
msgid "Disable for known users"
|
170 |
msgstr "Abschalten bei bekannten Benutzern"
|
171 |
|
172 |
-
#: inc/class-wp_recaptcha_options.php:
|
173 |
#@ wp-recaptcha-integration
|
174 |
msgid "Disable reCaptcha verification for logged in users."
|
175 |
msgstr "Die reCaptcha-Verifizierung für eingeloggte Benutzer deaktivieren"
|
176 |
|
177 |
-
#: inc/class-wp_recaptcha_options.php:
|
178 |
#@ wp-recaptcha-integration
|
179 |
msgid "Please configure the public and private key. <a href=\"http://www.google.com/recaptcha/whyrecaptcha\">What are you trying to tell me?</a>"
|
180 |
msgstr "Bitte konfigurieren Sie den privaten und den Öffentlichen Schlüssel (private & public key). <a href=\"http://www.google.com/recaptcha/whyrecaptcha\">Was willst Du mir damit zu sagen?</a>"
|
181 |
|
182 |
-
#: inc/class-wp_recaptcha_options.php:
|
183 |
#, php-format
|
184 |
#@ wp-recaptcha-integration
|
185 |
-
msgid "Please register your blog through the <a href=\"%s\">Google reCAPTCHA admin page</a> and enter the public and private key in the fields below. <a href=\"%s\">What is this all about
|
186 |
msgstr ""
|
187 |
"Bitte registriere Deinen Blog auf der <a href=\"%s\">Google reCAPTCHA Admin Seite</a> \n"
|
188 |
"und trage unten den öffentlichen und privaten Schüssel ein. <a \n"
|
189 |
"href=\"%s\">Was erzählst Du mir da?</a>"
|
190 |
|
191 |
-
#: inc/class-wp_recaptcha_options.php:
|
192 |
#@ wp-recaptcha-integration
|
193 |
msgid "You already entered an API Key. Use the button below to enter it again."
|
194 |
msgstr "Du hast schon einen API-Schlüssel eingetragen. Klick den Button unten, um es nochmal zu tun."
|
195 |
|
196 |
-
#: inc/class-wp_recaptcha_options.php:
|
197 |
#@ wp-recaptcha-integration
|
198 |
msgid "New API Key"
|
199 |
msgstr "Neuer API-Schlüssel"
|
200 |
|
201 |
-
#: inc/class-wp_recaptcha_options.php:
|
202 |
#@ default
|
203 |
msgid "Cancel"
|
204 |
msgstr ""
|
@@ -238,37 +198,27 @@ msgstr "Clean"
|
|
238 |
msgid "Custom"
|
239 |
msgstr "Eigenes"
|
240 |
|
241 |
-
#: inc/class-wp_recaptcha_options.php:
|
242 |
#@ wp-recaptcha-integration
|
243 |
msgid "Unstyled HTML to apply your own Stylesheets."
|
244 |
msgstr "Pures HTML für Deine eigenen Stylessheets"
|
245 |
|
246 |
-
#: inc/class-wp_recaptcha_options.php:
|
247 |
-
#: inc/class-wp_recaptcha_options.php:
|
248 |
#@ wp-recaptcha-integration
|
249 |
msgid "ReCaptcha"
|
250 |
msgstr "ReCaptcha"
|
251 |
|
252 |
-
#: inc/class-wp_recaptcha_options.php:
|
253 |
#@ default
|
254 |
msgid "Settings"
|
255 |
msgstr ""
|
256 |
|
257 |
-
#: inc/class-wp_recaptcha_options.php:
|
258 |
#@ wp-recaptcha-integration
|
259 |
msgid "No Captcha where you just click a button"
|
260 |
msgstr "No Captcha. Einfach Checkbox anklicken."
|
261 |
|
262 |
-
#: inc/class-wp_recaptcha_options.php:248
|
263 |
-
#@ wp-recaptcha-integration
|
264 |
-
msgid "Protect Lost Password"
|
265 |
-
msgstr "Passwort verloren schützen"
|
266 |
-
|
267 |
-
#: inc/class-wp_recaptcha_options.php:250
|
268 |
-
#@ wp-recaptcha-integration
|
269 |
-
msgid "Protect Lost Password form with recaptcha."
|
270 |
-
msgstr "Das Passwort Verloren Formular mit einem reCaptcha schützen"
|
271 |
-
|
272 |
#: inc/class-wp_recaptcha_options.php:94
|
273 |
#: inc/class-wp_recaptcha_options.php:106
|
274 |
#@ wp-recaptcha-integration
|
@@ -280,99 +230,155 @@ msgstr "reCaptcha Einstellungen"
|
|
280 |
msgid "reCaptcha"
|
281 |
msgstr "reCaptcha"
|
282 |
|
283 |
-
#: inc/class-wp_recaptcha_options.php:
|
284 |
#@ wp-recaptcha-integration
|
285 |
msgid "Test API Key"
|
286 |
msgstr "API Schlüssel testen"
|
287 |
|
288 |
-
#: inc/class-wp_recaptcha_options.php:
|
289 |
#@ wp-recaptcha-integration
|
290 |
msgid "Test verfication"
|
291 |
msgstr "Captcha-Prüfung testen"
|
292 |
|
293 |
-
#: inc/class-wp_recaptcha_options.php:
|
294 |
#@ wp-recaptcha-integration
|
295 |
msgid "The secret Key is missing."
|
296 |
msgstr "Der geheime Schlüssel fehlt."
|
297 |
|
298 |
-
#: inc/class-wp_recaptcha_options.php:
|
299 |
#@ wp-recaptcha-integration
|
300 |
msgid "The secret Key is invalid. You better check your domain configuration and enter it again."
|
301 |
msgstr "Der geheime Schlüssel ist ungültig. Am besten prüfst Du Deine Domain.-Konfiguration und trägst ihn nochmal ein."
|
302 |
|
303 |
-
#: inc/class-wp_recaptcha_options.php:
|
304 |
#@ wp-recaptcha-integration
|
305 |
msgid "Invalid user response"
|
306 |
msgstr "Ungültige Antwort"
|
307 |
|
308 |
-
#: inc/class-wp_recaptcha_options.php:
|
309 |
#@ wp-recaptcha-integration
|
310 |
msgid "Works! All good!"
|
311 |
msgstr "Läuft! Sehr gut."
|
312 |
|
313 |
-
#: inc/class-wp_recaptcha_options.php:
|
314 |
#@ wp-recaptcha-integration
|
315 |
msgid "Disable Submit Button"
|
316 |
msgstr "Absendebutton deaktivieren"
|
317 |
|
318 |
-
#: inc/class-wp_recaptcha_options.php:
|
319 |
#@ wp-recaptcha-integration
|
320 |
msgid "Disable Form Submit Button until no-captcha is entered."
|
321 |
msgstr "Den Absendenbutton deaktivieren, bis das Captcha gelöst wurde."
|
322 |
|
323 |
-
#: inc/class-wp_recaptcha_nocaptcha.php:
|
324 |
#@ wp-recaptcha-integration
|
325 |
msgid "Please enable JavaScript to submit this form."
|
326 |
msgstr "Bitte aktiveren Sie JavaScript, um dieses Formular abschicken zu können."
|
327 |
|
328 |
-
#: inc/class-wp_recaptcha_options.php:
|
329 |
#@ wp-recaptcha-integration
|
330 |
msgid "The user response was missing"
|
331 |
msgstr "Fehlende Antwort"
|
332 |
|
333 |
-
#: inc/class-wp_recaptcha_options.php:255
|
334 |
-
#@ wp-recaptcha-integration
|
335 |
-
msgid "Protect WooCommerce Checkout"
|
336 |
-
msgstr "WooCommerce Kasse schützen"
|
337 |
-
|
338 |
-
#: inc/class-wp_recaptcha_options.php:259
|
339 |
-
#@ wp-recaptcha-integration
|
340 |
-
msgid "Protect wooCommerce Checkout with a recaptcha."
|
341 |
-
msgstr "Die WooCommerce Kasse mit einem Captcha schützen."
|
342 |
-
|
343 |
-
#: inc/class-wp_recaptcha_options.php:260
|
344 |
-
#@ wp-recaptcha-integration
|
345 |
-
msgid "This will only work with No Captcha flavor."
|
346 |
-
msgstr "Das wird nur zusammen mit dem neuen No Captcha funktionieren."
|
347 |
-
|
348 |
-
#: inc/class-wp_recaptcha_options.php:265
|
349 |
-
#@ wp-recaptcha-integration
|
350 |
-
msgid "The Old Style recaptcha doesn‘t work together with the WooCommerce checkout form. The Captcha will not be displayed,"
|
351 |
-
msgstr "Das alte reCaptcha funkctioneirt nicht zusammen mit dem WooCommerce Kassenformular. Das Captcha wird nicht angezeigt."
|
352 |
-
|
353 |
#: inc/class-wp_recaptcha_contactform7.php:100
|
354 |
#: inc/class-wp_recaptcha_ninjaforms.php:64
|
355 |
#@ wp-recaptcha-integration
|
356 |
msgid "Use default"
|
357 |
msgstr "Standardwert"
|
358 |
|
359 |
-
#: inc/class-wp_recaptcha_options.php:
|
360 |
#@ default
|
361 |
msgid "Language Settings"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: inc/class-wp_recaptcha_options.php:
|
365 |
#@ wp-recaptcha-integration
|
366 |
msgid "Automatic"
|
367 |
msgstr "Automatisch"
|
368 |
|
369 |
-
#: inc/class-wp_recaptcha_options.php:
|
370 |
#@ default
|
371 |
msgid "Site Language"
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: inc/class-wp_recaptcha_options.php:
|
375 |
#@ default
|
376 |
msgid "Other"
|
377 |
msgstr ""
|
378 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
+
"Project-Id-Version: WP reCaptcha Integration v1.1.0\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: \n"
|
6 |
+
"PO-Revision-Date: 2015-02-25 14:37:41+0000\n"
|
7 |
"Last-Translator: admin <joern@flyingletters.com>\n"
|
8 |
"Language-Team: \n"
|
9 |
"MIME-Version: 1.0\n"
|
21 |
"X-Textdomain-Support: yes"
|
22 |
|
23 |
#: inc/class-wp_recaptcha_ninjaforms.php:134
|
24 |
+
#: inc/class-wp_recaptcha_woocommerce.php:83
|
25 |
+
#: inc/class-wp_recaptcha_woocommerce.php:92
|
26 |
+
#: wp-recaptcha-integration.php:372
|
27 |
+
#: wp-recaptcha-integration.php:418
|
28 |
+
#: wp-recaptcha-integration.php:432
|
29 |
+
#: wp-recaptcha-integration.php:444
|
30 |
#@ wp-recaptcha-integration
|
31 |
msgid "<strong>Error:</strong> the Captcha didn’t verify."
|
32 |
msgstr "<strong>Fehler:</strong> Sicherheitstest nicht bestanden"
|
87 |
msgid "The Captcha didn’t verify."
|
88 |
msgstr "Sicherheitstest nicht bestanden"
|
89 |
|
90 |
+
#: inc/class-wp_recaptcha_options.php:155
|
91 |
#, php-format
|
92 |
#@ wp-recaptcha-integration
|
93 |
msgid "<strong>reCaptcha needs your attention:</strong> To make it work You need to enter an api key. <br />You can do so at the <a href=\"%s\">reCaptcha settings page</a>."
|
96 |
"braucht Deine Aufmerksamkeit:</strong> Damit das reCaptch funktioniert, mußt Du einen API-Schlüssel eintragen. <br />Zu den <a \n"
|
97 |
"href=\"%s\">reCaptcha Einstellungen</a>."
|
98 |
|
99 |
+
#: inc/class-wp_recaptcha_options.php:183
|
100 |
#@ wp-recaptcha-integration
|
101 |
+
msgid "Site key"
|
102 |
+
msgstr "Websiteschlüssel"
|
103 |
|
104 |
+
#: inc/class-wp_recaptcha_options.php:184
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
#@ wp-recaptcha-integration
|
106 |
+
msgid "Secret key"
|
107 |
+
msgstr "Geheimer Schlüssel"
|
108 |
|
109 |
+
#: inc/class-wp_recaptcha_options.php:204
|
|
|
|
|
|
|
|
|
|
|
110 |
#@ wp-recaptcha-integration
|
111 |
msgid "Flavor"
|
112 |
msgstr "Geschmacksrichtung"
|
113 |
|
114 |
+
#: inc/class-wp_recaptcha_options.php:215
|
115 |
#@ wp-recaptcha-integration
|
116 |
msgid "Old style reCAPTCHA where you type some cryptic text"
|
117 |
msgstr "Klassisch, man muß kryptische Wörter eingeben"
|
118 |
|
119 |
#: inc/class-wp_recaptcha_contactform7.php:98
|
120 |
#: inc/class-wp_recaptcha_ninjaforms.php:72
|
121 |
+
#: inc/class-wp_recaptcha_options.php:222
|
122 |
#@ contact-form-7
|
123 |
#@ wp-recaptcha-integration
|
124 |
msgid "Theme"
|
125 |
msgstr "Theme"
|
126 |
|
127 |
+
#: inc/class-wp_recaptcha_options.php:313
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
#@ wp-recaptcha-integration
|
129 |
msgid "Disable for known users"
|
130 |
msgstr "Abschalten bei bekannten Benutzern"
|
131 |
|
132 |
+
#: inc/class-wp_recaptcha_options.php:315
|
133 |
#@ wp-recaptcha-integration
|
134 |
msgid "Disable reCaptcha verification for logged in users."
|
135 |
msgstr "Die reCaptcha-Verifizierung für eingeloggte Benutzer deaktivieren"
|
136 |
|
137 |
+
#: inc/class-wp_recaptcha_options.php:328
|
138 |
#@ wp-recaptcha-integration
|
139 |
msgid "Please configure the public and private key. <a href=\"http://www.google.com/recaptcha/whyrecaptcha\">What are you trying to tell me?</a>"
|
140 |
msgstr "Bitte konfigurieren Sie den privaten und den Öffentlichen Schlüssel (private & public key). <a href=\"http://www.google.com/recaptcha/whyrecaptcha\">Was willst Du mir damit zu sagen?</a>"
|
141 |
|
142 |
+
#: inc/class-wp_recaptcha_options.php:341
|
143 |
#, php-format
|
144 |
#@ wp-recaptcha-integration
|
145 |
+
msgid "Please register your blog through the <a href=\"%s\">Google reCAPTCHA admin page</a> and enter the public and private key in the fields below. <a href=\"%s\">What is this all about?</a>"
|
146 |
msgstr ""
|
147 |
"Bitte registriere Deinen Blog auf der <a href=\"%s\">Google reCAPTCHA Admin Seite</a> \n"
|
148 |
"und trage unten den öffentlichen und privaten Schüssel ein. <a \n"
|
149 |
"href=\"%s\">Was erzählst Du mir da?</a>"
|
150 |
|
151 |
+
#: inc/class-wp_recaptcha_options.php:349
|
152 |
#@ wp-recaptcha-integration
|
153 |
msgid "You already entered an API Key. Use the button below to enter it again."
|
154 |
msgstr "Du hast schon einen API-Schlüssel eingetragen. Klick den Button unten, um es nochmal zu tun."
|
155 |
|
156 |
+
#: inc/class-wp_recaptcha_options.php:364
|
157 |
#@ wp-recaptcha-integration
|
158 |
msgid "New API Key"
|
159 |
msgstr "Neuer API-Schlüssel"
|
160 |
|
161 |
+
#: inc/class-wp_recaptcha_options.php:456
|
162 |
#@ default
|
163 |
msgid "Cancel"
|
164 |
msgstr ""
|
198 |
msgid "Custom"
|
199 |
msgstr "Eigenes"
|
200 |
|
201 |
+
#: inc/class-wp_recaptcha_options.php:617
|
202 |
#@ wp-recaptcha-integration
|
203 |
msgid "Unstyled HTML to apply your own Stylesheets."
|
204 |
msgstr "Pures HTML für Deine eigenen Stylessheets"
|
205 |
|
206 |
+
#: inc/class-wp_recaptcha_options.php:690
|
207 |
+
#: inc/class-wp_recaptcha_options.php:715
|
208 |
#@ wp-recaptcha-integration
|
209 |
msgid "ReCaptcha"
|
210 |
msgstr "ReCaptcha"
|
211 |
|
212 |
+
#: inc/class-wp_recaptcha_options.php:713
|
213 |
#@ default
|
214 |
msgid "Settings"
|
215 |
msgstr ""
|
216 |
|
217 |
+
#: inc/class-wp_recaptcha_options.php:211
|
218 |
#@ wp-recaptcha-integration
|
219 |
msgid "No Captcha where you just click a button"
|
220 |
msgstr "No Captcha. Einfach Checkbox anklicken."
|
221 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
#: inc/class-wp_recaptcha_options.php:94
|
223 |
#: inc/class-wp_recaptcha_options.php:106
|
224 |
#@ wp-recaptcha-integration
|
230 |
msgid "reCaptcha"
|
231 |
msgstr "reCaptcha"
|
232 |
|
233 |
+
#: inc/class-wp_recaptcha_options.php:365
|
234 |
#@ wp-recaptcha-integration
|
235 |
msgid "Test API Key"
|
236 |
msgstr "API Schlüssel testen"
|
237 |
|
238 |
+
#: inc/class-wp_recaptcha_options.php:419
|
239 |
#@ wp-recaptcha-integration
|
240 |
msgid "Test verfication"
|
241 |
msgstr "Captcha-Prüfung testen"
|
242 |
|
243 |
+
#: inc/class-wp_recaptcha_options.php:432
|
244 |
#@ wp-recaptcha-integration
|
245 |
msgid "The secret Key is missing."
|
246 |
msgstr "Der geheime Schlüssel fehlt."
|
247 |
|
248 |
+
#: inc/class-wp_recaptcha_options.php:433
|
249 |
#@ wp-recaptcha-integration
|
250 |
msgid "The secret Key is invalid. You better check your domain configuration and enter it again."
|
251 |
msgstr "Der geheime Schlüssel ist ungültig. Am besten prüfst Du Deine Domain.-Konfiguration und trägst ihn nochmal ein."
|
252 |
|
253 |
+
#: inc/class-wp_recaptcha_options.php:435
|
254 |
#@ wp-recaptcha-integration
|
255 |
msgid "Invalid user response"
|
256 |
msgstr "Ungültige Antwort"
|
257 |
|
258 |
+
#: inc/class-wp_recaptcha_options.php:444
|
259 |
#@ wp-recaptcha-integration
|
260 |
msgid "Works! All good!"
|
261 |
msgstr "Läuft! Sehr gut."
|
262 |
|
263 |
+
#: inc/class-wp_recaptcha_options.php:224
|
264 |
#@ wp-recaptcha-integration
|
265 |
msgid "Disable Submit Button"
|
266 |
msgstr "Absendebutton deaktivieren"
|
267 |
|
268 |
+
#: inc/class-wp_recaptcha_options.php:226
|
269 |
#@ wp-recaptcha-integration
|
270 |
msgid "Disable Form Submit Button until no-captcha is entered."
|
271 |
msgstr "Den Absendenbutton deaktivieren, bis das Captcha gelöst wurde."
|
272 |
|
273 |
+
#: inc/class-wp_recaptcha_nocaptcha.php:198
|
274 |
#@ wp-recaptcha-integration
|
275 |
msgid "Please enable JavaScript to submit this form."
|
276 |
msgstr "Bitte aktiveren Sie JavaScript, um dieses Formular abschicken zu können."
|
277 |
|
278 |
+
#: inc/class-wp_recaptcha_options.php:434
|
279 |
#@ wp-recaptcha-integration
|
280 |
msgid "The user response was missing"
|
281 |
msgstr "Fehlende Antwort"
|
282 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
283 |
#: inc/class-wp_recaptcha_contactform7.php:100
|
284 |
#: inc/class-wp_recaptcha_ninjaforms.php:64
|
285 |
#@ wp-recaptcha-integration
|
286 |
msgid "Use default"
|
287 |
msgstr "Standardwert"
|
288 |
|
289 |
+
#: inc/class-wp_recaptcha_options.php:220
|
290 |
#@ default
|
291 |
msgid "Language Settings"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: inc/class-wp_recaptcha_options.php:577
|
295 |
#@ wp-recaptcha-integration
|
296 |
msgid "Automatic"
|
297 |
msgstr "Automatisch"
|
298 |
|
299 |
+
#: inc/class-wp_recaptcha_options.php:578
|
300 |
#@ default
|
301 |
msgid "Site Language"
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: inc/class-wp_recaptcha_options.php:579
|
305 |
#@ default
|
306 |
msgid "Other"
|
307 |
msgstr ""
|
308 |
|
309 |
+
#: inc/class-wp_recaptcha_options.php:173
|
310 |
+
#: inc/class-wp_recaptcha_options.php:177
|
311 |
+
#@ wp-recaptcha-integration
|
312 |
+
msgid "Connect"
|
313 |
+
msgstr "Verbinden"
|
314 |
+
|
315 |
+
#: inc/class-wp_recaptcha_options.php:174
|
316 |
+
#@ wp-recaptcha-integration
|
317 |
+
msgid "Protect"
|
318 |
+
msgstr "Schützen"
|
319 |
+
|
320 |
+
#: inc/class-wp_recaptcha_options.php:175
|
321 |
+
#@ wp-recaptcha-integration
|
322 |
+
msgid "Style"
|
323 |
+
msgstr "Styling"
|
324 |
+
|
325 |
+
#: inc/class-wp_recaptcha_options.php:282
|
326 |
+
#@ wp-recaptcha-integration
|
327 |
+
msgid "Comment Form"
|
328 |
+
msgstr "Kommentare"
|
329 |
+
|
330 |
+
#: inc/class-wp_recaptcha_options.php:287
|
331 |
+
#@ wp-recaptcha-integration
|
332 |
+
msgid "Signup Form"
|
333 |
+
msgstr "Registrierung"
|
334 |
+
|
335 |
+
#: inc/class-wp_recaptcha_options.php:292
|
336 |
+
#@ wp-recaptcha-integration
|
337 |
+
msgid "Login Form"
|
338 |
+
msgstr "Anmeldung"
|
339 |
+
|
340 |
+
#: inc/class-wp_recaptcha_options.php:297
|
341 |
+
#@ wp-recaptcha-integration
|
342 |
+
msgid "Lost Password Form"
|
343 |
+
msgstr "Passwort verloren"
|
344 |
+
|
345 |
+
#: inc/class-wp_recaptcha_options.php:304
|
346 |
+
#@ wp-recaptcha-integration
|
347 |
+
msgid "woocommerce Checkout"
|
348 |
+
msgstr "woocommerce Bestellung"
|
349 |
+
|
350 |
+
#: inc/class-wp_recaptcha_options.php:308
|
351 |
+
#@ wp-recaptcha-integration
|
352 |
+
msgid "Forms to protect"
|
353 |
+
msgstr "Formulare schützen"
|
354 |
+
|
355 |
+
#: inc/class-wp_recaptcha_options.php:317
|
356 |
+
#@ wp-recaptcha-integration
|
357 |
+
msgid "Prevent lockout"
|
358 |
+
msgstr "Aussperren verhindern"
|
359 |
+
|
360 |
+
#: inc/class-wp_recaptcha_options.php:321
|
361 |
+
#@ wp-recaptcha-integration
|
362 |
+
msgid "Allow administrator to log in if API keys do not work."
|
363 |
+
msgstr "Administrator Login erlauben, wenn die API-Schlüssel nicht funktionieren"
|
364 |
+
|
365 |
+
#: inc/class-wp_recaptcha_options.php:322
|
366 |
+
#@ wp-recaptcha-integration
|
367 |
+
msgid "When the captcha verification fails, and the private or public API key does not work the plugin will let you in anyway. Please note that with this option checked plus a broken keypair your site will be open to brute force attacks, that try to guess an administrator password."
|
368 |
+
msgstr "Wenn der Captcha-Test fehlschlägt und der private oder öffentliche Schlüsseln nicht funktionieren, wird Dich das Plugin trotzdem hereinlassen. Bette beachte, dass Deine Seite mit dieser option und einem kaputten Schlüsselpaar offen für Brute-Force-Angriffe wird, die darauf abzielen ein Administrator-Passwort zu erraten."
|
369 |
+
|
370 |
+
#: inc/class-wp_recaptcha_options.php:377
|
371 |
+
#@ wp-recaptcha-integration
|
372 |
+
msgid "Select which forms you want to protect with a captcha."
|
373 |
+
msgstr "Welche Formulare möchtest Du mit einem Captcha schützen?"
|
374 |
+
|
375 |
+
#: inc/class-wp_recaptcha_options.php:387
|
376 |
+
#@ wp-recaptcha-integration
|
377 |
+
msgid "Choose a flavor and theme for your Captcha. Please note that with the old style reCaptcha you cannot have more than one captcha per page."
|
378 |
+
msgstr "Wähle eine Geschmachsrichtung. Zu beachten ist, dass beim alten reCaptcha nur ein Captcha auf einer Seite möglich ist."
|
379 |
+
|
380 |
+
#: inc/class-wp_recaptcha_woocommerce.php:72
|
381 |
+
#@ wp-recaptcha-integration
|
382 |
+
msgid "Are you human"
|
383 |
+
msgstr "Bist Du ein Mensch"
|
384 |
+
|
languages/wp-recaptcha-integration-es_ES.mo
CHANGED
Binary file
|
languages/wp-recaptcha-integration-es_ES.po
CHANGED
@@ -1,320 +1,378 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
-
"Project-Id-Version: WP reCaptcha Integration\n"
|
|
|
4 |
"POT-Creation-Date: 2015-02-01 17:51+0100\n"
|
5 |
-
"PO-Revision-Date: 2015-02-
|
6 |
"Last-Translator: Ivan <ivan@yivoff.com>\n"
|
7 |
"Language-Team: Ivan <ivan@yivoff.com>\n"
|
8 |
-
"Language: es_ES\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
|
|
12 |
"X-Generator: Poedit 1.7.4\n"
|
13 |
-
"X-Poedit-
|
|
|
14 |
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
-
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
19 |
"X-Poedit-SearchPath-0: .\n"
|
20 |
-
"X-
|
21 |
|
22 |
-
#: inc/class-wp_recaptcha_contactform7.php:
|
23 |
#: inc/class-wp_recaptcha_ninjaforms.php:36
|
|
|
24 |
msgid "reCAPTCHA"
|
25 |
msgstr "reCAPTCHA"
|
26 |
|
27 |
-
#: inc/class-wp_recaptcha_contactform7.php:
|
|
|
28 |
msgid "Required field?"
|
29 |
msgstr "Campo Requerido?"
|
30 |
|
31 |
-
#: inc/class-wp_recaptcha_contactform7.php:
|
|
|
32 |
msgid "Name"
|
33 |
msgstr "Nombre"
|
34 |
|
35 |
-
#: inc/class-wp_recaptcha_contactform7.php:
|
|
|
36 |
msgid "Copy this code and paste it into the form left."
|
37 |
msgstr "Copia este código y pégalo en el formulario de la izquierda"
|
38 |
|
39 |
-
#: inc/class-wp_recaptcha_contactform7.php:
|
|
|
40 |
msgid "The Captcha didn’t verify."
|
41 |
msgstr "El Captcha no se ha podido verificar"
|
42 |
|
43 |
-
#: inc/class-wp_recaptcha_ninjaforms.php:
|
44 |
-
#: inc/class-wp_recaptcha_woocommerce.php:
|
45 |
-
#: inc/class-wp_recaptcha_woocommerce.php:
|
46 |
-
#: wp-recaptcha-integration.php:
|
|
|
|
|
|
|
|
|
47 |
msgid "<strong>Error:</strong> the Captcha didn’t verify."
|
48 |
msgstr "<strong>Error:</strong> verificación Captcha incorrecta."
|
49 |
|
50 |
-
#: inc/class-wp_recaptcha_nocaptcha.php:
|
|
|
51 |
msgid "Please enable JavaScript to submit this form."
|
52 |
msgstr "Por favor activa Javascript para enviar este formulario"
|
53 |
|
54 |
#: inc/class-wp_recaptcha_options.php:94
|
55 |
#: inc/class-wp_recaptcha_options.php:106
|
|
|
56 |
msgid "reCaptcha Settings"
|
57 |
msgstr "Ajustes reCAPTCHA"
|
58 |
|
59 |
#: inc/class-wp_recaptcha_options.php:95
|
|
|
60 |
msgid "reCaptcha"
|
61 |
msgstr "reCaptcha"
|
62 |
|
63 |
-
#: inc/class-wp_recaptcha_options.php:
|
64 |
#, php-format
|
65 |
-
|
66 |
-
"<strong>reCaptcha needs your attention:</strong> To make it work You need to "
|
67 |
-
"
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
"
|
73 |
-
|
74 |
-
#: inc/class-wp_recaptcha_options.php:
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
#: inc/class-wp_recaptcha_options.php:175
|
83 |
-
#: inc/class-wp_recaptcha_options.php:181
|
84 |
-
msgid "Connecting"
|
85 |
-
msgstr "Conectándose"
|
86 |
-
|
87 |
-
#: inc/class-wp_recaptcha_options.php:194
|
88 |
msgid "Language Settings"
|
89 |
msgstr "Ajustes de lenguaje"
|
90 |
|
91 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
92 |
msgid "Flavor"
|
93 |
msgstr "Sabor"
|
94 |
|
95 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
96 |
msgid "No Captcha where you just click a button"
|
97 |
msgstr "Sin Captcha, dónde sólo hace falta pulsar un botón"
|
98 |
|
99 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
100 |
msgid "Old style reCAPTCHA where you type some cryptic text"
|
101 |
msgstr "reCaptcha clásico, dónde descifras un texto críptico"
|
102 |
|
103 |
-
#: inc/class-
|
|
|
|
|
|
|
|
|
104 |
msgid "Theme"
|
105 |
msgstr "Tema"
|
106 |
|
107 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
108 |
msgid "Disable Submit Button"
|
109 |
msgstr "Desactiva Botón de Enviar"
|
110 |
|
111 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
112 |
msgid "Disable Form Submit Button until no-captcha is entered."
|
113 |
msgstr "Desactivar botón de enviar hasta que el reCaptcha haya sido resuelto"
|
114 |
|
115 |
-
#: inc/class-wp_recaptcha_options.php:
|
116 |
-
|
117 |
-
msgstr "Proteger Comentarios"
|
118 |
-
|
119 |
-
#: inc/class-wp_recaptcha_options.php:235
|
120 |
-
msgid "Protect comment forms with recaptcha."
|
121 |
-
msgstr "Proteger formulario de comentario con recaptcha"
|
122 |
-
|
123 |
-
#: inc/class-wp_recaptcha_options.php:238
|
124 |
-
msgid "Protect Signup"
|
125 |
-
msgstr "Proteger Registro"
|
126 |
-
|
127 |
-
#: inc/class-wp_recaptcha_options.php:240
|
128 |
-
msgid "Protect signup form with recaptcha."
|
129 |
-
msgstr "Proteger formulario de registro de usuario con recaptcha"
|
130 |
-
|
131 |
-
#: inc/class-wp_recaptcha_options.php:243
|
132 |
-
msgid "Protect Login"
|
133 |
-
msgstr "Proteger login"
|
134 |
-
|
135 |
-
#: inc/class-wp_recaptcha_options.php:245
|
136 |
-
msgid "Protect Login form with recaptcha."
|
137 |
-
msgstr "Proteger Login con recaptcha"
|
138 |
-
|
139 |
-
#: inc/class-wp_recaptcha_options.php:248
|
140 |
-
msgid "Protect Lost Password"
|
141 |
-
msgstr "Projeger Recuperación de Contraseña"
|
142 |
-
|
143 |
-
#: inc/class-wp_recaptcha_options.php:250
|
144 |
-
msgid "Protect Lost Password form with recaptcha."
|
145 |
-
msgstr "Proteger formulario de contraseña perdida con recaptcha"
|
146 |
-
|
147 |
-
#: inc/class-wp_recaptcha_options.php:255
|
148 |
-
msgid "Protect WooCommerce Checkout"
|
149 |
-
msgstr "Proteger compra en wooCommerce"
|
150 |
-
|
151 |
-
#: inc/class-wp_recaptcha_options.php:259
|
152 |
-
msgid "Protect wooCommerce Checkout with a recaptcha."
|
153 |
-
msgstr "Proteger el formulario de compra de wooCommerce con recaptcha."
|
154 |
-
|
155 |
-
#: inc/class-wp_recaptcha_options.php:260
|
156 |
-
msgid "This will only work with No Captcha flavor."
|
157 |
-
msgstr "Esto sólo funcionará con el sabor \"No Captcha\"."
|
158 |
-
|
159 |
-
#: inc/class-wp_recaptcha_options.php:265
|
160 |
-
msgid ""
|
161 |
-
"The Old Style recaptcha doesn‘t work together with the WooCommerce checkout "
|
162 |
-
"form. The Captcha will not be displayed,"
|
163 |
-
msgstr ""
|
164 |
-
"ReCaptcha \"clásico\" no funciona con el formulario de pago de WooCommerce. "
|
165 |
-
"El Captcha no se mostrará."
|
166 |
-
|
167 |
-
#: inc/class-wp_recaptcha_options.php:268
|
168 |
msgid "Disable for known users"
|
169 |
msgstr "Desactivar para usuarios conocidos"
|
170 |
|
171 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
172 |
msgid "Disable reCaptcha verification for logged in users."
|
173 |
msgstr "Desactiva la verificación reCaptcha para usuarios conectados"
|
174 |
|
175 |
-
#: inc/class-wp_recaptcha_options.php:
|
176 |
-
|
177 |
-
|
|
|
178 |
|
179 |
-
#: inc/class-wp_recaptcha_options.php:
|
180 |
-
msgid ""
|
181 |
-
"Please configure the public and private key. <a href=\"http://www.google.com/"
|
182 |
-
"recaptcha/whyrecaptcha\">What are you trying to tell me?</a>"
|
183 |
-
msgstr ""
|
184 |
-
"Por favor configura las llaves pública y privada. <a href=\"http://www."
|
185 |
-
"google.com/recaptcha/whyrecaptcha\">¿De qué me estás hablando?</a>"
|
186 |
-
|
187 |
-
#: inc/class-wp_recaptcha_options.php:289
|
188 |
#, php-format
|
189 |
-
|
190 |
-
"Please register your blog through the <a href=\"%s\">Google reCAPTCHA admin "
|
191 |
-
"
|
192 |
-
"\"%s\">What is this all about</a>"
|
193 |
-
msgstr ""
|
194 |
-
"Por favor registra tu blog en la <a href=\"%s\">página de Administración de "
|
195 |
-
"reCAPTCHA de Google</a>, e introduce las llaves públicas y privadas en los "
|
196 |
-
"campos de más abajo. <a href=\"%s\">Si no sabes de que va esto, pincha aquí</"
|
197 |
-
"a>"
|
198 |
|
199 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
200 |
msgid "You already entered an API Key. Use the button below to enter it again."
|
201 |
-
msgstr ""
|
202 |
-
"Ya has introducido una llave API. Usa el botón de aquí abajo para volver a "
|
203 |
-
"hacerlo."
|
204 |
|
205 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
206 |
msgid "New API Key"
|
207 |
msgstr "Nueva llave API"
|
208 |
|
209 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
210 |
msgid "Test API Key"
|
211 |
msgstr "Probar llave API"
|
212 |
|
213 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
214 |
msgid "Test verfication"
|
215 |
msgstr "Probar verificación"
|
216 |
|
217 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
218 |
msgid "The secret Key is missing."
|
219 |
msgstr "Falta la llave secreta"
|
220 |
|
221 |
-
#: inc/class-wp_recaptcha_options.php:
|
222 |
-
|
223 |
-
"The secret Key is invalid. You better check your domain configuration and "
|
224 |
-
"
|
225 |
-
msgstr ""
|
226 |
-
"La llave secreta es inválida. Verifica la configuración de tu dominio y "
|
227 |
-
"vuelve a intentarlo."
|
228 |
|
229 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
230 |
msgid "The user response was missing"
|
231 |
msgstr "No se ha recibido la respuesta del usuario"
|
232 |
|
233 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
234 |
msgid "Invalid user response"
|
235 |
msgstr "Respuesta de usuario inválida"
|
236 |
|
237 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
238 |
msgid "Works! All good!"
|
239 |
msgstr "¡Funciona! ¡Todo bien!"
|
240 |
|
241 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
242 |
msgid "Cancel"
|
243 |
msgstr "Cancelar"
|
244 |
|
245 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
246 |
msgid "Automatic"
|
247 |
msgstr "Automático"
|
248 |
|
249 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
250 |
msgid "Site Language"
|
251 |
msgstr "Idioma del sitio"
|
252 |
|
253 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
254 |
msgid "Other"
|
255 |
msgstr "Otro"
|
256 |
|
257 |
-
#: inc/class-
|
|
|
258 |
msgid "Light"
|
259 |
msgstr "Claro"
|
260 |
|
261 |
-
#: inc/class-
|
|
|
262 |
msgid "Dark"
|
263 |
msgstr "Oscuro"
|
264 |
|
265 |
-
#: inc/class-
|
|
|
266 |
msgid "Red"
|
267 |
msgstr "Rojo"
|
268 |
|
269 |
-
#: inc/class-
|
|
|
270 |
msgid "White"
|
271 |
msgstr "Blanco"
|
272 |
|
273 |
-
#: inc/class-
|
|
|
274 |
msgid "Black Glass"
|
275 |
msgstr "Cristal Oscuro"
|
276 |
|
277 |
-
#: inc/class-
|
|
|
278 |
msgid "Clean"
|
279 |
msgstr "Limpiar"
|
280 |
|
281 |
-
#: inc/class-
|
|
|
282 |
msgid "Custom"
|
283 |
msgstr "Perzonalizado"
|
284 |
|
285 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
286 |
msgid "Unstyled HTML to apply your own Stylesheets."
|
287 |
msgstr "HTML sin estilo para aplicar sus propias hojas de estilo."
|
288 |
|
289 |
-
#: inc/class-wp_recaptcha_options.php:
|
290 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
291 |
msgid "ReCaptcha"
|
292 |
msgstr "ReCaptcha"
|
293 |
|
294 |
-
#: inc/class-wp_recaptcha_options.php:
|
|
|
295 |
msgid "Settings"
|
296 |
msgstr "Ajustes"
|
297 |
|
298 |
-
#: inc/class-wp_recaptcha_recaptcha.php:
|
|
|
299 |
msgid "Incorrect please try again"
|
300 |
msgstr "Incorrecto, por favor inténtalo otra vez"
|
301 |
|
302 |
-
#: inc/class-wp_recaptcha_recaptcha.php:
|
|
|
303 |
msgid "Enter the words above:"
|
304 |
msgstr "Introduce las palabras de aquí arriba:"
|
305 |
|
306 |
-
#: inc/class-wp_recaptcha_recaptcha.php:
|
|
|
307 |
msgid "Enter the numbers you hear:"
|
308 |
msgstr "Introduce los números que oyes:"
|
309 |
|
310 |
-
#: inc/class-wp_recaptcha_recaptcha.php:
|
|
|
311 |
msgid "Get another CAPTCHA"
|
312 |
msgstr "Cargar otro CAPTCHA"
|
313 |
|
314 |
-
#: inc/class-wp_recaptcha_recaptcha.php:
|
|
|
315 |
msgid "Get an audio CAPTCHA"
|
316 |
msgstr "Usa un Captcha de Audio"
|
317 |
|
318 |
-
#: inc/class-wp_recaptcha_recaptcha.php:
|
|
|
319 |
msgid "Get an image CAPTCHA"
|
320 |
msgstr "Usa un Captcha de Imágen"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
+
"Project-Id-Version: WP reCaptcha Integration v1.1.0\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: 2015-02-01 17:51+0100\n"
|
6 |
+
"PO-Revision-Date: 2015-02-25 14:37:23+0000\n"
|
7 |
"Last-Translator: Ivan <ivan@yivoff.com>\n"
|
8 |
"Language-Team: Ivan <ivan@yivoff.com>\n"
|
|
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
"X-Generator: Poedit 1.7.4\n"
|
14 |
+
"X-Poedit-Language: \n"
|
15 |
+
"X-Poedit-Country: \n"
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
+
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
18 |
+
"X-Poedit-Basepath: ..\n"
|
19 |
+
"X-Poedit-Bookmarks: \n"
|
|
|
20 |
"X-Poedit-SearchPath-0: .\n"
|
21 |
+
"X-Textdomain-Support: yes"
|
22 |
|
23 |
+
#: inc/class-wp_recaptcha_contactform7.php:78
|
24 |
#: inc/class-wp_recaptcha_ninjaforms.php:36
|
25 |
+
#@ wp-recaptcha-integration
|
26 |
msgid "reCAPTCHA"
|
27 |
msgstr "reCAPTCHA"
|
28 |
|
29 |
+
#: inc/class-wp_recaptcha_contactform7.php:91
|
30 |
+
#@ contact-form-7
|
31 |
msgid "Required field?"
|
32 |
msgstr "Campo Requerido?"
|
33 |
|
34 |
+
#: inc/class-wp_recaptcha_contactform7.php:93
|
35 |
+
#@ contact-form-7
|
36 |
msgid "Name"
|
37 |
msgstr "Nombre"
|
38 |
|
39 |
+
#: inc/class-wp_recaptcha_contactform7.php:119
|
40 |
+
#@ contact-form-7
|
41 |
msgid "Copy this code and paste it into the form left."
|
42 |
msgstr "Copia este código y pégalo en el formulario de la izquierda"
|
43 |
|
44 |
+
#: inc/class-wp_recaptcha_contactform7.php:137
|
45 |
+
#@ wp-recaptcha-integration
|
46 |
msgid "The Captcha didn’t verify."
|
47 |
msgstr "El Captcha no se ha podido verificar"
|
48 |
|
49 |
+
#: inc/class-wp_recaptcha_ninjaforms.php:134
|
50 |
+
#: inc/class-wp_recaptcha_woocommerce.php:83
|
51 |
+
#: inc/class-wp_recaptcha_woocommerce.php:92
|
52 |
+
#: wp-recaptcha-integration.php:372
|
53 |
+
#: wp-recaptcha-integration.php:418
|
54 |
+
#: wp-recaptcha-integration.php:432
|
55 |
+
#: wp-recaptcha-integration.php:444
|
56 |
+
#@ wp-recaptcha-integration
|
57 |
msgid "<strong>Error:</strong> the Captcha didn’t verify."
|
58 |
msgstr "<strong>Error:</strong> verificación Captcha incorrecta."
|
59 |
|
60 |
+
#: inc/class-wp_recaptcha_nocaptcha.php:198
|
61 |
+
#@ wp-recaptcha-integration
|
62 |
msgid "Please enable JavaScript to submit this form."
|
63 |
msgstr "Por favor activa Javascript para enviar este formulario"
|
64 |
|
65 |
#: inc/class-wp_recaptcha_options.php:94
|
66 |
#: inc/class-wp_recaptcha_options.php:106
|
67 |
+
#@ wp-recaptcha-integration
|
68 |
msgid "reCaptcha Settings"
|
69 |
msgstr "Ajustes reCAPTCHA"
|
70 |
|
71 |
#: inc/class-wp_recaptcha_options.php:95
|
72 |
+
#@ wp-recaptcha-integration
|
73 |
msgid "reCaptcha"
|
74 |
msgstr "reCaptcha"
|
75 |
|
76 |
+
#: inc/class-wp_recaptcha_options.php:155
|
77 |
#, php-format
|
78 |
+
#@ wp-recaptcha-integration
|
79 |
+
msgid "<strong>reCaptcha needs your attention:</strong> To make it work You need to enter an api key. <br />You can do so at the <a href=\"%s\">reCaptcha settings page</a>."
|
80 |
+
msgstr "<strong>reCaptcha necesita tu atención</strong> Para que funcione, necesitas introducir una llave API <br />Puedes hacerlo en los <a href=\"%s\">ajustes de reCaptcha</a>."
|
81 |
+
|
82 |
+
#: inc/class-wp_recaptcha_options.php:183
|
83 |
+
#@ wp-recaptcha-integration
|
84 |
+
msgid "Site key"
|
85 |
+
msgstr "Clave del sitio"
|
86 |
+
|
87 |
+
#: inc/class-wp_recaptcha_options.php:184
|
88 |
+
#@ wp-recaptcha-integration
|
89 |
+
msgid "Secret key"
|
90 |
+
msgstr "Clave secreta"
|
91 |
+
|
92 |
+
#: inc/class-wp_recaptcha_options.php:220
|
93 |
+
#@ default
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
msgid "Language Settings"
|
95 |
msgstr "Ajustes de lenguaje"
|
96 |
|
97 |
+
#: inc/class-wp_recaptcha_options.php:204
|
98 |
+
#@ wp-recaptcha-integration
|
99 |
msgid "Flavor"
|
100 |
msgstr "Sabor"
|
101 |
|
102 |
+
#: inc/class-wp_recaptcha_options.php:211
|
103 |
+
#@ wp-recaptcha-integration
|
104 |
msgid "No Captcha where you just click a button"
|
105 |
msgstr "Sin Captcha, dónde sólo hace falta pulsar un botón"
|
106 |
|
107 |
+
#: inc/class-wp_recaptcha_options.php:215
|
108 |
+
#@ wp-recaptcha-integration
|
109 |
msgid "Old style reCAPTCHA where you type some cryptic text"
|
110 |
msgstr "reCaptcha clásico, dónde descifras un texto críptico"
|
111 |
|
112 |
+
#: inc/class-wp_recaptcha_contactform7.php:98
|
113 |
+
#: inc/class-wp_recaptcha_ninjaforms.php:72
|
114 |
+
#: inc/class-wp_recaptcha_options.php:222
|
115 |
+
#@ contact-form-7
|
116 |
+
#@ wp-recaptcha-integration
|
117 |
msgid "Theme"
|
118 |
msgstr "Tema"
|
119 |
|
120 |
+
#: inc/class-wp_recaptcha_options.php:224
|
121 |
+
#@ wp-recaptcha-integration
|
122 |
msgid "Disable Submit Button"
|
123 |
msgstr "Desactiva Botón de Enviar"
|
124 |
|
125 |
+
#: inc/class-wp_recaptcha_options.php:226
|
126 |
+
#@ wp-recaptcha-integration
|
127 |
msgid "Disable Form Submit Button until no-captcha is entered."
|
128 |
msgstr "Desactivar botón de enviar hasta que el reCaptcha haya sido resuelto"
|
129 |
|
130 |
+
#: inc/class-wp_recaptcha_options.php:313
|
131 |
+
#@ wp-recaptcha-integration
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
msgid "Disable for known users"
|
133 |
msgstr "Desactivar para usuarios conocidos"
|
134 |
|
135 |
+
#: inc/class-wp_recaptcha_options.php:315
|
136 |
+
#@ wp-recaptcha-integration
|
137 |
msgid "Disable reCaptcha verification for logged in users."
|
138 |
msgstr "Desactiva la verificación reCaptcha para usuarios conectados"
|
139 |
|
140 |
+
#: inc/class-wp_recaptcha_options.php:328
|
141 |
+
#@ wp-recaptcha-integration
|
142 |
+
msgid "Please configure the public and private key. <a href=\"http://www.google.com/recaptcha/whyrecaptcha\">What are you trying to tell me?</a>"
|
143 |
+
msgstr "Por favor configura las llaves pública y privada. <a href=\"http://www.google.com/recaptcha/whyrecaptcha\">¿De qué me estás hablando?</a>"
|
144 |
|
145 |
+
#: inc/class-wp_recaptcha_options.php:341
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#, php-format
|
147 |
+
#@ wp-recaptcha-integration
|
148 |
+
msgid "Please register your blog through the <a href=\"%s\">Google reCAPTCHA admin page</a> and enter the public and private key in the fields below. <a href=\"%s\">What is this all about?</a>"
|
149 |
+
msgstr "Por favor registra tu blog en la <a href=\"%s\">página de Administración de reCAPTCHA de Google</a>, e introduce las llaves públicas y privadas en los campos de más abajo. <a href=\"%s\">Si no sabes de que va esto, pincha aquí</a>"
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
|
151 |
+
#: inc/class-wp_recaptcha_options.php:349
|
152 |
+
#@ wp-recaptcha-integration
|
153 |
msgid "You already entered an API Key. Use the button below to enter it again."
|
154 |
+
msgstr "Ya has introducido una llave API. Usa el botón de aquí abajo para volver a hacerlo."
|
|
|
|
|
155 |
|
156 |
+
#: inc/class-wp_recaptcha_options.php:364
|
157 |
+
#@ wp-recaptcha-integration
|
158 |
msgid "New API Key"
|
159 |
msgstr "Nueva llave API"
|
160 |
|
161 |
+
#: inc/class-wp_recaptcha_options.php:365
|
162 |
+
#@ wp-recaptcha-integration
|
163 |
msgid "Test API Key"
|
164 |
msgstr "Probar llave API"
|
165 |
|
166 |
+
#: inc/class-wp_recaptcha_options.php:419
|
167 |
+
#@ wp-recaptcha-integration
|
168 |
msgid "Test verfication"
|
169 |
msgstr "Probar verificación"
|
170 |
|
171 |
+
#: inc/class-wp_recaptcha_options.php:432
|
172 |
+
#@ wp-recaptcha-integration
|
173 |
msgid "The secret Key is missing."
|
174 |
msgstr "Falta la llave secreta"
|
175 |
|
176 |
+
#: inc/class-wp_recaptcha_options.php:433
|
177 |
+
#@ wp-recaptcha-integration
|
178 |
+
msgid "The secret Key is invalid. You better check your domain configuration and enter it again."
|
179 |
+
msgstr "La llave secreta es inválida. Verifica la configuración de tu dominio y vuelve a intentarlo."
|
|
|
|
|
|
|
180 |
|
181 |
+
#: inc/class-wp_recaptcha_options.php:434
|
182 |
+
#@ wp-recaptcha-integration
|
183 |
msgid "The user response was missing"
|
184 |
msgstr "No se ha recibido la respuesta del usuario"
|
185 |
|
186 |
+
#: inc/class-wp_recaptcha_options.php:435
|
187 |
+
#@ wp-recaptcha-integration
|
188 |
msgid "Invalid user response"
|
189 |
msgstr "Respuesta de usuario inválida"
|
190 |
|
191 |
+
#: inc/class-wp_recaptcha_options.php:444
|
192 |
+
#@ wp-recaptcha-integration
|
193 |
msgid "Works! All good!"
|
194 |
msgstr "¡Funciona! ¡Todo bien!"
|
195 |
|
196 |
+
#: inc/class-wp_recaptcha_options.php:456
|
197 |
+
#@ default
|
198 |
msgid "Cancel"
|
199 |
msgstr "Cancelar"
|
200 |
|
201 |
+
#: inc/class-wp_recaptcha_options.php:577
|
202 |
+
#@ wp-recaptcha-integration
|
203 |
msgid "Automatic"
|
204 |
msgstr "Automático"
|
205 |
|
206 |
+
#: inc/class-wp_recaptcha_options.php:578
|
207 |
+
#@ default
|
208 |
msgid "Site Language"
|
209 |
msgstr "Idioma del sitio"
|
210 |
|
211 |
+
#: inc/class-wp_recaptcha_options.php:579
|
212 |
+
#@ default
|
213 |
msgid "Other"
|
214 |
msgstr "Otro"
|
215 |
|
216 |
+
#: inc/class-wp_recaptcha_nocaptcha.php:88
|
217 |
+
#@ wp-recaptcha-integration
|
218 |
msgid "Light"
|
219 |
msgstr "Claro"
|
220 |
|
221 |
+
#: inc/class-wp_recaptcha_nocaptcha.php:91
|
222 |
+
#@ wp-recaptcha-integration
|
223 |
msgid "Dark"
|
224 |
msgstr "Oscuro"
|
225 |
|
226 |
+
#: inc/class-wp_recaptcha_recaptcha.php:51
|
227 |
+
#@ wp-recaptcha-integration
|
228 |
msgid "Red"
|
229 |
msgstr "Rojo"
|
230 |
|
231 |
+
#: inc/class-wp_recaptcha_recaptcha.php:54
|
232 |
+
#@ wp-recaptcha-integration
|
233 |
msgid "White"
|
234 |
msgstr "Blanco"
|
235 |
|
236 |
+
#: inc/class-wp_recaptcha_recaptcha.php:57
|
237 |
+
#@ wp-recaptcha-integration
|
238 |
msgid "Black Glass"
|
239 |
msgstr "Cristal Oscuro"
|
240 |
|
241 |
+
#: inc/class-wp_recaptcha_recaptcha.php:60
|
242 |
+
#@ wp-recaptcha-integration
|
243 |
msgid "Clean"
|
244 |
msgstr "Limpiar"
|
245 |
|
246 |
+
#: inc/class-wp_recaptcha_recaptcha.php:63
|
247 |
+
#@ wp-recaptcha-integration
|
248 |
msgid "Custom"
|
249 |
msgstr "Perzonalizado"
|
250 |
|
251 |
+
#: inc/class-wp_recaptcha_options.php:617
|
252 |
+
#@ wp-recaptcha-integration
|
253 |
msgid "Unstyled HTML to apply your own Stylesheets."
|
254 |
msgstr "HTML sin estilo para aplicar sus propias hojas de estilo."
|
255 |
|
256 |
+
#: inc/class-wp_recaptcha_options.php:690
|
257 |
+
#: inc/class-wp_recaptcha_options.php:715
|
258 |
+
#@ wp-recaptcha-integration
|
259 |
msgid "ReCaptcha"
|
260 |
msgstr "ReCaptcha"
|
261 |
|
262 |
+
#: inc/class-wp_recaptcha_options.php:713
|
263 |
+
#@ default
|
264 |
msgid "Settings"
|
265 |
msgstr "Ajustes"
|
266 |
|
267 |
+
#: inc/class-wp_recaptcha_recaptcha.php:146
|
268 |
+
#@ wp-recaptcha-integration
|
269 |
msgid "Incorrect please try again"
|
270 |
msgstr "Incorrecto, por favor inténtalo otra vez"
|
271 |
|
272 |
+
#: inc/class-wp_recaptcha_recaptcha.php:148
|
273 |
+
#@ wp-recaptcha-integration
|
274 |
msgid "Enter the words above:"
|
275 |
msgstr "Introduce las palabras de aquí arriba:"
|
276 |
|
277 |
+
#: inc/class-wp_recaptcha_recaptcha.php:149
|
278 |
+
#@ wp-recaptcha-integration
|
279 |
msgid "Enter the numbers you hear:"
|
280 |
msgstr "Introduce los números que oyes:"
|
281 |
|
282 |
+
#: inc/class-wp_recaptcha_recaptcha.php:153
|
283 |
+
#@ wp-recaptcha-integration
|
284 |
msgid "Get another CAPTCHA"
|
285 |
msgstr "Cargar otro CAPTCHA"
|
286 |
|
287 |
+
#: inc/class-wp_recaptcha_recaptcha.php:154
|
288 |
+
#@ wp-recaptcha-integration
|
289 |
msgid "Get an audio CAPTCHA"
|
290 |
msgstr "Usa un Captcha de Audio"
|
291 |
|
292 |
+
#: inc/class-wp_recaptcha_recaptcha.php:155
|
293 |
+
#@ wp-recaptcha-integration
|
294 |
msgid "Get an image CAPTCHA"
|
295 |
msgstr "Usa un Captcha de Imágen"
|
296 |
+
|
297 |
+
#: inc/class-wp_recaptcha_contactform7.php:100
|
298 |
+
#: inc/class-wp_recaptcha_ninjaforms.php:64
|
299 |
+
#@ wp-recaptcha-integration
|
300 |
+
msgid "Use default"
|
301 |
+
msgstr ""
|
302 |
+
|
303 |
+
#: inc/class-wp_recaptcha_options.php:173
|
304 |
+
#: inc/class-wp_recaptcha_options.php:177
|
305 |
+
#@ wp-recaptcha-integration
|
306 |
+
msgid "Connect"
|
307 |
+
msgstr ""
|
308 |
+
|
309 |
+
#: inc/class-wp_recaptcha_options.php:174
|
310 |
+
#@ wp-recaptcha-integration
|
311 |
+
msgid "Protect"
|
312 |
+
msgstr ""
|
313 |
+
|
314 |
+
#: inc/class-wp_recaptcha_options.php:175
|
315 |
+
#@ wp-recaptcha-integration
|
316 |
+
msgid "Style"
|
317 |
+
msgstr ""
|
318 |
+
|
319 |
+
#: inc/class-wp_recaptcha_options.php:282
|
320 |
+
#@ wp-recaptcha-integration
|
321 |
+
msgid "Comment Form"
|
322 |
+
msgstr ""
|
323 |
+
|
324 |
+
#: inc/class-wp_recaptcha_options.php:287
|
325 |
+
#@ wp-recaptcha-integration
|
326 |
+
msgid "Signup Form"
|
327 |
+
msgstr ""
|
328 |
+
|
329 |
+
#: inc/class-wp_recaptcha_options.php:292
|
330 |
+
#@ wp-recaptcha-integration
|
331 |
+
msgid "Login Form"
|
332 |
+
msgstr ""
|
333 |
+
|
334 |
+
#: inc/class-wp_recaptcha_options.php:297
|
335 |
+
#@ wp-recaptcha-integration
|
336 |
+
msgid "Lost Password Form"
|
337 |
+
msgstr ""
|
338 |
+
|
339 |
+
#: inc/class-wp_recaptcha_options.php:304
|
340 |
+
#@ wp-recaptcha-integration
|
341 |
+
msgid "woocommerce Checkout"
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: inc/class-wp_recaptcha_options.php:308
|
345 |
+
#@ wp-recaptcha-integration
|
346 |
+
msgid "Forms to protect"
|
347 |
+
msgstr ""
|
348 |
+
|
349 |
+
#: inc/class-wp_recaptcha_options.php:317
|
350 |
+
#@ wp-recaptcha-integration
|
351 |
+
msgid "Prevent lockout"
|
352 |
+
msgstr ""
|
353 |
+
|
354 |
+
#: inc/class-wp_recaptcha_options.php:321
|
355 |
+
#@ wp-recaptcha-integration
|
356 |
+
msgid "Allow administrator to log in if API keys do not work."
|
357 |
+
msgstr ""
|
358 |
+
|
359 |
+
#: inc/class-wp_recaptcha_options.php:322
|
360 |
+
#@ wp-recaptcha-integration
|
361 |
+
msgid "When the captcha verification fails, and the private or public API key does not work the plugin will let you in anyway. Please note that with this option checked plus a broken keypair your site will be open to brute force attacks, that try to guess an administrator password."
|
362 |
+
msgstr ""
|
363 |
+
|
364 |
+
#: inc/class-wp_recaptcha_options.php:377
|
365 |
+
#@ wp-recaptcha-integration
|
366 |
+
msgid "Select which forms you want to protect with a captcha."
|
367 |
+
msgstr ""
|
368 |
+
|
369 |
+
#: inc/class-wp_recaptcha_options.php:387
|
370 |
+
#@ wp-recaptcha-integration
|
371 |
+
msgid "Choose a flavor and theme for your Captcha. Please note that with the old style reCaptcha you cannot have more than one captcha per page."
|
372 |
+
msgstr ""
|
373 |
+
|
374 |
+
#: inc/class-wp_recaptcha_woocommerce.php:72
|
375 |
+
#@ wp-recaptcha-integration
|
376 |
+
msgid "Are you human"
|
377 |
+
msgstr ""
|
378 |
+
|
languages/wp-recaptcha-integration-pt_BR.mo
CHANGED
Binary file
|
languages/wp-recaptcha-integration-pt_BR.po
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
-
"Project-Id-Version: WP reCaptcha Integration v1.0
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: \n"
|
6 |
-
"PO-Revision-Date: 2015-
|
7 |
"Last-Translator: Vinícius Ferraz <contato@viniciusferraz.com>\n"
|
8 |
"Language-Team: Lenura Soluções Web Sustentáveis <contato@lenura.com.br>\n"
|
9 |
"MIME-Version: 1.0\n"
|
@@ -11,333 +11,374 @@ msgstr ""
|
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
"X-Generator: Poedit 1.7.3\n"
|
|
|
|
|
14 |
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2
|
16 |
"X-Poedit-Basepath: ../\n"
|
17 |
-
"X-
|
18 |
-
"Language: pt_BR\n"
|
19 |
"X-Poedit-SearchPath-0: .\n"
|
20 |
-
|
21 |
-
|
22 |
-
#: inc/class-
|
23 |
-
#: inc/class-
|
24 |
-
#: inc/
|
25 |
-
#: wp-recaptcha-integration.php:
|
|
|
|
|
|
|
|
|
26 |
msgid "<strong>Error:</strong> the Captcha didn’t verify."
|
27 |
msgstr "<strong>Erro:</strong> o CAPTCHA digitado está incorreto."
|
28 |
|
29 |
-
|
30 |
-
|
31 |
msgid "Incorrect please try again"
|
32 |
msgstr "Desculpe, o CAPTCHA digitado está incorreto."
|
33 |
|
34 |
-
|
35 |
-
|
36 |
msgid "Enter the words above:"
|
37 |
msgstr "Digite as palavras acima:"
|
38 |
|
39 |
-
|
40 |
-
|
41 |
msgid "Enter the numbers you hear:"
|
42 |
msgstr "Digite os números que você ouviu:"
|
43 |
|
44 |
-
|
45 |
-
|
46 |
msgid "Get another CAPTCHA"
|
47 |
msgstr "Obter um novo CAPTCHA"
|
48 |
|
49 |
-
|
50 |
-
|
51 |
msgid "Get an audio CAPTCHA"
|
52 |
msgstr "Ouvir o CAPTCHA"
|
53 |
|
54 |
-
|
55 |
-
|
56 |
msgid "Get an image CAPTCHA"
|
57 |
msgstr "Obter um CAPTCHA"
|
58 |
|
59 |
-
|
60 |
-
#: inc/
|
|
|
61 |
msgid "reCAPTCHA"
|
62 |
msgstr "reCAPTCHA"
|
63 |
|
64 |
-
|
65 |
-
|
66 |
msgid "Required field?"
|
67 |
msgstr "Campo obrigatório?"
|
68 |
|
69 |
-
|
70 |
-
|
71 |
msgid "Name"
|
72 |
msgstr "Nome"
|
73 |
|
74 |
-
|
75 |
-
|
76 |
msgid "Copy this code and paste it into the form left."
|
77 |
msgstr "Copie e cole este código no formulário."
|
78 |
|
79 |
-
|
80 |
-
|
81 |
msgid "The Captcha didn’t verify."
|
82 |
msgstr "O CAPTCHA digitado está incorreto.Sicherheitstest nicht bestanden"
|
83 |
|
84 |
-
|
85 |
-
#: inc/class-wp-recaptcha-options.php:152
|
86 |
#, php-format
|
|
|
87 |
msgid "<strong>reCaptcha needs your attention:</strong> To make it work You need to enter an api key. <br />You can do so at the <a href=\"%s\">reCaptcha settings page</a>."
|
88 |
msgstr ""
|
89 |
"<strong>O reCAPTCHA \n"
|
90 |
"precisa da sua atenção:</strong> Para que o reCaptcha funcione corretamente você deverá obter uma Chave de API. <br />Você poderá fazer isto na <a \n"
|
91 |
"href=\"%s\">página de configurações do reCaptcha</a>."
|
92 |
|
93 |
-
|
94 |
-
|
95 |
-
msgid "
|
96 |
-
msgstr "Chave pública (
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
msgid "
|
101 |
-
msgstr "Chave privada (
|
102 |
-
|
103 |
-
# @ wp-recaptcha-integration
|
104 |
-
#: inc/class-wp-recaptcha-options.php:175
|
105 |
-
#: inc/class-wp-recaptcha-options.php:181
|
106 |
-
msgid "Connecting"
|
107 |
-
msgstr "Conectando"
|
108 |
-
|
109 |
-
# @ wp-recaptcha-integration
|
110 |
-
#: inc/class-wp-recaptcha-options.php:269
|
111 |
-
msgid "Features"
|
112 |
-
msgstr "Configurações"
|
113 |
|
114 |
-
|
115 |
-
|
116 |
msgid "Flavor"
|
117 |
msgstr "Tipo de CAPTCHA"
|
118 |
|
119 |
-
|
120 |
-
|
121 |
msgid "Old style reCAPTCHA where you type some cryptic text"
|
122 |
msgstr "reCAPTCHA \"Classico\", no qual o usuário digita um texto legível para humanos"
|
123 |
|
124 |
-
|
125 |
-
#: inc/class-
|
|
|
|
|
|
|
126 |
msgid "Theme"
|
127 |
msgstr "Tema"
|
128 |
|
129 |
-
|
130 |
-
|
131 |
-
msgid "Protect Comments"
|
132 |
-
msgstr "Proteger Comentários"
|
133 |
-
|
134 |
-
# @ wp-recaptcha-integration
|
135 |
-
#: inc/class-wp-recaptcha-options.php:231
|
136 |
-
msgid "Protect comment forms with recaptcha."
|
137 |
-
msgstr "Protege o formulário dos comentários com o reCAPTCHA."
|
138 |
-
|
139 |
-
# @ wp-recaptcha-integration
|
140 |
-
#: inc/class-wp-recaptcha-options.php:234
|
141 |
-
msgid "Protect Signup"
|
142 |
-
msgstr "Proteger Cadastro"
|
143 |
-
|
144 |
-
# @ wp-recaptcha-integration
|
145 |
-
#: inc/class-wp-recaptcha-options.php:236
|
146 |
-
msgid "Protect signup form with recaptcha."
|
147 |
-
msgstr "Protege o formulário de cadastro de novos usuários com o reCAPTCHA."
|
148 |
-
|
149 |
-
# @ wp-recaptcha-integration
|
150 |
-
#: inc/class-wp-recaptcha-options.php:239
|
151 |
-
msgid "Protect Login"
|
152 |
-
msgstr "Proteger Login"
|
153 |
-
|
154 |
-
# @ wp-recaptcha-integration
|
155 |
-
#: inc/class-wp-recaptcha-options.php:241
|
156 |
-
msgid "Protect Login form with recaptcha."
|
157 |
-
msgstr "Protege o formulário de login com o reCAPTCHA."
|
158 |
-
|
159 |
-
# @ wp-recaptcha-integration
|
160 |
-
#: inc/class-wp-recaptcha-options.php:264
|
161 |
msgid "Disable for known users"
|
162 |
msgstr "Desabilitar para usuários logados."
|
163 |
|
164 |
-
|
165 |
-
|
166 |
msgid "Disable reCaptcha verification for logged in users."
|
167 |
msgstr "Se o usuário estiver logado, não exigir o reCAPTCHA nos formulários."
|
168 |
|
169 |
-
|
170 |
-
|
171 |
msgid "Please configure the public and private key. <a href=\"http://www.google.com/recaptcha/whyrecaptcha\">What are you trying to tell me?</a>"
|
172 |
msgstr "Por favor, configure as chaves pública (Public Key) e privada (Private Key). <a href=\"http://www.google.com/recaptcha/whyrecaptcha\">O que isso significa?</a>"
|
173 |
|
174 |
-
|
175 |
-
#: inc/class-wp-recaptcha-options.php:285
|
176 |
#, php-format
|
177 |
-
|
|
|
178 |
msgstr ""
|
179 |
"Por favor, registre seu site através do <a href=\"%s\">site do Google reCAPTCHA</a> \n"
|
180 |
"e entre com as chaves pública (Public Key) e privada (Private Key) nos campos abaixo. <a \n"
|
181 |
"href=\"%s\">O que isso significa?</a>"
|
182 |
|
183 |
-
|
184 |
-
|
185 |
msgid "You already entered an API Key. Use the button below to enter it again."
|
186 |
msgstr "Você já forneceu uma Chave de API. Utilize o botão abaixo para fornecer outra."
|
187 |
|
188 |
-
|
189 |
-
|
190 |
msgid "New API Key"
|
191 |
msgstr "Nova Chave de API"
|
192 |
|
193 |
-
|
194 |
-
|
195 |
msgid "Cancel"
|
196 |
msgstr "Cancelar"
|
197 |
|
198 |
-
|
199 |
-
|
200 |
msgid "Light"
|
201 |
msgstr "Light"
|
202 |
|
203 |
-
|
204 |
-
|
205 |
msgid "Dark"
|
206 |
msgstr "Escuro"
|
207 |
|
208 |
-
|
209 |
-
|
210 |
msgid "Red"
|
211 |
msgstr "Vermelho"
|
212 |
|
213 |
-
|
214 |
-
|
215 |
msgid "White"
|
216 |
msgstr "Branco"
|
217 |
|
218 |
-
|
219 |
-
|
220 |
msgid "Black Glass"
|
221 |
msgstr "Preto"
|
222 |
|
223 |
-
|
224 |
-
|
225 |
msgid "Clean"
|
226 |
msgstr "Clean"
|
227 |
|
228 |
-
|
229 |
-
|
230 |
msgid "Custom"
|
231 |
msgstr "Personalizado"
|
232 |
|
233 |
-
|
234 |
-
|
235 |
msgid "Unstyled HTML to apply your own Stylesheets."
|
236 |
msgstr "HTML puro para que você aplique seu estilo."
|
237 |
|
238 |
-
|
239 |
-
#: inc/class-
|
240 |
-
|
241 |
msgid "ReCaptcha"
|
242 |
msgstr "reCAPTCHA"
|
243 |
|
244 |
-
|
245 |
-
|
246 |
msgid "Settings"
|
247 |
msgstr "Configurações"
|
248 |
|
249 |
-
|
250 |
-
|
251 |
msgid "No Captcha where you just click a button"
|
252 |
msgstr "\"Sem CAPTCHA\", no qual o usuário apenas clica em um botão"
|
253 |
|
254 |
-
|
255 |
-
#: inc/class-
|
256 |
-
|
257 |
-
msgstr "Proteger Recuperação de Senha"
|
258 |
-
|
259 |
-
# @ wp-recaptcha-integration
|
260 |
-
#: inc/class-wp-recaptcha-options.php:246
|
261 |
-
msgid "Protect Lost Password form with recaptcha."
|
262 |
-
msgstr "Protege o formulário de recuperação de senhas."
|
263 |
-
|
264 |
-
# @ wp-recaptcha-integration
|
265 |
-
#: inc/class-wp-recaptcha-options.php:93
|
266 |
-
#: inc/class-wp-recaptcha-options.php:105
|
267 |
msgid "reCaptcha Settings"
|
268 |
msgstr "Configurações do reCAPTCHA"
|
269 |
|
270 |
-
|
271 |
-
|
272 |
msgid "reCaptcha"
|
273 |
msgstr "reCAPTCHA"
|
274 |
|
275 |
-
|
276 |
-
|
277 |
msgid "Test API Key"
|
278 |
msgstr "Testar Chave de API"
|
279 |
|
280 |
-
|
281 |
-
|
282 |
msgid "Test verfication"
|
283 |
msgstr "Verificação do Teste"
|
284 |
|
285 |
-
|
286 |
-
|
287 |
msgid "The secret Key is missing."
|
288 |
msgstr "A chave privada não foi encontrada."
|
289 |
|
290 |
-
|
291 |
-
|
292 |
msgid "The secret Key is invalid. You better check your domain configuration and enter it again."
|
293 |
msgstr "A chave privada é inválida. Verifique as configurações de domínio no site do Google reCAPTCHA e tente novamente."
|
294 |
|
295 |
-
|
296 |
-
|
297 |
msgid "Invalid user response"
|
298 |
msgstr "Resposta de usuário inválida"
|
299 |
|
300 |
-
|
301 |
-
|
302 |
msgid "Works! All good!"
|
303 |
msgstr "Funcionou! Tudo bem!"
|
304 |
|
305 |
-
|
306 |
-
|
307 |
msgid "Disable Submit Button"
|
308 |
msgstr "Desabilitar Botão Enviar"
|
309 |
|
310 |
-
|
311 |
-
|
312 |
msgid "Disable Form Submit Button until no-captcha is entered."
|
313 |
msgstr "Desabilitar o botão Enviar enquanto o usuário não digita nada."
|
314 |
|
315 |
-
|
316 |
-
|
317 |
msgid "Please enable JavaScript to submit this form."
|
318 |
msgstr "Por favor, habilite o JavaScript para enviar este formulário."
|
319 |
|
320 |
-
|
321 |
-
|
322 |
msgid "The user response was missing"
|
323 |
msgstr "Nenhum CAPTCHA foi digitado"
|
324 |
|
325 |
-
|
326 |
-
#: inc/class-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
#: inc/class-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
+
"Project-Id-Version: WP reCaptcha Integration v1.1.0\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: \n"
|
6 |
+
"PO-Revision-Date: 2015-02-25 14:37:26+0000\n"
|
7 |
"Last-Translator: Vinícius Ferraz <contato@viniciusferraz.com>\n"
|
8 |
"Language-Team: Lenura Soluções Web Sustentáveis <contato@lenura.com.br>\n"
|
9 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
"X-Generator: Poedit 1.7.3\n"
|
14 |
+
"X-Poedit-Language: \n"
|
15 |
+
"X-Poedit-Country: \n"
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
+
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
18 |
"X-Poedit-Basepath: ../\n"
|
19 |
+
"X-Poedit-Bookmarks: \n"
|
|
|
20 |
"X-Poedit-SearchPath-0: .\n"
|
21 |
+
"X-Textdomain-Support: yes"
|
22 |
+
|
23 |
+
#: inc/class-wp_recaptcha_ninjaforms.php:134
|
24 |
+
#: inc/class-wp_recaptcha_woocommerce.php:83
|
25 |
+
#: inc/class-wp_recaptcha_woocommerce.php:92
|
26 |
+
#: wp-recaptcha-integration.php:372
|
27 |
+
#: wp-recaptcha-integration.php:418
|
28 |
+
#: wp-recaptcha-integration.php:432
|
29 |
+
#: wp-recaptcha-integration.php:444
|
30 |
+
#@ wp-recaptcha-integration
|
31 |
msgid "<strong>Error:</strong> the Captcha didn’t verify."
|
32 |
msgstr "<strong>Erro:</strong> o CAPTCHA digitado está incorreto."
|
33 |
|
34 |
+
#: inc/class-wp_recaptcha_recaptcha.php:146
|
35 |
+
#@ wp-recaptcha-integration
|
36 |
msgid "Incorrect please try again"
|
37 |
msgstr "Desculpe, o CAPTCHA digitado está incorreto."
|
38 |
|
39 |
+
#: inc/class-wp_recaptcha_recaptcha.php:148
|
40 |
+
#@ wp-recaptcha-integration
|
41 |
msgid "Enter the words above:"
|
42 |
msgstr "Digite as palavras acima:"
|
43 |
|
44 |
+
#: inc/class-wp_recaptcha_recaptcha.php:149
|
45 |
+
#@ wp-recaptcha-integration
|
46 |
msgid "Enter the numbers you hear:"
|
47 |
msgstr "Digite os números que você ouviu:"
|
48 |
|
49 |
+
#: inc/class-wp_recaptcha_recaptcha.php:153
|
50 |
+
#@ wp-recaptcha-integration
|
51 |
msgid "Get another CAPTCHA"
|
52 |
msgstr "Obter um novo CAPTCHA"
|
53 |
|
54 |
+
#: inc/class-wp_recaptcha_recaptcha.php:154
|
55 |
+
#@ wp-recaptcha-integration
|
56 |
msgid "Get an audio CAPTCHA"
|
57 |
msgstr "Ouvir o CAPTCHA"
|
58 |
|
59 |
+
#: inc/class-wp_recaptcha_recaptcha.php:155
|
60 |
+
#@ wp-recaptcha-integration
|
61 |
msgid "Get an image CAPTCHA"
|
62 |
msgstr "Obter um CAPTCHA"
|
63 |
|
64 |
+
#: inc/class-wp_recaptcha_contactform7.php:78
|
65 |
+
#: inc/class-wp_recaptcha_ninjaforms.php:36
|
66 |
+
#@ wp-recaptcha-integration
|
67 |
msgid "reCAPTCHA"
|
68 |
msgstr "reCAPTCHA"
|
69 |
|
70 |
+
#: inc/class-wp_recaptcha_contactform7.php:91
|
71 |
+
#@ contact-form-7
|
72 |
msgid "Required field?"
|
73 |
msgstr "Campo obrigatório?"
|
74 |
|
75 |
+
#: inc/class-wp_recaptcha_contactform7.php:93
|
76 |
+
#@ contact-form-7
|
77 |
msgid "Name"
|
78 |
msgstr "Nome"
|
79 |
|
80 |
+
#: inc/class-wp_recaptcha_contactform7.php:119
|
81 |
+
#@ contact-form-7
|
82 |
msgid "Copy this code and paste it into the form left."
|
83 |
msgstr "Copie e cole este código no formulário."
|
84 |
|
85 |
+
#: inc/class-wp_recaptcha_contactform7.php:137
|
86 |
+
#@ wp-recaptcha-integration
|
87 |
msgid "The Captcha didn’t verify."
|
88 |
msgstr "O CAPTCHA digitado está incorreto.Sicherheitstest nicht bestanden"
|
89 |
|
90 |
+
#: inc/class-wp_recaptcha_options.php:155
|
|
|
91 |
#, php-format
|
92 |
+
#@ wp-recaptcha-integration
|
93 |
msgid "<strong>reCaptcha needs your attention:</strong> To make it work You need to enter an api key. <br />You can do so at the <a href=\"%s\">reCaptcha settings page</a>."
|
94 |
msgstr ""
|
95 |
"<strong>O reCAPTCHA \n"
|
96 |
"precisa da sua atenção:</strong> Para que o reCaptcha funcione corretamente você deverá obter uma Chave de API. <br />Você poderá fazer isto na <a \n"
|
97 |
"href=\"%s\">página de configurações do reCaptcha</a>."
|
98 |
|
99 |
+
#: inc/class-wp_recaptcha_options.php:183
|
100 |
+
#@ wp-recaptcha-integration
|
101 |
+
msgid "Site key"
|
102 |
+
msgstr "Chave pública (Sitekey)"
|
103 |
+
|
104 |
+
#: inc/class-wp_recaptcha_options.php:184
|
105 |
+
#@ wp-recaptcha-integration
|
106 |
+
msgid "Secret key"
|
107 |
+
msgstr "Chave privada (Secret Key)"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
|
109 |
+
#: inc/class-wp_recaptcha_options.php:204
|
110 |
+
#@ wp-recaptcha-integration
|
111 |
msgid "Flavor"
|
112 |
msgstr "Tipo de CAPTCHA"
|
113 |
|
114 |
+
#: inc/class-wp_recaptcha_options.php:215
|
115 |
+
#@ wp-recaptcha-integration
|
116 |
msgid "Old style reCAPTCHA where you type some cryptic text"
|
117 |
msgstr "reCAPTCHA \"Classico\", no qual o usuário digita um texto legível para humanos"
|
118 |
|
119 |
+
#: inc/class-wp_recaptcha_contactform7.php:98
|
120 |
+
#: inc/class-wp_recaptcha_ninjaforms.php:72
|
121 |
+
#: inc/class-wp_recaptcha_options.php:222
|
122 |
+
#@ contact-form-7
|
123 |
+
#@ wp-recaptcha-integration
|
124 |
msgid "Theme"
|
125 |
msgstr "Tema"
|
126 |
|
127 |
+
#: inc/class-wp_recaptcha_options.php:313
|
128 |
+
#@ wp-recaptcha-integration
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
msgid "Disable for known users"
|
130 |
msgstr "Desabilitar para usuários logados."
|
131 |
|
132 |
+
#: inc/class-wp_recaptcha_options.php:315
|
133 |
+
#@ wp-recaptcha-integration
|
134 |
msgid "Disable reCaptcha verification for logged in users."
|
135 |
msgstr "Se o usuário estiver logado, não exigir o reCAPTCHA nos formulários."
|
136 |
|
137 |
+
#: inc/class-wp_recaptcha_options.php:328
|
138 |
+
#@ wp-recaptcha-integration
|
139 |
msgid "Please configure the public and private key. <a href=\"http://www.google.com/recaptcha/whyrecaptcha\">What are you trying to tell me?</a>"
|
140 |
msgstr "Por favor, configure as chaves pública (Public Key) e privada (Private Key). <a href=\"http://www.google.com/recaptcha/whyrecaptcha\">O que isso significa?</a>"
|
141 |
|
142 |
+
#: inc/class-wp_recaptcha_options.php:341
|
|
|
143 |
#, php-format
|
144 |
+
#@ wp-recaptcha-integration
|
145 |
+
msgid "Please register your blog through the <a href=\"%s\">Google reCAPTCHA admin page</a> and enter the public and private key in the fields below. <a href=\"%s\">What is this all about?</a>"
|
146 |
msgstr ""
|
147 |
"Por favor, registre seu site através do <a href=\"%s\">site do Google reCAPTCHA</a> \n"
|
148 |
"e entre com as chaves pública (Public Key) e privada (Private Key) nos campos abaixo. <a \n"
|
149 |
"href=\"%s\">O que isso significa?</a>"
|
150 |
|
151 |
+
#: inc/class-wp_recaptcha_options.php:349
|
152 |
+
#@ wp-recaptcha-integration
|
153 |
msgid "You already entered an API Key. Use the button below to enter it again."
|
154 |
msgstr "Você já forneceu uma Chave de API. Utilize o botão abaixo para fornecer outra."
|
155 |
|
156 |
+
#: inc/class-wp_recaptcha_options.php:364
|
157 |
+
#@ wp-recaptcha-integration
|
158 |
msgid "New API Key"
|
159 |
msgstr "Nova Chave de API"
|
160 |
|
161 |
+
#: inc/class-wp_recaptcha_options.php:456
|
162 |
+
#@ default
|
163 |
msgid "Cancel"
|
164 |
msgstr "Cancelar"
|
165 |
|
166 |
+
#: inc/class-wp_recaptcha_nocaptcha.php:88
|
167 |
+
#@ wp-recaptcha-integration
|
168 |
msgid "Light"
|
169 |
msgstr "Light"
|
170 |
|
171 |
+
#: inc/class-wp_recaptcha_nocaptcha.php:91
|
172 |
+
#@ wp-recaptcha-integration
|
173 |
msgid "Dark"
|
174 |
msgstr "Escuro"
|
175 |
|
176 |
+
#: inc/class-wp_recaptcha_recaptcha.php:51
|
177 |
+
#@ wp-recaptcha-integration
|
178 |
msgid "Red"
|
179 |
msgstr "Vermelho"
|
180 |
|
181 |
+
#: inc/class-wp_recaptcha_recaptcha.php:54
|
182 |
+
#@ wp-recaptcha-integration
|
183 |
msgid "White"
|
184 |
msgstr "Branco"
|
185 |
|
186 |
+
#: inc/class-wp_recaptcha_recaptcha.php:57
|
187 |
+
#@ wp-recaptcha-integration
|
188 |
msgid "Black Glass"
|
189 |
msgstr "Preto"
|
190 |
|
191 |
+
#: inc/class-wp_recaptcha_recaptcha.php:60
|
192 |
+
#@ wp-recaptcha-integration
|
193 |
msgid "Clean"
|
194 |
msgstr "Clean"
|
195 |
|
196 |
+
#: inc/class-wp_recaptcha_recaptcha.php:63
|
197 |
+
#@ wp-recaptcha-integration
|
198 |
msgid "Custom"
|
199 |
msgstr "Personalizado"
|
200 |
|
201 |
+
#: inc/class-wp_recaptcha_options.php:617
|
202 |
+
#@ wp-recaptcha-integration
|
203 |
msgid "Unstyled HTML to apply your own Stylesheets."
|
204 |
msgstr "HTML puro para que você aplique seu estilo."
|
205 |
|
206 |
+
#: inc/class-wp_recaptcha_options.php:690
|
207 |
+
#: inc/class-wp_recaptcha_options.php:715
|
208 |
+
#@ wp-recaptcha-integration
|
209 |
msgid "ReCaptcha"
|
210 |
msgstr "reCAPTCHA"
|
211 |
|
212 |
+
#: inc/class-wp_recaptcha_options.php:713
|
213 |
+
#@ default
|
214 |
msgid "Settings"
|
215 |
msgstr "Configurações"
|
216 |
|
217 |
+
#: inc/class-wp_recaptcha_options.php:211
|
218 |
+
#@ wp-recaptcha-integration
|
219 |
msgid "No Captcha where you just click a button"
|
220 |
msgstr "\"Sem CAPTCHA\", no qual o usuário apenas clica em um botão"
|
221 |
|
222 |
+
#: inc/class-wp_recaptcha_options.php:94
|
223 |
+
#: inc/class-wp_recaptcha_options.php:106
|
224 |
+
#@ wp-recaptcha-integration
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
225 |
msgid "reCaptcha Settings"
|
226 |
msgstr "Configurações do reCAPTCHA"
|
227 |
|
228 |
+
#: inc/class-wp_recaptcha_options.php:95
|
229 |
+
#@ wp-recaptcha-integration
|
230 |
msgid "reCaptcha"
|
231 |
msgstr "reCAPTCHA"
|
232 |
|
233 |
+
#: inc/class-wp_recaptcha_options.php:365
|
234 |
+
#@ wp-recaptcha-integration
|
235 |
msgid "Test API Key"
|
236 |
msgstr "Testar Chave de API"
|
237 |
|
238 |
+
#: inc/class-wp_recaptcha_options.php:419
|
239 |
+
#@ wp-recaptcha-integration
|
240 |
msgid "Test verfication"
|
241 |
msgstr "Verificação do Teste"
|
242 |
|
243 |
+
#: inc/class-wp_recaptcha_options.php:432
|
244 |
+
#@ wp-recaptcha-integration
|
245 |
msgid "The secret Key is missing."
|
246 |
msgstr "A chave privada não foi encontrada."
|
247 |
|
248 |
+
#: inc/class-wp_recaptcha_options.php:433
|
249 |
+
#@ wp-recaptcha-integration
|
250 |
msgid "The secret Key is invalid. You better check your domain configuration and enter it again."
|
251 |
msgstr "A chave privada é inválida. Verifique as configurações de domínio no site do Google reCAPTCHA e tente novamente."
|
252 |
|
253 |
+
#: inc/class-wp_recaptcha_options.php:435
|
254 |
+
#@ wp-recaptcha-integration
|
255 |
msgid "Invalid user response"
|
256 |
msgstr "Resposta de usuário inválida"
|
257 |
|
258 |
+
#: inc/class-wp_recaptcha_options.php:444
|
259 |
+
#@ wp-recaptcha-integration
|
260 |
msgid "Works! All good!"
|
261 |
msgstr "Funcionou! Tudo bem!"
|
262 |
|
263 |
+
#: inc/class-wp_recaptcha_options.php:224
|
264 |
+
#@ wp-recaptcha-integration
|
265 |
msgid "Disable Submit Button"
|
266 |
msgstr "Desabilitar Botão Enviar"
|
267 |
|
268 |
+
#: inc/class-wp_recaptcha_options.php:226
|
269 |
+
#@ wp-recaptcha-integration
|
270 |
msgid "Disable Form Submit Button until no-captcha is entered."
|
271 |
msgstr "Desabilitar o botão Enviar enquanto o usuário não digita nada."
|
272 |
|
273 |
+
#: inc/class-wp_recaptcha_nocaptcha.php:198
|
274 |
+
#@ wp-recaptcha-integration
|
275 |
msgid "Please enable JavaScript to submit this form."
|
276 |
msgstr "Por favor, habilite o JavaScript para enviar este formulário."
|
277 |
|
278 |
+
#: inc/class-wp_recaptcha_options.php:434
|
279 |
+
#@ wp-recaptcha-integration
|
280 |
msgid "The user response was missing"
|
281 |
msgstr "Nenhum CAPTCHA foi digitado"
|
282 |
|
283 |
+
#: inc/class-wp_recaptcha_contactform7.php:100
|
284 |
+
#: inc/class-wp_recaptcha_ninjaforms.php:64
|
285 |
+
#@ wp-recaptcha-integration
|
286 |
+
msgid "Use default"
|
287 |
+
msgstr ""
|
288 |
+
|
289 |
+
#: inc/class-wp_recaptcha_options.php:173
|
290 |
+
#: inc/class-wp_recaptcha_options.php:177
|
291 |
+
#@ wp-recaptcha-integration
|
292 |
+
msgid "Connect"
|
293 |
+
msgstr ""
|
294 |
+
|
295 |
+
#: inc/class-wp_recaptcha_options.php:174
|
296 |
+
#@ wp-recaptcha-integration
|
297 |
+
msgid "Protect"
|
298 |
+
msgstr ""
|
299 |
+
|
300 |
+
#: inc/class-wp_recaptcha_options.php:175
|
301 |
+
#@ wp-recaptcha-integration
|
302 |
+
msgid "Style"
|
303 |
+
msgstr ""
|
304 |
+
|
305 |
+
#: inc/class-wp_recaptcha_options.php:220
|
306 |
+
#@ default
|
307 |
+
msgid "Language Settings"
|
308 |
+
msgstr ""
|
309 |
+
|
310 |
+
#: inc/class-wp_recaptcha_options.php:282
|
311 |
+
#@ wp-recaptcha-integration
|
312 |
+
msgid "Comment Form"
|
313 |
+
msgstr ""
|
314 |
+
|
315 |
+
#: inc/class-wp_recaptcha_options.php:287
|
316 |
+
#@ wp-recaptcha-integration
|
317 |
+
msgid "Signup Form"
|
318 |
+
msgstr ""
|
319 |
+
|
320 |
+
#: inc/class-wp_recaptcha_options.php:292
|
321 |
+
#@ wp-recaptcha-integration
|
322 |
+
msgid "Login Form"
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#: inc/class-wp_recaptcha_options.php:297
|
326 |
+
#@ wp-recaptcha-integration
|
327 |
+
msgid "Lost Password Form"
|
328 |
+
msgstr ""
|
329 |
+
|
330 |
+
#: inc/class-wp_recaptcha_options.php:304
|
331 |
+
#@ wp-recaptcha-integration
|
332 |
+
msgid "woocommerce Checkout"
|
333 |
+
msgstr ""
|
334 |
+
|
335 |
+
#: inc/class-wp_recaptcha_options.php:308
|
336 |
+
#@ wp-recaptcha-integration
|
337 |
+
msgid "Forms to protect"
|
338 |
+
msgstr ""
|
339 |
+
|
340 |
+
#: inc/class-wp_recaptcha_options.php:317
|
341 |
+
#@ wp-recaptcha-integration
|
342 |
+
msgid "Prevent lockout"
|
343 |
+
msgstr ""
|
344 |
+
|
345 |
+
#: inc/class-wp_recaptcha_options.php:321
|
346 |
+
#@ wp-recaptcha-integration
|
347 |
+
msgid "Allow administrator to log in if API keys do not work."
|
348 |
+
msgstr ""
|
349 |
+
|
350 |
+
#: inc/class-wp_recaptcha_options.php:322
|
351 |
+
#@ wp-recaptcha-integration
|
352 |
+
msgid "When the captcha verification fails, and the private or public API key does not work the plugin will let you in anyway. Please note that with this option checked plus a broken keypair your site will be open to brute force attacks, that try to guess an administrator password."
|
353 |
+
msgstr ""
|
354 |
+
|
355 |
+
#: inc/class-wp_recaptcha_options.php:377
|
356 |
+
#@ wp-recaptcha-integration
|
357 |
+
msgid "Select which forms you want to protect with a captcha."
|
358 |
+
msgstr ""
|
359 |
+
|
360 |
+
#: inc/class-wp_recaptcha_options.php:387
|
361 |
+
#@ wp-recaptcha-integration
|
362 |
+
msgid "Choose a flavor and theme for your Captcha. Please note that with the old style reCaptcha you cannot have more than one captcha per page."
|
363 |
+
msgstr ""
|
364 |
+
|
365 |
+
#: inc/class-wp_recaptcha_options.php:577
|
366 |
+
#@ wp-recaptcha-integration
|
367 |
+
msgid "Automatic"
|
368 |
+
msgstr ""
|
369 |
+
|
370 |
+
#: inc/class-wp_recaptcha_options.php:578
|
371 |
+
#@ default
|
372 |
+
msgid "Site Language"
|
373 |
+
msgstr ""
|
374 |
+
|
375 |
+
#: inc/class-wp_recaptcha_options.php:579
|
376 |
+
#@ default
|
377 |
+
msgid "Other"
|
378 |
+
msgstr ""
|
379 |
+
|
380 |
+
#: inc/class-wp_recaptcha_woocommerce.php:72
|
381 |
+
#@ wp-recaptcha-integration
|
382 |
+
msgid "Are you human"
|
383 |
+
msgstr ""
|
384 |
+
|
readme.txt
CHANGED
@@ -1,14 +1,14 @@
|
|
1 |
=== WordPress ReCaptcha Integration ===
|
2 |
Contributors: podpirate
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=F8NKC6TCASUXE
|
4 |
-
Tags: security, captcha, recaptcha, no captcha, login, signup, contact form 7, ninja forms
|
5 |
Requires at least: 3.8
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 1.0
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
-
reCaptcha for login, signup, comment forms, Ninja Forms
|
12 |
|
13 |
== Description ==
|
14 |
|
@@ -24,6 +24,7 @@ form 7 as well as a plugin API for your own integrations.
|
|
24 |
- WooCommerce Support (Only checkout, registration and login form. Not password reset)
|
25 |
- [Ninja Forms](http://ninjaforms.com/) integration
|
26 |
- [Contact Form 7](https://wordpress.org/plugins/contact-form-7/) integration
|
|
|
27 |
|
28 |
= Localizations =
|
29 |
- Brazilian Portuguese (thanks to [Vinícius Ferraz](http://www.viniciusferraz.com))
|
@@ -38,43 +39,125 @@ On a **WP Multisite** you can either activate the plugin network wide or on a si
|
|
38 |
|
39 |
Activated on a single site everything works as usual.
|
40 |
|
41 |
-
With network activation entering the API key and setting up where a
|
42 |
-
is up to the network admin. A blog admin can
|
43 |
-
|
44 |
|
45 |
|
46 |
= Known Limitations =
|
47 |
- You can't have more than one old style reCaptcha on a page. This is a limitiation of
|
48 |
reCaptcha itself. If that's an issue for you, you should use the no Captcha Form.
|
49 |
|
|
|
|
|
|
|
|
|
50 |
- On a **Contact Form 7** when the reCaptcha is disabled (e.g. for logged in users) the field
|
51 |
label will be still visible. This is due to CF7 Shortcode architecture, and can't be fixed.
|
52 |
|
53 |
To handle this there is a filter `recaptcha_disabled_html`. You can return a message for your logged-in
|
54 |
users here. Check out the [GitHub Repo](https://github.com/mcguffin/wp-recaptcha-integration) for details.
|
55 |
|
56 |
-
- Old style
|
57 |
|
58 |
-
- In **WooCommerce** the reset password form can not be protected by a captcha.
|
59 |
-
|
60 |
-
|
|
|
61 |
|
62 |
-
-
|
63 |
-
subscription form.
|
64 |
|
65 |
== Installation ==
|
66 |
|
67 |
First follow the standard [WordPress plugin installation procedere](http://codex.wordpress.org/Managing_Plugins).
|
68 |
|
69 |
-
Then go to the [Google Recaptcha Site](http://www.google.com/recaptcha),
|
70 |
|
71 |
== Frequently asked questions ==
|
72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
= Will you support plugin XYZ? =
|
74 |
|
75 |
If XYZ stands for a widely used free and OpenSource plugin in active development with some
|
76 |
100k+ downloads I will give it a try. Just ask.
|
77 |
|
|
|
78 |
= The captcha does not show up. What’s wrong? =
|
79 |
|
80 |
On the plugin settings page check out if the option “Disable for known users” is activated (it is by default).
|
@@ -94,6 +177,7 @@ Here is some code that will fix it:
|
|
94 |
|
95 |
If the problem still persist, Houston really has a problem, and you are welcome to post a support request.
|
96 |
|
|
|
97 |
= Disabled submit buttons should be grey! Why aren't they? =
|
98 |
|
99 |
Very likely the Author of your Theme didn't care that a non functinal form element should
|
@@ -105,16 +189,19 @@ look different than a functional one. This how you can overcome that issue:
|
|
105 |
- Create a zip Archive out of the included file `grey-out-disabled.php` and name it `grey-out-disabled.zip`.
|
106 |
- Install and activate it like any other WordPress plugin
|
107 |
|
|
|
108 |
= I want my visitors to solve only one Captcha and then never again. Is that possible? =
|
109 |
|
110 |
Yes. You can store in a session if a captcha was solved, and use the `wp_recaptcha_required`
|
111 |
filter to supress further captchas. See (https://github.com/mcguffin/wp-recaptcha-integration#real-world-example)
|
112 |
for a code example.
|
113 |
|
|
|
114 |
= I found a bug. Where should I post it? =
|
115 |
|
116 |
I personally prefer GitHub but you can post it in the forum as well. The plugin code is here: [GitHub](https://github.com/mcguffin/wp-recaptcha-integration)
|
117 |
|
|
|
118 |
= I want to use the latest files. How can I do this? =
|
119 |
|
120 |
Use the GitHub Repo rather than the WordPress Plugin. Do as follows:
|
@@ -131,9 +218,11 @@ Please note that the GitHub repository is more likely to contain unstable and un
|
|
131 |
concerning stability or security (like crashes, vulnerabilities and alike) are more likely to be fixed in
|
132 |
the official WP plugin repository first.
|
133 |
|
|
|
134 |
= I found a bug and fixed it. How can I contribute? =
|
135 |
|
136 |
-
Either post it on [GitHub](https://github.com/mcguffin/wp-recaptcha-integration) or—if you are working on a
|
|
|
137 |
|
138 |
= Will you accept translations? =
|
139 |
|
@@ -144,14 +233,26 @@ or removed some strings in the meantime.
|
|
144 |
As soon as there is a [public centralized repository for WordPress plugin translations](https://translate.wordpress.org/projects/wp-plugins)
|
145 |
I will migrate all the translation stuff there.
|
146 |
|
|
|
147 |
== Screenshots ==
|
148 |
|
149 |
1. Plugin Settings
|
150 |
2. Ninja Form Integration
|
151 |
3. Contact Form 7 Integration
|
152 |
|
|
|
153 |
== Changelog ==
|
154 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
= 1.0.9 =
|
156 |
- Fix: Preserve PHP 5.2 compatibility
|
157 |
|
1 |
=== WordPress ReCaptcha Integration ===
|
2 |
Contributors: podpirate
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=F8NKC6TCASUXE
|
4 |
+
Tags: security, captcha, recaptcha, no captcha, login, signup, contact form 7, ninja forms, woocommerce
|
5 |
Requires at least: 3.8
|
6 |
+
Tested up to: 4.2
|
7 |
+
Stable tag: 1.1.0
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
+
reCaptcha for login, signup, comment forms, Ninja Forms Contact Form 7 and woocommerce.
|
12 |
|
13 |
== Description ==
|
14 |
|
24 |
- WooCommerce Support (Only checkout, registration and login form. Not password reset)
|
25 |
- [Ninja Forms](http://ninjaforms.com/) integration
|
26 |
- [Contact Form 7](https://wordpress.org/plugins/contact-form-7/) integration
|
27 |
+
- For integration in your custom forms see this [wiki article](https://github.com/mcguffin/wp-recaptcha-integration/wiki/Custom-Themes-and-Forms) for details.
|
28 |
|
29 |
= Localizations =
|
30 |
- Brazilian Portuguese (thanks to [Vinícius Ferraz](http://www.viniciusferraz.com))
|
39 |
|
40 |
Activated on a single site everything works as usual.
|
41 |
|
42 |
+
With network activation entering the API key and setting up where a captcha is required
|
43 |
+
is up to the network admin. A blog admin can override the API key e.g. when his blog is
|
44 |
+
running under his/her own domain name.
|
45 |
|
46 |
|
47 |
= Known Limitations =
|
48 |
- You can't have more than one old style reCaptcha on a page. This is a limitiation of
|
49 |
reCaptcha itself. If that's an issue for you, you should use the no Captcha Form.
|
50 |
|
51 |
+
- A No Captcha definitely requires client side JavaScript enabled. That's how it does its
|
52 |
+
sophisticated bot detection magic. There is no fallback. If your visitor does not have
|
53 |
+
JS enabled the captcha test will not let him through.
|
54 |
+
|
55 |
- On a **Contact Form 7** when the reCaptcha is disabled (e.g. for logged in users) the field
|
56 |
label will be still visible. This is due to CF7 Shortcode architecture, and can't be fixed.
|
57 |
|
58 |
To handle this there is a filter `recaptcha_disabled_html`. You can return a message for your logged-in
|
59 |
users here. Check out the [GitHub Repo](https://github.com/mcguffin/wp-recaptcha-integration) for details.
|
60 |
|
61 |
+
- Old style reCaptcha does not work together with **WooCommerce**.
|
62 |
|
63 |
+
- In **WooCommerce** the reset password form can not be protected by a captcha. Woocommerce does
|
64 |
+
not fire any action in the lost password form, so there is no way for the plugin to hook in
|
65 |
+
To overcome this restriction [I asked for a little change](https://github.com/woothemes/woocommerce/pull/7029)
|
66 |
+
in the official WC repository. Sadly it did not make into the WC core.
|
67 |
|
68 |
+
- Due to a lack of filters there is no (and as far as one can see, there will never be)
|
69 |
+
support for the **MailPoet** subscription form.
|
70 |
|
71 |
== Installation ==
|
72 |
|
73 |
First follow the standard [WordPress plugin installation procedere](http://codex.wordpress.org/Managing_Plugins).
|
74 |
|
75 |
+
Then go to the [Google Recaptcha Site](http://www.google.com/recaptcha), register your site and enter your API-Keys on the configuration page.
|
76 |
|
77 |
== Frequently asked questions ==
|
78 |
|
79 |
+
= The login captcha says 'ERROR: (something somthing)'. What can I do? =
|
80 |
+
|
81 |
+
If it says 'Invalid sitekey' and you checked the 'Prevent lockout' option on the plugin
|
82 |
+
settings (it's on by default) you can log in with an administrator account and ignore the
|
83 |
+
captcha. If the keys are really invalid, the plugin will let you in, so you can set up a
|
84 |
+
new keypair.
|
85 |
+
|
86 |
+
When you see "Invalid domain for site key", then the key is okay in general, but not for
|
87 |
+
your domain. The server can not test this case, so an effective lockout prevention is not
|
88 |
+
possible.
|
89 |
+
|
90 |
+
You will either need one of the following:
|
91 |
+
- access to the settings for your sitekey on [reCaptcha API key administration](https://www.google.com/recaptcha/admin#list)
|
92 |
+
- access to your WordPress installation (via SSH or FTP) or database access
|
93 |
+
- database access
|
94 |
+
|
95 |
+
|
96 |
+
**With API key admin**
|
97 |
+
|
98 |
+
1. Look at source code of the login page.
|
99 |
+
|
100 |
+
2. Find the part saying <code>data-sitekey="**XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX**"</code>
|
101 |
+
The part marked in bold is your sitekey.
|
102 |
+
|
103 |
+
3. Go to the [Google reCaptcha API key administration](https://www.google.com/recaptcha/admin#list)
|
104 |
+
|
105 |
+
4. Find the list entry with the sitekey from step 2
|
106 |
+
|
107 |
+
5. If lockout prevention is enabled you can simply delete the key set up a new one.
|
108 |
+
If not enter your domain name at "Domains" in a new line and wait up to 30 minutes.
|
109 |
+
|
110 |
+
|
111 |
+
**With FTP Access:**
|
112 |
+
|
113 |
+
1. Add this line of Code somewhere at the end of your theme functions.php:
|
114 |
+
<code>add_filter('wp_recaptcha_required','__return_false');</code>
|
115 |
+
|
116 |
+
This will disable the chaptcha everywhere.
|
117 |
+
|
118 |
+
2. Set up a new keypair and test it.
|
119 |
+
|
120 |
+
3. Remove the line above from your theme functions.php.
|
121 |
+
|
122 |
+
|
123 |
+
**If you have Database access**
|
124 |
+
|
125 |
+
1. Execute the following SQL-Commands in your Database:
|
126 |
+
<code>DELETE FROM wp_options WHERE option_name = 'recaptcha_publickey';</code>
|
127 |
+
<code>DELETE FROM wp_options WHERE option_name = 'recaptcha_privatekey';</code>
|
128 |
+
|
129 |
+
(Please note that `wp_options` might have a different prefix in your installation.)
|
130 |
+
|
131 |
+
2. After the login you will see a message asking you to set up the API keys.
|
132 |
+
|
133 |
+
3. Set up a new keypair on Google and test it.
|
134 |
+
|
135 |
+
|
136 |
+
**If none of these works for you**
|
137 |
+
|
138 |
+
That's too bad...
|
139 |
+
|
140 |
+
|
141 |
+
= Privacy: Will the captcha send the visitors IP address to google? =
|
142 |
+
|
143 |
+
Yes and no. The captcha verification process, comming into effect after the user has solved
|
144 |
+
the challenge does not require the disclosure of the visitors IP address, so it is omitted.
|
145 |
+
|
146 |
+
But everything related to the displaying of the captcha widget like the challenge image,
|
147 |
+
the JavaScripts and so on is loaded directly from Google and is very likely to be logged,
|
148 |
+
evaluated and stored forever.
|
149 |
+
|
150 |
+
In other words: Google knows which (recaptcha protected) website is accessed from which IP.
|
151 |
+
|
152 |
+
If that's an issue for you, you should rather use a self hosted solution.
|
153 |
+
|
154 |
+
|
155 |
= Will you support plugin XYZ? =
|
156 |
|
157 |
If XYZ stands for a widely used free and OpenSource plugin in active development with some
|
158 |
100k+ downloads I will give it a try. Just ask.
|
159 |
|
160 |
+
|
161 |
= The captcha does not show up. What’s wrong? =
|
162 |
|
163 |
On the plugin settings page check out if the option “Disable for known users” is activated (it is by default).
|
177 |
|
178 |
If the problem still persist, Houston really has a problem, and you are welcome to post a support request.
|
179 |
|
180 |
+
|
181 |
= Disabled submit buttons should be grey! Why aren't they? =
|
182 |
|
183 |
Very likely the Author of your Theme didn't care that a non functinal form element should
|
189 |
- Create a zip Archive out of the included file `grey-out-disabled.php` and name it `grey-out-disabled.zip`.
|
190 |
- Install and activate it like any other WordPress plugin
|
191 |
|
192 |
+
|
193 |
= I want my visitors to solve only one Captcha and then never again. Is that possible? =
|
194 |
|
195 |
Yes. You can store in a session if a captcha was solved, and use the `wp_recaptcha_required`
|
196 |
filter to supress further captchas. See (https://github.com/mcguffin/wp-recaptcha-integration#real-world-example)
|
197 |
for a code example.
|
198 |
|
199 |
+
|
200 |
= I found a bug. Where should I post it? =
|
201 |
|
202 |
I personally prefer GitHub but you can post it in the forum as well. The plugin code is here: [GitHub](https://github.com/mcguffin/wp-recaptcha-integration)
|
203 |
|
204 |
+
|
205 |
= I want to use the latest files. How can I do this? =
|
206 |
|
207 |
Use the GitHub Repo rather than the WordPress Plugin. Do as follows:
|
218 |
concerning stability or security (like crashes, vulnerabilities and alike) are more likely to be fixed in
|
219 |
the official WP plugin repository first.
|
220 |
|
221 |
+
|
222 |
= I found a bug and fixed it. How can I contribute? =
|
223 |
|
224 |
+
Either post it on [GitHub](https://github.com/mcguffin/wp-recaptcha-integration) or—if you are working on a forked repository—send me a pull request.
|
225 |
+
|
226 |
|
227 |
= Will you accept translations? =
|
228 |
|
233 |
As soon as there is a [public centralized repository for WordPress plugin translations](https://translate.wordpress.org/projects/wp-plugins)
|
234 |
I will migrate all the translation stuff there.
|
235 |
|
236 |
+
|
237 |
== Screenshots ==
|
238 |
|
239 |
1. Plugin Settings
|
240 |
2. Ninja Form Integration
|
241 |
3. Contact Form 7 Integration
|
242 |
|
243 |
+
|
244 |
== Changelog ==
|
245 |
|
246 |
+
= 1.1.0 =
|
247 |
+
- Feature: Prevent Lockout - Admins can still log in when the API keys are invalid
|
248 |
+
- Feature: Customize error message on contact form 7 and ninja forms
|
249 |
+
- Filters: add actions `recaptcha_print`, `print_comments_recaptcha` and filters `recaptcha_valid`, `recaptcha_error` for custom forms.
|
250 |
+
- Redesign: settings page
|
251 |
+
- Fix: woocommerce checkout form: fix unnecessary captcha test on new customer registration
|
252 |
+
- Fix: settings: testing keys for multiple times
|
253 |
+
- Fix: settings: key setup -> cancel button target
|
254 |
+
- Fix: settings: test keys only with a nocaptcha
|
255 |
+
|
256 |
= 1.0.9 =
|
257 |
- Fix: Preserve PHP 5.2 compatibility
|
258 |
|
screenshot-1.png
CHANGED
Binary file
|
screenshot-2.png
CHANGED
Binary file
|
screenshot-3.png
CHANGED
Binary file
|
wp-recaptcha-integration.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: WP reCaptcha Integration
|
4 |
Plugin URI: https://wordpress.org/plugins/wp-recaptcha-integration/
|
5 |
Description: Integrate reCaptcha in your blog. Supports no Captcha (new style recaptcha) as well as the old style reCaptcha. Provides of the box integration for signup, login, comment forms, lost password, Ninja Forms and contact form 7.
|
6 |
-
Version: 1.0
|
7 |
Author: Jörn Lund
|
8 |
Author URI: https://github.com/mcguffin/
|
9 |
*/
|
@@ -81,13 +81,15 @@ class WP_reCaptcha {
|
|
81 |
add_site_option('recaptcha_enable_login' , false); // global
|
82 |
add_site_option('recaptcha_enable_lostpw' , false); // global
|
83 |
add_site_option('recaptcha_disable_for_known_users' , true); // global
|
|
|
84 |
$this->_has_api_key = get_site_option( 'recaptcha_publickey' ) && get_site_option( 'recaptcha_privatekey' );
|
85 |
} else {
|
86 |
-
add_option('recaptcha_enable_comments' , true); // global
|
87 |
-
add_option('recaptcha_enable_signup' , true); // global
|
88 |
-
add_option('recaptcha_enable_login' , false); // global
|
89 |
-
add_option('recaptcha_enable_lostpw' , false); // global
|
90 |
-
add_option('recaptcha_disable_for_known_users' , true); // global
|
|
|
91 |
$this->_has_api_key = get_option( 'recaptcha_publickey' ) && get_option( 'recaptcha_privatekey' );
|
92 |
}
|
93 |
|
@@ -101,7 +103,6 @@ class WP_reCaptcha {
|
|
101 |
register_activation_hook( __FILE__ , array( __CLASS__ , 'activate' ) );
|
102 |
register_deactivation_hook( __FILE__ , array( __CLASS__ , 'deactivate' ) );
|
103 |
register_uninstall_hook( __FILE__ , array( __CLASS__ , 'uninstall' ) );
|
104 |
-
|
105 |
}
|
106 |
|
107 |
/**
|
@@ -150,54 +151,71 @@ class WP_reCaptcha {
|
|
150 |
add_filter('comment_form_defaults',array($this,'comment_form_defaults'),10);
|
151 |
//*/
|
152 |
add_action('pre_comment_on_post',array($this,'recaptcha_check_or_die'));
|
|
|
|
|
153 |
}
|
154 |
if ( $this->get_option('recaptcha_enable_signup') ) {
|
155 |
// buddypress suuport.
|
156 |
if ( function_exists('buddypress') ) {
|
157 |
-
add_action('bp_account_details_fields',array($this,'print_recaptcha_html')
|
158 |
-
|
159 |
} else {
|
160 |
-
add_action('register_form',array($this,'print_recaptcha_html')
|
161 |
add_filter('registration_errors',array(&$this,'registration_errors'));
|
162 |
}
|
163 |
if ( is_multisite() ) {
|
164 |
-
add_action( 'signup_extra_fields' , array($this,'print_recaptcha_html')
|
165 |
add_filter('wpmu_validate_user_signup',array(&$this,'wpmu_validate_user_signup'));
|
166 |
}
|
167 |
|
168 |
}
|
169 |
if ( $this->get_option('recaptcha_enable_login') ) {
|
170 |
-
add_action('login_form',array(&$this,'print_recaptcha_html')
|
171 |
add_filter('wp_authenticate_user',array(&$this,'deny_login'),99 );
|
172 |
}
|
173 |
if ( $this->get_option('recaptcha_enable_lostpw') ) {
|
174 |
-
add_action('lostpassword_form' , array($this,'print_recaptcha_html')
|
175 |
//*
|
176 |
-
|
177 |
/*/ // switch this when pull request accepted and included in official WC release.
|
178 |
add_filter('allow_password_reset' , array(&$this,'wp_error') );
|
179 |
//*/
|
180 |
}
|
181 |
if ( 'WPLANG' === $this->get_option( 'recaptcha_language' ) )
|
182 |
-
add_filter( 'wp_recaptcha_language' , array( &$this,'recaptcha_wplang' ) );
|
|
|
|
|
|
|
|
|
183 |
}
|
184 |
}
|
185 |
|
186 |
-
|
|
|
|
|
|
|
|
|
187 |
public function captcha_instance() {
|
188 |
-
if ( is_null( $this->_captcha_instance ) )
|
189 |
-
|
190 |
-
case 'grecaptcha':
|
191 |
-
$this->_captcha_instance = WP_reCaptcha_NoCaptcha::instance();
|
192 |
-
break;
|
193 |
-
case 'recaptcha':
|
194 |
-
$this->_captcha_instance = WP_reCaptcha_ReCaptcha::instance();
|
195 |
-
break;
|
196 |
-
}
|
197 |
-
}
|
198 |
return $this->_captcha_instance;
|
199 |
}
|
200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
/**
|
202 |
* returns if recaptcha is required.
|
203 |
*
|
@@ -337,7 +355,9 @@ class WP_reCaptcha {
|
|
337 |
* @return bool false if check does not validate
|
338 |
*/
|
339 |
function recaptcha_check( ) {
|
340 |
-
|
|
|
|
|
341 |
}
|
342 |
|
343 |
/**
|
@@ -348,8 +368,15 @@ class WP_reCaptcha {
|
|
348 |
* @return object user or wp_error
|
349 |
*/
|
350 |
function deny_login( $user ) {
|
351 |
-
if ( isset( $_POST["log"]) )
|
352 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
return $user;
|
354 |
}
|
355 |
|
@@ -459,6 +486,53 @@ class WP_reCaptcha {
|
|
459 |
return $this->_has_api_key;
|
460 |
}
|
461 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
462 |
|
463 |
//////////////////////////////////
|
464 |
// Activation
|
@@ -487,6 +561,7 @@ class WP_reCaptcha {
|
|
487 |
delete_site_option( 'recaptcha_enable_login' );
|
488 |
delete_site_option( 'recaptcha_enable_wc_checkout' );
|
489 |
delete_site_option( 'recaptcha_disable_for_known_users' );
|
|
|
490 |
|
491 |
foreach ( wp_get_sites() as $site) {
|
492 |
switch_to_blog( $site["blog_id"] );
|
@@ -509,6 +584,7 @@ class WP_reCaptcha {
|
|
509 |
delete_option( 'recaptcha_enable_login' );
|
510 |
delete_option( 'recaptcha_enable_wc_checkout' );
|
511 |
delete_option( 'recaptcha_disable_for_known_users' );
|
|
|
512 |
}
|
513 |
}
|
514 |
|
@@ -543,37 +619,16 @@ class WP_reCaptcha {
|
|
543 |
*/
|
544 |
function recaptcha_wplang( ) {
|
545 |
$locale = get_locale();
|
546 |
-
|
547 |
-
$mapping = array(
|
548 |
-
'es_MX' => 'es-419',
|
549 |
-
'es_PE' => 'es-419',
|
550 |
-
'es_CL' => 'es-419',
|
551 |
-
'he_IL' => 'iw',
|
552 |
-
);
|
553 |
-
if ( isset( $mapping[$locale] ) )
|
554 |
-
$locale = $mapping[$locale];
|
555 |
-
return $this->recaptcha_language( $locale );
|
556 |
}
|
557 |
/**
|
558 |
-
*
|
559 |
-
*
|
560 |
-
* @
|
|
|
561 |
*/
|
562 |
function recaptcha_language( $lang ) {
|
563 |
-
$
|
564 |
-
|
565 |
-
$langs = $this->get_supported_languages();
|
566 |
-
// direct hit: return it.
|
567 |
-
if ( isset($langs[$lang]) )
|
568 |
-
return $lang;
|
569 |
-
|
570 |
-
// remove countrycode
|
571 |
-
$lang = preg_replace('/-(.*)$/','',$lang);
|
572 |
-
if ( isset($langs[$lang]) )
|
573 |
-
return $lang;
|
574 |
-
|
575 |
-
// lang does not exist.
|
576 |
-
return '';
|
577 |
}
|
578 |
|
579 |
/**
|
3 |
Plugin Name: WP reCaptcha Integration
|
4 |
Plugin URI: https://wordpress.org/plugins/wp-recaptcha-integration/
|
5 |
Description: Integrate reCaptcha in your blog. Supports no Captcha (new style recaptcha) as well as the old style reCaptcha. Provides of the box integration for signup, login, comment forms, lost password, Ninja Forms and contact form 7.
|
6 |
+
Version: 1.1.0
|
7 |
Author: Jörn Lund
|
8 |
Author URI: https://github.com/mcguffin/
|
9 |
*/
|
81 |
add_site_option('recaptcha_enable_login' , false); // global
|
82 |
add_site_option('recaptcha_enable_lostpw' , false); // global
|
83 |
add_site_option('recaptcha_disable_for_known_users' , true); // global
|
84 |
+
add_site_option( 'recaptcha_lockout' , true );
|
85 |
$this->_has_api_key = get_site_option( 'recaptcha_publickey' ) && get_site_option( 'recaptcha_privatekey' );
|
86 |
} else {
|
87 |
+
add_option( 'recaptcha_enable_comments' , true); // global
|
88 |
+
add_option( 'recaptcha_enable_signup' , true); // global
|
89 |
+
add_option( 'recaptcha_enable_login' , false); // global
|
90 |
+
add_option( 'recaptcha_enable_lostpw' , false); // global
|
91 |
+
add_option( 'recaptcha_disable_for_known_users' , true); // global
|
92 |
+
add_option( 'recaptcha_lockout' , true );
|
93 |
$this->_has_api_key = get_option( 'recaptcha_publickey' ) && get_option( 'recaptcha_privatekey' );
|
94 |
}
|
95 |
|
103 |
register_activation_hook( __FILE__ , array( __CLASS__ , 'activate' ) );
|
104 |
register_deactivation_hook( __FILE__ , array( __CLASS__ , 'deactivate' ) );
|
105 |
register_uninstall_hook( __FILE__ , array( __CLASS__ , 'uninstall' ) );
|
|
|
106 |
}
|
107 |
|
108 |
/**
|
151 |
add_filter('comment_form_defaults',array($this,'comment_form_defaults'),10);
|
152 |
//*/
|
153 |
add_action('pre_comment_on_post',array($this,'recaptcha_check_or_die'));
|
154 |
+
|
155 |
+
add_action( 'print_comments_recaptcha' , array( &$this , 'print_recaptcha_html' ) );
|
156 |
}
|
157 |
if ( $this->get_option('recaptcha_enable_signup') ) {
|
158 |
// buddypress suuport.
|
159 |
if ( function_exists('buddypress') ) {
|
160 |
+
add_action('bp_account_details_fields',array($this,'print_recaptcha_html'));
|
161 |
+
add_action('bp_signup_pre_validate',array(&$this,'recaptcha_check_or_die'),99 );
|
162 |
} else {
|
163 |
+
add_action('register_form',array($this,'print_recaptcha_html'));
|
164 |
add_filter('registration_errors',array(&$this,'registration_errors'));
|
165 |
}
|
166 |
if ( is_multisite() ) {
|
167 |
+
add_action( 'signup_extra_fields' , array($this,'print_recaptcha_html'));
|
168 |
add_filter('wpmu_validate_user_signup',array(&$this,'wpmu_validate_user_signup'));
|
169 |
}
|
170 |
|
171 |
}
|
172 |
if ( $this->get_option('recaptcha_enable_login') ) {
|
173 |
+
add_action('login_form',array(&$this,'print_recaptcha_html'));
|
174 |
add_filter('wp_authenticate_user',array(&$this,'deny_login'),99 );
|
175 |
}
|
176 |
if ( $this->get_option('recaptcha_enable_lostpw') ) {
|
177 |
+
add_action('lostpassword_form' , array($this,'print_recaptcha_html') );
|
178 |
//*
|
179 |
+
add_action('lostpassword_post' , array(&$this,'recaptcha_check_or_die') , 99 );
|
180 |
/*/ // switch this when pull request accepted and included in official WC release.
|
181 |
add_filter('allow_password_reset' , array(&$this,'wp_error') );
|
182 |
//*/
|
183 |
}
|
184 |
if ( 'WPLANG' === $this->get_option( 'recaptcha_language' ) )
|
185 |
+
add_filter( 'wp_recaptcha_language' , array( &$this,'recaptcha_wplang' ) , 5 );
|
186 |
+
|
187 |
+
add_action( 'recaptcha_print' , array( &$this , 'print_recaptcha_html' ) );
|
188 |
+
add_filter( 'recaptcha_valid' , array( &$this , 'recaptcha_check' ) );
|
189 |
+
add_filter( 'recaptcha_error' , array( &$this , 'wp_error' ) );
|
190 |
}
|
191 |
}
|
192 |
|
193 |
+
/**
|
194 |
+
* Set current captcha instance and return it.
|
195 |
+
*
|
196 |
+
* @return object WP_reCaptcha_Captcha
|
197 |
+
*/
|
198 |
public function captcha_instance() {
|
199 |
+
if ( is_null( $this->_captcha_instance ) )
|
200 |
+
$this->_captcha_instance = $this->captcha_instance_by_flavor( $this->get_option( 'recaptcha_flavor' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
return $this->_captcha_instance;
|
202 |
}
|
203 |
|
204 |
+
/**
|
205 |
+
* Set current captcha instance and return it.
|
206 |
+
*
|
207 |
+
* @param string captcha flavor. 'grecaptcha' (noCaptcha) or 'recaptcha' (reCaptcha)
|
208 |
+
* @return object WP_reCaptcha_Captcha
|
209 |
+
*/
|
210 |
+
public function captcha_instance_by_flavor( $flavor ) {
|
211 |
+
switch( $flavor ) {
|
212 |
+
case 'grecaptcha':
|
213 |
+
return WP_reCaptcha_NoCaptcha::instance();
|
214 |
+
case 'recaptcha':
|
215 |
+
return WP_reCaptcha_ReCaptcha::instance();
|
216 |
+
}
|
217 |
+
}
|
218 |
+
|
219 |
/**
|
220 |
* returns if recaptcha is required.
|
221 |
*
|
355 |
* @return bool false if check does not validate
|
356 |
*/
|
357 |
function recaptcha_check( ) {
|
358 |
+
if ( $this->is_required() )
|
359 |
+
return $this->captcha_instance()->check();
|
360 |
+
return true;
|
361 |
}
|
362 |
|
363 |
/**
|
368 |
* @return object user or wp_error
|
369 |
*/
|
370 |
function deny_login( $user ) {
|
371 |
+
if ( isset( $_POST["log"]) && ! $this->recaptcha_check() ) {
|
372 |
+
$msg = __("<strong>Error:</strong> the Captcha didn’t verify.",'wp-recaptcha-integration');
|
373 |
+
if ( $this->get_option('recaptcha_lockout') && in_array('administrator',$user->roles) && ! $this->test_keys() ) {
|
374 |
+
return $user;
|
375 |
+
} else {
|
376 |
+
return $this->wp_error( $user );
|
377 |
+
}
|
378 |
+
return new WP_Error( 'captcha_error' , $msg );
|
379 |
+
}
|
380 |
return $user;
|
381 |
}
|
382 |
|
486 |
return $this->_has_api_key;
|
487 |
}
|
488 |
|
489 |
+
/**
|
490 |
+
* Test public and private key
|
491 |
+
*
|
492 |
+
* @return bool
|
493 |
+
*/
|
494 |
+
public function test_keys() {
|
495 |
+
if ( ! ( $keys_okay = get_transient( 'recaptcha_keys_okay' ) ) ) {
|
496 |
+
$pub_okay = $this->test_public_key();
|
497 |
+
$prv_okay = $this->test_private_key();
|
498 |
+
|
499 |
+
$keys_okay = $prv_okay && $pub_okay;
|
500 |
+
|
501 |
+
//cache the result
|
502 |
+
set_transient( 'recaptcha_keys_okay' , $keys_okay ? 'yes' : 'no' , 15 * MINUTE_IN_SECONDS );
|
503 |
+
}
|
504 |
+
return $keys_okay == 'yes';
|
505 |
+
}
|
506 |
+
|
507 |
+
/**
|
508 |
+
* Test private key
|
509 |
+
*
|
510 |
+
* @return bool
|
511 |
+
*/
|
512 |
+
public function test_private_key( $key = null ) {
|
513 |
+
if ( is_null( $key ) )
|
514 |
+
$key = $this->get_option('recaptcha_privatekey');
|
515 |
+
$prv_key_url = sprintf( "http://www.google.com/recaptcha/api/verify?privatekey=%s" , $key );
|
516 |
+
$prv_response = wp_remote_get( $prv_key_url );
|
517 |
+
$prv_rspbody = wp_remote_retrieve_body( $prv_response );
|
518 |
+
return ! is_wp_error( $prv_response ) && ! strpos(wp_remote_retrieve_body( $prv_response ),'invalid-site-private-key');
|
519 |
+
}
|
520 |
+
|
521 |
+
/**
|
522 |
+
* Test public key
|
523 |
+
*
|
524 |
+
* @return bool
|
525 |
+
*/
|
526 |
+
public function test_public_key( $key = null ) {
|
527 |
+
if ( is_null( $key ) )
|
528 |
+
$key = $this->get_option('recaptcha_publickey');
|
529 |
+
$rec = WP_reCaptcha::instance();
|
530 |
+
$pub_key_url = sprintf( "http://www.google.com/recaptcha/api/challenge?k=%s" , $key );
|
531 |
+
$pub_response = wp_remote_get( $pub_key_url );
|
532 |
+
$pub_response_body = wp_remote_retrieve_body( $pub_response );
|
533 |
+
return ! is_wp_error( $pub_response ) && ! strpos( $pub_response_body ,'Format of site key was invalid');
|
534 |
+
}
|
535 |
+
|
536 |
|
537 |
//////////////////////////////////
|
538 |
// Activation
|
561 |
delete_site_option( 'recaptcha_enable_login' );
|
562 |
delete_site_option( 'recaptcha_enable_wc_checkout' );
|
563 |
delete_site_option( 'recaptcha_disable_for_known_users' );
|
564 |
+
delete_site_option( 'recaptcha_lockout' );
|
565 |
|
566 |
foreach ( wp_get_sites() as $site) {
|
567 |
switch_to_blog( $site["blog_id"] );
|
584 |
delete_option( 'recaptcha_enable_login' );
|
585 |
delete_option( 'recaptcha_enable_wc_checkout' );
|
586 |
delete_option( 'recaptcha_disable_for_known_users' );
|
587 |
+
delete_option( 'recaptcha_lockout' );
|
588 |
}
|
589 |
}
|
590 |
|
619 |
*/
|
620 |
function recaptcha_wplang( ) {
|
621 |
$locale = get_locale();
|
622 |
+
return $this->captcha_instance()->get_language( $locale );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
623 |
}
|
624 |
/**
|
625 |
+
* Get recaptcha language code that matches input language code
|
626 |
+
*
|
627 |
+
* @param $lang string language code
|
628 |
+
* @return string recaptcha language code if supported by current flavor, empty string otherwise
|
629 |
*/
|
630 |
function recaptcha_language( $lang ) {
|
631 |
+
return $this->captcha_instance()->get_language( $lang );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
632 |
}
|
633 |
|
634 |
/**
|