PluginProbe
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management / 1.1.1
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management v1.1.1
1.6.0 1.5.1 1.5.0 1.4.0 1.3.0 trunk 0.0.1 1.0.0 1.1.0 1.1.1 1.1.2 1.2.0
suredonation / inc / lib / bsf-analytics / class-bsf-analytics-loader.php

class-bsf-analytics-loader.php in SureDonation – Donation Forms, Fundraising Campaigns & Donor Management 1.1.1, at inc/lib/bsf-analytics/class-bsf-analytics-loader.php

119 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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