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