PluginProbe
WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell / 2.8.16
WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell v2.8.16
3.13.3 3.13.2 3.13.1 3.13.0 3.12.13 3.12.12 3.12.11 3.12.10 3.12.9 3.12.8 3.12.7 3.12.6 3.12.5 3.12.4 3.12.3 3.12.1 3.12.2 3.12.0 3.11.1 3.11.0 3.10.9 3.10.8 3.10.7 3.10.6 2.8.16 All 261 releases
wpfunnels / packages / action-scheduler / classes / ActionScheduler_Versions.php

ActionScheduler_Versions.php in WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell 2.8.16, at packages/action-scheduler/classes/ActionScheduler_Versions.php

62 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Class ActionScheduler_Versions
5 */
6 class ActionScheduler_Versions {
7 /**
8 * @var ActionScheduler_Versions
9 */
10 private static $instance = NULL;
11
12 private $versions = array();
13
14 public function register( $version_string, $initialization_callback ) {
15 if ( isset($this->versions[$version_string]) ) {
16 return FALSE;
17 }
18 $this->versions[$version_string] = $initialization_callback;
19 return TRUE;
20 }
21
22 public function get_versions() {
23 return $this->versions;
24 }
25
26 public function latest_version() {
27 $keys = array_keys($this->versions);
28 if ( empty($keys) ) {
29 return false;
30 }
31 uasort( $keys, 'version_compare' );
32 return end($keys);
33 }
34
35 public function latest_version_callback() {
36 $latest = $this->latest_version();
37 if ( empty($latest) || !isset($this->versions[$latest]) ) {
38 return '__return_null';
39 }
40 return $this->versions[$latest];
41 }
42
43 /**
44 * @return ActionScheduler_Versions
45 * @codeCoverageIgnore
46 */
47 public static function instance() {
48 if ( empty(self::$instance) ) {
49 self::$instance = new self();
50 }
51 return self::$instance;
52 }
53
54 /**
55 * @codeCoverageIgnore
56 */
57 public static function initialize_latest_version() {
58 $self = self::instance();
59 call_user_func($self->latest_version_callback());
60 }
61 }
62