PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 3.4.2
ShopBuilder – WooCommerce Builder For Elementor v3.4.2
3.4.2 3.4.1 3.4.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 All 63 releases
← All changes | shopbuilder.php +44 -11 2.2.23.4.2 View file →
@@ -1,19 +1,19 @@
1 1 <?php
2 2 /**
3 3 * @wordpress-plugin
4 - * Plugin Name: ShopBuilder - Elementor WooCommerce Builder Addons
4 + * Plugin Name: ShopBuilder - WooCommerce Builder For Elementor
5 5 * Plugin URI: https://shopbuilderwp.com/
6 - * Description: WooCommerce Page Builder for Elementor
7 - * Version: 2.2.2
6 + * Description: ShopBuilder is the ultimate WooCommerce design solution for Elementor, letting you build and customize shop, product, cart, checkout, and account pages with ease while offering a wide range of features like Quick View, Wishlist, Compare, Variation Swatches, Mini Cart, Product Add-Ons, and more to create stunning online stores.
7 + * Version: 3.4.2
8 8 * Author: RadiusTheme
9 9 * Author URI: https://radiustheme.com
10 10 * Text Domain: shopbuilder
11 11 * Domain Path: /languages
12 12 * WC requires at least: 3.2
13 - * WC tested up to: 9.3
14 - * Elementor tested up to: 3.24
15 - * Elementor Pro tested up to: 3.24
13 + * WC tested up to: 11.1
14 + * Elementor tested up to: 4.2
15 + * Elementor Pro tested up to: 4.1
16 16 * License: GPLv3
17 17 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
18 18 *
19 19 * @package RadiusTheme\SB
@@ -28,27 +28,60 @@
28 28
29 29 /**
30 30 * Define Constants.
31 31 */
32 -define( 'RTSB_VERSION', '2.2.2' );
32 +define( 'RTSB_VERSION', '3.4.2' );
33 33 define( 'RTSB_FILE', __FILE__ );
34 34 define( 'RTSB_PATH', plugin_dir_path( __FILE__ ) );
35 35 define( 'RTSB_ACTIVE_FILE_NAME', plugin_basename( __FILE__ ) );
36 +define( 'RTSB_ABSPATH', __DIR__ . '/' );
36 37
38 +
39 +if ( ! defined( 'RTSB_URL' ) ) {
40 + // Derive the URL from the actual folder name so asset URLs stay correct
41 + // even when the plugin is symlinked from outside wp-content (where
42 + // plugins_url( '', __FILE__ ) would leak the real filesystem path → 404).
43 + $rtsb_dirname = basename( __DIR__ );
44 + define( 'RTSB_URL', plugins_url( $rtsb_dirname ) );
45 +}
46 +
37 47 /**
38 48 * App Init.
49 + *
50 + * Always load the scoped autoloader. vendor_scoped/ is regenerated from
51 + * vendor/ by PHP-Scoper on every Composer command (see tools/scoper/run.php)
52 + * and is the only autoloader the plugin uses in both development and
53 + * production. vendor/ is a temporary Composer/PHP-Scoper working directory
54 + * and is never required at runtime.
39 55 */
40 -require_once RTSB_PATH . 'vendor/autoload.php';
56 +require_once RTSB_PATH . 'vendor_scoped/autoload.php';
41 57
42 58 /**
43 - * @return ShopBuilder
59 + * @return ShopBuilder|null
44 60 */
45 61 function rtsb() {
46 62 static $cached_instance;
47 63 if ( null !== $cached_instance ) {
48 - return $cached_instance;
64 + return $cached_instance ?: null;
49 65 }
50 - $cached_instance = ShopBuilder::instance();
66 +
67 + try {
68 + $cached_instance = ShopBuilder::instance();
69 + } catch ( \Throwable $e ) {
70 + $cached_instance = false;
71 + error_log( 'ShopBuilder fatal: ' . $e->getMessage() . ' in ' . $e->getFile() . ':' . $e->getLine() ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
72 + add_action(
73 + 'admin_notices',
74 + function () use ( $e ) {
75 + printf(
76 + '<div class="notice notice-error"><p><strong>ShopBuilder</strong> encountered an error and has been temporarily disabled. Check the error log for details.</p><p><code>%s</code></p></div>',
77 + esc_html( $e->getMessage() )
78 + );
79 + }
80 + );
81 + return null;
82 + }
83 +
51 84 return $cached_instance;
52 85 }
53 86
54 87 rtsb();