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 / Database / Upgrades / TransientsUpgrade.php
presto-player / inc / Database / Upgrades Last commit date
BunnyWebhookUpgrade.php 4 months ago OnboardingBackfillUpgrade.php 1 month ago PerformanceUpgrade.php 1 year ago TransientsUpgrade.php 3 weeks ago Upgrades.php 1 month ago VisitsUpgrade.php 1 year ago
TransientsUpgrade.php
95 lines
1 <?php
2 /**
3 * Clears pro update transients on plugin upgrade.
4 *
5 * @package PrestoPlayer
6 */
7
8 namespace PrestoPlayer\Database\Upgrades;
9
10 use PrestoPlayer\Plugin;
11
12 /**
13 * Clears pro transients every upgrade to ensure update notifications are immediate.
14 */
15 class TransientsUpgrade {
16
17 /**
18 * Option name used to track the last processed version.
19 *
20 * @var string
21 */
22 protected $name = 'presto_player_pro_update_transient';
23
24 /**
25 * Runs the upgrade routine.
26 *
27 * @return void
28 */
29 public function run() {
30 $this->runUpdate();
31 }
32
33 /**
34 * Checks to see if update is run
35 *
36 * @return void
37 */
38 public function runUpdate() {
39 $current_version = get_option( $this->name, 0 );
40
41 // We've done this for the update already.
42 if ( Plugin::version() === $current_version ) {
43 return;
44 }
45
46 // Delete update transient to check for pro upgrade.
47 $this->deleteTransients();
48
49 // Update version.
50 update_option( $this->name, Plugin::version() );
51 }
52
53 /**
54 * Delete upgrade transients by key
55 *
56 * @return void
57 */
58 public function deleteTransients() {
59 foreach ( $this->getTransientsWithPrefix( 'presto_player_check_for_plugin_update' ) as $key ) {
60 delete_site_transient( $key );
61 }
62 }
63
64 /**
65 * Gets transients with a specific prefix.
66 *
67 * @param string $prefix Transient name prefix to match.
68 * @return array Array of matching option names.
69 */
70 public function getTransientsWithPrefix( $prefix ) {
71 global $wpdb;
72
73 $prefix = $wpdb->esc_like( '_site_transient_' . $prefix );
74 $keys = $wpdb->get_results(
75 $wpdb->prepare(
76 "SELECT `option_name` FROM $wpdb->options WHERE `option_name` LIKE %s",
77 $prefix . '%'
78 ),
79 ARRAY_A
80 );
81
82 if ( is_wp_error( $keys ) ) {
83 return array();
84 }
85
86 // Remove '_transient_' from the option name.
87 return array_map(
88 function ( $key ) {
89 return ltrim( $key['option_name'], '_transient_' );
90 },
91 $keys
92 );
93 }
94 }
95