Version Description
-
English
- Sorting for the Antispam Bee column in the spam comments overview
- Code refactoring around the use of REQUEST_URI
- Release time investment (Development & QA): 2,75 h
-
Deutsch
- Sortierung fr die Antispam Bee Spalte in der Spam-bersicht
- Code-Refactoring rund um die Nutzung von REQUEST_URI
- Release-Zeitaufwand (Development & QA): 2,75 Stunden
Download this release
Release Info
| Developer | sergej.mueller |
| Plugin | |
| Version | 2.6.3 |
| Comparing to | |
| See all releases | |
Code changes from version 2.6.2 to 2.6.3
- antispam_bee.php +51 -31
- inc/columns.class.php +44 -1
- readme.txt +14 -1
antispam_bee.php
CHANGED
|
@@ -8,7 +8,7 @@ Author: Sergej Müller
|
|
| 8 |
Author URI: http://wpcoder.de
|
| 9 |
Plugin URI: http://antispambee.com
|
| 10 |
License: GPLv2 or later
|
| 11 |
-
Version: 2.6.
|
| 12 |
*/
|
| 13 |
|
| 14 |
/*
|
|
@@ -57,7 +57,7 @@ class Antispam_Bee {
|
|
| 57 |
* "Konstruktor" der Klasse
|
| 58 |
*
|
| 59 |
* @since 0.1
|
| 60 |
-
* @change 2.6.
|
| 61 |
*/
|
| 62 |
|
| 63 |
public static function init()
|
|
@@ -210,6 +210,21 @@ class Antispam_Bee {
|
|
| 210 |
'print_column_styles'
|
| 211 |
)
|
| 212 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 213 |
}
|
| 214 |
}
|
| 215 |
|
|
@@ -1072,27 +1087,30 @@ class Antispam_Bee {
|
|
| 1072 |
* Überprüfung der POST-Werte
|
| 1073 |
*
|
| 1074 |
* @since 0.1
|
| 1075 |
-
* @change 2.
|
| 1076 |
*/
|
| 1077 |
|
| 1078 |
public static function precheck_incoming_request()
|
| 1079 |
{
|
| 1080 |
-
/*
|
| 1081 |
-
if ( is_feed()
|
| 1082 |
return;
|
| 1083 |
}
|
| 1084 |
|
| 1085 |
-
/*
|
| 1086 |
-
$
|
| 1087 |
-
$
|
| 1088 |
-
$plugin_field = self::get_key($_POST, self::$_secret);
|
| 1089 |
|
| 1090 |
-
/*
|
| 1091 |
-
if (
|
| 1092 |
return;
|
| 1093 |
}
|
| 1094 |
|
| 1095 |
-
/*
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1096 |
if ( empty($hidden_field) && !empty($plugin_field) ) {
|
| 1097 |
$_POST['comment'] = $plugin_field;
|
| 1098 |
unset($_POST[self::$_secret]);
|
|
@@ -1106,7 +1124,7 @@ class Antispam_Bee {
|
|
| 1106 |
* Prüfung der eingehenden Anfragen auf Spam
|
| 1107 |
*
|
| 1108 |
* @since 0.1
|
| 1109 |
-
* @change 2.6.
|
| 1110 |
*
|
| 1111 |
* @param array $comment Unbehandelter Kommentar
|
| 1112 |
* @return array $comment Behandelter Kommentar
|
|
@@ -1117,6 +1135,7 @@ class Antispam_Bee {
|
|
| 1117 |
/* Add client IP */
|
| 1118 |
$comment['comment_author_IP'] = self::get_client_ip();
|
| 1119 |
|
|
|
|
| 1120 |
add_filter(
|
| 1121 |
'pre_comment_user_ip',
|
| 1122 |
array(
|
|
@@ -1125,43 +1144,44 @@ class Antispam_Bee {
|
|
| 1125 |
)
|
| 1126 |
);
|
| 1127 |
|
| 1128 |
-
/*
|
| 1129 |
-
$
|
|
|
|
| 1130 |
|
| 1131 |
-
/*
|
| 1132 |
-
if ( empty($
|
| 1133 |
return self::_handle_spam_request(
|
| 1134 |
$comment,
|
| 1135 |
'empty'
|
| 1136 |
);
|
| 1137 |
}
|
| 1138 |
|
| 1139 |
-
/*
|
| 1140 |
$ping = array(
|
| 1141 |
'types' => array('pingback', 'trackback', 'pings'),
|
| 1142 |
'allowed' => !self::get_option('ignore_pings')
|
| 1143 |
);
|
| 1144 |
|
| 1145 |
-
/*
|
| 1146 |
-
if ( strpos($
|
| 1147 |
-
/*
|
| 1148 |
$status = self::_verify_comment_request($comment);
|
| 1149 |
|
| 1150 |
-
/*
|
| 1151 |
-
if ( !empty($status['reason']) ) {
|
| 1152 |
return self::_handle_spam_request(
|
| 1153 |
$comment,
|
| 1154 |
$status['reason']
|
| 1155 |
);
|
| 1156 |
}
|
| 1157 |
|
| 1158 |
-
/*
|
| 1159 |
} else if ( in_array(self::get_key($comment, 'comment_type'), $ping['types']) && $ping['allowed'] ) {
|
| 1160 |
-
/*
|
| 1161 |
$status = self::_verify_trackback_request($comment);
|
| 1162 |
|
| 1163 |
-
/*
|
| 1164 |
-
if ( !empty($status['reason']) ) {
|
| 1165 |
return self::_handle_spam_request(
|
| 1166 |
$comment,
|
| 1167 |
$status['reason'],
|
|
@@ -1253,7 +1273,7 @@ class Antispam_Bee {
|
|
| 1253 |
$body = self::get_key($comment, 'comment_content');
|
| 1254 |
|
| 1255 |
/* Leere Werte ? */
|
| 1256 |
-
if ( empty($url)
|
| 1257 |
return array(
|
| 1258 |
'reason' => 'empty'
|
| 1259 |
);
|
|
@@ -1605,7 +1625,7 @@ class Antispam_Bee {
|
|
| 1605 |
}
|
| 1606 |
|
| 1607 |
/* IP abfragen */
|
| 1608 |
-
$response =
|
| 1609 |
esc_url_raw(
|
| 1610 |
sprintf(
|
| 1611 |
'https://geoip.maxmind.com/a?l=%s&i=%s',
|
|
@@ -1652,7 +1672,7 @@ class Antispam_Bee {
|
|
| 1652 |
private static function _is_dnsbl_spam($ip)
|
| 1653 |
{
|
| 1654 |
/* Start request */
|
| 1655 |
-
$response =
|
| 1656 |
esc_url_raw(
|
| 1657 |
sprintf(
|
| 1658 |
'http://www.stopforumspam.com/api?ip=%s&f=json',
|
|
@@ -1806,7 +1826,7 @@ class Antispam_Bee {
|
|
| 1806 |
);
|
| 1807 |
|
| 1808 |
/* IP abfragen */
|
| 1809 |
-
$response =
|
| 1810 |
esc_url_raw(
|
| 1811 |
sprintf(
|
| 1812 |
'https://translate.google.com/translate_a/t?client=x&text=%s',
|
| 8 |
Author URI: http://wpcoder.de
|
| 9 |
Plugin URI: http://antispambee.com
|
| 10 |
License: GPLv2 or later
|
| 11 |
+
Version: 2.6.3
|
| 12 |
*/
|
| 13 |
|
| 14 |
/*
|
| 57 |
* "Konstruktor" der Klasse
|
| 58 |
*
|
| 59 |
* @since 0.1
|
| 60 |
+
* @change 2.6.3
|
| 61 |
*/
|
| 62 |
|
| 63 |
public static function init()
|
| 210 |
'print_column_styles'
|
| 211 |
)
|
| 212 |
);
|
| 213 |
+
|
| 214 |
+
add_filter(
|
| 215 |
+
'manage_edit-comments_sortable_columns',
|
| 216 |
+
array(
|
| 217 |
+
'Antispam_Bee_Columns',
|
| 218 |
+
'register_sortable_columns'
|
| 219 |
+
)
|
| 220 |
+
);
|
| 221 |
+
add_action(
|
| 222 |
+
'pre_get_posts',
|
| 223 |
+
array(
|
| 224 |
+
'Antispam_Bee_Columns',
|
| 225 |
+
'set_orderby_query'
|
| 226 |
+
)
|
| 227 |
+
);
|
| 228 |
}
|
| 229 |
}
|
| 230 |
|
| 1087 |
* Überprüfung der POST-Werte
|
| 1088 |
*
|
| 1089 |
* @since 0.1
|
| 1090 |
+
* @change 2.6.3
|
| 1091 |
*/
|
| 1092 |
|
| 1093 |
public static function precheck_incoming_request()
|
| 1094 |
{
|
| 1095 |
+
/* Skip if not a comment request */
|
| 1096 |
+
if ( is_feed() OR is_trackback() OR empty($_POST) OR self::_is_mobile() ) {
|
| 1097 |
return;
|
| 1098 |
}
|
| 1099 |
|
| 1100 |
+
/* Request params */
|
| 1101 |
+
$request_uri = self::get_key($_SERVER, 'REQUEST_URI');
|
| 1102 |
+
$request_path = parse_url($request_uri, PHP_URL_PATH);
|
|
|
|
| 1103 |
|
| 1104 |
+
/* Request check */
|
| 1105 |
+
if ( strpos($request_path, 'wp-comments-post.php') === false ) {
|
| 1106 |
return;
|
| 1107 |
}
|
| 1108 |
|
| 1109 |
+
/* Form fields */
|
| 1110 |
+
$hidden_field = self::get_key($_POST, 'comment');
|
| 1111 |
+
$plugin_field = self::get_key($_POST, self::$_secret);
|
| 1112 |
+
|
| 1113 |
+
/* Fields check */
|
| 1114 |
if ( empty($hidden_field) && !empty($plugin_field) ) {
|
| 1115 |
$_POST['comment'] = $plugin_field;
|
| 1116 |
unset($_POST[self::$_secret]);
|
| 1124 |
* Prüfung der eingehenden Anfragen auf Spam
|
| 1125 |
*
|
| 1126 |
* @since 0.1
|
| 1127 |
+
* @change 2.6.3
|
| 1128 |
*
|
| 1129 |
* @param array $comment Unbehandelter Kommentar
|
| 1130 |
* @return array $comment Behandelter Kommentar
|
| 1135 |
/* Add client IP */
|
| 1136 |
$comment['comment_author_IP'] = self::get_client_ip();
|
| 1137 |
|
| 1138 |
+
/* Hook client IP */
|
| 1139 |
add_filter(
|
| 1140 |
'pre_comment_user_ip',
|
| 1141 |
array(
|
| 1144 |
)
|
| 1145 |
);
|
| 1146 |
|
| 1147 |
+
/* Request params */
|
| 1148 |
+
$request_uri = self::get_key($_SERVER, 'REQUEST_URI');
|
| 1149 |
+
$request_path = parse_url($request_uri, PHP_URL_PATH);
|
| 1150 |
|
| 1151 |
+
/* Empty path? */
|
| 1152 |
+
if ( empty($request_path) ) {
|
| 1153 |
return self::_handle_spam_request(
|
| 1154 |
$comment,
|
| 1155 |
'empty'
|
| 1156 |
);
|
| 1157 |
}
|
| 1158 |
|
| 1159 |
+
/* Defaults */
|
| 1160 |
$ping = array(
|
| 1161 |
'types' => array('pingback', 'trackback', 'pings'),
|
| 1162 |
'allowed' => !self::get_option('ignore_pings')
|
| 1163 |
);
|
| 1164 |
|
| 1165 |
+
/* Is a comment */
|
| 1166 |
+
if ( strpos($request_path, 'wp-comments-post.php') !== false && ! empty($_POST) ) {
|
| 1167 |
+
/* Verify request */
|
| 1168 |
$status = self::_verify_comment_request($comment);
|
| 1169 |
|
| 1170 |
+
/* Treat the request as spam */
|
| 1171 |
+
if ( ! empty($status['reason']) ) {
|
| 1172 |
return self::_handle_spam_request(
|
| 1173 |
$comment,
|
| 1174 |
$status['reason']
|
| 1175 |
);
|
| 1176 |
}
|
| 1177 |
|
| 1178 |
+
/* Is a trackback */
|
| 1179 |
} else if ( in_array(self::get_key($comment, 'comment_type'), $ping['types']) && $ping['allowed'] ) {
|
| 1180 |
+
/* Verify request */
|
| 1181 |
$status = self::_verify_trackback_request($comment);
|
| 1182 |
|
| 1183 |
+
/* Treat the request as spam */
|
| 1184 |
+
if ( ! empty($status['reason']) ) {
|
| 1185 |
return self::_handle_spam_request(
|
| 1186 |
$comment,
|
| 1187 |
$status['reason'],
|
| 1273 |
$body = self::get_key($comment, 'comment_content');
|
| 1274 |
|
| 1275 |
/* Leere Werte ? */
|
| 1276 |
+
if ( empty($url) OR empty($body) ) {
|
| 1277 |
return array(
|
| 1278 |
'reason' => 'empty'
|
| 1279 |
);
|
| 1625 |
}
|
| 1626 |
|
| 1627 |
/* IP abfragen */
|
| 1628 |
+
$response = wp_safe_remote_request(
|
| 1629 |
esc_url_raw(
|
| 1630 |
sprintf(
|
| 1631 |
'https://geoip.maxmind.com/a?l=%s&i=%s',
|
| 1672 |
private static function _is_dnsbl_spam($ip)
|
| 1673 |
{
|
| 1674 |
/* Start request */
|
| 1675 |
+
$response = wp_safe_remote_request(
|
| 1676 |
esc_url_raw(
|
| 1677 |
sprintf(
|
| 1678 |
'http://www.stopforumspam.com/api?ip=%s&f=json',
|
| 1826 |
);
|
| 1827 |
|
| 1828 |
/* IP abfragen */
|
| 1829 |
+
$response = wp_safe_remote_request(
|
| 1830 |
esc_url_raw(
|
| 1831 |
sprintf(
|
| 1832 |
'https://translate.google.com/translate_a/t?client=x&text=%s',
|
inc/columns.class.php
CHANGED
|
@@ -51,7 +51,7 @@ final class Antispam_Bee_Columns {
|
|
| 51 |
}
|
| 52 |
|
| 53 |
/* Init data */
|
| 54 |
-
$spam_reason = get_comment_meta($comment_id, $column
|
| 55 |
$spam_reasons = Antispam_Bee::$defaults['reasons'];
|
| 56 |
|
| 57 |
/* Empty values? */
|
|
@@ -67,6 +67,49 @@ final class Antispam_Bee_Columns {
|
|
| 67 |
}
|
| 68 |
|
| 69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
/**
|
| 71 |
* Print CSS for the plugin column
|
| 72 |
*
|
| 51 |
}
|
| 52 |
|
| 53 |
/* Init data */
|
| 54 |
+
$spam_reason = get_comment_meta($comment_id, $column, true);
|
| 55 |
$spam_reasons = Antispam_Bee::$defaults['reasons'];
|
| 56 |
|
| 57 |
/* Empty values? */
|
| 67 |
}
|
| 68 |
|
| 69 |
|
| 70 |
+
/**
|
| 71 |
+
* Register plugin sortable columns on comments screen
|
| 72 |
+
*
|
| 73 |
+
* @since 2.6.3
|
| 74 |
+
* @change 2.6.3
|
| 75 |
+
*
|
| 76 |
+
* @param array $columns Registered columns
|
| 77 |
+
* @return array $columns Columns with AB field
|
| 78 |
+
*/
|
| 79 |
+
|
| 80 |
+
public static function register_sortable_columns($columns)
|
| 81 |
+
{
|
| 82 |
+
$columns['antispam_bee_reason'] = 'antispam_bee_reason';
|
| 83 |
+
|
| 84 |
+
return $columns;
|
| 85 |
+
}
|
| 86 |
+
|
| 87 |
+
|
| 88 |
+
/**
|
| 89 |
+
* Adjust orderby query
|
| 90 |
+
*
|
| 91 |
+
* @since 2.6.3
|
| 92 |
+
* @change 2.6.3
|
| 93 |
+
*
|
| 94 |
+
* @param object $query Current WordPress query
|
| 95 |
+
*/
|
| 96 |
+
|
| 97 |
+
public static function set_orderby_query($query)
|
| 98 |
+
{
|
| 99 |
+
/* Order by value */
|
| 100 |
+
$orderby = $query->get('orderby');
|
| 101 |
+
|
| 102 |
+
/* Skip if not our case */
|
| 103 |
+
if ( empty($orderby) OR $orderby !== 'antispam_bee_reason' ) {
|
| 104 |
+
return;
|
| 105 |
+
}
|
| 106 |
+
|
| 107 |
+
/* Set orderby values */
|
| 108 |
+
$query->set( 'meta_key', 'antispam_bee_reason' );
|
| 109 |
+
$query->set( 'orderby', 'meta_value' );
|
| 110 |
+
}
|
| 111 |
+
|
| 112 |
+
|
| 113 |
/**
|
| 114 |
* Print CSS for the plugin column
|
| 115 |
*
|
readme.txt
CHANGED
|
@@ -79,8 +79,8 @@ Fragen rund ums Plugin werden gern per E-Mail beantwortet. Beachtet auch die [Gu
|
|
| 79 |
|
| 80 |
|
| 81 |
= Unterstützung =
|
| 82 |
-
* [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZAQUT9RLPW8QN)
|
| 83 |
* [Flattr](https://flattr.com/t/1323822)
|
|
|
|
| 84 |
* [Wishlist](https://www.amazon.de/registry/wishlist/2U5I7F9649LOJ/)
|
| 85 |
|
| 86 |
|
|
@@ -104,6 +104,19 @@ Fragen rund ums Plugin werden gern per E-Mail beantwortet. Beachtet auch die [Gu
|
|
| 104 |
|
| 105 |
== Changelog ==
|
| 106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
= 2.6.2 =
|
| 108 |
|
| 109 |
* **English**
|
| 79 |
|
| 80 |
|
| 81 |
= Unterstützung =
|
|
|
|
| 82 |
* [Flattr](https://flattr.com/t/1323822)
|
| 83 |
+
* [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZAQUT9RLPW8QN)
|
| 84 |
* [Wishlist](https://www.amazon.de/registry/wishlist/2U5I7F9649LOJ/)
|
| 85 |
|
| 86 |
|
| 104 |
|
| 105 |
== Changelog ==
|
| 106 |
|
| 107 |
+
= 2.6.3 =
|
| 108 |
+
|
| 109 |
+
* **English**
|
| 110 |
+
* Sorting for the Antispam Bee column in the spam comments overview
|
| 111 |
+
* Code refactoring around the use of REQUEST_URI
|
| 112 |
+
* *Release time investment (Development & QA): 2,75 h*
|
| 113 |
+
|
| 114 |
+
* **Deutsch**
|
| 115 |
+
* Sortierung für die Antispam Bee Spalte in der Spam-Übersicht
|
| 116 |
+
* Code-Refactoring rund um die Nutzung von REQUEST_URI
|
| 117 |
+
* *Release-Zeitaufwand (Development & QA): 2,75 Stunden*
|
| 118 |
+
|
| 119 |
+
|
| 120 |
= 2.6.2 =
|
| 121 |
|
| 122 |
* **English**
|
