PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 3.2.3
ShopBuilder – WooCommerce Builder For Elementor v3.2.3
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 | app/Controllers/Dependencies.php +15 -60 2.2.13.2.3 View file →
@@ -18,8 +18,11 @@
18 18 const PLUGIN_NAME = 'ShopBuilder - Woocommerce Builder for Elementor';
19 19
20 20 use SingletonTrait;
21 21
22 + /**
23 + * @var array
24 + */
22 25 private $missing = [];
23 26 /**
24 27 * @var bool
25 28 */
@@ -40,33 +43,26 @@
40 43 }
41 44 if ( ! function_exists( 'wp_create_nonce' ) ) {
42 45 require_once ABSPATH . 'wp-includes/pluggable.php';
43 46 }
44 - // Check WooCommerce
47 +
48 + // Check WooCommerce.
45 49 $woocommerce = 'woocommerce/woocommerce.php';
46 -
47 50 if ( ! is_plugin_active( $woocommerce ) ) {
48 51 if ( $this->is_plugins_installed( $woocommerce ) ) {
49 52 $activation_url = wp_nonce_url( 'plugins.php?action=activate&plugin=' . $woocommerce . '&plugin_status=all&paged=1&s', 'activate-plugin_' . $woocommerce );
50 53 $message = sprintf(
51 - '<strong>%s</strong> %s <strong>%s</strong> %s',
54 + '<strong>%s</strong> requires <strong>WooCommerce</strong> plugin to be active. Please activate WooCommerce to continue.',
52 55 esc_html( self::PLUGIN_NAME ),
53 - esc_html__( 'requires', 'shopbuilder' ),
54 - esc_html__( 'WooCommerce', 'shopbuilder' ),
55 - esc_html__( 'plugin to be active. Please activate WooCommerce to continue.', 'shopbuilder' )
56 56 );
57 - $button_text = esc_html__( 'Activate WooCommerce', 'shopbuilder' );
58 -
57 + $button_text = 'Activate WooCommerce';
59 58 } else {
60 59 $activation_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=woocommerce' ), 'install-plugin_woocommerce' );
61 60 $message = sprintf(
62 - '<strong>%s</strong> %s <strong>%s</strong> %s',
61 + '<strong>%s</strong> requires <strong>WooCommerce</strong> plugin to be active. Please activate WooCommerce to continue.',
63 62 esc_html( self::PLUGIN_NAME ),
64 - esc_html__( 'requires', 'shopbuilder' ),
65 - esc_html__( 'WooCommerce', 'shopbuilder' ),
66 - esc_html__( 'plugin to be installed and activated. Please install WooCommerce to continue.', 'shopbuilder' )
67 63 );
68 - $button_text = esc_html__( 'Install WooCommerce', 'shopbuilder' );
64 + $button_text = 'Install WooCommerce';
69 65 }
70 66 $this->missing['woocommerce'] = [
71 67 'name' => 'WooCommerce',
72 68 'slug' => 'woocommerce',
@@ -74,53 +70,13 @@
74 70 'url' => $activation_url,
75 71 'message' => $message,
76 72 'button_txt' => $button_text,
77 73 ];
74 + $this->allOk = false;
78 75 }
79 76
80 - $elementor = 'elementor/elementor.php';
81 -
82 - if ( ! is_plugin_active( $elementor ) ) {
83 -
84 - if ( $this->is_plugins_installed( $elementor ) ) {
85 - $activation_url = wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . $elementor . '&amp;plugin_status=all&amp;paged=1&amp;s', 'activate-plugin_' . $elementor );
86 - $message = sprintf(
87 - '<strong>%s</strong> %s <strong>%s</strong> %s',
88 - esc_html( self::PLUGIN_NAME ),
89 - esc_html__( 'requires', 'shopbuilder' ),
90 - esc_html__( 'Elementor', 'shopbuilder' ),
91 - esc_html__( 'plugin to be active. Please activate Elementor to continue.', 'shopbuilder' )
92 - );
93 - $button_text = esc_html__( 'Activate Elementor', 'shopbuilder' );
94 -
95 - } else {
96 - $activation_url = wp_nonce_url(
97 - self_admin_url( 'update.php?action=install-plugin&plugin=elementor' ),
98 - 'install-plugin_elementor'
99 - );
100 - $message = sprintf(
101 - '<strong>%s</strong> %s <strong>%s</strong> %s',
102 - esc_html( self::PLUGIN_NAME ),
103 - esc_html__( 'requires', 'shopbuilder' ),
104 - esc_html__( 'Elementor', 'shopbuilder' ),
105 - esc_html__( 'plugin to be installed and activated. Please install Elementor to continue.', 'shopbuilder' )
106 - );
107 - $button_text = esc_html__( 'Install Elementor', 'shopbuilder' );
108 - }
109 -
110 - $this->missing['elementor'] = [
111 - 'name' => 'Elementor',
112 - 'slug' => 'elementor',
113 - 'file_name' => $elementor,
114 - 'url' => $activation_url,
115 - 'message' => $message,
116 - 'button_txt' => $button_text,
117 - ];
118 - }
119 77 if ( ! empty( $this->missing ) ) {
120 78 add_action( 'admin_notices', [ $this, '_missing_plugins_warning' ] );
121 -
122 - $this->allOk = false;
123 79 }
124 80
125 81 return $this->allOk;
126 82 }
@@ -134,11 +90,11 @@
134 90 unset( $_GET['activate'] );
135 91 }
136 92 $message = sprintf(
137 93 /* translators: 1: Plugin name 2: PHP 3: Required PHP version */
138 - esc_html__( '"%1$s" requires "%2$s" version %3$s or greater.', 'shopbuilder' ),
139 - '<strong>' . esc_html__( 'ShopBuilder', 'shopbuilder' ) . '</strong>',
140 - '<strong>' . esc_html__( 'PHP', 'shopbuilder' ) . '</strong>',
94 + esc_html( '"%1$s" requires "%2$s" version %3$s or greater.' ),
95 + '<strong>ShopBuilder</strong>',
96 + '<strong>PHP</strong>',
141 97 self::MINIMUM_PHP_VERSION
142 98 );
143 99 printf( '<div class="notice notice-warning is-dismissible"><p>%1$s</p></div>', wp_kses_post( $message ) );
144 100 }
@@ -153,15 +109,14 @@
153 109 $counter++;
154 110 if ( $counter == count( $this->missing ) ) {
155 111 $sep = '';
156 112 } elseif ( $counter == count( $this->missing ) - 1 ) {
157 - $sep = ' ' . esc_html__( 'and', 'shopbuilder' ) . ' ';
113 + $sep = ' and ';
158 114 } else {
159 115 $sep = ', ';
160 116 }
161 117 if ( current_user_can( 'activate_plugins' ) ) {
162 - $button = '<p><a href="' . esc_url( $plugin['url'] ) . '" class="button-primary">' . esc_html( $plugin['button_txt'] ) . '</a></p>';
163 - // $plugin['message'] Already used escaping function
118 + $button = ! empty( $plugin['url'] ) ? '<p><a href="' . esc_url( $plugin['url'] ) . '" class="button-primary">' . esc_html( $plugin['button_txt'] ) . '</a></p>' : '';
164 119 printf( '<div class="error"><p>%1$s</p>%2$s</div>', $plugin['message'], $button ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
165 120 } else {
166 121 $missingPlugins .= '<strong>' . esc_html( $plugin['name'] ) . '</strong>' . $sep;
167 122 }