PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.9.4
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.9.4
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 / Notices / DismissNotice.php
wp-staging / Framework / Notices Last commit date
BackupPluginsNotice.php 1 year ago BooleanNotice.php 2 years ago CliIntegrationNotice.php 3 weeks ago DisabledItemsNotice.php 2 years ago DismissNotice.php 3 weeks ago NextGenEngineNotice.php 3 weeks ago Notices.php 3 weeks ago NoticesHandler.php 1 year ago ObjectCacheNotice.php 1 year ago OutdatedWpStagingNotice.php 1 year ago WarningsNotice.php 2 years ago WpVersionCompatNotice.php 4 months ago
DismissNotice.php
97 lines
1 <?php
2
3 namespace WPStaging\Framework\Notices;
4
5 use WPStaging\Basic\Notices\GeneralProCardNotice;
6 use WPStaging\Core\WPStaging;
7 use WPStaging\Framework\ThirdParty\WordFence;
8 use WPStaging\Pro\Notices\DismissNotice as DismissProNotice;
9
10 /**
11 * Dismiss notice depending upon post request
12 */
13 class DismissNotice
14 {
15 /**
16 * @var DisabledItemsNotice
17 */
18 private $disabledItemsNotice;
19
20 /**
21 * @var WarningsNotice
22 */
23 private $warningsNotice;
24
25 /**
26 * @var WordFence
27 */
28 private $wordFence;
29
30 /**
31 * @var ObjectCacheNotice
32 */
33 private $objectCacheNotice;
34
35 /**
36 * @var NextGenEngineNotice
37 */
38 private $nextGenEngineNotice;
39
40 public function __construct(DisabledItemsNotice $disabledItemsNotice, WarningsNotice $warningsNotice, WordFence $wordFence, ObjectCacheNotice $objectCacheNotice, NextGenEngineNotice $nextGenEngineNotice)
41 {
42 $this->disabledItemsNotice = $disabledItemsNotice;
43 $this->warningsNotice = $warningsNotice;
44 $this->wordFence = $wordFence;
45 $this->objectCacheNotice = $objectCacheNotice;
46 $this->nextGenEngineNotice = $nextGenEngineNotice;
47 }
48
49 public function dismiss($noticeToDismiss)
50 {
51 // Compact general "Upgrade to Pro" card on the Staging dashboard.
52 // Snoozes only this card for 90 days (per admin); contextual Pro prompts,
53 // Pro badges and the Upgrade navigation keep working.
54 if ($noticeToDismiss === 'general_pro_card') {
55 // Report the actual outcome: snooze() returns false when there is no
56 // current user, so the client can avoid hiding a card that was not stored.
57 wp_send_json(WPStaging::make(GeneralProCardNotice::class)->snooze());
58 return;
59 }
60
61 if ($noticeToDismiss === 'disabled_items' && $this->disabledItemsNotice->disable() !== false) {
62 wp_send_json(true);
63 return;
64 }
65
66 if ($noticeToDismiss === 'warnings_notice' && $this->warningsNotice->disable() !== false) {
67 wp_send_json(true);
68 return;
69 }
70
71 // Dismiss wordfence user.ini renamed notice
72 if ($noticeToDismiss === WordFence::NOTICE_NAME && $this->wordFence->disable() !== false) {
73 wp_send_json(true);
74 return;
75 }
76
77 if ($noticeToDismiss === ObjectCacheNotice::ACTION_NOTICE_DISMISS && $this->objectCacheNotice->disable() !== false) {
78 wp_send_json(true);
79 return;
80 }
81
82 if ($noticeToDismiss === 'next_gen_engine' && $this->nextGenEngineNotice->disable() !== false) {
83 wp_send_json(true);
84 return;
85 }
86
87 if (!WPStaging::isPro()) {
88 wp_send_json(null);
89 return;
90 }
91
92 /** @var DismissProNotice $dismissProNotice */
93 $dismissProNotice = WPStaging::make(DismissProNotice::class);
94 $dismissProNotice->dismiss($noticeToDismiss);
95 }
96 }
97