PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.0.0
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.0.0
4.11.2 4.11.1 4.11.0 4.10.0 4.9.5 4.9.4 4.9.3 4.9.2 4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Framework / Traits / NoticesTrait.php
wp-staging / Framework / Traits Last commit date
ApplyFiltersTrait.php 1 year ago ArrayableTrait.php 1 year ago BenchmarkTrait.php 3 years ago BooleanTransientTrait.php 5 years ago DatabaseSearchReplaceTrait.php 1 year ago DbRowsGeneratorTrait.php 4 years ago DebugLogTrait.php 1 year ago DeveloperTimerTrait.php 4 years ago EndOfLinePlaceholderTrait.php 1 year ago EventLoggerTrait.php 1 year ago FileScanToCacheTrait.php 2 years ago FormatTrait.php 1 year ago HttpRequestTrait.php 1 year ago HydrateTrait.php 1 year ago I18nTrait.php 1 year ago MaintenanceTrait.php 5 years ago MemoryExhaustTrait.php 2 years ago MySQLRowsGeneratorTrait.php 1 year ago NoticesTrait.php 1 year ago PropertyConstructor.php 5 years ago ResourceTrait.php 2 years ago RestoreFileExclusionTrait.php 1 year ago SerializeTrait.php 1 year ago SlashTrait.php 1 year ago UrlTrait.php 1 year ago ValueGetterTrait.php 2 years ago WindowsOsTrait.php 1 year ago
NoticesTrait.php
109 lines
1 <?php
2
3 namespace WPStaging\Framework\Traits;
4
5 use WPStaging\Core\WPStaging;
6 use WPStaging\Framework\Analytics\AnalyticsConsent;
7 use WPStaging\Framework\Facades\Hooks;
8 use WPStaging\Framework\Facades\Sanitize;
9 use WPStaging\Framework\Notices\Notices;
10
11 trait NoticesTrait
12 {
13 /** @var string */
14 protected $noticesViewPath;
15
16 /**
17 * Check whether the page is WP Staging admin page or not
18 * @return bool
19 */
20 public function isWPStagingAdminPage()
21 {
22 // Early bail if it is not an admin page
23 if (!is_admin()) {
24 return false;
25 }
26
27 $currentPage = isset($_GET["page"]) ? Sanitize::sanitizeString($_GET["page"]) : null;
28 if (empty($currentPage)) {
29 return false;
30 }
31
32 $allowedPrefixes = ["wpstg-", "wpstg_"];
33
34 foreach ($allowedPrefixes as $prefix) {
35 if (strpos($currentPage, $prefix) === 0) {
36 return true;
37 }
38 }
39
40 return false;
41 }
42
43 /** @return string */
44 public function getNoticesViewPath()
45 {
46 return $this->noticesViewPath;
47 }
48
49 /**
50 * @return void
51 */
52 public function showAnalyticsModal()
53 {
54 if (get_option(AnalyticsConsent::OPTION_NAME_ANALYTICS_MODAL_DISMISSED)) {
55 return;
56 }
57
58 if (!$this->isWPStagingAdminPage()) {
59 return;
60 }
61
62 // don't show analytics modal on wpstg-install page
63 if ($this->isWpstgInstallPage()) {
64 return;
65 }
66
67 if (WPStaging::make(AnalyticsConsent::class)->hasUserConsent()) {
68 return;
69 }
70
71 Hooks::doAction(Notices::INJECT_ANALYTICS_CONSENT_ASSETS_ACTION);
72
73 require_once WPSTG_VIEWS_DIR . "notices/analytics-modal.php";
74 }
75
76 /**
77 * @return bool
78 */
79 public function isWpstgInstallPage(): bool
80 {
81 $currentPage = isset($_GET["page"]) ? Sanitize::sanitizeString($_GET["page"]) : null;
82
83 if ($currentPage === 'wpstg-install') {
84 return true;
85 }
86
87 return false;
88 }
89
90 /**
91 * Check whether the page is WP Staging clone page
92 * @return bool
93 */
94 public function isWPStagingClonePage(): bool
95 {
96 // Early bail if it is not an WPStaging admin page
97 if (!$this->isWPStagingAdminPage()) {
98 return false;
99 }
100
101 $currentPage = isset($_GET["page"]) ? Sanitize::sanitizeString($_GET["page"]) : null;
102 if ($currentPage !== 'wpstg_clone') {
103 return false;
104 }
105
106 return $currentPage === 'wpstg_clone';
107 }
108 }
109