Skip to content

Commit 3dc112d

Browse files
committed
Add settings link
1 parent b6794b1 commit 3dc112d

File tree

6 files changed

+36
-10
lines changed

6 files changed

+36
-10
lines changed

simple-analytics.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
define('SimpleAnalytics\\PLUGIN_URL', plugin_dir_url(__FILE__));
2323
define('SimpleAnalytics\\PLUGIN_PATH', plugin_dir_path(__FILE__));
24+
define('SimpleAnalytics\\PLUGIN_BASENAME', plugin_basename(__FILE__));
2425
define('SimpleAnalytics\\ENTRYPOINT_FILE', __FILE__);
2526

2627
/**
@@ -43,6 +44,7 @@
4344
require __DIR__ . '/src/Actions/Action.php';
4445
require __DIR__ . '/src/Actions/AddInactiveComment.php';
4546
require __DIR__ . '/src/Actions/AddNoScriptTag.php';
47+
require __DIR__ . '/src/Actions/AddPluginSettingsLink.php';
4648
require __DIR__ . '/src/Support/Str.php';
4749
require __DIR__ . '/src/Settings/Block.php';
4850
require __DIR__ . '/src/Settings/Blocks/CalloutBlock.php';

src/Actions/Action.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,8 @@
22

33
namespace SimpleAnalytics\Actions;
44

5-
abstract class Action
5+
trait Action
66
{
7-
protected string $hook;
8-
9-
abstract public function handle();
10-
117
protected function hook(): string
128
{
139
return $this->hook;

src/Actions/AddInactiveComment.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
namespace SimpleAnalytics\Actions;
44

5-
class AddInactiveComment extends Action
5+
class AddInactiveComment
66
{
7+
use Action;
8+
79
protected string $hook = 'wp_footer';
810

9-
#[\Override]
1011
public function handle(): void
1112
{
1213
echo "<!-- Simple Analytics: Not logging requests from admins -->\n";

src/Actions/AddNoScriptTag.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
use SimpleAnalytics\Setting;
66
use SimpleAnalytics\SettingName;
77

8-
class AddNoScriptTag extends Action
8+
class AddNoScriptTag
99
{
10+
use Action;
11+
1012
protected string $hook = 'wp_footer';
1113

12-
#[\Override]
1314
public function handle(): void
1415
{
1516
echo sprintf("<noscript><img src=\"%s\" alt=\"\" referrerpolicy=\"no-referrer-when-downgrade\"></noscript>\n", $this->getCustomDomain());
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace SimpleAnalytics\Actions;
4+
5+
use const SimpleAnalytics\PLUGIN_BASENAME;
6+
7+
/**
8+
* Adds a "Settings" link to the installed plugin list page.
9+
*/
10+
class AddPluginSettingsLink
11+
{
12+
use Action;
13+
14+
protected string $hook = 'plugin_action_links_' . PLUGIN_BASENAME;
15+
16+
public function handle($links): array
17+
{
18+
$link = '<a href="options-general.php?page=simpleanalytics">' . __('Settings', 'simpleanalytics') . '</a>';
19+
20+
return [$link] + $links;
21+
}
22+
}

src/Plugin.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use SimpleAnalytics\Settings\{Page, Tab};
66
use SimpleAnalytics\Actions\AddInactiveComment;
77
use SimpleAnalytics\Actions\AddNoScriptTag;
8+
use SimpleAnalytics\Actions\AddPluginSettingsLink;
89
use SimpleAnalytics\Scripts\AnalyticsScript;
910
use SimpleAnalytics\Scripts\AutomatedEventsScript;
1011
use SimpleAnalytics\Scripts\InactiveScript;
@@ -16,7 +17,10 @@ final class Plugin
1617
#[\Override]
1718
protected function onBoot(): void
1819
{
19-
if (is_admin()) $this->defineAdminPage();
20+
if (is_admin()) {
21+
$this->defineAdminPage();
22+
AddPluginSettingsLink::register();
23+
}
2024
}
2125

2226
#[\Override]

0 commit comments

Comments
 (0)