Advanced noCaptcha & invisible Captcha - Version 1.1

Version Description

  • Initial release.

=

Download this release

Release Info

Developer shamim51
Plugin Icon 128x128 Advanced noCaptcha & invisible Captcha
Version 1.1
Comparing to
See all releases

Version 1.1

admin/anr-admin-class.php ADDED
@@ -0,0 +1,273 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if (!class_exists('anr_admin_class'))
4
+ {
5
+ class anr_admin_class
6
+ {
7
+ private static $instance;
8
+
9
+ public static function init()
10
+ {
11
+ if(!self::$instance instanceof self) {
12
+ self::$instance = new self;
13
+ }
14
+ return self::$instance;
15
+ }
16
+
17
+ function actions_filters()
18
+ {
19
+ add_action('admin_menu', array(&$this, 'MenuPage'));
20
+ add_filter('plugin_action_links', array(&$this, 'add_settings_link'), 10, 2 );
21
+ }
22
+
23
+
24
+
25
+ /******************************************ADMIN SETTINGS PAGE BEGIN******************************************/
26
+
27
+ function MenuPage()
28
+ {
29
+ add_menu_page('Advanced noCaptcha reCaptcha', 'Advanced noCaptcha', 'manage_options', 'anr-admin-settings', array(&$this, 'admin_settings'),plugins_url( 'advanced-nocaptcha-recaptcha/images/advanced-nocaptcha-recaptcha.jpg' ));
30
+
31
+ add_submenu_page('anr-admin-settings', 'Advanced noCaptcha reCaptcha - ' .__('Settings','anr'), __('Settings','anr'), 'manage_options', 'anr-admin-settings', array(&$this, 'admin_settings'));
32
+
33
+ add_submenu_page('anr-admin-settings', 'Advanced noCaptcha reCaptcha - ' .__('Instruction','fepcf'), __('Instruction','fepcf'), 'manage_options', 'anr-instruction', array(&$this, "InstructionPage"));
34
+
35
+ }
36
+
37
+
38
+ function admin_settings()
39
+ {
40
+ $token = wp_create_nonce( 'anr-admin-settings' );
41
+ $url = 'https://shamimbiplob.wordpress.com/contact-us/';
42
+ $actionURL = admin_url( 'admin.php?page=anr-admin-settings' );
43
+ $ReviewURL = 'https://wordpress.org/support/view/plugin-reviews/advanced-nocaptcha-recaptcha';
44
+ echo "<style>
45
+ input[type='text'], textarea, select {
46
+ width: 100%;
47
+ }
48
+ </style>";
49
+ $languages = array(
50
+ __( 'Auto Detect', 'anr' ) => '',
51
+ __( 'Arabic', 'anr' ) => 'ar',
52
+ __( 'Bulgarian', 'anr' ) => 'bg',
53
+ __( 'Catalan', 'anr' ) => 'ca',
54
+ __( 'Chinese (Simplified)', 'anr' ) => 'zh-CN',
55
+ __( 'Chinese (Traditional)', 'anr' ) => 'zh-TW',
56
+ __( 'Croatian', 'anr' ) => 'hr',
57
+ __( 'Czech', 'anr' ) => 'cs',
58
+ __( 'Danish', 'anr' ) => 'da',
59
+ __( 'Dutch', 'anr' ) => 'nl',
60
+ __( 'English (UK)', 'anr' ) => 'en-GB',
61
+ __( 'English (US)', 'anr' ) => 'en',
62
+ __( 'Filipino', 'anr' ) => 'fil',
63
+ __( 'Finnish', 'anr' ) => 'fi',
64
+ __( 'French', 'anr' ) => 'fr',
65
+ __( 'French (Canadian)', 'anr' ) => 'fr-CA',
66
+ __( 'German', 'anr' ) => 'de',
67
+ __( 'German (Austria)', 'anr' ) => 'de-AT',
68
+ __( 'German (Switzerland)', 'anr' ) => 'de-CH',
69
+ __( 'Greek', 'anr' ) => 'el',
70
+ __( 'Hebrew', 'anr' ) => 'iw',
71
+ __( 'Hindi', 'anr' ) => 'hi',
72
+ __( 'Hungarain', 'anr' ) => 'hu',
73
+ __( 'Indonesian', 'anr' ) => 'id',
74
+ __( 'Italian', 'anr' ) => 'it',
75
+ __( 'Japanese', 'anr' ) => 'ja',
76
+ __( 'Korean', 'anr' ) => 'ko',
77
+ __( 'Latvian', 'anr' ) => 'lv',
78
+ __( 'Lithuanian', 'anr' ) => 'lt',
79
+ __( 'Norwegian', 'anr' ) => 'no',
80
+ __( 'Persian', 'anr' ) => 'fa',
81
+ __( 'Polish', 'anr' ) => 'pl',
82
+ __( 'Portuguese', 'anr' ) => 'pt',
83
+ __( 'Portuguese (Brazil)', 'anr' ) => 'pt-BR',
84
+ __( 'Portuguese (Portugal)', 'anr' )=> 'pt-PT',
85
+ __( 'Romanian', 'anr' ) => 'ro',
86
+ __( 'Russian', 'anr' ) => 'ru',
87
+ __( 'Serbian', 'anr' ) => 'sr',
88
+ __( 'Slovak', 'anr' ) => 'sk',
89
+ __( 'Slovenian', 'anr' ) => 'sl',
90
+ __( 'Spanish', 'anr' ) => 'es',
91
+ __( 'Spanish (Latin America)', 'anr' )=> 'es-419',
92
+ __( 'Swedish', 'anr' ) => 'sv',
93
+ __( 'Thai', 'anr' ) => 'th',
94
+ __( 'Turkish', 'anr' ) => 'tr',
95
+ __( 'Ukrainian', 'anr' ) => 'uk',
96
+ __( 'Vietnamese', 'anr' ) => 'vi'
97
+
98
+ );
99
+
100
+ $locations = array(
101
+ __( 'Login Form', 'anr' ) => 'login',
102
+ __( 'Registration Form', 'anr' ) => 'registration',
103
+ __( 'Lost Password Form', 'anr' ) => 'lost_password',
104
+ __( 'Reset Password Form', 'anr' ) => 'reset_password',
105
+ __( 'Comment Form', 'anr' ) => 'comment'
106
+
107
+ );
108
+
109
+
110
+ if(isset($_POST['anr-admin-settings-submit'])){
111
+ $errors = $this->admin_settings_action();
112
+ if(count($errors->get_error_messages())>0){
113
+ echo anr_error($errors);
114
+ }
115
+ else{
116
+ echo'<div id="message" class="updated fade">' .__("Options successfully saved.", 'anr'). ' </div>';}}
117
+ echo "<div id='poststuff'>
118
+
119
+ <div id='post-body' class='metabox-holder columns-2'>
120
+
121
+ <!-- main content -->
122
+ <div id='post-body-content'>
123
+ <div class='postbox'><div class='inside'>
124
+ <h2>".__("Advanced noCaptcha reCaptcha Settings", 'anr')."</h2>
125
+ <h5>".sprintf(__("If you like this plugin please <a href='%s' target='_blank'>Review in Wordpress.org</a> and give 5 star", 'anr'),esc_url($ReviewURL))."</h5>
126
+ <form method='post' action='$actionURL'>
127
+ <table>
128
+ <thead>
129
+ <tr><th width = '50%'>".__("Setting", 'anr')."</th><th width = '50%'>".__("Value", 'anr')."</th></tr>
130
+ </thead>
131
+ <tr><td>".__("Site Key", 'anr')."<br/><small><a href='https://www.google.com/recaptcha/admin' target='_blank'>Get From Google</a></small></td><td><input type='text' size = '40' name='site_key' value='".anr_get_option('site_key')."' /></td></tr>
132
+ <tr><td>".__("Secret key", 'anr')."<br/><small><a href='https://www.google.com/recaptcha/admin' target='_blank'>Get From Google</a></small></td><td><input type='text' size = '40' name='secret_key' value='".anr_get_option('secret_key')."' /></td></tr>
133
+
134
+ <tr><td>".__("Language", 'anr')."</td><td><select name='language'>";
135
+
136
+ foreach ( $languages as $language => $code ) {
137
+
138
+ echo "<option value='$code' ".selected(anr_get_option('language'), $code,false).">$language</option>";
139
+
140
+ }
141
+
142
+ echo "</select></td></tr>
143
+ <tr><td>".__("Theme", 'anr')."</td><td><select name='theme'>
144
+
145
+ <option value='light' ".selected(anr_get_option('theme'), 'light',false).">Light</option>
146
+ <option value='dark' ".selected(anr_get_option('theme'), 'dark',false).">Dark</option>
147
+
148
+ </select></td></tr>
149
+ <tr><td>".__("Error Message", 'anr')."</td><td><input type='text' size = '40' name='error_message' value='".anr_get_option('error_message', '<strong>ERROR</strong>: Please solve Captcha correctly.')."' /></td></tr>
150
+
151
+ <tr><td>".__("Show Captcha on", 'anr')."</td><td>";
152
+
153
+ foreach ( $locations as $location => $slug ) {
154
+
155
+ echo "<ul colspan='2'><input type='checkbox' name='$slug' value='1' ".checked(anr_get_option($slug), '1', false)." /> $location</ul>";
156
+
157
+ }
158
+ if ( function_exists('fepcf_plugin_activate'))
159
+ echo "<ul colspan='2'><input type='checkbox' name='fep_contact_form' value='1' ".checked(anr_get_option('fep_contact_form'), '1', false)." /> FEP Contact Form</ul>";
160
+ else
161
+ echo "<ul colspan='2'><input type='checkbox' name='fep_contact_form' disabled value='1' ".checked(anr_get_option('fep_contact_form'), '1', false)." /> FEP Contact Form (is not installed) <a href='https://wordpress.org/plugins/fep-contact-form/' target='_blank'>Install Now</a></ul>";
162
+
163
+ echo "<ul colspan='2'> For other forms see <a href='".esc_url(admin_url( 'admin.php?page=anr-instruction' ))."'>Instruction</a></ul>";
164
+ echo "</td></tr>";
165
+
166
+ do_action('anr_admin_setting_form');
167
+
168
+ echo "<tr><td colspan='2'><input type='checkbox' name='loggedin_hide' value='1' ".checked(anr_get_option('loggedin_hide'), '1', false)." /> ".__("Hide Captcha for logged in users?", 'anr')."</td></tr>
169
+ <tr><td colspan='2'><input type='checkbox' name='no_js' value='1' ".checked(anr_get_option('no_js'), '1', false)." /> ".__("Show captcha if javascript disabled?", 'anr')."<br/><small>".__("If JavaScript is a requirement for your site, we advise that you do NOT check this", 'anr')."</small></td></tr>
170
+ <tr><td colspan='2'><span><input class='button-primary' type='submit' name='anr-admin-settings-submit' value='".__("Save Options", 'anr')."' /></span></td><td><input type='hidden' name='token' value='$token' /></td></tr>
171
+ </table>
172
+ </form>
173
+ <ul>".sprintf(__("For paid support pleasse visit <a href='%s' target='_blank'>Advanced noCaptcha reCaptcha</a>", 'anr'),esc_url($url))."</ul>
174
+ </div></div></div>
175
+ ". $this->anr_admin_sidebar(). "
176
+ </div></div>";
177
+ }
178
+
179
+ function anr_admin_sidebar()
180
+ {
181
+ return '<div id="postbox-container-1" class="postbox-container">
182
+
183
+
184
+ <div class="postbox">
185
+ <h3 class="hndle" style="text-align: center;">
186
+ <span>'. __( "Plugin Author", "anr" ). '</span>
187
+ </h3>
188
+
189
+ <div class="inside">
190
+ <div style="text-align: center; margin: auto">
191
+ <strong>Shamim Hasan</strong><br />
192
+ Know php, MySql, css, javascript, html. Expert in WordPress. <br /><br />
193
+
194
+ You can hire for plugin customization, build custom plugin or any kind of wordpress job via <br> <a
195
+ href="https://shamimbiplob.wordpress.com/contact-us/"><strong>Contact Form</strong></a>
196
+ </div>
197
+ </div>
198
+ </div>
199
+ </div>';
200
+ }
201
+
202
+
203
+ function admin_settings_action()
204
+ {
205
+ if (isset($_POST['anr-admin-settings-submit']))
206
+ {
207
+ $errors = new WP_Error();
208
+ $options = $_POST;
209
+
210
+ if( !current_user_can('manage_options'))
211
+ $errors->add('noPermission', __('No Permission!', 'anr'));
212
+
213
+
214
+ if ( !wp_verify_nonce($options['token'], 'anr-admin-settings'))
215
+ $errors->add('invalidToken', __('Sorry, your nonce did not verify!', 'anr'));
216
+
217
+ do_action('anr_action_admin_setting_before_save', $errors);
218
+
219
+ $options = apply_filters('anr_filter_admin_setting_before_save',$options);
220
+ //var_dump($options);
221
+
222
+ if (count($errors->get_error_codes())==0){
223
+ update_option('anr_admin_options', $options);
224
+ }
225
+ return $errors;
226
+ }
227
+ return false;
228
+ }
229
+
230
+ function InstructionPage()
231
+ {
232
+ $url = 'https://shamimbiplob.wordpress.com/contact-us/';
233
+ echo '<div id="poststuff">
234
+
235
+ <div id="post-body" class="metabox-holder columns-2">
236
+
237
+ <!-- main content -->
238
+ <div id="post-body-content">';
239
+
240
+ echo "<div class='postbox'><div class='inside'>
241
+ <h2>".__("Advanced noCaptcha reCaptcha Setup Instruction", 'anr')."</h2>
242
+ <p><ul>
243
+ <li>".sprintf(__("Get your site key and secret key from <a href='%s' target='_blank'>GOOGLE</a> if you do not have already.", 'anr'),esc_url('https://www.google.com/recaptcha/admin'))."</li>
244
+ <li>".sprintf(__("Goto <a href='%s'>SETTINGS</a> page and set up as you need. and ENJOY...", 'anr'),esc_url(admin_url( 'admin.php?page=anr-admin-settings' )))."</li><br/>
245
+ <h3>".__("Implement noCaptcha in Contact Form 7", 'anr')."</h3><br />
246
+ <li>".__("To show noCaptcha use ", 'anr')."<code>[anr_nocaptcha g-recaptcha-response]</code></li><br />
247
+ <h3>".__("If you want to implement noCaptcha in any other custom form", 'anr')."</h3><br />
248
+ <li>".__("To show form field use ", 'anr')."<code>anr_captcha_form_field()</code></li>
249
+ <li>".__("To verify use ", 'anr')."<code>anr_verify_captcha()</code> it will return true on success otherwise false</li><br />
250
+ <li>".sprintf(__("For paid support pleasse visit <a href='%s' target='_blank'>Advanced noCaptcha reCaptcha</a>", 'anr'),esc_url($url))."</li>
251
+ </ul></p></div></div></div>
252
+ ". $this->anr_admin_sidebar(). "
253
+ </div></div>";
254
+ }
255
+
256
+
257
+ function add_settings_link( $links, $file ) {
258
+ //add settings link in plugins page
259
+ $plugin_file = 'advanced-nocaptcha-recaptcha/advanced-nocaptcha-recaptcha.php';
260
+ if ( $file == $plugin_file ) {
261
+ $settings_link = '<a href="' . admin_url( 'admin.php?page=anr-admin-settings' ) . '">' .__( 'Settings', 'anr' ) . '</a>';
262
+ array_unshift( $links, $settings_link );
263
+ }
264
+ return $links;
265
+ }
266
+ /******************************************ADMIN SETTINGS PAGE END******************************************/
267
+
268
+
269
+ } //END CLASS
270
+ } //ENDIF
271
+
272
+ add_action('wp_loaded', array(anr_admin_class::init(), 'actions_filters'));
273
+ ?>
advanced-nocaptcha-recaptcha.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: Advanced noCaptcha reCaptcha
4
+ Plugin URI: https://shamimbiplob.wordpress.com/contact-us/
5
+ Description: Show noCaptcha in Login, Register, Lost Password, Reset Password, Comment Form (after Comment textarea before submit button). Also can implement in any other form easily.
6
+ Version: 1.1
7
+ Author: Shamim
8
+ Author URI: https://shamimbiplob.wordpress.com/contact-us/
9
+ Text Domain: anr
10
+ License: GPLv2 or later
11
+ */
12
+ //DEFINE
13
+ global $wpdb;
14
+ define('ANR_PLUGIN_DIR',plugin_dir_path( __FILE__ ));
15
+ define('ANR_PLUGIN_URL',plugins_url().'/advanced-nocaptcha-recaptcha/');
16
+
17
+ require_once('functions.php');
18
+
19
+
20
+ //ADD ACTIONS
21
+
22
+ add_action('after_setup_theme', 'anr_include_require_files');
23
+ add_action('plugins_loaded', 'anr_translation');
24
+ add_action('wp_enqueue_scripts', 'anr_enqueue_scripts');
25
+ add_action('login_enqueue_scripts', 'anr_login_enqueue_scripts');
26
+
27
+
anr-captcha-class.php ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if (!class_exists('anr_captcha_class'))
4
+ {
5
+ class anr_captcha_class
6
+ {
7
+ private static $instance;
8
+
9
+ public static function init()
10
+ {
11
+ if(!self::$instance instanceof self) {
12
+ self::$instance = new self;
13
+ }
14
+ return self::$instance;
15
+ }
16
+
17
+ function actions_filters()
18
+ {
19
+ if ( '1' == anr_get_option( 'fep_contact_form' )) {
20
+ add_action ('fepcf_message_form_after_content', array(&$this, 'form_field'), 99);
21
+ add_action ('fepcf_action_message_before_send', array(&$this, 'fepcf_verify'));
22
+ }
23
+
24
+ if ( '1' == anr_get_option( 'login' )) {
25
+ add_action ('login_form', array(&$this, 'form_field'), 99);
26
+ add_filter ('wp_authenticate_user', array(&$this, 'login_verify'), 10, 2 );
27
+ }
28
+
29
+ if ( '1' == anr_get_option( 'registration' )) {
30
+ add_action ('register_form', array(&$this, 'form_field'), 99);
31
+ add_filter ('registration_errors', array(&$this, 'registration_verify'), 10, 3 );
32
+ }
33
+
34
+ if ( '1' == anr_get_option( 'lost_password' )) {
35
+ add_action ('lostpassword_form', array(&$this, 'form_field'), 99);
36
+ add_action ('allow_password_reset', array(&$this, 'lostpassword_verify'), 10, 2); //lostpassword_post does not return wp_error
37
+ }
38
+
39
+ if ( '1' == anr_get_option( 'reset_password' )) {
40
+ add_action ('resetpass_form', array(&$this, 'form_field'), 99);
41
+ add_filter ('validate_password_reset', array(&$this, 'reset_password_verify'), 10, 2 );
42
+ }
43
+
44
+ if ( '1' == anr_get_option( 'comment' )) {
45
+ add_filter ('comment_form_field_comment', array(&$this, 'comment_form_field') );
46
+ add_action ('pre_comment_on_post', array(&$this, 'comment_verify') );
47
+ }
48
+
49
+ if ( function_exists( 'wpcf7_add_shortcode' )) {
50
+ wpcf7_add_shortcode('anr_nocaptcha', array(&$this, 'wpcf7_form_field'), true);
51
+ add_filter('wpcf7_validate_anr_nocaptcha', array(&$this, 'wpcf7_verify'), 10, 2);
52
+ }
53
+ }
54
+
55
+
56
+ function form_field()
57
+ {
58
+ $loggedin_hide = anr_get_option( 'loggedin_hide' );
59
+
60
+ if ( is_user_logged_in() && $loggedin_hide )
61
+ return;
62
+
63
+ echo anr_captcha_form_field( false );
64
+
65
+ }
66
+
67
+ function comment_form_field( $defaults )
68
+ {
69
+ $loggedin_hide = anr_get_option( 'loggedin_hide' );
70
+
71
+ if ( is_user_logged_in() && $loggedin_hide )
72
+ return $defaults;
73
+
74
+ $defaults = $defaults. '<br />' .anr_captcha_form_field( false );
75
+ return $defaults;
76
+
77
+
78
+ }
79
+
80
+ function verify()
81
+ {
82
+
83
+ $loggedin_hide = anr_get_option( 'loggedin_hide' );
84
+
85
+ if ( is_user_logged_in() && $loggedin_hide )
86
+ return true;
87
+
88
+ return anr_verify_captcha();
89
+
90
+ }
91
+
92
+ function fepcf_verify ( $errors )
93
+ {
94
+ $error_message = str_replace(__('<strong>ERROR</strong>: ', 'anr'), '', anr_get_option( 'error_message' ));
95
+
96
+ if ( ! $this->verify() )
97
+
98
+ $errors->add('anr_error', $error_message);
99
+ }
100
+
101
+ function login_verify ( $user, $password )
102
+ {
103
+ if ( ! $this->verify() ) {
104
+ $error_message = anr_get_option( 'error_message' );
105
+ return new WP_Error( 'anr_error', $error_message );
106
+ }
107
+
108
+ return $user;
109
+ }
110
+
111
+ function registration_verify ( $errors, $sanitized_user_login, $user_email )
112
+ {
113
+ if ( ! $this->verify() ) {
114
+ $error_message = anr_get_option( 'error_message' );
115
+ $errors->add( 'anr_error', $error_message );
116
+ }
117
+
118
+ return $errors;
119
+ }
120
+
121
+ function lostpassword_verify( $result, $user_id )
122
+ {
123
+ if ( ! $this->verify() ) {
124
+ $error_message = anr_get_option( 'error_message' );
125
+ return new WP_Error( 'anr_error', $error_message );
126
+ }
127
+
128
+ return $result;
129
+ }
130
+
131
+
132
+ function reset_password_verify( $errors, $user )
133
+ {
134
+
135
+ if ( ! $this->verify() ) {
136
+ $error_message = anr_get_option( 'error_message' );
137
+ $errors->add('anr_error', $error_message);
138
+ }
139
+ }
140
+
141
+ function comment_verify( $comment_post_ID )
142
+ {
143
+
144
+ if ( ! $this->verify() ) {
145
+ $error_message = anr_get_option( 'error_message' );
146
+ wp_die( $error_message, 200 );
147
+ }
148
+ }
149
+
150
+ function wpcf7_form_field( $tags )
151
+ {
152
+ $loggedin_hide = anr_get_option( 'loggedin_hide' );
153
+
154
+ if ( is_user_logged_in() && $loggedin_hide )
155
+ return;
156
+
157
+ return anr_captcha_form_field( false )."<span class='wpcf7-form-control-wrap g-recaptcha-response'></span>";
158
+
159
+
160
+ }
161
+
162
+ function wpcf7_verify( $result, $tag )
163
+ {
164
+ $tag = new WPCF7_Shortcode( $tag );
165
+ $name = $tag->name;
166
+
167
+ if ( ! $this->verify() ) {
168
+
169
+ $error_message = anr_get_option( 'error_message' ).'<button onclick="javascript:location.reload();">Reload Captcha</button>';
170
+
171
+ if ( method_exists($result, 'invalidate' ) ) { // wpcf7 4.1
172
+ $result->invalidate( $tag, $error_message );
173
+ } else {
174
+ $result['valid'] = false;
175
+ $result['reason'][$name] = $error_message;
176
+ }
177
+ }
178
+
179
+ return $result;
180
+ }
181
+
182
+
183
+
184
+ } //END CLASS
185
+ } //ENDIF
186
+
187
+ add_action('init', array(anr_captcha_class::init(), 'actions_filters'));
188
+ ?>
functions.php ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ if ( !function_exists('anr_get_option') ) :
5
+
6
+ function anr_get_option( $option, $default = '', $section = 'anr_admin_options' ) {
7
+
8
+ $options = get_option( $section );
9
+
10
+ if ( isset( $options[$option] ) ) {
11
+ return $options[$option];
12
+ }
13
+
14
+ return $default;
15
+ }
16
+
17
+ endif;
18
+
19
+ function anr_translation()
20
+ {
21
+ //SETUP TEXT DOMAIN FOR TRANSLATIONS
22
+ load_plugin_textdomain('anr', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
23
+ }
24
+
25
+ function anr_enqueue_scripts()
26
+ {
27
+ $language = trim(anr_get_option( 'language' ));
28
+
29
+ $lang = "";
30
+ if ( $language )
31
+ $lang = "?hl=$language";
32
+
33
+ wp_register_script( 'anr-google-recaptcha-script', "https://www.google.com/recaptcha/api.js$lang", array(), '1.1', true );
34
+
35
+ }
36
+
37
+ function anr_login_enqueue_scripts()
38
+ {
39
+ $language = trim(anr_get_option( 'language' ));
40
+
41
+ $lang = "";
42
+ if ( $language )
43
+ $lang = "?hl=$language";
44
+
45
+ wp_register_script( 'anr-google-recaptcha-script', "https://www.google.com/recaptcha/api.js$lang", array(), '1.1', true );
46
+ wp_enqueue_style( 'anr-login-style', ANR_PLUGIN_URL . 'style/style.css' );
47
+
48
+ }
49
+
50
+ function anr_include_require_files()
51
+ {
52
+ if ( is_admin() )
53
+ {
54
+ $fep_files = array(
55
+ 'admin' => 'admin/anr-admin-class.php'
56
+ );
57
+
58
+ } else {
59
+ $fep_files = array(
60
+ 'main' => 'anr-captcha-class.php'
61
+ );
62
+ }
63
+
64
+ $fep_files = apply_filters('anr_include_files', $fep_files );
65
+
66
+ foreach ( $fep_files as $fep_file ) {
67
+ require_once ( $fep_file );
68
+ }
69
+ }
70
+
71
+ function anr_captcha_form_field( $echo = true )
72
+ {
73
+ $site_key = trim(anr_get_option( 'site_key' ));
74
+ $theme = anr_get_option( 'theme' );
75
+ $no_js = anr_get_option( 'no_js' );
76
+
77
+ wp_enqueue_script('anr-google-recaptcha-script');
78
+
79
+ $field = "<div class='g-recaptcha' data-sitekey='$site_key' data-theme='$theme'></div>";
80
+
81
+ if ( $no_js == 1 )
82
+ {
83
+ $field .="<noscript>
84
+ <div style='width: 302px; height: 352px;'>
85
+ <div style='width: 302px; height: 352px; position: relative;'>
86
+ <div style='width: 302px; height: 352px; position: absolute;'>
87
+ <iframe src='https://www.google.com/recaptcha/api/fallback?k=$site_key'
88
+ frameborder='0' scrolling='no'
89
+ style='width: 302px; height:352px; border-style: none;'>
90
+ </iframe>
91
+ </div>
92
+ <div style='width: 250px; height: 80px; position: absolute; border-style: none;
93
+ bottom: 21px; left: 25px; margin: 0px; padding: 0px; right: 25px;'>
94
+ <textarea id='g-recaptcha-response' name='g-recaptcha-response'
95
+ class='g-recaptcha-response'
96
+ style='width: 250px; height: 80px; border: 1px solid #c1c1c1;
97
+ margin: 0px; padding: 0px; resize: none;' value=''>
98
+ </textarea>
99
+ </div>
100
+ </div>
101
+ </div>
102
+ </noscript>";
103
+ }
104
+
105
+ if ( $echo )
106
+ echo $field;
107
+
108
+ return $field;
109
+
110
+ }
111
+
112
+ function anr_verify_captcha()
113
+ {
114
+ $secre_key = trim(anr_get_option( 'secret_key' ));
115
+ $response = isset( $_POST['g-recaptcha-response'] ) ? $_POST['g-recaptcha-response'] : '';
116
+ $remoteip = $_SERVER["REMOTE_ADDR"];
117
+
118
+ if ( !$secre_key ) //if $secre_key is not set
119
+ return true;
120
+
121
+ if ( !$response || !$remoteip )
122
+ return false;
123
+
124
+ $url = "https://www.google.com/recaptcha/api/siteverify";
125
+
126
+ // make a POST request to the Google reCAPTCHA Server
127
+ $request = wp_remote_post( $url, array('body' => array( 'secret' => $secre_key, 'response' => $response, 'remoteip' => $remoteip ) ) );
128
+
129
+ if ( is_wp_error( $request ) )
130
+ return false;
131
+
132
+ // get the request response body
133
+ $request_body = wp_remote_retrieve_body( $request );
134
+ if ( !$request_body )
135
+ return false;
136
+
137
+ $result = json_decode( $request_body, true );
138
+ if ( !isset($result['success']) || !$result['success'] )
139
+ return false;
140
+
141
+ if ( true == $result['success'] )
142
+ return true;
143
+
144
+ return false;
145
+ }
146
+
147
+ add_filter('shake_error_codes', 'anr_add_shake_error_codes' );
148
+
149
+ function anr_add_shake_error_codes( $shake_error_codes )
150
+ {
151
+ $shake_error_codes[] = 'anr_error';
152
+
153
+ return $shake_error_codes;
154
+ }
155
+
images/advanced-nocaptcha-recaptcha.jpg ADDED
Binary file
languages/anr.pot ADDED
@@ -0,0 +1,373 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2015 Advanced noCaptcha reCaptcha
2
+ # This file is distributed under the same license as the Advanced noCaptcha reCaptcha package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Advanced noCaptcha reCaptcha 1.1\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/advanced-nocaptcha-"
7
+ "recaptcha\n"
8
+ "POT-Creation-Date: 2015-04-27 09:06:05+00:00\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
13
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
+ "Language-Team: LANGUAGE <LL@li.org>\n"
15
+
16
+ #: admin/anr-admin-class.php:31 admin/anr-admin-class.php:261
17
+ msgid "Settings"
18
+ msgstr ""
19
+
20
+ #: admin/anr-admin-class.php:33
21
+ msgid "Instruction"
22
+ msgstr ""
23
+
24
+ #: admin/anr-admin-class.php:50
25
+ msgid "Auto Detect"
26
+ msgstr ""
27
+
28
+ #: admin/anr-admin-class.php:51
29
+ msgid "Arabic"
30
+ msgstr ""
31
+
32
+ #: admin/anr-admin-class.php:52
33
+ msgid "Bulgarian"
34
+ msgstr ""
35
+
36
+ #: admin/anr-admin-class.php:53
37
+ msgid "Catalan"
38
+ msgstr ""
39
+
40
+ #: admin/anr-admin-class.php:54
41
+ msgid "Chinese (Simplified)"
42
+ msgstr ""
43
+
44
+ #: admin/anr-admin-class.php:55
45
+ msgid "Chinese (Traditional)"
46
+ msgstr ""
47
+
48
+ #: admin/anr-admin-class.php:56
49
+ msgid "Croatian"
50
+ msgstr ""
51
+
52
+ #: admin/anr-admin-class.php:57
53
+ msgid "Czech"
54
+ msgstr ""
55
+
56
+ #: admin/anr-admin-class.php:58
57
+ msgid "Danish"
58
+ msgstr ""
59
+
60
+ #: admin/anr-admin-class.php:59
61
+ msgid "Dutch"
62
+ msgstr ""
63
+
64
+ #: admin/anr-admin-class.php:60
65
+ msgid "English (UK)"
66
+ msgstr ""
67
+
68
+ #: admin/anr-admin-class.php:61
69
+ msgid "English (US)"
70
+ msgstr ""
71
+
72
+ #: admin/anr-admin-class.php:62
73
+ msgid "Filipino"
74
+ msgstr ""
75
+
76
+ #: admin/anr-admin-class.php:63
77
+ msgid "Finnish"
78
+ msgstr ""
79
+
80
+ #: admin/anr-admin-class.php:64
81
+ msgid "French"
82
+ msgstr ""
83
+
84
+ #: admin/anr-admin-class.php:65
85
+ msgid "French (Canadian)"
86
+ msgstr ""
87
+
88
+ #: admin/anr-admin-class.php:66
89
+ msgid "German"
90
+ msgstr ""
91
+
92
+ #: admin/anr-admin-class.php:67
93
+ msgid "German (Austria)"
94
+ msgstr ""
95
+
96
+ #: admin/anr-admin-class.php:68
97
+ msgid "German (Switzerland)"
98
+ msgstr ""
99
+
100
+ #: admin/anr-admin-class.php:69
101
+ msgid "Greek"
102
+ msgstr ""
103
+
104
+ #: admin/anr-admin-class.php:70
105
+ msgid "Hebrew"
106
+ msgstr ""
107
+
108
+ #: admin/anr-admin-class.php:71
109
+ msgid "Hindi"
110
+ msgstr ""
111
+
112
+ #: admin/anr-admin-class.php:72
113
+ msgid "Hungarain"
114
+ msgstr ""
115
+
116
+ #: admin/anr-admin-class.php:73
117
+ msgid "Indonesian"
118
+ msgstr ""
119
+
120
+ #: admin/anr-admin-class.php:74
121
+ msgid "Italian"
122
+ msgstr ""
123
+
124
+ #: admin/anr-admin-class.php:75
125
+ msgid "Japanese"
126
+ msgstr ""
127
+
128
+ #: admin/anr-admin-class.php:76
129
+ msgid "Korean"
130
+ msgstr ""
131
+
132
+ #: admin/anr-admin-class.php:77
133
+ msgid "Latvian"
134
+ msgstr ""
135
+
136
+ #: admin/anr-admin-class.php:78
137
+ msgid "Lithuanian"
138
+ msgstr ""
139
+
140
+ #: admin/anr-admin-class.php:79
141
+ msgid "Norwegian"
142
+ msgstr ""
143
+
144
+ #: admin/anr-admin-class.php:80
145
+ msgid "Persian"
146
+ msgstr ""
147
+
148
+ #: admin/anr-admin-class.php:81
149
+ msgid "Polish"
150
+ msgstr ""
151
+
152
+ #: admin/anr-admin-class.php:82
153
+ msgid "Portuguese"
154
+ msgstr ""
155
+
156
+ #: admin/anr-admin-class.php:83
157
+ msgid "Portuguese (Brazil)"
158
+ msgstr ""
159
+
160
+ #: admin/anr-admin-class.php:84
161
+ msgid "Portuguese (Portugal)"
162
+ msgstr ""
163
+
164
+ #: admin/anr-admin-class.php:85
165
+ msgid "Romanian"
166
+ msgstr ""
167
+
168
+ #: admin/anr-admin-class.php:86
169
+ msgid "Russian"
170
+ msgstr ""
171
+
172
+ #: admin/anr-admin-class.php:87
173
+ msgid "Serbian"
174
+ msgstr ""
175
+
176
+ #: admin/anr-admin-class.php:88
177
+ msgid "Slovak"
178
+ msgstr ""
179
+
180
+ #: admin/anr-admin-class.php:89
181
+ msgid "Slovenian"
182
+ msgstr ""
183
+
184
+ #: admin/anr-admin-class.php:90
185
+ msgid "Spanish"
186
+ msgstr ""
187
+
188
+ #: admin/anr-admin-class.php:91
189
+ msgid "Spanish (Latin America)"
190
+ msgstr ""
191
+
192
+ #: admin/anr-admin-class.php:92
193
+ msgid "Swedish"
194
+ msgstr ""
195
+
196
+ #: admin/anr-admin-class.php:93
197
+ msgid "Thai"
198
+ msgstr ""
199
+
200
+ #: admin/anr-admin-class.php:94
201
+ msgid "Turkish"
202
+ msgstr ""
203
+
204
+ #: admin/anr-admin-class.php:95
205
+ msgid "Ukrainian"
206
+ msgstr ""
207
+
208
+ #: admin/anr-admin-class.php:96
209
+ msgid "Vietnamese"
210
+ msgstr ""
211
+
212
+ #: admin/anr-admin-class.php:101
213
+ msgid "Login Form"
214
+ msgstr ""
215
+
216
+ #: admin/anr-admin-class.php:102
217
+ msgid "Registration Form"
218
+ msgstr ""
219
+
220
+ #: admin/anr-admin-class.php:103
221
+ msgid "Lost Password Form"
222
+ msgstr ""
223
+
224
+ #: admin/anr-admin-class.php:104
225
+ msgid "Reset Password Form"
226
+ msgstr ""
227
+
228
+ #: admin/anr-admin-class.php:105
229
+ msgid "Comment Form"
230
+ msgstr ""
231
+
232
+ #: admin/anr-admin-class.php:116
233
+ msgid "Options successfully saved."
234
+ msgstr ""
235
+
236
+ #: admin/anr-admin-class.php:124
237
+ msgid "Advanced noCaptcha reCaptcha Settings"
238
+ msgstr ""
239
+
240
+ #: admin/anr-admin-class.php:125
241
+ msgid ""
242
+ "If you like this plugin please <a href='%s' target='_blank'>Review in "
243
+ "Wordpress.org</a> and give 5 star"
244
+ msgstr ""
245
+
246
+ #: admin/anr-admin-class.php:129
247
+ msgid "Setting"
248
+ msgstr ""
249
+
250
+ #: admin/anr-admin-class.php:129
251
+ msgid "Value"
252
+ msgstr ""
253
+
254
+ #: admin/anr-admin-class.php:131
255
+ msgid "Site Key"
256
+ msgstr ""
257
+
258
+ #: admin/anr-admin-class.php:132
259
+ msgid "Secret key"
260
+ msgstr ""
261
+
262
+ #: admin/anr-admin-class.php:134
263
+ msgid "Language"
264
+ msgstr ""
265
+
266
+ #: admin/anr-admin-class.php:143
267
+ msgid "Theme"
268
+ msgstr ""
269
+
270
+ #: admin/anr-admin-class.php:149
271
+ msgid "Error Message"
272
+ msgstr ""
273
+
274
+ #: admin/anr-admin-class.php:151
275
+ msgid "Show Captcha on"
276
+ msgstr ""
277
+
278
+ #: admin/anr-admin-class.php:168
279
+ msgid "Hide Captcha for logged in users?"
280
+ msgstr ""
281
+
282
+ #: admin/anr-admin-class.php:169
283
+ msgid "Show captcha if javascript disabled?"
284
+ msgstr ""
285
+
286
+ #: admin/anr-admin-class.php:169
287
+ msgid ""
288
+ "If JavaScript is a requirement for your site, we advise that you do NOT "
289
+ "check this"
290
+ msgstr ""
291
+
292
+ #: admin/anr-admin-class.php:170
293
+ msgid "Save Options"
294
+ msgstr ""
295
+
296
+ #: admin/anr-admin-class.php:173 admin/anr-admin-class.php:250
297
+ msgid ""
298
+ "For paid support pleasse visit <a href='%s' target='_blank'>Advanced "
299
+ "noCaptcha reCaptcha</a>"
300
+ msgstr ""
301
+
302
+ #: admin/anr-admin-class.php:186
303
+ msgid "Plugin Author"
304
+ msgstr ""
305
+
306
+ #: admin/anr-admin-class.php:211
307
+ msgid "No Permission!"
308
+ msgstr ""
309
+
310
+ #: admin/anr-admin-class.php:215
311
+ msgid "Sorry, your nonce did not verify!"
312
+ msgstr ""
313
+
314
+ #: admin/anr-admin-class.php:241
315
+ msgid "Advanced noCaptcha reCaptcha Setup Instruction"
316
+ msgstr ""
317
+
318
+ #: admin/anr-admin-class.php:243
319
+ msgid ""
320
+ "Get your site key and secret key from <a href='%s' target='_blank'>GOOGLE</"
321
+ "a> if you do not have already."
322
+ msgstr ""
323
+
324
+ #: admin/anr-admin-class.php:244
325
+ msgid ""
326
+ "Goto <a href='%s'>SETTINGS</a> page and set up as you need. and ENJOY..."
327
+ msgstr ""
328
+
329
+ #: admin/anr-admin-class.php:245
330
+ msgid "Implement noCaptcha in Contact Form 7"
331
+ msgstr ""
332
+
333
+ #: admin/anr-admin-class.php:246
334
+ msgid "To show noCaptcha use "
335
+ msgstr ""
336
+
337
+ #: admin/anr-admin-class.php:247
338
+ msgid "If you want to implement noCaptcha in any other custom form"
339
+ msgstr ""
340
+
341
+ #: admin/anr-admin-class.php:248
342
+ msgid "To show form field use "
343
+ msgstr ""
344
+
345
+ #: admin/anr-admin-class.php:249
346
+ msgid "To verify use "
347
+ msgstr ""
348
+
349
+ #: anr-captcha-class.php:94
350
+ msgid "<strong>ERROR</strong>: "
351
+ msgstr ""
352
+
353
+ #. Plugin Name of the plugin/theme
354
+ msgid "Advanced noCaptcha reCaptcha"
355
+ msgstr ""
356
+
357
+ #. #-#-#-#-# plugin.pot (Advanced noCaptcha reCaptcha 1.1) #-#-#-#-#
358
+ #. Plugin URI of the plugin/theme
359
+ #. #-#-#-#-# plugin.pot (Advanced noCaptcha reCaptcha 1.1) #-#-#-#-#
360
+ #. Author URI of the plugin/theme
361
+ msgid "https://shamimbiplob.wordpress.com/contact-us/"
362
+ msgstr ""
363
+
364
+ #. Description of the plugin/theme
365
+ msgid ""
366
+ "Show noCaptcha in Login, Register, Lost Password, Reset Password, Comment "
367
+ "Form (after Comment textarea before submit button). Also can implement in "
368
+ "any other form easily."
369
+ msgstr ""
370
+
371
+ #. Author of the plugin/theme
372
+ msgid "Shamim"
373
+ msgstr ""
readme.txt ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Advanced noCaptcha reCaptcha ===
2
+ Contributors: shamim51
3
+ Tags: recaptcha,nocaptcha,no captcha,bot,spam,captcha,contact form 7 captcha,widget,plugin,sidebar,shortcode,page,posts,comments,google
4
+ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=4HKBQ3QFSCPHJ&lc=US&item_name=Front%20End%20PM&item_number=Front%20End%20PM&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted
5
+ Requires at least: 2.8
6
+ Tested up to: 4.2.2
7
+ Stable tag: trunk
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ Show noCaptcha in Comment Form (after Comment textarea before submit button), Contact Form 7, Login, Register, Lost Password, Reset Password.
12
+
13
+ == Description ==
14
+
15
+ Show noCaptcha in Comment Form (after Comment textarea before submit button), Contact Form 7, Login, Register, Lost Password, Reset Password. Also can implement in any other form easily.
16
+
17
+ = Show noCaptcha on =
18
+
19
+ * Comment Form (after Comment textarea before submit button)
20
+ * Contact Form 7
21
+ * Login
22
+ * Register
23
+ * Lost Password
24
+ * Reset Password
25
+ * FEP Contact Form
26
+
27
+ = Options =
28
+
29
+ * Language can be changed
30
+ * Theme can be changed
31
+ * Error message can be changed
32
+ * Option to show/hide captcha for logged in users
33
+ * Captcha will show if javascript disabled also (optional)
34
+
35
+
36
+ == Installation ==
37
+ 1. Upload "advanced-nocaptcha-recaptcha" to the "/wp-content/plugins/" directory.
38
+ 1. Activate the plugin through the "Plugins" menu in WordPress.
39
+ 1. Go to plugin settings page for setup.
40
+
41
+
42
+ == Frequently Asked Questions ==
43
+
44
+ = Can i use this plugin to my language? =
45
+ Yes. this plugin is translate ready. But If your language is not available you can make one. If you want to help us to translate this plugin to your language you are welcome.
46
+
47
+
48
+ == Screenshots ==
49
+
50
+ 1. Captcha in comment form
51
+ 2. Captcha in Contact Form 7
52
+ 3. Captcha in Login Form
53
+ 4. Captcha in Register Form
54
+ 5. Captcha in Lost Password Form
55
+ 6. Advanced noCaptcha reCaptcha Settings
56
+ 7. Advanced noCaptcha reCaptcha Setup Instruction
57
+
58
+ == Changelog ==
59
+
60
+ = 1.1 =
61
+
62
+ * Initial release.
63
+
64
+ == Upgrade Notice ==
65
+
66
+ = 1.1 =
67
+
68
+ * Initial release.
style/style.css ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ #login {
2
+ width: 350px !important;
3
+ }