PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.9.2
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.9.2
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 1 day ago DisabledItemsNotice.php 2 years ago DismissNotice.php 1 day ago NextGenEngineNotice.php 1 day ago Notices.php 1 day ago NoticesHandler.php 11 months ago ObjectCacheNotice.php 11 months ago OutdatedWpStagingNotice.php 1 year ago WarningsNotice.php 2 years ago WpVersionCompatNotice.php 3 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