PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.2.3
Presto Player v4.2.3
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 / Database / Upgrades / TransientsUpgrade.php
presto-player / inc / Database / Upgrades Last commit date
BunnyWebhookUpgrade.php 6 months ago OnboardingBackfillUpgrade.php 3 months ago PerformanceUpgrade.php 2 years ago TransientsUpgrade.php 2 years ago Upgrades.php 3 months ago VisitsUpgrade.php 2 years ago
TransientsUpgrade.php
75 lines
1 <?php
2
3 namespace PrestoPlayer\Database\Upgrades;
4
5 use PrestoPlayer\Plugin;
6
7 /**
8 * Clears pro transients every upgrade to ensure update notifications are immediate
9 */
10 class TransientsUpgrade {
11
12 protected $name = 'presto_player_pro_update_transient';
13
14 public function run() {
15 $this->runUpdate();
16 }
17
18 /**
19 * Checks to see if update is run
20 *
21 * @return void
22 */
23 public function runUpdate() {
24 $current_version = get_option( $this->name, 0 );
25
26 // we've done this for the update already
27 if ( Plugin::version() === $current_version ) {
28 return;
29 }
30
31 // delete update transient to check for pro upgrade
32 $this->deleteTransients();
33
34 // update version
35 update_option( $this->name, Plugin::version() );
36 }
37
38 /**
39 * Delete upgrade transients by key
40 *
41 * @return void
42 */
43 public function deleteTransients() {
44 foreach ( $this->getTransientsWithPrefix( 'presto_player_check_for_plugin_update' ) as $key ) {
45 delete_site_transient( $key );
46 }
47 }
48
49 /**
50 * Gets transients with a specific prefix.
51 *
52 * @param string $prefix
53 * @return array
54 */
55 public function getTransientsWithPrefix( $prefix ) {
56 global $wpdb;
57
58 $prefix = $wpdb->esc_like( '_site_transient_' . $prefix );
59 $sql = "SELECT `option_name` FROM $wpdb->options WHERE `option_name` LIKE '%s'";
60 $keys = $wpdb->get_results( $wpdb->prepare( $sql, $prefix . '%' ), ARRAY_A );
61
62 if ( is_wp_error( $keys ) ) {
63 return array();
64 }
65
66 // Remove '_transient_' from the option name.
67 return array_map(
68 function ( $key ) {
69 return ltrim( $key['option_name'], '_transient_' );
70 },
71 $keys
72 );
73 }
74 }
75