PluginProbe ʕ •ᴥ•ʔ
LatePoint – Calendar Booking Plugin for Appointments and Events / trunk
LatePoint – Calendar Booking Plugin for Appointments and Events vtrunk
5.6.6 5.6.5 5.6.4 5.6.3 5.6.2 5.6.1 5.6.0 5.5.2 5.5.1 5.5.0 5.4.2 trunk 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 5.1.91 5.1.92 5.1.93 5.1.94 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1
latepoint / lib / kit / bsf-analytics / class-bsf-analytics-loader.php
latepoint / lib / kit / bsf-analytics Last commit date
assets 4 months ago classes 4 months ago modules 1 week ago class-bsf-analytics-events.php 2 months ago class-bsf-analytics-loader.php 4 months ago class-bsf-analytics-stats.php 2 months ago class-bsf-analytics.php 1 week ago version.json 1 week ago
class-bsf-analytics-loader.php
119 lines
1 <?php
2 /**
3 * BSF analytics loader file.
4 *
5 * @version 1.0.0
6 *
7 * @package bsf-analytics
8 */
9
10 if ( ! defined( 'ABSPATH' ) ) {
11 exit();
12 }
13
14 /**
15 * Class BSF_Analytics_Loader.
16 */
17 class BSF_Analytics_Loader {
18
19 /**
20 * Analytics Entities.
21 *
22 * @access private
23 * @var array Entities array.
24 */
25 private $entities = array();
26
27 /**
28 * Analytics Version.
29 *
30 * @access private
31 * @var float analytics version.
32 */
33 private $analytics_version = '';
34
35 /**
36 * Analytics path.
37 *
38 * @access private
39 * @var string path array.
40 */
41 private $analytics_path = '';
42
43 /**
44 * Instance
45 *
46 * @access private
47 * @var object Class object.
48 */
49 private static $instance = null;
50
51 /**
52 * Get instace of class.
53 *
54 * @return object
55 */
56 public static function get_instance() {
57 if ( null === self::$instance ) {
58 self::$instance = new self();
59 }
60
61 return self::$instance;
62 }
63
64 /**
65 * Constructor
66 */
67 public function __construct() {
68 add_action( 'init', array( $this, 'load_analytics' ) );
69 }
70
71 /**
72 * Set entity for analytics.
73 *
74 * @param string $data Entity attributes data.
75 * @return void
76 */
77 public function set_entity( $data ) {
78 array_push( $this->entities, $data );
79 }
80
81 /**
82 * Load Analytics library.
83 *
84 * @return void
85 */
86 public function load_analytics() {
87 $unique_entities = array();
88
89 if ( ! empty( $this->entities ) ) {
90 foreach ( $this->entities as $entity ) {
91 foreach ( $entity as $key => $data ) {
92
93 if ( isset( $data['path'] ) ) {
94 if ( file_exists( $data['path'] . '/version.json' ) ) {
95 $file_contents = file_get_contents( $data['path'] . '/version.json' ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
96 $analytics_version = json_decode( $file_contents, 1 );
97 $analytics_version = $analytics_version['bsf-analytics-ver'];
98
99 if ( version_compare( $analytics_version, $this->analytics_version, '>' ) ) {
100 $this->analytics_version = $analytics_version;
101 $this->analytics_path = $data['path'];
102 }
103 }
104 }
105
106 if ( ! isset( $unique_entities[ $key ] ) ) {
107 $unique_entities[ $key ] = $data;
108 }
109 }
110 }
111
112 if ( file_exists( $this->analytics_path ) && ! class_exists( 'BSF_Analytics' ) ) {
113 require_once $this->analytics_path . '/class-bsf-analytics.php';
114 new BSF_Analytics( $unique_entities, $this->analytics_path, $this->analytics_version );
115 }
116 }
117 }
118 }
119