PluginProbe
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings / 6.3.6
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings v6.3.6
7.2.2 7.2.1 7.2 7.1.2 7.1.1 7.1 7.0.4 7.0.6 7.0.7 6.3.8 6.3.7 6.3.6 6.3.5 6.3.4 6.3.3 6.3.1 trunk 5.7.3 5.7.5 5.8.1 5.8.2 5.8.3 5.8.4 5.8.6 6.0.4 All 37 releases
mlsimport / vendor / woocommerce / action-scheduler / classes / ActionScheduler_Versions.php

ActionScheduler_Versions.php in MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings 6.3.6, at vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php

62 lines 1.2 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