PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.5.0
Presto Player v4.5.0
4.5.0 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 / RewriteRulesManager.php
presto-player / inc / Services Last commit date
API 2 weeks ago Abilities 2 weeks ago Blocks 1 month ago License 1 month ago OAuth 2 weeks 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 2 days ago Learn.php 2 weeks ago Menu.php 2 weeks ago Migrations.php 2 years ago NpsSurvey.php 7 months ago Onboarding.php 2 months ago Player.php 1 month ago PluginInstaller.php 2 weeks ago PreloadService.php 2 years ago ProCompatibility.php 1 month ago ReusableVideos.php 2 months ago RewriteRulesManager.php 2 years ago Scripts.php 2 months ago Settings.php 3 months ago Shortcodes.php 2 weeks ago Streamer.php 2 months ago Translation.php 1 month ago Usage.php 2 days ago VideoPostType.php 1 month ago
RewriteRulesManager.php
87 lines
1 <?php
2
3 namespace PrestoPlayer\Services;
4
5 use PrestoPlayer\Plugin;
6
7 /**
8 * The RewriteRulesManager service.
9 */
10 class RewriteRulesManager {
11
12
13 /**
14 * The option name for the stored version.
15 *
16 * @var string
17 */
18 protected $option_name = 'presto_flush_rewrite_rules';
19
20 /**
21 * Bootstraps the service.
22 *
23 * @return void
24 */
25 public function bootstrap() {
26 add_action( 'admin_init', array( $this, 'flushRewriteRulesOnVersionChange' ) );
27 }
28
29 /**
30 * Retrieves the stored version from the WordPress options.
31 *
32 * @return string The stored version.
33 */
34 public function getStoredVersion() {
35 return get_option( $this->option_name, '0.0.0' );
36 }
37
38 /**
39 * Retrieves the current plugin version.
40 *
41 * @return string The current plugin version.
42 */
43 public function getCurrentPluginVersion() {
44 return Plugin::version();
45 }
46
47 /**
48 * Flushes the rewrite rules if the plugin version has changed.
49 *
50 * @return bool|void Returns false if the versions are the same, otherwise void.
51 */
52 public function flushRewriteRulesOnVersionChange() {
53 $current_version = $this->getCurrentPluginVersion();
54 $stored_version = $this->getStoredVersion();
55
56 if ( ! $this->isVersionDifferent( $current_version, $stored_version ) ) {
57 return false;
58 }
59
60 return $this->flushRewriteRulesAndUpdateVersion( $current_version );
61 }
62
63 /**
64 * Checks if the current plugin version is different from the stored version.
65 *
66 * @param string $current_version The current plugin version.
67 * @param string $stored_version The stored plugin version.
68 *
69 * @return bool True if the versions are different, false otherwise.
70 */
71 public function isVersionDifferent( $current_version, $stored_version ) {
72 return version_compare( $current_version, $stored_version, '!=' );
73 }
74
75 /**
76 * Flushes the rewrite rules and updates the stored version.
77 *
78 * @param string $new_version The new plugin version.
79 *
80 * @return void
81 */
82 public function flushRewriteRulesAndUpdateVersion( $new_version ) {
83 flush_rewrite_rules();
84 return update_option( $this->option_name, $new_version, false );
85 }
86 }
87