PluginProbe ʕ •ᴥ•ʔ
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz / 2.12.1
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz v2.12.1
2.12.2 2.12.1 2.12.0 2.11.1 2.11.0 2.10.1 2.10.0 2.9.1 2.9.0 2.8.2 2.8.1 2.7.0 2.7.1 2.8.0 trunk 0.0.10 0.0.11 0.0.12 0.0.13 0.0.2 0.0.3 0.0.4 0.0.5 0.0.6 0.0.7 0.0.8 0.0.9 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.1.0 1.1.1 1.1.2 1.10.0 1.10.1 1.11.0 1.12.0 1.12.1 1.12.2 1.12.3 1.13.0 1.13.1 1.13.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.5.0 1.5.1 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.8.0 1.9.0 1.9.1 2.0.0 2.0.1 2.0.2 2.1.0 2.1.1 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.0 2.5.2 2.6.0
sureforms / inc / lib / bsf-analytics / class-bsf-analytics-loader.php
sureforms / inc / lib / bsf-analytics Last commit date
assets 1 year ago classes 1 year ago modules 2 weeks ago changelog.txt 2 weeks ago class-bsf-analytics-events.php 3 months ago class-bsf-analytics-loader.php 1 year ago class-bsf-analytics-stats.php 3 months ago class-bsf-analytics.php 2 months ago version.json 2 weeks 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