PluginProbe ʕ •ᴥ•ʔ
Presto Player / 2.2.3-beta1
Presto Player v2.2.3-beta1
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
PerformanceUpgrade.php 5 years ago TransientsUpgrade.php 5 years ago Upgrades.php 5 years ago VisitsUpgrade.php 5 years ago
TransientsUpgrade.php
76 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 {
16 $this->runUpdate();
17 }
18
19 /**
20 * Checks to see if update is run
21 *
22 * @return void
23 */
24 public function runUpdate()
25 {
26 $current_version = get_option($this->name, 0);
27
28 // we've done this for the update already
29 if (Plugin::version() === $current_version) {
30 return;
31 }
32
33 // delete update transient to check for pro upgrade
34 $this->deleteTransients();
35
36 // update version
37 update_option($this->name, Plugin::version());
38 }
39
40 /**
41 * Delete upgrade transients by key
42 *
43 * @return void
44 */
45 public function deleteTransients()
46 {
47 foreach ($this->getTransientsWithPrefix('presto_player_check_for_plugin_update') as $key) {
48 delete_site_transient($key);
49 }
50 }
51
52 /**
53 * Gets transients with a specific prefix.
54 *
55 * @param string $prefix
56 * @return array
57 */
58 public function getTransientsWithPrefix($prefix)
59 {
60 global $wpdb;
61
62 $prefix = $wpdb->esc_like('_site_transient_' . $prefix);
63 $sql = "SELECT `option_name` FROM $wpdb->options WHERE `option_name` LIKE '%s'";
64 $keys = $wpdb->get_results($wpdb->prepare($sql, $prefix . '%'), ARRAY_A);
65
66 if (is_wp_error($keys)) {
67 return [];
68 }
69
70 // Remove '_transient_' from the option name.
71 return array_map(function ($key) {
72 return ltrim($key['option_name'], '_transient_');
73 }, $keys);
74 }
75 }
76