PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.10.13
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.10.13
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 / load.php

load.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.10.13, at vendor/codeinwp/themeisle-sdk/load.php

264 lines 7.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Loader for the ThemeIsleSDK
4 *
5 * Logic for loading always the latest SDK from the installed themes/plugins.
6 *
7 * @package ThemeIsleSDK
8 * @copyright Copyright (c) 2017, Marius Cristea
9 * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
10 * @since 1.1.0
11 */
12
13 if ( ! defined( 'ABSPATH' ) ) {
14 return;
15 }
16 // Current SDK version and path.
17 $themeisle_sdk_version = '3.3.20';
18 $themeisle_sdk_path = dirname( __FILE__ );
19
20 global $themeisle_sdk_max_version;
21 global $themeisle_sdk_max_path;
22
23 // If this is the latest SDK and it comes from a theme, we should load licenser separately.
24 $themeisle_sdk_relative_licenser_path = '/src/Modules/Licenser.php';
25
26 global $themeisle_sdk_abs_licenser_path;
27 if ( ! is_file( $themeisle_sdk_path . $themeisle_sdk_relative_licenser_path ) && ! empty( $themeisle_sdk_max_path ) && is_file( $themeisle_sdk_max_path . $themeisle_sdk_relative_licenser_path ) ) {
28 $themeisle_sdk_abs_licenser_path = $themeisle_sdk_max_path . $themeisle_sdk_relative_licenser_path;
29 add_filter( 'themeisle_sdk_required_files', 'themeisle_sdk_load_licenser_if_present' );
30 }
31
32 if ( ( is_null( $themeisle_sdk_max_path ) || version_compare( $themeisle_sdk_version, $themeisle_sdk_max_version ) == 0 ) &&
33 apply_filters( 'themeisle_sdk_should_overwrite_path', false, $themeisle_sdk_path, $themeisle_sdk_max_path ) ) {
34 $themeisle_sdk_max_path = $themeisle_sdk_path;
35 }
36
37 if ( is_null( $themeisle_sdk_max_version ) || version_compare( $themeisle_sdk_version, $themeisle_sdk_max_version ) > 0 ) {
38 $themeisle_sdk_max_version = $themeisle_sdk_version;
39 $themeisle_sdk_max_path = $themeisle_sdk_path;
40 }
41
42 // load the latest sdk version from the active Themeisle products.
43 if ( ! function_exists( 'themeisle_sdk_load_licenser_if_present' ) ) :
44 /**
45 * Always load the licenser, if present.
46 *
47 * @param array $to_load Previously files to load.
48 */
49 function themeisle_sdk_load_licenser_if_present( $to_load ) {
50 global $themeisle_sdk_abs_licenser_path;
51 $to_load[] = $themeisle_sdk_abs_licenser_path;
52
53 return $to_load;
54 }
55 endif;
56
57 // load the latest sdk version from the active Themeisle products.
58 if ( ! function_exists( 'themeisle_sdk_load_latest' ) ) :
59 /**
60 * Always load the latest sdk version.
61 */
62 function themeisle_sdk_load_latest() {
63 /**
64 * Don't load the library if we are on < 5.4.
65 */
66 if ( version_compare( PHP_VERSION, '5.4.32', '<' ) ) {
67 return;
68 }
69 global $themeisle_sdk_max_path;
70 require_once $themeisle_sdk_max_path . '/start.php';
71 }
72 endif;
73 add_action( 'init', 'themeisle_sdk_load_latest' );
74
75 if ( ! function_exists( 'tsdk_utmify' ) ) {
76 /**
77 * Utmify a link.
78 *
79 * @param string $url URL to add utms.
80 * @param string $area Area in page where this is used ( CTA, image, section name).
81 * @param string $location Location, such as customizer, about page.
82 *
83 * @return string
84 */
85 function tsdk_utmify( $url, $area, $location = null ) {
86 static $current_page = null;
87 if ( $location === null && $current_page === null ) {
88 global $pagenow;
89 $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : $pagenow;
90 $current_page = isset( $screen->id ) ? $screen->id : ( ( $screen === null ) ? 'non-admin' : $screen );
91 $current_page = sanitize_key( str_replace( '.php', '', $current_page ) );
92 }
93 $location = $location === null ? $current_page : $location;
94 $content = sanitize_key(
95 trim(
96 str_replace(
97 [
98 'https://',
99 'themeisle.com',
100 '/themes/',
101 '/plugins/',
102 '/upgrade',
103 ],
104 '',
105 $url
106 ),
107 '/'
108 )
109 );
110 $filter_key = sanitize_key( $content );
111 $url_args = [
112 'utm_source' => 'wpadmin',
113 'utm_medium' => $location,
114 'utm_campaign' => $area,
115 'utm_content' => $content,
116 ];
117 $query_arguments = apply_filters( 'tsdk_utmify_' . $filter_key, $url_args, $url );
118 $utmify_url = esc_url_raw(
119 add_query_arg(
120 $query_arguments,
121 $url
122 )
123 );
124
125 return apply_filters( 'tsdk_utmify_url_' . $filter_key, $utmify_url, $url );
126 }
127
128 add_filter( 'tsdk_utmify', 'tsdk_utmify', 10, 3 );
129 }
130
131
132 if ( ! function_exists( 'tsdk_lstatus' ) ) {
133 /**
134 * Check license status.
135 *
136 * @param string $file Product basefile.
137 *
138 * @return string Status.
139 */
140 function tsdk_lstatus( $file ) {
141 return \ThemeisleSDK\Modules\Licenser::status( $file );
142 }
143 }
144 if ( ! function_exists( 'tsdk_lis_valid' ) ) {
145 /**
146 * Check if license is valid.
147 *
148 * @param string $file Product basefile.
149 *
150 * @return bool Validness.
151 */
152 function tsdk_lis_valid( $file ) {
153 return \ThemeisleSDK\Modules\Licenser::is_valid( $file );
154 }
155 }
156 if ( ! function_exists( 'tsdk_lplan' ) ) {
157 /**
158 * Get license plan.
159 *
160 * @param string $file Product basefile.
161 *
162 * @return string Plan.
163 */
164 function tsdk_lplan( $file ) {
165 return \ThemeisleSDK\Modules\Licenser::plan( $file );
166 }
167 }
168
169 if ( ! function_exists( 'tsdk_lkey' ) ) {
170 /**
171 * Get license key.
172 *
173 * @param string $file Product basefile.
174 *
175 * @return string Key.
176 */
177 function tsdk_lkey( $file ) {
178 return \ThemeisleSDK\Modules\Licenser::key( $file );
179 }
180 }
181
182 if ( ! function_exists( 'tsdk_translate_link' ) ) {
183
184 /**
185 * Function to translate a link based on the current language.
186 *
187 * @param string $url URL to translate.
188 * @param string{'path'|'query'|'domain'} $type Type of localization. Supports path, query and domain.
189 * @param array $available_languages Available language to choose from.
190 *
191 * @return string
192 */
193 function tsdk_translate_link(
194 $url, $type = 'path', $available_languages = [
195 'de_DE' => 'de',
196 'de_DE_formal' => 'de',
197 ]
198 ) {
199 $language = get_user_locale();
200 if ( ! isset( $available_languages[ $language ] ) ) {
201 return $url;
202 }
203 $code = $available_languages[ $language ];
204 // We asume that false is based on query and add the code via query arg.
205 if ( $type === 'query' ) {
206 return add_query_arg( 'lang', $code, $url );
207 }
208
209 $parsed_url = wp_parse_url( $url );
210 // we replace the domain here based on the localized one.
211 if ( $type === 'domain' ) {
212 return $parsed_url['scheme'] . '://' . $code . ( isset( $parsed_url['path'] ) ? $parsed_url['path'] : '' ) . ( isset( $parsed_url['query'] ) ? '?' . $parsed_url['query'] : '' ) . ( isset( $parsed_url['fragment'] ) ? '#' . $parsed_url['fragment'] : '' );
213 }
214 // default is the path based approach.
215 $new_path = isset( $parsed_url['path'] ) ? "/$code" . $parsed_url['path'] : "/$code";
216
217 return $parsed_url['scheme'] . '://' . $parsed_url['host'] . $new_path . ( isset( $parsed_url['query'] ) ? '?' . $parsed_url['query'] : '' ) . ( isset( $parsed_url['fragment'] ) ? '#' . $parsed_url['fragment'] : '' );
218
219 }
220 }
221 if ( ! function_exists( 'tsdk_support_link' ) ) {
222
223 /**
224 * Get Themeisle Support URL.
225 *
226 * @param string $file Product basefile.
227 *
228 * @return false|string Return support URL or false if no license is active.
229 */
230 function tsdk_support_link( $file ) {
231
232 if ( ! did_action( 'init' ) ) {
233 _doing_it_wrong( __FUNCTION__, 'tsdk_support_link() should not be called before the init action.', '3.2.39' );
234 }
235 $params = [];
236 if ( ! tsdk_lis_valid( $file ) ) {
237 return false;
238 }
239 $product = \ThemeisleSDK\Product::get( $file );
240 if ( ! $product->requires_license() ) {
241 return false;
242 }
243 static $site_params = null;
244 if ( $site_params === null ) {
245 if ( is_user_logged_in() && function_exists( 'wp_get_current_user' ) ) {
246 $current_user = wp_get_current_user();
247 $site_params['semail'] = urlencode( $current_user->user_email );
248 }
249 $site_params['swb'] = urlencode( home_url() );
250 global $wp_version;
251 $site_params['snv'] = urlencode( sprintf( 'WP-%s-PHP-%s', $wp_version, ( PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION ) ) );
252 }
253 $params['slkey'] = tsdk_lkey( $file );
254 $params['sprd'] = urlencode( $product->get_name() );
255 $params['svrs'] = urlencode( $product->get_version() );
256
257
258 return add_query_arg(
259 array_merge( $site_params, $params ),
260 'https://store.themeisle.com/direct-support/'
261 );
262 }
263 }
264