PluginProbe
SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster / 2.7.0
SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster v2.7.0
2.7.0 2.6.0 trunk 1.1.0 1.1.4 1.2.1 1.2.2 1.2.3 1.2.5 1.2.9 1.3.1 1.3.2 1.5.0 1.5.1 1.5.4 1.5.7 1.5.8 1.5.9 1.6.2 1.6.5 1.6.8 1.7.2 1.7.4 1.7.5 1.7.9 All 43 releases
← All changes | sellkit.php +76 -12 1.7.42.7.0 View file →
@@ -1,14 +1,14 @@
1 1 <?php
2 2 /**
3 - * Plugin Name: Sellkit
3 + * Plugin Name: SellKit - Funnel builder and checkout optimizer for WooCommerce to sell more, faster
4 4 * Plugin URI: https://getsellkit.com/
5 5 * Description: Build unlimited sales funnels, one-click order bumps and upsells, custom thank you pages, and more. The free version of SellKit also offers a huge round of features to optimize your WooCommerce store: build and style single or multi-step checkout pages with advanced styling options. Add, remove & reorder form fields. Fasten the form submission process with pre-populated form data, Instant form validation, and removing cart page. All this and more is 100% free and for an unlimited number of sites.
6 - * Version: 1.7.4
6 + * Version: 2.7.0
7 7 * Author: Artbees
8 8 * Author URI: https://artbees.net
9 9 * Text Domain: sellkit
10 - * License: GPL2
10 + * License: GPLv2 or later
11 11 *
12 12 * @package Sellkit
13 13 */
14 14
@@ -159,8 +159,10 @@
159 159
160 160 $this->load_files( [
161 161 'db',
162 162 'functions',
163 + 'funnel/redirect',
164 + 'funnel/homepage',
163 165 'funnel/analytics/data-updater',
164 166 'global-checkout/class',
165 167 'funnel/class',
166 168 'funnel/contacts/base-contacts',
@@ -166,8 +168,15 @@
166 168 'funnel/contacts/base-contacts',
167 169 'funnel/steps',
168 170 ] );
169 171
172 + if ( class_exists( 'SitePress' ) ) {
173 + $this->load_files([
174 + 'compatibility/wpml/module',
175 + 'compatibility/module',
176 + ] );
177 + }
178 +
170 179 $this->db = new Database();
171 180
172 181 add_action( 'plugins_loaded', [ $this, 'check_if_has_sellkit_pro' ], 11 );
173 182 add_action( 'plugins_loaded', [ $this, 'plugins_loaded' ] );
@@ -208,10 +217,12 @@
208 217 *
209 218 * @since 1.1.0
210 219 */
211 220 public function check_if_has_sellkit_pro() {
212 - if ( class_exists( 'Sellkit_Pro' ) ) {
213 - $this->has_pro = true;
221 + if ( class_exists( 'Sellkit_Pro' ) && function_exists( 'sellkit_pro' ) ) {
222 + if ( sellkit_pro()->is_active_sellkit_pro ) {
223 + $this->has_pro = true;
224 + }
214 225 }
215 226 }
216 227
217 228 /**
@@ -235,12 +246,25 @@
235 246 *
236 247 * @since 1.1.0
237 248 */
238 249 public function plugins_loaded() {
250 + if ( 'elementor' === $this->page_builder() ) {
251 + $this->load_files( [
252 + 'elementor/class',
253 + ] );
254 + }
255 +
239 256 $this->load_files( [
240 - 'elementor/class',
241 257 'admin/class-promote-sellkit-pro',
258 + 'admin/class-promotion-banner',
242 259 ] );
260 +
261 + if ( class_exists( 'WooCommerce' ) && 'gutenberg' === $this->page_builder() ) {
262 + $this->load_files( [
263 + 'block-editor/helper',
264 + 'block-editor/class',
265 + ] );
266 + }
243 267 }
244 268
245 269 /**
246 270 * Do some stuff on plugin activation.
@@ -277,15 +301,16 @@
277 301 update_option( 'sellkit-installed-time', time() );
278 302 }
279 303
280 304 /**
281 - * Adding sellkit class to body.
305 + * Adds `sellkit` on the admin body so `.sellkit …` Bootstrap/Reboot selectors apply.
306 + * wp-admin sidebar chrome is toned down in `src/style.scss` where Reboot bleeds through.
282 307 *
283 - * @param string $classes Sellkit the sellkit class.
308 + * @param string $classes Existing body classes.
284 309 * @return string
285 310 */
286 311 public function sellkit_admin_body_class( $classes ) {
287 - return "{$classes} sellkit";
312 + return "{$classes} sellkit sellkit-admin-screen";
288 313 }
289 314
290 315 /**
291 316 * Initialize admin.
@@ -342,9 +367,9 @@
342 367 'public' => false,
343 368 ] );
344 369 }
345 370
346 - load_plugin_textdomain( 'sellkit', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
371 + // Translations load automatically (WP 4.6+) from wp-content/languages/plugins/ and this plugin's languages directory.
347 372 }
348 373
349 374 /**
350 375 * Enqueue editor scripts.
@@ -416,10 +441,20 @@
416 441 ];
417 442
418 443 $submenu = apply_filters( 'sellkit_sub_menu', $submenu );
419 444
420 - $svg_file = wp_remote_get( self::plugin_url() . 'assets/img/icons/sellkit-dashboard.svg' );
445 + // Load SVG from disk. wp_remote_get() to the plugin URL often fails on local/SSL sites and yields an empty icon.
446 + $icon_path = sellkit()->plugin_dir() . 'assets/img/icons/sellkit-dashboard.svg';
447 + $menu_icon = 'dashicons-cart';
421 448
449 + if ( is_readable( $icon_path ) ) {
450 + // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents -- Reading a bundled asset from the filesystem.
451 + $svg_contents = file_get_contents( $icon_path );
452 + if ( false !== $svg_contents && '' !== $svg_contents ) {
453 + $menu_icon = 'data:image/svg+xml;base64,' . base64_encode( $svg_contents );
454 + }
455 + }
456 +
422 457 add_menu_page(
423 458 $menu_name,
424 459 $menu_name,
425 460 'manage_options',
@@ -424,9 +459,9 @@
424 459 $menu_name,
425 460 'manage_options',
426 461 $initial_page,
427 462 [ $this, 'register_admin_menu_callback' ],
428 - 'data:image/svg+xml;base64,' . base64_encode( wp_remote_retrieve_body( $svg_file ) ),
463 + $menu_icon,
429 464 '58.1'
430 465 );
431 466
432 467 foreach ( $submenu as $slug => $title ) {
@@ -518,11 +553,40 @@
518 553 'elementorActivation' => class_exists( 'Elementor\Plugin' ) ? true : false,
519 554 'funnelsTemplateSource' => Funnel::SELLKIT_FUNNELS_TEMPLATE_SOURCE,
520 555 'removedContentBoxes' => Sellkit_Admin_Settings::get_removed_content_box(),
521 556 'sellkitProIsActive' => $this->has_pro,
557 + 'sellkitProPluginInstalled' => class_exists( 'Sellkit_Pro' ) && function_exists( 'sellkit_pro' ),
558 + 'sellkitLicensePageUrl' => ( class_exists( 'Sellkit_Pro' ) && function_exists( 'sellkit_pro' ) )
559 + ? ( is_multisite() ? network_admin_url( 'admin.php?page=sellkit-license' ) : admin_url( 'admin.php?page=sellkit-license' ) )
560 + : '',
522 561 'wcIsActivated' => $this->has_valid_dependencies(),
523 562 'activeTheme' => wp_get_theme()->get( 'Name' ),
563 + 'pageBuilder' => $this->page_builder(),
524 564 ];
565 + }
566 +
567 + /**
568 + * Get page builder.
569 + *
570 + * @since 2.3.0
571 + * @return string
572 + */
573 + public function page_builder() {
574 + $default = 'gutenberg';
575 +
576 + if ( class_exists( 'Elementor\Plugin' ) ) {
577 + $default = 'elementor';
578 + }
579 +
580 + $page_builder = sellkit_get_option( 'page_builder', '' );
581 +
582 + if ( empty( $page_builder ) ) {
583 + sellkit_update_option( 'page_builder', $default );
584 +
585 + return $default;
586 + }
587 +
588 + return $page_builder;
525 589 }
526 590
527 591 /**
528 592 * Get woocommerce settings data.