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 / RewriteRulesManager.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 3 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
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