PluginProbe ʕ •ᴥ•ʔ
Presto Player / trunk
Presto Player vtrunk
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 / ProCompatibility.php
presto-player / inc / Services Last commit date
API 1 week ago Abilities 1 week ago Blocks 3 weeks ago License 1 month ago OAuth 1 week ago AdminNotice.php 2 months ago AdminNotices.php 2 months ago AjaxActions.php 2 months ago Blocks.php 2 years ago Compatibility.php 11 months ago FeatureAnnounce.php 1 week ago Learn.php 1 week ago Menu.php 1 week ago Migrations.php 2 years ago NpsSurvey.php 6 months ago Onboarding.php 2 months ago Player.php 3 weeks ago PluginInstaller.php 1 week ago PreloadService.php 2 years ago ProCompatibility.php 3 weeks ago ReusableVideos.php 2 months ago RewriteRulesManager.php 2 years ago Scripts.php 2 months ago Settings.php 3 months ago Shortcodes.php 1 week ago Streamer.php 2 months ago Translation.php 3 weeks ago Usage.php 1 week 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.3';
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