HEX
Server: nginx/1.18.0
System: Linux oas2 6.8.0-1039-oracle #40~22.04.1-Ubuntu SMP Wed Oct 29 05:11:00 UTC 2025 aarch64
User: root (0)
PHP: 8.1.2-1ubuntu2.23
Disabled: NONE
Upload Files
File: /var/www/ecom/wp-content/plugins/electro-extensions/modules/js_composer/js_composer.php
<?php

/**
 * Module Name 			: Visual Composer Addons
 * Module Description 	: Provides additional Visual Composer Elements for the Electro theme
 */

// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

if( ! class_exists( 'Electro_VCExtensions' ) ) {
	class Electro_VCExtensions {

		/**
		 * List of paths.
		 *
		 * @var array
		 */
		private $paths = array();

		/**
		 * Constructor function.
		 * @access  public
		 * @since   1.0.0
		 * @return  void
		 */
		public function __construct() {
			add_action( 'init', array( $this, 'setup_constants' ),	10 );
			add_action( 'init', array( $this, 'setPaths' ),			20 );
			add_action( 'init', array( $this, 'includes' ),			30 );
			add_action( 'init', array( $this, 'map_vc_elements' ),	40 );
			remove_action( 'admin_init', 'vc_page_welcome_redirect');
			
		}

		/**
		 * Setup plugin constants
		 *
		 * @access public
		 * @since  1.0.0
		 * @return void
		 */
		public function setup_constants() {

			// Plugin Folder Path
			if ( ! defined( 'ELECTRO_VC_PLUGIN_EXTENSIONS_DIR' ) ) {
				define( 'ELECTRO_VC_PLUGIN_EXTENSIONS_DIR', plugin_dir_path( __FILE__ ) );
			}

			// Plugin Folder URL
			if ( ! defined( 'ELECTRO_VC_PLUGIN_EXTENSIONS_URL' ) ) {
				define( 'ELECTRO_VC_PLUGIN_EXTENSIONS_URL', plugin_dir_url( __FILE__ ) );
			}

			// Plugin Root File
			if ( ! defined( 'ELECTRO_VC_PLUGIN_EXTENSIONS_FILE' ) ) {
				define( 'ELECTRO_VC_PLUGIN_EXTENSIONS_FILE', __FILE__ );
			}
		}

		/**
		 * Include required files
		 *
		 * @access public
		 * @since  1.0.0
		 * @return void
		 */
		public function includes() {

			#-----------------------------------------------------------------
			# Shortcodes
			#-----------------------------------------------------------------
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-ad-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-brands-carousel.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-feature-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-jumbotron.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-product-list-categories.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-product-categories-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-product-categories-block-v2.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-product-onsale-carousel.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-product-onsale.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-2-1-2-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-6-1-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-6-1-with-categories.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-cards-carousel.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-carousel-tabs.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-tabs.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-with-category-image.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-carousel.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-carousel-1.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-team-member.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-deals-products-carousel.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-ads-with-banners-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-slider-with-ads-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-slider-with-ads-block-v2.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-sidebar-with-products.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-brands-with-category-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-banner-with-products-carousel.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-brands-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-blog-posts-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-three-banners.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-carousel-with-category-tabs.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-carousel-tabs-1.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-product-categories-list.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-deal-products-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-one-two-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-list-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-product-categories-list-with-header.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-mobile-product-deals-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-product-categories-menu-list.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-nav-menu.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-recent-viewed-products.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-deal-and-product-tabs.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-carousel-banner-vertical-tabs.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-product-categories-carousel.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-carousel-with-timer.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-carousel-category-with-image.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-recent-viewed-products-carousel.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-vertical-nav-menu.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-category-with-image.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-two-row-products.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-carousel-tabs-with-deal.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-product-category-tags.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-products-categories-1-6.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-banner-1-6-block.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-product-categories-with-banner-carousel.php';
			require_once ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/includes/elements/vc-product-onsale-carousel-2.php';
		}

		/**
		 * Map Config Dir
		 *
		 * @since  1.0.0
		 * @access public
		 */
		public function map_vc_elements() {

			// Check if Visual Composer is installed
			if ( ! defined( 'WPB_VC_VERSION' ) ) {
				// Display notice that Visual Compser is required
				return;
			}

			require_once  $this->path( 'CONFIG_DIR', 'map.php');
		}

		/**
		 * Setter for paths
		 *
		 * @since  1.0.0
		 * @access public
		 */
		public function setPaths() {
			$this->paths = Array(
				'APP_ROOT'			=> ELECTRO_VC_PLUGIN_EXTENSIONS_DIR,
				'WP_ROOT'			=> preg_replace( '/$\//', '', ABSPATH ),
				'APP_DIR'			=> plugin_basename( ELECTRO_VC_PLUGIN_EXTENSIONS_DIR ),
				'CONFIG_DIR'		=> ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/config',
				'ASSETS_DIR'		=> ELECTRO_VC_PLUGIN_EXTENSIONS_DIR . '/assets',
				'ASSETS_DIR_NAME'	=> 'assets',
			);
		}

		/**
		 * Gets absolute path for file/directory in filesystem.
		 *
		 * @since  1.0.0
		 * @access public
		 * @param $name        - name of path dir
		 * @param string $file - file name or directory inside path
		 * @return string
		 */
		public function path( $name, $file = '' ) {
			return $this->paths[$name] . ( strlen( $file ) > 0 ? '/' . preg_replace( '/^\//', '', $file ) : '' );
		}
	}
}

// Finally initialize code
new Electro_VCExtensions();