Math Captcha - Version 1.2.8

Version Description

  • Fix: Potential vulnerability bug

  • Tweak: Contact Form 7 compatibility

Download this release

Release Info

Developer dfactory
Plugin Icon 128x128 Math Captcha
Version 1.2.8
Comparing to
See all releases

Code changes from version 1.2.7 to 1.2.8

includes/class-cookie-session.php CHANGED
@@ -14,7 +14,7 @@ class Math_Captcha_Cookie_Session {
14
  Math_Captcha()->cookie_session = $this;
15
 
16
  // actions
17
- add_action( 'plugins_loaded', array( &$this, 'init_session' ), 1 );
18
  }
19
 
20
  /**
14
  Math_Captcha()->cookie_session = $this;
15
 
16
  // actions
17
+ add_action( 'plugins_loaded', array( $this, 'init_session' ), 1 );
18
  }
19
 
20
  /**
includes/class-core.php CHANGED
@@ -20,13 +20,13 @@ class Math_Captcha_Core {
20
  Math_Captcha()->core = $this;
21
 
22
  // actions
23
- add_action( 'init', array( &$this, 'load_actions_filters' ), 1 );
24
- add_action( 'plugins_loaded', array( &$this, 'load_defaults' ) );
25
- add_action( 'admin_init', array( &$this, 'flush_rewrites' ) );
26
 
27
  // filters
28
- add_filter( 'shake_error_codes', array( &$this, 'add_shake_error_codes' ), 1 );
29
- add_filter( 'mod_rewrite_rules', array( &$this, 'block_direct_comments' ) );
30
  }
31
 
32
  /**
@@ -56,40 +56,40 @@ class Math_Captcha_Core {
56
  // comments
57
  if ( Math_Captcha()->options['general']['enable_for']['comment_form'] ) {
58
  if ( ! is_user_logged_in() )
59
- add_action( 'comment_form_after_fields', array( &$this, 'add_captcha_form' ) );
60
  elseif ( ! Math_Captcha()->options['general']['hide_for_logged_users'] )
61
- add_action( 'comment_form_logged_in_after', array( &$this, 'add_captcha_form' ) );
62
 
63
- add_filter( 'preprocess_comment', array( &$this, 'add_comment_with_captcha' ) );
64
  }
65
 
66
  // registration
67
  if ( Math_Captcha()->options['general']['enable_for']['registration_form'] && ( ! is_user_logged_in() || (is_user_logged_in() && ! Math_Captcha()->options['general']['hide_for_logged_users'])) && $action === 'register' ) {
68
- add_action( 'register_form', array( &$this, 'add_captcha_form' ) );
69
- add_action( 'register_post', array( &$this, 'add_user_with_captcha' ), 10, 3 );
70
- add_action( 'signup_extra_fields', array( &$this, 'add_captcha_form' ) );
71
- add_filter( 'wpmu_validate_user_signup', array( &$this, 'validate_user_with_captcha' ) );
72
  }
73
 
74
  // lost password
75
  if ( Math_Captcha()->options['general']['enable_for']['reset_password_form'] && ( ! is_user_logged_in() || (is_user_logged_in() && ! Math_Captcha()->options['general']['hide_for_logged_users'])) && $action === 'lostpassword' ) {
76
- add_action( 'lostpassword_form', array( &$this, 'add_captcha_form' ) );
77
- add_action( 'lostpassword_post', array( &$this, 'check_lost_password_with_captcha' ) );
78
  }
79
 
80
  // login
81
  if ( Math_Captcha()->options['general']['enable_for']['login_form'] && ( ! is_user_logged_in() || (is_user_logged_in() && ! Math_Captcha()->options['general']['hide_for_logged_users'])) && $action === null ) {
82
- add_action( 'login_form', array( &$this, 'add_captcha_form' ) );
83
- add_filter( 'login_redirect', array( &$this, 'redirect_login_with_captcha' ), 10, 3 );
84
- add_filter( 'authenticate', array( &$this, 'authenticate_user' ), 1000, 3 );
85
  }
86
 
87
  // bbPress
88
  if ( Math_Captcha()->options['general']['enable_for']['bbpress'] && class_exists( 'bbPress' ) && ( ! is_user_logged_in() || (is_user_logged_in() && ! Math_Captcha()->options['general']['hide_for_logged_users'])) ) {
89
- add_action( 'bbp_theme_after_reply_form_content', array( &$this, 'add_bbp_captcha_form' ) );
90
- add_action( 'bbp_theme_after_topic_form_content', array( &$this, 'add_bbp_captcha_form' ) );
91
- add_action( 'bbp_new_reply_pre_extras', array( &$this, 'check_bbpress_captcha' ) );
92
- add_action( 'bbp_new_topic_pre_extras', array( &$this, 'check_bbpress_captcha' ) );
93
  }
94
  }
95
 
@@ -148,9 +148,9 @@ class Math_Captcha_Core {
148
  if ( ! empty( $this->errors->errors ) ) {
149
  // nasty hack (captcha is invalid but user_login is fine)
150
  if ( $user_error === false )
151
- add_filter( 'allow_password_reset', array( &$this, 'add_lostpassword_wp_message' ) );
152
  else
153
- add_filter( 'login_errors', array( &$this, 'add_lostpassword_captcha_message' ) );
154
  }
155
  }
156
 
@@ -228,7 +228,7 @@ class Math_Captcha_Core {
228
  * @param WP_Error $user
229
  * @param string $username
230
  * @param string $password
231
- * @return \WP_Error
232
  */
233
  public function authenticate_user( $user, $username, $password ) {
234
  // user gave us valid login and password
@@ -278,8 +278,8 @@ class Math_Captcha_Core {
278
  * @return array
279
  */
280
  public function add_comment_with_captcha( $comment ) {
281
- if ( isset( $_POST['mc-value'] ) && ( ! is_admin() || DOING_AJAX) && ($comment['comment_type'] === '' || $comment['comment_type'] === 'comment') ) {
282
- if ( $_POST['mc-value'] !== '' ) {
283
  if ( Math_Captcha()->cookie_session->session_ids['default'] !== '' && get_transient( 'mc_' . Math_Captcha()->cookie_session->session_ids['default'] ) !== false ) {
284
  if ( strcmp( get_transient( 'mc_' . Math_Captcha()->cookie_session->session_ids['default'] ), sha1( AUTH_KEY . $_POST['mc-value'] . Math_Captcha()->cookie_session->session_ids['default'], false ) ) === 0 )
285
  return $comment;
@@ -290,7 +290,7 @@ class Math_Captcha_Core {
290
  } else
291
  wp_die( $this->error_messages['fill'] );
292
  } else
293
- return $comment;
294
  }
295
 
296
  /**
20
  Math_Captcha()->core = $this;
21
 
22
  // actions
23
+ add_action( 'init', array( $this, 'load_actions_filters' ), 1 );
24
+ add_action( 'plugins_loaded', array( $this, 'load_defaults' ) );
25
+ add_action( 'admin_init', array( $this, 'flush_rewrites' ) );
26
 
27
  // filters
28
+ add_filter( 'shake_error_codes', array( $this, 'add_shake_error_codes' ), 1 );
29
+ add_filter( 'mod_rewrite_rules', array( $this, 'block_direct_comments' ) );
30
  }
31
 
32
  /**
56
  // comments
57
  if ( Math_Captcha()->options['general']['enable_for']['comment_form'] ) {
58
  if ( ! is_user_logged_in() )
59
+ add_action( 'comment_form_after_fields', array( $this, 'add_captcha_form' ) );
60
  elseif ( ! Math_Captcha()->options['general']['hide_for_logged_users'] )
61
+ add_action( 'comment_form_logged_in_after', array( $this, 'add_captcha_form' ) );
62
 
63
+ add_filter( 'preprocess_comment', array( $this, 'add_comment_with_captcha' ) );
64
  }
65
 
66
  // registration
67
  if ( Math_Captcha()->options['general']['enable_for']['registration_form'] && ( ! is_user_logged_in() || (is_user_logged_in() && ! Math_Captcha()->options['general']['hide_for_logged_users'])) && $action === 'register' ) {
68
+ add_action( 'register_form', array( $this, 'add_captcha_form' ) );
69
+ add_action( 'register_post', array( $this, 'add_user_with_captcha' ), 10, 3 );
70
+ add_action( 'signup_extra_fields', array( $this, 'add_captcha_form' ) );
71
+ add_filter( 'wpmu_validate_user_signup', array( $this, 'validate_user_with_captcha' ) );
72
  }
73
 
74
  // lost password
75
  if ( Math_Captcha()->options['general']['enable_for']['reset_password_form'] && ( ! is_user_logged_in() || (is_user_logged_in() && ! Math_Captcha()->options['general']['hide_for_logged_users'])) && $action === 'lostpassword' ) {
76
+ add_action( 'lostpassword_form', array( $this, 'add_captcha_form' ) );
77
+ add_action( 'lostpassword_post', array( $this, 'check_lost_password_with_captcha' ) );
78
  }
79
 
80
  // login
81
  if ( Math_Captcha()->options['general']['enable_for']['login_form'] && ( ! is_user_logged_in() || (is_user_logged_in() && ! Math_Captcha()->options['general']['hide_for_logged_users'])) && $action === null ) {
82
+ add_action( 'login_form', array( $this, 'add_captcha_form' ) );
83
+ add_filter( 'login_redirect', array( $this, 'redirect_login_with_captcha' ), 10, 3 );
84
+ add_filter( 'authenticate', array( $this, 'authenticate_user' ), 1000, 3 );
85
  }
86
 
87
  // bbPress
88
  if ( Math_Captcha()->options['general']['enable_for']['bbpress'] && class_exists( 'bbPress' ) && ( ! is_user_logged_in() || (is_user_logged_in() && ! Math_Captcha()->options['general']['hide_for_logged_users'])) ) {
89
+ add_action( 'bbp_theme_after_reply_form_content', array( $this, 'add_bbp_captcha_form' ) );
90
+ add_action( 'bbp_theme_after_topic_form_content', array( $this, 'add_bbp_captcha_form' ) );
91
+ add_action( 'bbp_new_reply_pre_extras', array( $this, 'check_bbpress_captcha' ) );
92
+ add_action( 'bbp_new_topic_pre_extras', array( $this, 'check_bbpress_captcha' ) );
93
  }
94
  }
95
 
148
  if ( ! empty( $this->errors->errors ) ) {
149
  // nasty hack (captcha is invalid but user_login is fine)
150
  if ( $user_error === false )
151
+ add_filter( 'allow_password_reset', array( $this, 'add_lostpassword_wp_message' ) );
152
  else
153
+ add_filter( 'login_errors', array( $this, 'add_lostpassword_captcha_message' ) );
154
  }
155
  }
156
 
228
  * @param WP_Error $user
229
  * @param string $username
230
  * @param string $password
231
+ * @return object WP_Error
232
  */
233
  public function authenticate_user( $user, $username, $password ) {
234
  // user gave us valid login and password
278
  * @return array
279
  */
280
  public function add_comment_with_captcha( $comment ) {
281
+ if ( isset( $_POST['mc-value'] ) && $_POST['mc-value'] !== '' ) {
282
+ if ( ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) && ( $comment['comment_type'] === '' || $comment['comment_type'] === 'comment' ) ) {
283
  if ( Math_Captcha()->cookie_session->session_ids['default'] !== '' && get_transient( 'mc_' . Math_Captcha()->cookie_session->session_ids['default'] ) !== false ) {
284
  if ( strcmp( get_transient( 'mc_' . Math_Captcha()->cookie_session->session_ids['default'] ), sha1( AUTH_KEY . $_POST['mc-value'] . Math_Captcha()->cookie_session->session_ids['default'], false ) ) === 0 )
285
  return $comment;
290
  } else
291
  wp_die( $this->error_messages['fill'] );
292
  } else
293
+ wp_die( $this->error_messages['fill'] );
294
  }
295
 
296
  /**
includes/class-settings.php CHANGED
@@ -13,9 +13,9 @@ class Math_Captcha_Settings {
13
 
14
  public function __construct() {
15
  // actions
16
- add_action( 'init', array( &$this, 'load_defaults' ) );
17
- add_action( 'admin_init', array( &$this, 'register_settings' ) );
18
- add_action( 'admin_menu', array( &$this, 'admin_menu_options' ) );
19
  }
20
 
21
  /**
@@ -52,7 +52,7 @@ class Math_Captcha_Settings {
52
  */
53
  public function admin_menu_options() {
54
  add_options_page(
55
- __( 'Math Captcha', 'math-captcha' ), __( 'Math Captcha', 'math-captcha' ), 'manage_options', 'math-captcha', array( &$this, 'options_page' )
56
  );
57
  }
58
 
@@ -109,16 +109,16 @@ class Math_Captcha_Settings {
109
  */
110
  public function register_settings() {
111
  // general settings
112
- register_setting( 'math_captcha_options', 'math_captcha_options', array( &$this, 'validate_settings' ) );
113
  add_settings_section( 'math_captcha_settings', __( 'Math Captcha settings', 'math-captcha' ), '', 'math_captcha_options' );
114
- add_settings_field( 'mc_general_enable_captcha_for', __( 'Enable Math Captcha for', 'math-captcha' ), array( &$this, 'mc_general_enable_captcha_for' ), 'math_captcha_options', 'math_captcha_settings' );
115
- add_settings_field( 'mc_general_hide_for_logged_users', __( 'Hide for logged in users', 'math-captcha' ), array( &$this, 'mc_general_hide_for_logged_users' ), 'math_captcha_options', 'math_captcha_settings' );
116
- add_settings_field( 'mc_general_mathematical_operations', __( 'Mathematical operations', 'math-captcha' ), array( &$this, 'mc_general_mathematical_operations' ), 'math_captcha_options', 'math_captcha_settings' );
117
- add_settings_field( 'mc_general_groups', __( 'Display captcha as', 'math-captcha' ), array( &$this, 'mc_general_groups' ), 'math_captcha_options', 'math_captcha_settings' );
118
- add_settings_field( 'mc_general_title', __( 'Captcha field title', 'math-captcha' ), array( &$this, 'mc_general_title' ), 'math_captcha_options', 'math_captcha_settings' );
119
- add_settings_field( 'mc_general_time', __( 'Captcha time', 'math-captcha' ), array( &$this, 'mc_general_time' ), 'math_captcha_options', 'math_captcha_settings' );
120
- add_settings_field( 'mc_general_block_direct_comments', __( 'Block Direct Comments', 'math-captcha' ), array( &$this, 'mc_general_block_direct_comments' ), 'math_captcha_options', 'math_captcha_settings' );
121
- add_settings_field( 'mc_general_deactivation_delete', __( 'Deactivation', 'math-captcha' ), array( &$this, 'mc_general_deactivation_delete' ), 'math_captcha_options', 'math_captcha_settings' );
122
  }
123
 
124
  public function mc_general_enable_captcha_for() {
13
 
14
  public function __construct() {
15
  // actions
16
+ add_action( 'init', array( $this, 'load_defaults' ) );
17
+ add_action( 'admin_init', array( $this, 'register_settings' ) );
18
+ add_action( 'admin_menu', array( $this, 'admin_menu_options' ) );
19
  }
20
 
21
  /**
52
  */
53
  public function admin_menu_options() {
54
  add_options_page(
55
+ __( 'Math Captcha', 'math-captcha' ), __( 'Math Captcha', 'math-captcha' ), 'manage_options', 'math-captcha', array( $this, 'options_page' )
56
  );
57
  }
58
 
109
  */
110
  public function register_settings() {
111
  // general settings
112
+ register_setting( 'math_captcha_options', 'math_captcha_options', array( $this, 'validate_settings' ) );
113
  add_settings_section( 'math_captcha_settings', __( 'Math Captcha settings', 'math-captcha' ), '', 'math_captcha_options' );
114
+ add_settings_field( 'mc_general_enable_captcha_for', __( 'Enable Math Captcha for', 'math-captcha' ), array( $this, 'mc_general_enable_captcha_for' ), 'math_captcha_options', 'math_captcha_settings' );
115
+ add_settings_field( 'mc_general_hide_for_logged_users', __( 'Hide for logged in users', 'math-captcha' ), array( $this, 'mc_general_hide_for_logged_users' ), 'math_captcha_options', 'math_captcha_settings' );
116
+ add_settings_field( 'mc_general_mathematical_operations', __( 'Mathematical operations', 'math-captcha' ), array( $this, 'mc_general_mathematical_operations' ), 'math_captcha_options', 'math_captcha_settings' );
117
+ add_settings_field( 'mc_general_groups', __( 'Display captcha as', 'math-captcha' ), array( $this, 'mc_general_groups' ), 'math_captcha_options', 'math_captcha_settings' );
118
+ add_settings_field( 'mc_general_title', __( 'Captcha field title', 'math-captcha' ), array( $this, 'mc_general_title' ), 'math_captcha_options', 'math_captcha_settings' );
119
+ add_settings_field( 'mc_general_time', __( 'Captcha time', 'math-captcha' ), array( $this, 'mc_general_time' ), 'math_captcha_options', 'math_captcha_settings' );
120
+ add_settings_field( 'mc_general_block_direct_comments', __( 'Block Direct Comments', 'math-captcha' ), array( $this, 'mc_general_block_direct_comments' ), 'math_captcha_options', 'math_captcha_settings' );
121
+ add_settings_field( 'mc_general_deactivation_delete', __( 'Deactivation', 'math-captcha' ), array( $this, 'mc_general_deactivation_delete' ), 'math_captcha_options', 'math_captcha_settings' );
122
  }
123
 
124
  public function mc_general_enable_captcha_for() {
includes/class-update.php CHANGED
@@ -9,7 +9,7 @@ class Math_Captcha_Update {
9
 
10
  public function __construct() {
11
  // actions
12
- add_action( 'init', array( &$this, 'check_update' ) );
13
  }
14
 
15
  /**
9
 
10
  public function __construct() {
11
  // actions
12
+ add_action( 'init', array( $this, 'check_update' ) );
13
  }
14
 
15
  /**
includes/integrations/contact-form-7.php CHANGED
@@ -11,7 +11,7 @@ function wpcf7_add_shortcode_mathcaptcha() {
11
  }
12
 
13
  function wpcf7_mathcaptcha_shortcode_handler( $tag ) {
14
- if ( ! is_user_logged_in() || (is_user_logged_in() && ! Math_Captcha()->options['general']['hide_for_logged_users']) ) {
15
  $tag = new WPCF7_FormTag( $tag );
16
 
17
  if ( empty( $tag->name ) )
@@ -40,7 +40,7 @@ function wpcf7_mathcaptcha_shortcode_handler( $tag ) {
40
 
41
  $math_captcha_title = apply_filters( 'math_captcha_title', Math_Captcha()->options['general']['title'] );
42
 
43
- return sprintf( ((empty( $math_captcha_title )) ? '' : $math_captcha_title) . '<span class="wpcf7-form-control-wrap %1$s">' . $mc_form[1] . $mc_form[2] . $mc_form[3] . '%3$s</span><input type="hidden" value="' . (Math_Captcha()->core->session_number - 1) . '" name="' . $tag->name . '-sn" />', $tag->name, $atts, $validation_error );
44
  }
45
  }
46
 
@@ -51,40 +51,33 @@ function wpcf7_mathcaptcha_validation_filter( $result, $tag ) {
51
  $tag = new WPCF7_FormTag( $tag );
52
  $name = $tag->name;
53
 
54
- if ( ! is_admin() && isset( $_POST[$name] ) ) {
55
- $cf7_version = get_option( 'wpcf7', '1.0.0' );
56
 
57
- if ( is_array( $cf7_version ) && isset( $cf7_version['version'] ) )
58
- $cf7_version = $cf7_version['version'];
59
-
60
- if ( $_POST[$name] !== '' ) {
61
- $session_id = (isset( $_POST[$name . '-sn'] ) && $_POST[$name . '-sn'] !== '' ? Math_Captcha()->cookie_session->session_ids['multi'][$_POST[$name . '-sn']] : '');
62
-
63
- if ( $session_id !== '' && get_transient( 'cf7_' . $session_id ) !== false ) {
64
- if ( strcmp( get_transient( 'cf7_' . $session_id ), sha1( AUTH_KEY . $_POST[$name] . $session_id, false ) ) !== 0 ) {
65
- if ( version_compare( $cf7_version, '4.1.0', '>=' ) )
66
- $result->invalidate( $tag, wpcf7_get_message( 'wrong_mathcaptcha' ) );
67
- else {
68
- $result['valid'] = false;
69
- $result['reason'][$name] = wpcf7_get_message( 'wrong_mathcaptcha' );
70
- }
71
- }
72
- } else {
73
- if ( version_compare( $cf7_version, '4.1.0', '>=' ) )
74
- $result->invalidate( $tag, wpcf7_get_message( 'time_mathcaptcha' ) );
75
  else {
76
  $result['valid'] = false;
77
- $result['reason'][$name] = wpcf7_get_message( 'time_mathcaptcha' );
78
  }
79
  }
80
  } else {
81
- if ( version_compare( $cf7_version, '4.1.0', '>=' ) )
82
- $result->invalidate( $tag, wpcf7_get_message( 'fill_mathcaptcha' ) );
83
  else {
84
  $result['valid'] = false;
85
- $result['reason'][$name] = wpcf7_get_message( 'fill_mathcaptcha' );
86
  }
87
  }
 
 
 
 
 
 
 
88
  }
89
 
90
  return $result;
@@ -95,19 +88,20 @@ add_filter( 'wpcf7_messages', 'wpcf7_mathcaptcha_messages' );
95
 
96
  function wpcf7_mathcaptcha_messages( $messages ) {
97
  return array_merge(
98
- $messages, array(
99
- 'wrong_mathcaptcha' => array(
100
- 'description' => __( 'Invalid captcha value.', 'math-captcha' ),
101
- 'default' => Math_Captcha()->core->error_messages['wrong']
102
- ),
103
- 'fill_mathcaptcha' => array(
104
- 'description' => __( 'Please enter captcha value.', 'math-captcha' ),
105
- 'default' => Math_Captcha()->core->error_messages['fill']
106
- ),
107
- 'time_mathcaptcha' => array(
108
- 'description' => __( 'Captcha time expired.', 'math-captcha' ),
109
- 'default' => Math_Captcha()->core->error_messages['time']
110
- )
 
111
  )
112
  );
113
  }
@@ -116,10 +110,13 @@ function wpcf7_mathcaptcha_messages( $messages ) {
116
  add_action( 'wpcf7_admin_notices', 'wpcf7_mathcaptcha_display_warning_message' );
117
 
118
  function wpcf7_mathcaptcha_display_warning_message() {
119
- if ( empty( $_GET['post'] ) || ! ($contact_form = wpcf7_contact_form( $_GET['post'] )) )
120
  return;
121
 
122
- $has_tags = (bool) $contact_form->form_scan_shortcode( array( 'type' => array( 'mathcaptcha' ) ) );
 
 
 
123
 
124
  if ( ! $has_tags )
125
  return;
11
  }
12
 
13
  function wpcf7_mathcaptcha_shortcode_handler( $tag ) {
14
+ if ( ! is_user_logged_in() || ( is_user_logged_in() && ! Math_Captcha()->options['general']['hide_for_logged_users'] ) ) {
15
  $tag = new WPCF7_FormTag( $tag );
16
 
17
  if ( empty( $tag->name ) )
40
 
41
  $math_captcha_title = apply_filters( 'math_captcha_title', Math_Captcha()->options['general']['title'] );
42
 
43
+ return sprintf( ( ( empty( $math_captcha_title ) ) ? '' : $math_captcha_title ) . ' <span class="wpcf7-form-control-wrap %1$s">' . $mc_form[1] . $mc_form[2] . $mc_form[3] . '%3$s</span><input type="hidden" value="' . ( Math_Captcha()->core->session_number - 1 ) . '" name="' . $tag->name . '-sn" />', $tag->name, $atts, $validation_error );
44
  }
45
  }
46
 
51
  $tag = new WPCF7_FormTag( $tag );
52
  $name = $tag->name;
53
 
54
+ if ( isset( $_POST[$name] ) && $_POST[$name] !== '' && ! is_admin() ) {
55
+ $session_id = isset( $_POST[$name . '-sn'] ) && $_POST[$name . '-sn'] !== '' ? Math_Captcha()->cookie_session->session_ids['multi'][$_POST[$name . '-sn']] : '';
56
 
57
+ if ( $session_id !== '' && get_transient( 'cf7_' . $session_id ) !== false ) {
58
+ if ( strcmp( get_transient( 'cf7_' . $session_id ), sha1( AUTH_KEY . $_POST[$name] . $session_id, false ) ) !== 0 ) {
59
+ if ( version_compare( WPCF7_VERSION, '4.1.0', '>=' ) )
60
+ $result->invalidate( $tag, wpcf7_get_message( 'wrong_mathcaptcha' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  else {
62
  $result['valid'] = false;
63
+ $result['reason'][$name] = wpcf7_get_message( 'wrong_mathcaptcha' );
64
  }
65
  }
66
  } else {
67
+ if ( version_compare( WPCF7_VERSION, '4.1.0', '>=' ) )
68
+ $result->invalidate( $tag, wpcf7_get_message( 'time_mathcaptcha' ) );
69
  else {
70
  $result['valid'] = false;
71
+ $result['reason'][$name] = wpcf7_get_message( 'time_mathcaptcha' );
72
  }
73
  }
74
+ } else {
75
+ if ( version_compare( WPCF7_VERSION, '4.1.0', '>=' ) )
76
+ $result->invalidate( $tag, wpcf7_get_message( 'fill_mathcaptcha' ) );
77
+ else {
78
+ $result['valid'] = false;
79
+ $result['reason'][$name] = wpcf7_get_message( 'fill_mathcaptcha' );
80
+ }
81
  }
82
 
83
  return $result;
88
 
89
  function wpcf7_mathcaptcha_messages( $messages ) {
90
  return array_merge(
91
+ $messages,
92
+ array(
93
+ 'wrong_mathcaptcha' => array(
94
+ 'description' => __( 'Invalid captcha value.', 'math-captcha' ),
95
+ 'default' => wp_strip_all_tags( Math_Captcha()->core->error_messages['wrong'], true )
96
+ ),
97
+ 'fill_mathcaptcha' => array(
98
+ 'description' => __( 'Please enter captcha value.', 'math-captcha' ),
99
+ 'default' => wp_strip_all_tags( Math_Captcha()->core->error_messages['fill'], true )
100
+ ),
101
+ 'time_mathcaptcha' => array(
102
+ 'description' => __( 'Captcha time expired.', 'math-captcha' ),
103
+ 'default' => wp_strip_all_tags( Math_Captcha()->core->error_messages['time'], true )
104
+ )
105
  )
106
  );
107
  }
110
  add_action( 'wpcf7_admin_notices', 'wpcf7_mathcaptcha_display_warning_message' );
111
 
112
  function wpcf7_mathcaptcha_display_warning_message() {
113
+ if ( empty( $_GET['post'] ) || ! ( $contact_form = wpcf7_contact_form( $_GET['post'] ) ) )
114
  return;
115
 
116
+ if ( version_compare( WPCF7_VERSION, '4.6.0', '>=' ) )
117
+ $has_tags = (bool) $contact_form->scan_form_tags( array( 'type' => array( 'mathcaptcha' ) ) );
118
+ else
119
+ $has_tags = (bool) $contact_form->form_scan_shortcode( array( 'type' => array( 'mathcaptcha' ) ) );
120
 
121
  if ( ! $has_tags )
122
  return;
languages/math-captcha-pl_PL.mo DELETED
Binary file
languages/math-captcha-pl_PL.po DELETED
@@ -1,666 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Math Captcha\n"
4
- "POT-Creation-Date: 2013-06-13 20:00+0100\n"
5
- "PO-Revision-Date: 2013-06-13 20:09+0100\n"
6
- "Last-Translator: Bartosz Arendt <info@digitalfactory.pl>\n"
7
- "Language-Team: dFactory <info@dfactory.eu>\n"
8
- "Language: English\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.5.5\n"
13
- "X-Poedit-KeywordsList: gettext;gettext_noop;__;_e\n"
14
- "X-Poedit-Basepath: .\n"
15
- "X-Poedit-SourceCharset: UTF-8\n"
16
- "X-Poedit-SearchPath-0: ..\n"
17
-
18
- #: ../math-captcha.php:70 ../math-captcha.php:71 ../math-captcha.php:72
19
- msgid "ERROR"
20
- msgstr "BŁĄD"
21
-
22
- #: ../math-captcha.php:70 ../includes/math-captcha-cf7.php:104
23
- msgid "Please enter captcha value."
24
- msgstr "Proszę wpisać wartość."
25
-
26
- #: ../math-captcha.php:71 ../includes/math-captcha-cf7.php:100
27
- msgid "Invalid captcha value."
28
- msgstr "Nieprawidłowa wartość."
29
-
30
- #: ../math-captcha.php:72 ../includes/math-captcha-cf7.php:108
31
- msgid "Captcha time expired."
32
- msgstr "Upłynął czas."
33
-
34
- #: ../math-captcha.php:503
35
- msgid "one"
36
- msgstr "jeden"
37
-
38
- #: ../math-captcha.php:504
39
- msgid "two"
40
- msgstr "dwa"
41
-
42
- #: ../math-captcha.php:505
43
- msgid "three"
44
- msgstr "trzy"
45
-
46
- #: ../math-captcha.php:506
47
- msgid "four"
48
- msgstr "cztery"
49
-
50
- #: ../math-captcha.php:507
51
- msgid "five"
52
- msgstr "pięć"
53
-
54
- #: ../math-captcha.php:508
55
- msgid "six"
56
- msgstr "sześć"
57
-
58
- #: ../math-captcha.php:509
59
- msgid "seven"
60
- msgstr "siedem"
61
-
62
- #: ../math-captcha.php:510
63
- msgid "eight"
64
- msgstr "osiem"
65
-
66
- #: ../math-captcha.php:511
67
- msgid "nine"
68
- msgstr "dziewięć"
69
-
70
- #: ../math-captcha.php:512
71
- msgid "ten"
72
- msgstr "dziesięć"
73
-
74
- #: ../math-captcha.php:513
75
- msgid "eleven"
76
- msgstr "jedenaście"
77
-
78
- #: ../math-captcha.php:514
79
- msgid "twelve"
80
- msgstr "dwanaście"
81
-
82
- #: ../math-captcha.php:515
83
- msgid "thirteen"
84
- msgstr "trzynaście"
85
-
86
- #: ../math-captcha.php:516
87
- msgid "fourteen"
88
- msgstr "czternaście"
89
-
90
- #: ../math-captcha.php:517
91
- msgid "fifteen"
92
- msgstr "piętnaście"
93
-
94
- #: ../math-captcha.php:518
95
- msgid "sixteen"
96
- msgstr "szesnaście"
97
-
98
- #: ../math-captcha.php:519
99
- msgid "seventeen"
100
- msgstr "siedemnaście"
101
-
102
- #: ../math-captcha.php:520
103
- msgid "eighteen"
104
- msgstr "osiemnaście"
105
-
106
- #: ../math-captcha.php:521
107
- msgid "nineteen"
108
- msgstr "dziewiętnaście"
109
-
110
- #: ../math-captcha.php:522
111
- msgid "twenty"
112
- msgstr "dwadzieścia"
113
-
114
- #: ../math-captcha.php:523
115
- msgid "thirty"
116
- msgstr "trzydzieści"
117
-
118
- #: ../math-captcha.php:524
119
- msgid "forty"
120
- msgstr "czterdzieści"
121
-
122
- #: ../math-captcha.php:525
123
- msgid "fifty"
124
- msgstr "pięćdziesiąt"
125
-
126
- #: ../math-captcha.php:526
127
- msgid "sixty"
128
- msgstr "sześćdziesiąt"
129
-
130
- #: ../math-captcha.php:527
131
- msgid "seventy"
132
- msgstr "siedemdziesiąt"
133
-
134
- #: ../math-captcha.php:528
135
- msgid "eighty"
136
- msgstr "osiemdziesiąt"
137
-
138
- #: ../math-captcha.php:529
139
- msgid "ninety"
140
- msgstr "dziewięćdziesiąt"
141
-
142
- #: ../math-captcha.php:824
143
- msgid "login form"
144
- msgstr "formularz logowania"
145
-
146
- #: ../math-captcha.php:825
147
- msgid "registration form"
148
- msgstr "formularz rejestracji"
149
-
150
- #: ../math-captcha.php:826
151
- msgid "reset password form"
152
- msgstr "resetowanie hasła"
153
-
154
- #: ../math-captcha.php:827
155
- msgid "comment form"
156
- msgstr "komentarze"
157
-
158
- #: ../math-captcha.php:828
159
- msgid "bbpress"
160
- msgstr "bbpress"
161
-
162
- #: ../math-captcha.php:829
163
- msgid "contact form 7"
164
- msgstr "contact form 7"
165
-
166
- #: ../math-captcha.php:832
167
- msgid "yes"
168
- msgstr "tak"
169
-
170
- #: ../math-captcha.php:833
171
- msgid "no"
172
- msgstr "nie"
173
-
174
- #: ../math-captcha.php:836
175
- msgid "addition (+)"
176
- msgstr "dodawanie (+)"
177
-
178
- #: ../math-captcha.php:837
179
- msgid "subtraction (-)"
180
- msgstr "odejmowanie (-)"
181
-
182
- #: ../math-captcha.php:838
183
- msgid "multiplication (&#215;)"
184
- msgstr "mnożenie (&#215;)"
185
-
186
- #: ../math-captcha.php:839
187
- msgid "division (&#247;)"
188
- msgstr "dzielenie (&#247;)"
189
-
190
- #: ../math-captcha.php:842
191
- msgid "numbers"
192
- msgstr "liczby"
193
-
194
- #: ../math-captcha.php:843
195
- msgid "words"
196
- msgstr "słowa"
197
-
198
- #: ../math-captcha.php:852
199
- msgid "Math Captcha settings"
200
- msgstr "Ustawienia Math Captcha"
201
-
202
- #: ../math-captcha.php:853
203
- msgid "Enable Math Captcha for"
204
- msgstr "Włącz captcha dla"
205
-
206
- #: ../math-captcha.php:854
207
- msgid "Hide for logged in users"
208
- msgstr "Ukryj dla zalogowanych"
209
-
210
- #: ../math-captcha.php:855
211
- msgid "Mathematical operations"
212
- msgstr "Operacje matematyczne"
213
-
214
- #: ../math-captcha.php:856
215
- msgid "Display captcha as"
216
- msgstr "Wyśiwtlaj captcha jako"
217
-
218
- #: ../math-captcha.php:857
219
- msgid "Captcha field title"
220
- msgstr "Tytuł pola captcha"
221
-
222
- #: ../math-captcha.php:858
223
- msgid "Captcha time"
224
- msgstr "Czas captcha"
225
-
226
- #: ../math-captcha.php:875
227
- msgid "Select were would you like to use Math Captcha."
228
- msgstr "Wybierz w których miejscach chcesz używać Math Captcha"
229
-
230
- #: ../math-captcha.php:893
231
- msgid "Would you like to hide captcha for logged in users?"
232
- msgstr "Czy chcesz ukryć captcha dla zalogowanych użytkowników?"
233
-
234
- #: ../math-captcha.php:903
235
- msgid ""
236
- "Select what kind of mathematical operation will be used to generate captcha."
237
- msgstr ""
238
- "Wybierz jakie rodzaje operacji matematycznych będą stosowane w captcha."
239
-
240
- #: ../math-captcha.php:913
241
- msgid "Enter the time (in seconds) a user has to enter captcha value."
242
- msgstr "Podaj czas (w sekundach) w jakim należy uzupełnić pole captcha."
243
-
244
- #: ../math-captcha.php:931 ../math-captcha.php:949
245
- msgid "Opis"
246
- msgstr ""
247
-
248
- #: ../math-captcha.php:991
249
- msgid ""
250
- "You need to check at least one mathematical operation. Defaults settings of "
251
- "this option restored."
252
- msgstr ""
253
- "Musisz wybrać przynajmniej jedną operację. Przywrócono domyślne ustawienie "
254
- "tej opcji."
255
-
256
- #: ../math-captcha.php:1007
257
- msgid ""
258
- "You need to check at least one group. Defaults settings of this option "
259
- "restored."
260
- msgstr ""
261
- "Musisz wybrać przynajmniej jedną grupę. Przywrócono domyślne ustawienie tej "
262
- "opcji."
263
-
264
- #: ../math-captcha.php:1034 ../math-captcha.php:1035 ../math-captcha.php:1047
265
- #: ../math-captcha.php:1060 ../includes/math-captcha-cf7.php:139
266
- msgid "Math Captcha"
267
- msgstr "Math Captcha"
268
-
269
- #: ../math-captcha.php:1062
270
- msgid "Need support?"
271
- msgstr "Potrzebujesz pomocy?"
272
-
273
- #: ../math-captcha.php:1063
274
- msgid ""
275
- "If you are having problems with this plugin, please talk about them in the"
276
- msgstr "Jeśli masz jakiekolwiek problemy z tą wtyczką, powiedz o tym na"
277
-
278
- #: ../math-captcha.php:1063
279
- msgid "Support forum"
280
- msgstr "Forum pomocy"
281
-
282
- #: ../math-captcha.php:1065
283
- msgid "Do you like this plugin?"
284
- msgstr "Lubisz tę wtyczkę?"
285
-
286
- #: ../math-captcha.php:1066
287
- msgid "Rate it 5"
288
- msgstr "Oceń ją na 5"
289
-
290
- #: ../math-captcha.php:1066
291
- msgid "on WordPress.org"
292
- msgstr "na WordPress.org"
293
-
294
- #: ../math-captcha.php:1067
295
- msgid "Blog about it & link to the"
296
- msgstr "Napisz o niej i dodaj link do"
297
-
298
- #: ../math-captcha.php:1067
299
- msgid "plugin page"
300
- msgstr "strony wtyczki"
301
-
302
- #: ../math-captcha.php:1068
303
- msgid "Check out our other"
304
- msgstr "Sprawdź nasze inne"
305
-
306
- #: ../math-captcha.php:1068
307
- msgid "WordPress plugins"
308
- msgstr "wtyczki do WordPressa"
309
-
310
- #: ../math-captcha.php:1071
311
- msgid "Created by"
312
- msgstr "Stworzone przez"
313
-
314
- #: ../math-captcha.php:1132
315
- msgid "Support"
316
- msgstr "Forum pomocy"
317
-
318
- #: ../math-captcha.php:1154
319
- msgid "Settings"
320
- msgstr "Ustawienia"
321
-
322
- #: ../includes/math-captcha-cf7.php:151
323
- msgid "Name"
324
- msgstr "Nazwa"
325
-
326
- #: ../includes/math-captcha-cf7.php:157
327
- msgid "Input field settings"
328
- msgstr "Ustawienia pola"
329
-
330
- #: ../includes/math-captcha-cf7.php:160 ../includes/math-captcha-cf7.php:164
331
- msgid "optional"
332
- msgstr "opcjonalne"
333
-
334
- #: ../includes/math-captcha-cf7.php:170
335
- msgid "Copy this code and paste it into the form left."
336
- msgstr "Skopij i wkej ten kod do formularza po lewej."
337
-
338
- #~ msgid "form top"
339
- #~ msgstr "na górze formularza"
340
-
341
- #~ msgid "before form fields"
342
- #~ msgstr "przed polami formularza"
343
-
344
- #~ msgid "form bottom"
345
- #~ msgstr "na dole formularza"
346
-
347
- #~ msgid "after form"
348
- #~ msgstr "po formularzu"
349
-
350
- #~ msgid "WordPress default"
351
- #~ msgstr "Domyślny WordPressa"
352
-
353
- #~ msgid "Bootstrap"
354
- #~ msgstr "Bootstrap"
355
-
356
- #~ msgid "do not hide"
357
- #~ msgstr "nie ukrywaj"
358
-
359
- #~ msgid "1 second"
360
- #~ msgstr "1 sekunda"
361
-
362
- #~ msgid "2 seconds"
363
- #~ msgstr "2 sekundy"
364
-
365
- #~ msgid "3 seconds"
366
- #~ msgstr "3 sekundy"
367
-
368
- #~ msgid "5 seconds"
369
- #~ msgstr "5 sekund"
370
-
371
- #~ msgid "10 seconds"
372
- #~ msgstr "10 sekund"
373
-
374
- #~ msgid "fade"
375
- #~ msgstr "zanikanie"
376
-
377
- #~ msgid "slide"
378
- #~ msgstr "zjeżdżanie"
379
-
380
- #~ msgid "approved"
381
- #~ msgstr "zatwierdzone"
382
-
383
- #~ msgid "unapproved"
384
- #~ msgstr "niezatwierdzone"
385
-
386
- #~ msgid "trash"
387
- #~ msgstr "w koszu"
388
-
389
- #~ msgid "spam"
390
- #~ msgstr "spam"
391
-
392
- #~ msgid "Inline Edit"
393
- #~ msgstr "Edycja"
394
-
395
- #~ msgid "Messages"
396
- #~ msgstr "Komunikaty"
397
-
398
- #~ msgid "Edit"
399
- #~ msgstr "Edytuj"
400
-
401
- #~ msgid "Save"
402
- #~ msgstr "Zapisz"
403
-
404
- #~ msgid "Cancel"
405
- #~ msgstr "Anuluj"
406
-
407
- #~ msgid "Time remaining"
408
- #~ msgstr "Pozostały czas"
409
-
410
- #~ msgid "Delete"
411
- #~ msgstr "Usuń"
412
-
413
- #~ msgid "Unapprove"
414
- #~ msgstr "Odrzuć"
415
-
416
- #~ msgid "Spam"
417
- #~ msgstr "Oznacz jako spam"
418
-
419
- #~ msgid "Trash"
420
- #~ msgstr "Kosz"
421
-
422
- #~ msgid "Approve"
423
- #~ msgstr "Zatwierdź"
424
-
425
- #~ msgid "Restore"
426
- #~ msgstr "Przywróć"
427
-
428
- #~ msgid "Unspam"
429
- #~ msgstr "Odznacz spam"
430
-
431
- #~ msgid "Comments statuses"
432
- #~ msgstr "Statusy komentarzy"
433
-
434
- #~ msgid "Comment Edit Timer"
435
- #~ msgstr "Edycja komentarza"
436
-
437
- #~ msgid "Editing time"
438
- #~ msgstr "Czas edycji"
439
-
440
- #~ msgid "Delete permanently button"
441
- #~ msgstr "Przycisk Usuń"
442
-
443
- #~ msgid "Edit comment effect"
444
- #~ msgstr "Efekt przy edycji komentarza"
445
-
446
- #~ msgid "CSS style"
447
- #~ msgstr "Styl CSS"
448
-
449
- #~ msgid "Show on hover"
450
- #~ msgstr "Pokaż po najechaniu"
451
-
452
- #~ msgid "Highlight comments"
453
- #~ msgstr "Podświetlanie komentarzy"
454
-
455
- #~ msgid "Highlight colors"
456
- #~ msgstr "Kolory podświetlenia"
457
-
458
- #~ msgid "Messages Settings"
459
- #~ msgstr "Ustawienia komunikatów"
460
-
461
- #~ msgid "Message box position for logged in users"
462
- #~ msgstr "Pozycja pola z komunikatami dla zalogowanych użytkowników"
463
-
464
- #~ msgid "Message box position for logged out users"
465
- #~ msgstr "Pozycja pola z komunikatami dla niezalogowanych użytkowników"
466
-
467
- #~ msgid "Show message effect"
468
- #~ msgstr "Efekt wyświetlania komunikatów"
469
-
470
- #~ msgid "Hide message effect"
471
- #~ msgstr "Efekt ukrywania komunikatów"
472
-
473
- #~ msgid "Hide message after"
474
- #~ msgstr "Ukrywanie komunikatów po"
475
-
476
- #~ msgid ""
477
- #~ "Comment timer allows users to edit their comments for specified time."
478
- #~ msgstr ""
479
- #~ "Stoper komentarza pozwala użytkownikom na edycję ich komentarzy przez "
480
- #~ "określony czas."
481
-
482
- #~ msgid "How much time (in minutes) a user has to edit a published comment"
483
- #~ msgstr ""
484
- #~ "Jak długo (w minutach) użtkownik może edytować opublikowany komentarz"
485
-
486
- #~ msgid "Pick highlight colors for specific comment statuses"
487
- #~ msgstr "Wybierz kolory podświetlenia określonych statusów komentarzy"
488
-
489
- #~ msgid "Highlight comments with specific colors"
490
- #~ msgstr "Podświetl komentarze określonym kolorem"
491
-
492
- #~ msgid "Show inline edit actions only on hovering over a comment"
493
- #~ msgstr "Wyświetl przyciski tylko po najechaniu myszką na komentarz"
494
-
495
- #~ msgid ""
496
- #~ "Select comments of which statuses will be available for moderation on the "
497
- #~ "front-end of your site"
498
- #~ msgstr ""
499
- #~ "Wybierz statusy komentarzy, które będą dostępne do moderacji na stronie"
500
-
501
- #~ msgid ""
502
- #~ "This will add Delete to edit buttons that allows you to permanently "
503
- #~ "delete comments"
504
- #~ msgstr ""
505
- #~ "Zostanie dodany przycisk Usuń do przycików edycji, który umożliwia trwałe "
506
- #~ "usunięcie komentarzy"
507
-
508
- #~ msgid "Select animation for showing messages"
509
- #~ msgstr "Wybierz animację przy wyświetlaniu komunikatów"
510
-
511
- #~ msgid "Select animation for hiding messages"
512
- #~ msgstr "Wybierz animację przy ukrywaniu komunikatów"
513
-
514
- #~ msgid "Select animation effect for edit comment"
515
- #~ msgstr "Wybierz animację przy edycji komentarza"
516
-
517
- #~ msgid "Choose your message box style"
518
- #~ msgstr "Wybierz styl dla pola z komunikatami"
519
-
520
- #~ msgid "Select style for Inline Edit buttons"
521
- #~ msgstr "Wybierz styl dla przycisków edycji"
522
-
523
- #~ msgid "Select for how long message box should be displayed"
524
- #~ msgstr "Wybierz przez jaki czas ma być wyświetlany komunikat"
525
-
526
- #~ msgid "Select message box position for logged in users"
527
- #~ msgstr "Wybierz pozycję pola z komunikatami dla zalogowanych użytkowników"
528
-
529
- #~ msgid "Select message box position for logged out users"
530
- #~ msgstr ""
531
- #~ "Wybierz pozycję pola z komunikatami dla niezalogowanych użytkowników"
532
-
533
- #~ msgid "Ajaxed Comments"
534
- #~ msgstr "Komentarze Ajax"
535
-
536
- #~ msgid "Ajaxed Comments Settings"
537
- #~ msgstr "Ustawienia komentarzy Ajax"
538
-
539
- #~ msgid "Error has occurred. Please try again later or reload a page."
540
- #~ msgstr ""
541
- #~ "Wystąpił nieznany błąd. Proszę spróbować później lub odświeżyć stronę."
542
-
543
- #~ msgid "Comment is empty."
544
- #~ msgstr "Komentarz jest pusty."
545
-
546
- #~ msgid "Are you sure you want to delete this comment?"
547
- #~ msgstr "Jesteś pewny, że chcesz usunąć ten komentarz."
548
-
549
- #~ msgid "Unknown error has occurred."
550
- #~ msgstr "Wystąpił nieznany błąd."
551
-
552
- #~ msgid "Widgets"
553
- #~ msgstr "Widgety"
554
-
555
- #~ msgid "Custom Post Types"
556
- #~ msgstr "Własne typy wpisów"
557
-
558
- #~ msgid "Custom Post Type Archives"
559
- #~ msgstr "Archiwa własnych typów wpisów"
560
-
561
- #~ msgid "Categories"
562
- #~ msgstr "Kategorie"
563
-
564
- #~ msgid "Taxonomies"
565
- #~ msgstr "Taksonomie"
566
-
567
- #~ msgid "Others"
568
- #~ msgstr "Inne"
569
-
570
- #~ msgid "Users"
571
- #~ msgstr "Użytkownicy"
572
-
573
- #~ msgid "Languages"
574
- #~ msgstr "Języki"
575
-
576
- #~ msgid "Front Page"
577
- #~ msgstr "Strona główna"
578
-
579
- #~ msgid "Blog Page"
580
- #~ msgstr "Strona z wpisami"
581
-
582
- #~ msgid "Single Posts"
583
- #~ msgstr "Pojedyncze wpisy"
584
-
585
- #~ msgid "Sticky Posts"
586
- #~ msgstr "Wpisy przyklejone"
587
-
588
- #~ msgid "Author Archive"
589
- #~ msgstr "Archiwum autora"
590
-
591
- #~ msgid "Date Archive"
592
- #~ msgstr "Archiwum daty"
593
-
594
- #~ msgid "404 Page"
595
- #~ msgstr "Strona błędów 404"
596
-
597
- #~ msgid "Search Page"
598
- #~ msgstr "Strona wyszukiwania"
599
-
600
- #~ msgid "Logged out users"
601
- #~ msgstr "Wylogowani użytkownicy"
602
-
603
- #~ msgid "Restrict widgets"
604
- #~ msgstr "Ograniczenia widgetów"
605
-
606
- #~ msgid ""
607
- #~ "Use this settings to manage access to widgets page and to restrict "
608
- #~ "availability of certain widgets, sidebars and widgets options to site "
609
- #~ "administrators only."
610
- #~ msgstr ""
611
- #~ "Użyj tych ustawień aby określić kto może mieć dostęp do widgetów, jakie "
612
- #~ "widgety, panele boczne i ustawienia widgetów są dostępne dla użytkowników "
613
- #~ "a jakie tylko dla administratorów."
614
-
615
- #~ msgid "Restrict Users"
616
- #~ msgstr "Ograniczenia użytkowników"
617
-
618
- #~ msgid "Select user roles restricted to manage widgets."
619
- #~ msgstr "Wybierz role użytkowników, którzy mogą zarządzać widgetami."
620
-
621
- #~ msgid "Restrict Sidebars"
622
- #~ msgstr "Ograniczenia paneli bocznych"
623
-
624
- #~ msgid "Select which sidebars will be restricted to admins only."
625
- #~ msgstr ""
626
- #~ "Wybierz panele boczne, które będą dostępne tylko dla administratorów."
627
-
628
- #~ msgid "Restrict Widgets"
629
- #~ msgstr "Ograniczenia widgetów"
630
-
631
- #~ msgid "Select which widgets will be restricted to admins only."
632
- #~ msgstr "Wybierz widgety, któe będą dostępne tylko dla administratorów."
633
-
634
- #~ msgid "Restrict Widget Options"
635
- #~ msgstr "Ograniczenia opcji widgetów"
636
-
637
- #~ msgid "Select which widget options will be restricted to admins only."
638
- #~ msgstr ""
639
- #~ "Wybierz które opcje widgetów, będą dostępne tylko dla administratorów."
640
-
641
- #~ msgid "Restrict Option Groups"
642
- #~ msgstr "Ograniczenia grup opcji"
643
-
644
- #~ msgid "Display widget options in groups"
645
- #~ msgstr "Wyświetl opcje widgetów w grupach"
646
-
647
- #~ msgid "Plugin Deactivation"
648
- #~ msgstr "Deaktywacja wtyczki"
649
-
650
- #~ msgid "Remove all plugin data on deactivation"
651
- #~ msgstr "Usuń wszystkie dane wtyczki podczas deaktywacji"
652
-
653
- #~ msgid "Single %s"
654
- #~ msgstr "Pojedyncze %s"
655
-
656
- #~ msgid "%s Archive"
657
- #~ msgstr "Archiwum %s"
658
-
659
- #~ msgid "Display / Hide Widget"
660
- #~ msgstr "Wyświetl / Ukryj widget"
661
-
662
- #~ msgid "Display widget on selected"
663
- #~ msgstr "Wyświetl widget na wybranych stronach"
664
-
665
- #~ msgid "Hide widget on selected"
666
- #~ msgstr "Ukryj widget na wybranych stronach"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Math Captcha ===
2
  Contributors: dfactory
3
  Donate link: http://www.dfactory.eu/
4
- Tags: antispam, capcha, captcha, captha, catcha, comment, comments, spam, security, login, lost password, math captcha, registration, cf7, contact, contact forms, form, contact form 7, bbpress
5
  Requires at least: 4.0
6
- Tested up to: 4.7
7
- Stable tag: 1.2.7
8
  License: MIT License
9
  License URI: http://opensource.org/licenses/MIT
10
 
@@ -44,7 +44,14 @@ A. Chances are, someone else has asked it. Check out the support forum at: http:
44
 
45
  1. screenshot-1.png
46
 
47
- == Changelog ==
 
 
 
 
 
 
 
48
 
49
  = 1.2.7 =
50
  * Fix: Contact form 7 compatibility fix
@@ -125,5 +132,6 @@ A. Chances are, someone else has asked it. Check out the support forum at: http:
125
 
126
  == Upgrade Notice ==
127
 
128
- = 1.2.7 =
129
- * Fix: Contact form 7 compatibility fix * Tweak: Removed local translation files in favor of WP repository translations.
 
1
  === Math Captcha ===
2
  Contributors: dfactory
3
  Donate link: http://www.dfactory.eu/
4
+ Tags: antispam, capcha, captcha, spam, security, cf7, contact form 7
5
  Requires at least: 4.0
6
+ Tested up to: 4.9.7
7
+ Stable tag: 1.2.8
8
  License: MIT License
9
  License URI: http://opensource.org/licenses/MIT
10
 
44
 
45
  1. screenshot-1.png
46
 
47
+ == Changelog ==
48
+
49
+
50
+
51
+ = 1.2.8 =
52
+ * Fix: Potential vulnerability bug
53
+
54
+ * Tweak: Contact Form 7 compatibility
55
 
56
  = 1.2.7 =
57
  * Fix: Contact form 7 compatibility fix
132
 
133
  == Upgrade Notice ==
134
 
135
+ = 1.2.8 =
136
+ * Fix: Potential vulnerability bug
137
+ * Tweak: Contact Form 7 compatibility
wp-math-captcha.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Math Captcha
4
  Description: Math Captcha is a <strong>100% effective CAPTCHA for WordPress</strong> that integrates into login, registration, comments, Contact Form 7 and bbPress.
5
- Version: 1.2.7
6
  Author: dFactory
7
  Author URI: http://www.dfactory.eu/
8
  Plugin URI: http://www.dfactory.eu/plugins/math-captcha/
@@ -12,7 +12,7 @@ Text Domain: math-captcha
12
  Domain Path: /languages
13
 
14
  Math Captcha
15
- Copyright (C) 2013-2015, Digital Factory - info@digitalfactory.pl
16
 
17
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
18
 
@@ -38,7 +38,7 @@ include_once(MATH_CAPTCHA_PATH . 'includes/class-settings.php');
38
  * Math Captcha class.
39
  *
40
  * @class Math_Captcha
41
- * @version 1.2.7
42
  */
43
  class Math_Captcha {
44
 
@@ -73,7 +73,7 @@ class Math_Captcha {
73
  'deactivation_delete' => false,
74
  'flush_rules' => false
75
  ),
76
- 'version' => '1.2.7'
77
  );
78
 
79
  public static function instance() {
@@ -90,8 +90,8 @@ class Math_Captcha {
90
  * Class constructor.
91
  */
92
  public function __construct() {
93
- register_activation_hook( __FILE__, array( &$this, 'activation' ) );
94
- register_deactivation_hook( __FILE__, array( &$this, 'deactivation' ) );
95
 
96
  // settings
97
  $this->options = array(
@@ -99,14 +99,14 @@ class Math_Captcha {
99
  );
100
 
101
  // actions
102
- add_action( 'plugins_loaded', array( &$this, 'load_textdomain' ) );
103
- add_action( 'admin_enqueue_scripts', array( &$this, 'admin_comments_scripts_styles' ) );
104
- add_action( 'wp_enqueue_scripts', array( &$this, 'frontend_comments_scripts_styles' ) );
105
- add_action( 'login_enqueue_scripts', array( &$this, 'frontend_comments_scripts_styles' ) );
106
 
107
  // filters
108
- add_filter( 'plugin_action_links', array( &$this, 'plugin_settings_link' ), 10, 2 );
109
- add_filter( 'plugin_row_meta', array( &$this, 'plugin_extend_links' ), 10, 2 );
110
  }
111
 
112
  /**
2
  /*
3
  Plugin Name: Math Captcha
4
  Description: Math Captcha is a <strong>100% effective CAPTCHA for WordPress</strong> that integrates into login, registration, comments, Contact Form 7 and bbPress.
5
+ Version: 1.2.8
6
  Author: dFactory
7
  Author URI: http://www.dfactory.eu/
8
  Plugin URI: http://www.dfactory.eu/plugins/math-captcha/
12
  Domain Path: /languages
13
 
14
  Math Captcha
15
+ Copyright (C) 2013-2018, Digital Factory - info@digitalfactory.pl
16
 
17
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
18
 
38
  * Math Captcha class.
39
  *
40
  * @class Math_Captcha
41
+ * @version 1.2.8
42
  */
43
  class Math_Captcha {
44
 
73
  'deactivation_delete' => false,
74
  'flush_rules' => false
75
  ),
76
+ 'version' => '1.2.8'
77
  );
78
 
79
  public static function instance() {
90
  * Class constructor.
91
  */
92
  public function __construct() {
93
+ register_activation_hook( __FILE__, array( $this, 'activation' ) );
94
+ register_deactivation_hook( __FILE__, array( $this, 'deactivation' ) );
95
 
96
  // settings
97
  $this->options = array(
99
  );
100
 
101
  // actions
102
+ add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
103
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_comments_scripts_styles' ) );
104
+ add_action( 'wp_enqueue_scripts', array( $this, 'frontend_comments_scripts_styles' ) );
105
+ add_action( 'login_enqueue_scripts', array( $this, 'frontend_comments_scripts_styles' ) );
106
 
107
  // filters
108
+ add_filter( 'plugin_action_links', array( $this, 'plugin_settings_link' ), 10, 2 );
109
+ add_filter( 'plugin_row_meta', array( $this, 'plugin_extend_links' ), 10, 2 );
110
  }
111
 
112
  /**