Version Description
Release Date - 22 October 2020
- Show the "Set up your Akismet account" banner on the comments admin screen, where it's relevant to mention if Akismet hasn't been configured.
- Don't use wp_blacklist_check when the new wp_check_comment_disallowed_list function is available.
Download this release
Release Info
Developer | cfinke |
Plugin | Akismet Anti-Spam |
Version | 4.1.7 |
Comparing to | |
See all releases |
Code changes from version 4.1.6 to 4.1.7
- akismet.php +2 -2
- changelog.txt +47 -0
- class.akismet-admin.php +8 -2
- class.akismet.php +44 -35
- readme.txt +11 -52
- views/stats.php +1 -1
akismet.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
Plugin Name: Akismet Anti-Spam
|
7 |
Plugin URI: https://akismet.com/
|
8 |
Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. It keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key.
|
9 |
-
Version: 4.1.
|
10 |
Author: Automattic
|
11 |
Author URI: https://automattic.com/wordpress-plugins/
|
12 |
License: GPLv2 or later
|
@@ -37,7 +37,7 @@ if ( !function_exists( 'add_action' ) ) {
|
|
37 |
exit;
|
38 |
}
|
39 |
|
40 |
-
define( 'AKISMET_VERSION', '4.1.
|
41 |
define( 'AKISMET__MINIMUM_WP_VERSION', '4.0' );
|
42 |
define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
43 |
define( 'AKISMET_DELETE_LIMIT', 100000 );
|
6 |
Plugin Name: Akismet Anti-Spam
|
7 |
Plugin URI: https://akismet.com/
|
8 |
Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. It keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key.
|
9 |
+
Version: 4.1.7
|
10 |
Author: Automattic
|
11 |
Author URI: https://automattic.com/wordpress-plugins/
|
12 |
License: GPLv2 or later
|
37 |
exit;
|
38 |
}
|
39 |
|
40 |
+
define( 'AKISMET_VERSION', '4.1.7' );
|
41 |
define( 'AKISMET__MINIMUM_WP_VERSION', '4.0' );
|
42 |
define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
43 |
define( 'AKISMET_DELETE_LIMIT', 100000 );
|
changelog.txt
CHANGED
@@ -5,6 +5,53 @@
|
|
5 |
This file contains older changelog entries, so we can keep the size of the standard WordPress readme.txt file reasonable.
|
6 |
For the latest changes, please see the "Changelog" section of the [readme.txt file](https://plugins.svn.wordpress.org/akismet/trunk/readme.txt).
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
= 4.0.8 =
|
9 |
*Release Date - 19 June 2018*
|
10 |
|
5 |
This file contains older changelog entries, so we can keep the size of the standard WordPress readme.txt file reasonable.
|
6 |
For the latest changes, please see the "Changelog" section of the [readme.txt file](https://plugins.svn.wordpress.org/akismet/trunk/readme.txt).
|
7 |
|
8 |
+
= 4.1.5 =
|
9 |
+
*Release Date - 29 April 2020*
|
10 |
+
|
11 |
+
* Based on user feedback, we have dropped the in-admin notice explaining the availability of the "privacy notice" option in the AKismet settings screen. The option itself is available, but after displaying the notice for the last 2 years, it is now considered a known fact.
|
12 |
+
* Updated the "Requires at least" to WP 4.6, based on recommendations from https://wp-info.org/tools/checkplugini18n.php?slug=akismet
|
13 |
+
* Moved older changelog entries to a separate file to keep the size of this readme reasonable, also based on recommendations from https://wp-info.org/tools/checkplugini18n.php?slug=akismet
|
14 |
+
|
15 |
+
= 4.1.4 =
|
16 |
+
*Release Date - 17 March 2020*
|
17 |
+
|
18 |
+
* Only redirect to the Akismet setup screen upon plugin activation if the plugin was activated manually from within the plugin-related screens, to help users with non-standard install workflows, like WP-CLI.
|
19 |
+
* Update the layout of the initial setup screen to be more readable on small screens.
|
20 |
+
* If no API key has been entered, don't run code that expects an API key.
|
21 |
+
* Improve the readability of the comment history entries.
|
22 |
+
* Don't modify the comment form HTML if no API key has been set.
|
23 |
+
|
24 |
+
= 4.1.3 =
|
25 |
+
*Release Date - 31 October 2019*
|
26 |
+
|
27 |
+
* Prevented an attacker from being able to cause a user to unknowingly recheck their Pending comments for spam.
|
28 |
+
* Improved compatibility with Jetpack 7.7+.
|
29 |
+
* Updated the plugin activation page to use consistent language and markup.
|
30 |
+
* Redirecting users to the Akismet connnection/settings screen upon plugin activation, in an effort to make it easier for people to get setup.
|
31 |
+
|
32 |
+
= 4.1.2 =
|
33 |
+
*Release Date - 14 May 2019*
|
34 |
+
|
35 |
+
* Fixed a conflict between the Akismet setup banner and other plugin notices.
|
36 |
+
* Reduced the number of API requests made by the plugin when attempting to verify the API key.
|
37 |
+
* Include additional data in the pingback pre-check API request to help make the stats more accurate.
|
38 |
+
* Fixed a bug that was enabling the "Check for Spam" button when no comments were eligible to be checked.
|
39 |
+
* Improved Akismet's AMP compatibility.
|
40 |
+
|
41 |
+
= 4.1.1 =
|
42 |
+
*Release Date - 31 January 2019*
|
43 |
+
|
44 |
+
* Fixed the "Setup Akismet" notice so it resizes responsively.
|
45 |
+
* Only highlight the "Save Changes" button in the Akismet config when changes have been made.
|
46 |
+
* The count of comments in your spam queue shown on the dashboard show now always be up-to-date.
|
47 |
+
|
48 |
+
= 4.1 =
|
49 |
+
*Release Date - 12 November 2018*
|
50 |
+
|
51 |
+
* Added a WP-CLI method for retrieving stats.
|
52 |
+
* Hooked into the new "Personal Data Eraser" functionality from WordPress 4.9.6.
|
53 |
+
* Added functionality to clear outdated alerts from Akismet.com.
|
54 |
+
|
55 |
= 4.0.8 =
|
56 |
*Release Date - 19 June 2018*
|
57 |
|
class.akismet-admin.php
CHANGED
@@ -612,7 +612,12 @@ class Akismet_Admin {
|
|
612 |
$message = esc_html( __( 'Akismet cleared this comment.', 'akismet' ) );
|
613 |
break;
|
614 |
case 'wp-blacklisted':
|
615 |
-
|
|
|
|
|
|
|
|
|
|
|
616 |
break;
|
617 |
case 'report-spam':
|
618 |
if ( isset( $row['user'] ) ) {
|
@@ -1055,7 +1060,8 @@ class Akismet_Admin {
|
|
1055 |
if ( get_option( 'akismet_alert_code' ) > 0 )
|
1056 |
self::display_alert();
|
1057 |
}
|
1058 |
-
elseif ( $hook_suffix
|
|
|
1059 |
self::display_api_key_warning();
|
1060 |
}
|
1061 |
elseif ( $hook_suffix == 'edit-comments.php' && wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) {
|
612 |
$message = esc_html( __( 'Akismet cleared this comment.', 'akismet' ) );
|
613 |
break;
|
614 |
case 'wp-blacklisted':
|
615 |
+
case 'wp-disallowed':
|
616 |
+
$message = sprintf(
|
617 |
+
/* translators: The placeholder is a WordPress PHP function name. */
|
618 |
+
esc_html( __( 'Comment was caught by %s.', 'akismet' ) ),
|
619 |
+
function_exists( 'wp_check_comment_disallowed_list' ) ? '<code>wp_check_comment_disallowed_list</code>' : '<code>wp_blacklist_check</code>'
|
620 |
+
);
|
621 |
break;
|
622 |
case 'report-spam':
|
623 |
if ( isset( $row['user'] ) ) {
|
1060 |
if ( get_option( 'akismet_alert_code' ) > 0 )
|
1061 |
self::display_alert();
|
1062 |
}
|
1063 |
+
elseif ( ( 'plugins.php' === $hook_suffix || 'edit-comments.php' === $hook_suffix ) && ! Akismet::get_api_key() ) {
|
1064 |
+
// Show the "Set Up Akismet" banner on the comments and plugin pages if no API key has been set.
|
1065 |
self::display_api_key_warning();
|
1066 |
}
|
1067 |
elseif ( $hook_suffix == 'edit-comments.php' && wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) {
|
class.akismet.php
CHANGED
@@ -301,48 +301,56 @@ class Akismet {
|
|
301 |
// as was checked by auto_check_comment
|
302 |
if ( is_object( $comment ) && !empty( self::$last_comment ) && is_array( self::$last_comment ) ) {
|
303 |
if ( self::matches_last_comment( $comment ) ) {
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
if ( $comment->comment_approved != 'spam' )
|
312 |
-
self::update_comment_history(
|
313 |
-
$comment->comment_ID,
|
314 |
-
'',
|
315 |
-
'status-changed-'.$comment->comment_approved
|
316 |
-
);
|
317 |
-
}
|
318 |
-
elseif ( self::$last_comment['akismet_result'] == 'false' ) {
|
319 |
-
update_comment_meta( $comment->comment_ID, 'akismet_result', 'false' );
|
320 |
-
self::update_comment_history( $comment->comment_ID, '', 'check-ham' );
|
321 |
-
// Status could be spam or trash, depending on the WP version and whether this change applies:
|
322 |
-
// https://core.trac.wordpress.org/changeset/34726
|
323 |
-
if ( $comment->comment_approved == 'spam' || $comment->comment_approved == 'trash' ) {
|
324 |
-
if ( wp_blacklist_check($comment->comment_author, $comment->comment_author_email, $comment->comment_author_url, $comment->comment_content, $comment->comment_author_IP, $comment->comment_agent) )
|
325 |
-
self::update_comment_history( $comment->comment_ID, '', 'wp-blacklisted' );
|
326 |
-
else
|
327 |
-
self::update_comment_history( $comment->comment_ID, '', 'status-changed-'.$comment->comment_approved );
|
328 |
-
}
|
329 |
-
} // abnormal result: error
|
330 |
-
else {
|
331 |
-
update_comment_meta( $comment->comment_ID, 'akismet_error', time() );
|
332 |
self::update_comment_history(
|
333 |
$comment->comment_ID,
|
334 |
'',
|
335 |
-
'
|
336 |
-
array( 'response' => substr( self::$last_comment['akismet_result'], 0, 50 ) )
|
337 |
);
|
338 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
339 |
|
340 |
-
|
341 |
-
|
342 |
-
|
|
|
343 |
|
344 |
-
|
345 |
-
|
|
|
346 |
}
|
347 |
}
|
348 |
}
|
@@ -486,6 +494,7 @@ class Akismet {
|
|
486 |
$history[] = array( 'time' => 445856404, 'event' => 'recheck-ham' );
|
487 |
$history[] = array( 'time' => 445856405, 'event' => 'check-ham' );
|
488 |
$history[] = array( 'time' => 445856406, 'event' => 'wp-blacklisted' );
|
|
|
489 |
$history[] = array( 'time' => 445856407, 'event' => 'report-spam' );
|
490 |
$history[] = array( 'time' => 445856408, 'event' => 'report-spam', 'user' => 'sam' );
|
491 |
$history[] = array( 'message' => 'sam reported this comment as spam (hardcoded message).', 'time' => 445856400, 'event' => 'report-spam', 'user' => 'sam' );
|
301 |
// as was checked by auto_check_comment
|
302 |
if ( is_object( $comment ) && !empty( self::$last_comment ) && is_array( self::$last_comment ) ) {
|
303 |
if ( self::matches_last_comment( $comment ) ) {
|
304 |
+
load_plugin_textdomain( 'akismet' );
|
305 |
+
|
306 |
+
// normal result: true or false
|
307 |
+
if ( self::$last_comment['akismet_result'] == 'true' ) {
|
308 |
+
update_comment_meta( $comment->comment_ID, 'akismet_result', 'true' );
|
309 |
+
self::update_comment_history( $comment->comment_ID, '', 'check-spam' );
|
310 |
+
if ( $comment->comment_approved != 'spam' ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
311 |
self::update_comment_history(
|
312 |
$comment->comment_ID,
|
313 |
'',
|
314 |
+
'status-changed-' . $comment->comment_approved
|
|
|
315 |
);
|
316 |
}
|
317 |
+
} elseif ( self::$last_comment['akismet_result'] == 'false' ) {
|
318 |
+
update_comment_meta( $comment->comment_ID, 'akismet_result', 'false' );
|
319 |
+
self::update_comment_history( $comment->comment_ID, '', 'check-ham' );
|
320 |
+
// Status could be spam or trash, depending on the WP version and whether this change applies:
|
321 |
+
// https://core.trac.wordpress.org/changeset/34726
|
322 |
+
if ( $comment->comment_approved == 'spam' || $comment->comment_approved == 'trash' ) {
|
323 |
+
if ( function_exists( 'wp_check_comment_disallowed_list' ) ) {
|
324 |
+
if ( wp_check_comment_disallowed_list( $comment->comment_author, $comment->comment_author_email, $comment->comment_author_url, $comment->comment_content, $comment->comment_author_IP, $comment->comment_agent ) ) {
|
325 |
+
self::update_comment_history( $comment->comment_ID, '', 'wp-disallowed' );
|
326 |
+
} else {
|
327 |
+
self::update_comment_history( $comment->comment_ID, '', 'status-changed-' . $comment->comment_approved );
|
328 |
+
}
|
329 |
+
} else if ( function_exists( 'wp_blacklist_check' ) && wp_blacklist_check( $comment->comment_author, $comment->comment_author_email, $comment->comment_author_url, $comment->comment_content, $comment->comment_author_IP, $comment->comment_agent ) ) {
|
330 |
+
self::update_comment_history( $comment->comment_ID, '', 'wp-blacklisted' );
|
331 |
+
} else {
|
332 |
+
self::update_comment_history( $comment->comment_ID, '', 'status-changed-' . $comment->comment_approved );
|
333 |
+
}
|
334 |
+
}
|
335 |
+
} else {
|
336 |
+
// abnormal result: error
|
337 |
+
update_comment_meta( $comment->comment_ID, 'akismet_error', time() );
|
338 |
+
self::update_comment_history(
|
339 |
+
$comment->comment_ID,
|
340 |
+
'',
|
341 |
+
'check-error',
|
342 |
+
array( 'response' => substr( self::$last_comment['akismet_result'], 0, 50 ) )
|
343 |
+
);
|
344 |
+
}
|
345 |
|
346 |
+
// record the complete original data as submitted for checking
|
347 |
+
if ( isset( self::$last_comment['comment_as_submitted'] ) ) {
|
348 |
+
update_comment_meta( $comment->comment_ID, 'akismet_as_submitted', self::$last_comment['comment_as_submitted'] );
|
349 |
+
}
|
350 |
|
351 |
+
if ( isset( self::$last_comment['akismet_pro_tip'] ) ) {
|
352 |
+
update_comment_meta( $comment->comment_ID, 'akismet_pro_tip', self::$last_comment['akismet_pro_tip'] );
|
353 |
+
}
|
354 |
}
|
355 |
}
|
356 |
}
|
494 |
$history[] = array( 'time' => 445856404, 'event' => 'recheck-ham' );
|
495 |
$history[] = array( 'time' => 445856405, 'event' => 'check-ham' );
|
496 |
$history[] = array( 'time' => 445856406, 'event' => 'wp-blacklisted' );
|
497 |
+
$history[] = array( 'time' => 445856406, 'event' => 'wp-disallowed' );
|
498 |
$history[] = array( 'time' => 445856407, 'event' => 'report-spam' );
|
499 |
$history[] = array( 'time' => 445856408, 'event' => 'report-spam', 'user' => 'sam' );
|
500 |
$history[] = array( 'message' => 'sam reported this comment as spam (hardcoded message).', 'time' => 445856400, 'event' => 'report-spam', 'user' => 'sam' );
|
readme.txt
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
=== Akismet
|
2 |
Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, cfinke, automattic, jgs, procifer, stephdau
|
3 |
-
Tags:
|
4 |
Requires at least: 4.6
|
5 |
-
Tested up to: 5.
|
6 |
-
Stable tag: 4.1.
|
7 |
License: GPLv2 or later
|
8 |
|
9 |
-
|
10 |
|
11 |
== Description ==
|
12 |
|
@@ -30,57 +30,16 @@ Upload the Akismet plugin to your blog, activate it, and then enter your Akismet
|
|
30 |
|
31 |
== Changelog ==
|
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
= 4.1.6 =
|
34 |
*Release Date - 4 June 2020*
|
35 |
|
36 |
* Disable "Check for Spam" button until the page is loaded to avoid errors with clicking through to queue recheck endpoint directly.
|
37 |
* Add filter "akismet_enable_mshots" to allow disabling screenshot popups on the edit comments admin page.
|
38 |
|
39 |
-
= 4.1.5 =
|
40 |
-
*Release Date - 29 April 2020*
|
41 |
-
|
42 |
-
* Based on user feedback, we have dropped the in-admin notice explaining the availability of the "privacy notice" option in the AKismet settings screen. The option itself is available, but after displaying the notice for the last 2 years, it is now considered a known fact.
|
43 |
-
* Updated the "Requires at least" to WP 4.6, based on recommendations from https://wp-info.org/tools/checkplugini18n.php?slug=akismet
|
44 |
-
* Moved older changelog entries to a separate file to keep the size of this readme reasonable, also based on recommendations from https://wp-info.org/tools/checkplugini18n.php?slug=akismet
|
45 |
-
|
46 |
-
= 4.1.4 =
|
47 |
-
*Release Date - 17 March 2020*
|
48 |
-
|
49 |
-
* Only redirect to the Akismet setup screen upon plugin activation if the plugin was activated manually from within the plugin-related screens, to help users with non-standard install workflows, like WP-CLI.
|
50 |
-
* Update the layout of the initial setup screen to be more readable on small screens.
|
51 |
-
* If no API key has been entered, don't run code that expects an API key.
|
52 |
-
* Improve the readability of the comment history entries.
|
53 |
-
* Don't modify the comment form HTML if no API key has been set.
|
54 |
-
|
55 |
-
= 4.1.3 =
|
56 |
-
*Release Date - 31 October 2019*
|
57 |
-
|
58 |
-
* Prevented an attacker from being able to cause a user to unknowingly recheck their Pending comments for spam.
|
59 |
-
* Improved compatibility with Jetpack 7.7+.
|
60 |
-
* Updated the plugin activation page to use consistent language and markup.
|
61 |
-
* Redirecting users to the Akismet connnection/settings screen upon plugin activation, in an effort to make it easier for people to get setup.
|
62 |
-
|
63 |
-
= 4.1.2 =
|
64 |
-
*Release Date - 14 May 2019*
|
65 |
-
|
66 |
-
* Fixed a conflict between the Akismet setup banner and other plugin notices.
|
67 |
-
* Reduced the number of API requests made by the plugin when attempting to verify the API key.
|
68 |
-
* Include additional data in the pingback pre-check API request to help make the stats more accurate.
|
69 |
-
* Fixed a bug that was enabling the "Check for Spam" button when no comments were eligible to be checked.
|
70 |
-
* Improved Akismet's AMP compatibility.
|
71 |
-
|
72 |
-
= 4.1.1 =
|
73 |
-
*Release Date - 31 January 2019*
|
74 |
-
|
75 |
-
* Fixed the "Setup Akismet" notice so it resizes responsively.
|
76 |
-
* Only highlight the "Save Changes" button in the Akismet config when changes have been made.
|
77 |
-
* The count of comments in your spam queue shown on the dashboard show now always be up-to-date.
|
78 |
-
|
79 |
-
= 4.1 =
|
80 |
-
*Release Date - 12 November 2018*
|
81 |
-
|
82 |
-
* Added a WP-CLI method for retrieving stats.
|
83 |
-
* Hooked into the new "Personal Data Eraser" functionality from WordPress 4.9.6.
|
84 |
-
* Added functionality to clear outdated alerts from Akismet.com.
|
85 |
-
|
86 |
For older changelog entries, please see the [additional changelog.txt file](https://plugins.svn.wordpress.org/akismet/trunk/changelog.txt) delivered with the plugin.
|
1 |
+
=== Akismet Spam Protection ===
|
2 |
Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, cfinke, automattic, jgs, procifer, stephdau
|
3 |
+
Tags: comments, spam, antispam, anti-spam, contact form, anti spam, comment moderation, comment spam, contact form spam, spam comments
|
4 |
Requires at least: 4.6
|
5 |
+
Tested up to: 5.6
|
6 |
+
Stable tag: 4.1.7
|
7 |
License: GPLv2 or later
|
8 |
|
9 |
+
The best anti-spam protection to block spam comments and spam in a contact form. The most trusted antispam solution for WordPress and WooCommerce.
|
10 |
|
11 |
== Description ==
|
12 |
|
30 |
|
31 |
== Changelog ==
|
32 |
|
33 |
+
= 4.1.7 =
|
34 |
+
*Release Date - 22 October 2020*
|
35 |
+
|
36 |
+
* Show the "Set up your Akismet account" banner on the comments admin screen, where it's relevant to mention if Akismet hasn't been configured.
|
37 |
+
* Don't use wp_blacklist_check when the new wp_check_comment_disallowed_list function is available.
|
38 |
+
|
39 |
= 4.1.6 =
|
40 |
*Release Date - 4 June 2020*
|
41 |
|
42 |
* Disable "Check for Spam" button until the page is loaded to avoid errors with clicking through to queue recheck endpoint directly.
|
43 |
* Add filter "akismet_enable_mshots" to allow disabling screenshot popups on the edit comments admin page.
|
44 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
For older changelog entries, please see the [additional changelog.txt file](https://plugins.svn.wordpress.org/akismet/trunk/changelog.txt) delivered with the plugin.
|
views/stats.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<div id="akismet-plugin-container">
|
2 |
<div class="akismet-masthead">
|
3 |
<div class="akismet-masthead__inside-container">
|
4 |
-
<a href="<?php echo esc_url( Akismet_Admin::get_page_url() )
|
5 |
<div class="akismet-masthead__logo-container">
|
6 |
<img class="akismet-masthead__logo" src="<?php echo esc_url( plugins_url( '../_inc/img/logo-full-2x.png', __FILE__ ) ); ?>" alt="Akismet" />
|
7 |
</div>
|
1 |
<div id="akismet-plugin-container">
|
2 |
<div class="akismet-masthead">
|
3 |
<div class="akismet-masthead__inside-container">
|
4 |
+
<a href="<?php echo esc_url( Akismet_Admin::get_page_url() ); ?>" class="akismet-right"><?php esc_html_e( 'Anti-Spam Settings', 'akismet' ); ?></a>
|
5 |
<div class="akismet-masthead__logo-container">
|
6 |
<img class="akismet-masthead__logo" src="<?php echo esc_url( plugins_url( '../_inc/img/logo-full-2x.png', __FILE__ ) ); ?>" alt="Akismet" />
|
7 |
</div>
|