PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.10.15
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.10.15
4.0.8 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 All 149 releases
visualizer / vendor / codeinwp / themeisle-sdk / src / Modules / Script_loader.php

Script_loader.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.10.15, at vendor/codeinwp/themeisle-sdk/src/Modules/Script_loader.php

146 lines 3.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * The dependency model class for ThemeIsle SDK
4 *
5 * @package ThemeIsleSDK
6 * @subpackage Modules
7 * @copyright Copyright (c) 2017, Marius Cristea
8 * @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
9 * @since 3.3
10 */
11
12 namespace ThemeisleSDK\Modules;
13
14 use ThemeisleSDK\Common\Abstract_Module;
15 use ThemeisleSDK\Product;
16
17 // Exit if accessed directly.
18 if ( ! defined( 'ABSPATH' ) ) {
19 exit;
20 }
21
22 /**
23 * Script loader module for ThemeIsle SDK.
24 */
25 class Script_Loader extends Abstract_Module {
26 /**
27 * Check if we should load the module for this product.
28 *
29 * @param Product $product Product to load the module for.
30 *
31 * @return bool Should we load ?
32 */
33 public function can_load( $product ) {
34 if ( $this->is_from_partner( $product ) ) {
35 return false;
36 }
37
38 return true;
39 }
40
41 /**
42 * Load module logic.
43 *
44 * @param Product $product Product to load.
45 *
46 * @return Dependancy Module object.
47 */
48 public function load( $product ) {
49 $this->product = $product;
50 $this->setup_actions();
51 return $this;
52 }
53
54 /**
55 * Setup actions. Once for all products.
56 */
57 private function setup_actions() {
58
59 if ( apply_filters( 'themeisle_sdk_script_setup', false ) ) {
60 return;
61 }
62
63 add_filter( 'themeisle_sdk_dependency_script_handler', [ $this, 'get_script_handler' ], 10, 1 );
64 add_action( 'themeisle_sdk_dependency_enqueue_script', [ $this, 'enqueue_script' ], 10, 1 );
65
66 add_filter( 'themeisle_sdk_script_setup', '__return_true' );
67 }
68
69 /**
70 * Get the script handler.
71 *
72 * @param string $slug The slug of the script.
73 *
74 * @return string The script handler. Empty if slug is not a string or not implemented.
75 */
76 public function get_script_handler( $slug ) {
77 if ( ! is_string( $slug ) ) {
78 return '';
79 }
80
81 if ( 'tracking' !== $slug && 'survey' !== $slug ) {
82 return '';
83 }
84
85 return apply_filters( 'themeisle_sdk_dependency_script_handler_name', 'themeisle_sdk_' . $slug . '_script', $slug );
86 }
87
88 /**
89 * Enqueue the script.
90 *
91 * @param string $slug The slug of the script.
92 */
93 public function enqueue_script( $slug ) {
94 $handler = apply_filters( 'themeisle_sdk_dependency_script_handler', $slug );
95 if ( empty( $handler ) ) {
96 return;
97 }
98
99 if ( 'tracking' === $slug ) {
100 $this->load_tracking( $handler );
101 } elseif ( 'survey' === $slug ) {
102 $this->load_survey( $handler );
103 }
104 }
105
106 /**
107 * Load the survey script.
108 *
109 * @param string $handler The script handler.
110 *
111 * @return void
112 */
113 public function load_survey( $handler ) {
114 global $themeisle_sdk_max_path;
115 $asset_file = require $themeisle_sdk_max_path . '/assets/js/build/survey/survey_deps.asset.php';
116
117 wp_enqueue_script(
118 $handler,
119 $this->get_sdk_uri() . 'assets/js/build/survey/survey_deps.js',
120 $asset_file['dependencies'],
121 $asset_file['version'],
122 true
123 );
124 }
125
126 /**
127 * Load the tracking script.
128 *
129 * @param string $handler The script handler.
130 *
131 * @return void
132 */
133 public function load_tracking( $handler ) {
134 global $themeisle_sdk_max_path;
135 $asset_file = require $themeisle_sdk_max_path . '/assets/js/build/tracking/tracking.asset.php';
136
137 wp_enqueue_script(
138 $handler,
139 $this->get_sdk_uri() . 'assets/js/build/tracking/tracking.js',
140 $asset_file['dependencies'],
141 $asset_file['version'],
142 true
143 );
144 }
145 }
146