PluginProbe ʕ •ᴥ•ʔ
Presto Player / trunk
Presto Player vtrunk
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 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 1 year ago ProCompatibility.php 3 weeks ago ReusableVideos.php 1 month ago RewriteRulesManager.php 2 years ago Scripts.php 1 month 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
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