PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.1
Presto Player v4.3.1
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 month ago AdminNotice.php 3 weeks ago AdminNotices.php 3 weeks ago AjaxActions.php 3 weeks ago Blocks.php 1 year ago Compatibility.php 10 months ago Learn.php 1 month ago Menu.php 1 month ago Migrations.php 1 year ago NpsSurvey.php 5 months ago Onboarding.php 3 weeks ago Player.php 4 days ago PluginInstaller.php 1 month ago PreloadService.php 1 year ago ProCompatibility.php 1 month ago ReusableVideos.php 2 weeks ago RewriteRulesManager.php 1 year ago Scripts.php 2 weeks ago Settings.php 1 month ago Shortcodes.php 1 month ago Streamer.php 3 weeks ago Translation.php 3 weeks ago Usage.php 3 weeks ago VideoPostType.php 2 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