PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.2
Presto Player v4.3.2
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 / ProCompatibility.php
presto-player / inc / Services Last commit date
API 1 month ago Blocks 10 months ago License 1 day ago AdminNotice.php 1 month ago AdminNotices.php 1 month ago AjaxActions.php 1 month ago Blocks.php 2 years ago Compatibility.php 10 months ago Learn.php 2 months ago Menu.php 2 months ago Migrations.php 2 years ago NpsSurvey.php 5 months ago Onboarding.php 1 month ago Player.php 1 week ago PluginInstaller.php 2 months ago PreloadService.php 1 year ago ProCompatibility.php 2 months ago ReusableVideos.php 3 weeks ago RewriteRulesManager.php 2 years ago Scripts.php 3 weeks ago Settings.php 2 months ago Shortcodes.php 1 month ago Streamer.php 1 month ago Translation.php 1 month ago Usage.php 1 month ago VideoPostType.php 3 weeks ago
ProCompatibility.php
102 lines
1 <?php
2 /**
3 * Pro plugin version compatibility notice.
4 *
5 * @package PrestoPlayer
6 * @subpackage Services
7 */
8
9 namespace PrestoPlayer\Services;
10
11 use PrestoPlayer\Plugin;
12 use PrestoPlayer\Pro\Plugin as ProPlugin;
13
14 /**
15 * Surfaces an admin notice prompting users to update Presto Player Pro when out of date.
16 */
17 class ProCompatibility {
18
19 /**
20 * The minimum Pro version recommended for compatibility with this core release.
21 *
22 * @var string
23 */
24 protected $recommended_pro_version = '3.2.0';
25
26 /**
27 * The minimum Pro version required to function at all.
28 *
29 * @var string
30 */
31 protected $required_pro_version = '0.0.1';
32
33 /**
34 * Register hooks.
35 *
36 * @return void
37 */
38 public function register() {
39 add_action( 'admin_notices', array( $this, 'showRecommendedVersionNotice' ) );
40 }
41
42 /**
43 * Check whether the active Pro plugin meets the requested version floor.
44 *
45 * @param string $type Either 'required' or 'recommended'.
46 * @return bool
47 */
48 public function hasVersion( $type = 'recommended' ) {
49 if ( ! Plugin::isPro() ) {
50 return true;
51 }
52 $version = 'required' === $type ? $this->required_pro_version : $this->recommended_pro_version;
53 return ! version_compare( $version, ProPlugin::version(), '>' );
54 }
55
56 /**
57 * Render the "update Pro" admin notice.
58 *
59 * @return void
60 */
61 public function showRecommendedVersionNotice() {
62 // Has recommended version.
63 if ( $this->hasVersion( 'recommended' ) ) {
64 return;
65 }
66
67 $notice_name = 'player_recommended_version_' . $this->recommended_pro_version;
68
69 ob_start()
70 ?>
71 <div class="notice notice-info">
72 <p><strong>Presto Player</strong></p>
73 <p><?php esc_html_e( 'Please update your Presto Player Pro plugin for compatibility with the Presto Player core plugin. This ensures you have access to new features and updates.', 'presto-player' ); ?></p>
74 <p>
75 <?php
76 printf(
77 /* translators: %s: recommended Pro plugin version number */
78 esc_html__( 'The recommended minimum pro version is %s.', 'presto-player' ),
79 '<b>' . esc_html( $this->recommended_pro_version ) . '</b>'
80 );
81 ?>
82 </p>
83 <p><a href="
84 <?php
85 echo esc_url(
86 add_query_arg(
87 array(
88 'presto_action' => 'dismiss_notices',
89 'presto_notice' => $notice_name,
90 '_wpnonce' => wp_create_nonce( \PrestoPlayer\Services\AdminNotices::DISMISS_NONCE_ACTION ),
91 )
92 )
93 );
94 ?>
95 "><?php esc_html_e( 'Dismiss Notice', 'presto-player' ); ?></a></p>
96 </div>
97
98 <?php
99 echo ob_get_clean(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Output is pre-escaped HTML from the buffer above.
100 }
101 }
102