PluginProbe ʕ •ᴥ•ʔ
Presto Player / 2.2.3-beta1
Presto Player v2.2.3-beta1
4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / inc / Services / AdminNotices.php
presto-player / inc / Services Last commit date
API 2 years ago Blocks 5 years ago License 5 years ago AdminNotice.php 5 years ago AdminNotices.php 4 years ago AjaxActions.php 2 years ago Blocks.php 5 years ago Compatibility.php 4 years ago Menu.php 3 years ago Migrations.php 5 years ago Player.php 2 years ago ProCompatibility.php 2 years ago ReusableVideos.php 4 years ago Scripts.php 2 years ago Settings.php 4 years ago Shortcodes.php 2 years ago Streamer.php 4 years ago Translation.php 2 years ago VideoPostType.php 4 years ago
AdminNotices.php
118 lines
1 <?php
2
3 namespace PrestoPlayer\Services;
4
5 use Astra_Notices;
6 use PrestoPlayer\Models\Video;
7
8 class AdminNotices
9 {
10 public function register()
11 {
12 add_action('admin_init', [$this, 'dismiss']);
13 $this->displayRatingsNotice();
14 }
15
16 public function displayRatingsNotice()
17 {
18 require_once PRESTO_PLAYER_PLUGIN_DIR . 'vendor/brainstormforce/astra-notices/class-astra-notices.php';
19 $image_path = PRESTO_PLAYER_PLUGIN_URL . 'img/presto-player-icon-color.png';
20
21 Astra_Notices::add_notice(
22 [
23 'id' => 'presto-player-rating',
24 'type' => '',
25 'message' => sprintf(
26 '<div class="notice-image">
27 <img src="%1$s" class="custom-logo" alt="Sidebar Manager" itemprop="logo"></div>
28 <div class="notice-content">
29 <div class="notice-heading">
30 %2$s
31 </div>
32 %3$s<br />
33 <div class="astra-review-notice-container">
34 <a href="%4$s" class="astra-notice-close astra-review-notice button-primary" target="_blank">
35 %5$s
36 </a>
37 <span class="dashicons dashicons-calendar"></span>
38 <a href="#" data-repeat-notice-after="%6$s" class="astra-notice-close astra-review-notice">
39 %7$s
40 </a>
41 <span class="dashicons dashicons-smiley"></span>
42 <a href="#" class="astra-notice-close astra-review-notice">
43 %8$s
44 </a>
45 </div>
46 </div>',
47 $image_path,
48 __('Thanks a ton for choosing Presto Player! We are hard at work adding more features to help you harness the power of videos.', 'presto-player'),
49 __('Could you please do us a BIG favor and give us a 5-star rating on WordPress? It really boosts the motivation of our team.', 'presto-player'),
50 'https://wordpress.org/support/plugin/presto-player/reviews/?filter=5#new-post',
51 __('Ok, you deserve it', 'presto-player'),
52 MONTH_IN_SECONDS,
53 __('Nope, maybe later', 'presto-player'),
54 __('I already did', 'presto-player')
55 ),
56 'show_if' => $this->maybeDisplayRatingsNotice(),
57 'repeat-notice-after' => MONTH_IN_SECONDS,
58 'display-notice-after' => 604800, // Display notice after 7 days.
59 'priority' => 18,
60 'display-with-other-notices' => false,
61 ]
62 );
63 }
64
65 /*
66 * Check whether to display notice or not.
67 */
68 public function maybeDisplayRatingsNotice()
69 {
70 $transient_status = get_transient('presto-player-rating');
71
72 if (false !== $transient_status) {
73 return false;
74 }
75
76 $video_count = $this->getVideosCount();
77 // Display ratings notice if video count is more than 1.
78 return 0 < $video_count ? true : false;
79 }
80
81 public function getVideosCount()
82 {
83 $video = new Video();
84 $items = $video->fetch([
85 'per_page' => 1
86 ]);
87
88 return $items->total;
89 }
90
91 public static function isDismissed($name)
92 {
93 return (bool) get_option("presto_player_dismissed_notice_" . sanitize_text_field($name), false);
94 }
95
96 public function dismiss()
97 {
98 // permissions check
99 if (!current_user_can('install_plugins')) {
100 return;
101 }
102
103 // not our notices, bail
104 if (!isset($_GET['presto_action']) || 'dismiss_notices' !== $_GET['presto_action']) {
105 return;
106 }
107
108 // get notice
109 $notice = !empty($_GET['presto_notice']) ? sanitize_text_field($_GET['presto_notice']) : '';
110 if (!$notice) {
111 return;
112 }
113
114 // notice is dismissed
115 update_option("presto_player_dismissed_notice_" . sanitize_text_field($notice), 1);
116 }
117 }
118