PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.2.1
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.2.1
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
← All changes | vendor/codeinwp/themeisle-sdk/src/Product.php +4 -105 4.0.53.2.1 View file →
@@ -70,14 +70,8 @@
70 70 * @var string $key The product ready key.
71 71 */
72 72 private $key;
73 73 /**
74 - * Author URL
75 - *
76 - * @var string $author_url The author url.
77 - */
78 - private $author_url;
79 - /**
80 74 * Product store url.
81 75 *
82 76 * @var string $store_url The store url.
83 77 */
@@ -111,18 +105,8 @@
111 105 *
112 106 * @var string $version The product version.
113 107 */
114 108 private $version;
115 - /**
116 - * Holds a map of loaded products objects.
117 - *
118 - * @var array Array of loaded products.
119 - */
120 - private static $cached_products = [];
121 - /**
122 - * Root api endpoint.
123 - */
124 - const API_URL = 'https://api.themeisle.com/';
125 109
126 110 /**
127 111 * ThemeIsle_SDK_Product constructor.
128 112 *
@@ -129,9 +113,9 @@
129 113 * @param string $basefile Product basefile.
130 114 */
131 115 public function __construct( $basefile ) {
132 116 if ( ! empty( $basefile ) ) {
133 - if ( is_file( $basefile ) ) {
117 + if ( is_readable( $basefile ) ) {
134 118 $this->basefile = $basefile;
135 119 $this->setup_from_path();
136 120 $this->setup_from_fileheaders();
137 121 }
@@ -138,58 +122,15 @@
138 122 }
139 123 $install = get_option( $this->get_key() . '_install', 0 );
140 124 if ( 0 === $install ) {
141 125 $install = time();
142 - /**
143 - * Action to be triggered when the product is first activated.
144 - *
145 - * @param string $basefile The basefile of the product.
146 - */
147 - do_action( 'themeisle_sdk_first_activation', $basefile );
148 -
149 126 update_option( $this->get_key() . '_install', time() );
150 127 }
151 - $this->install = (int) $install;
152 - self::$cached_products[ crc32( $basefile ) ] = $this;
153 - $current_version = get_option( $this->slug . '_version', '' );
128 + $this->install = $install;
154 129
155 - if ( $current_version !== $this->version && wp_cache_get( "{$this->slug}_version_upgrade" ) === false ) {
156 - // Set the cache lock to avoid multiple calls.
157 - wp_cache_set( "{$this->slug}_version_upgrade", true, HOUR_IN_SECONDS );
158 - /**
159 - * Action to be triggered when the product is updated.
160 - *
161 - * @param string $current_version The current version of the product.
162 - * @param string $new_version The new version of the product.
163 - * @param string $basefile The basefile of the product.
164 - */
165 - do_action( "themeisle_sdk_update_{$this->slug}", $current_version, $this->version, $basefile );
166 -
167 - // Update the version of the product.
168 - update_option( "{$this->slug}_version", $this->version );
169 - // Delete the cache lock.
170 - wp_cache_delete( "{$this->slug}_version_upgrade" );
171 - }
172 130 }
173 131
174 132 /**
175 - * Return a product.
176 - *
177 - * @param string $basefile Product basefile.
178 - *
179 - * @return Product Product Object.
180 - */
181 - public static function get( $basefile ) {
182 - $key = crc32( $basefile );
183 - if ( isset( self::$cached_products[ $key ] ) ) {
184 - return self::$cached_products[ $key ];
185 - }
186 - self::$cached_products[ $key ] = new Product( $basefile );
187 -
188 - return self::$cached_products[ $key ];
189 - }
190 -
191 - /**
192 133 * Setup props from path.
193 134 */
194 135 public function setup_from_path() {
195 136 $this->file = basename( $this->basefile );
@@ -212,9 +153,9 @@
212 153 * @param string $string the String to be normalized for cron handler.
213 154 *
214 155 * @return string $name The normalized string.
215 156 */
216 - public static function key_ready_name( $string ) {
157 + static function key_ready_name( $string ) {
217 158 return str_replace( '-', '_', strtolower( trim( $string ) ) );
218 159 }
219 160
220 161 /**
@@ -258,9 +199,8 @@
258 199 */
259 200 public function get_key() {
260 201 return $this->key;
261 202 }
262 -
263 203 /**
264 204 * Check if the product is either theme or plugin.
265 205 *
266 206 * @return string Product type.
@@ -371,19 +311,9 @@
371 311 *
372 312 * @return string Friendly name.
373 313 */
374 314 public function get_friendly_name() {
375 - $name = trim( str_replace( 'Lite', '', $this->get_name() ) );
376 - if ( defined( 'OTTER_BLOCKS_BASEFILE' ) && OTTER_BLOCKS_BASEFILE === $this->basefile ) {
377 - $name = 'Otter Blocks';
378 - }
379 - if ( defined( 'OPTML_BASEFILE' ) && OPTML_BASEFILE === $this->basefile ) {
380 - $name = 'Optimole';
381 - }
382 - if ( defined( 'WPMM_FILE' ) && WPMM_FILE === $this->basefile ) {
383 - $name = 'LightStart';
384 - }
385 - $name = apply_filters( $this->get_key() . '_friendly_name', $name );
315 + $name = apply_filters( $this->get_key() . '_friendly_name', trim( str_replace( 'Lite', '', $this->get_name() ) ) );
386 316 $name = rtrim( $name, '- ()' );
387 317
388 318 return $name;
389 319 }
@@ -388,17 +318,8 @@
388 318 return $name;
389 319 }
390 320
391 321 /**
392 - * Return the product version cache key.
393 - *
394 - * @return string The product version cache key.
395 - */
396 - public function get_cache_key() {
397 - return $this->get_key() . '_' . preg_replace( '/[^0-9a-zA-Z ]/m', '', $this->get_version() ) . 'versions';
398 - }
399 -
400 - /**
401 322 * Getter for product name.
402 323 *
403 324 * @return string The product name.
404 325 */
@@ -420,13 +341,8 @@
420 341 *
421 342 * @return string The store url.
422 343 */
423 344 public function get_store_url() {
424 -
425 - if ( strpos( $this->store_url, '/themeisle.com' ) !== false ) {
426 - return 'https://store.themeisle.com/';
427 - }
428 -
429 345 return $this->store_url;
430 346 }
431 347
432 348 /**
@@ -438,24 +354,8 @@
438 354 return $this->basefile;
439 355 }
440 356
441 357 /**
442 - * Get changelog url.
443 - *
444 - * @return string Changelog url.
445 - */
446 - public function get_changelog() {
447 - return add_query_arg(
448 - [
449 - 'name' => rawurlencode( $this->get_name() ),
450 - 'edd_action' => 'view_changelog',
451 - 'locale' => get_user_locale(),
452 - ],
453 - $this->get_store_url()
454 - );
455 - }
456 -
457 - /**
458 358 * Returns product filename.
459 359 *
460 360 * @return string The product filename.
461 361 */
@@ -461,9 +361,8 @@
461 361 */
462 362 public function get_file() {
463 363 return $this->file;
464 364 }
465 -
466 365 /**
467 366 * Returns the pro slug, if available.
468 367 *
469 368 * @return string The pro slug.