File: //proc/self/cwd/wp-content/plugins/elementskit-lite/elementskit-lite.php
<?php
defined( 'ABSPATH' ) || exit;
/**
* Plugin Name: ElementsKit Lite
* Description: The most advanced addons for Elementor with tons of widgets, Header builder, Footer builder, Mega menu builder, layout pack and powerful custom controls.
* Plugin URI: https://products.wpmet.com/elementskit
* Author: Wpmet
* Version: 2.3.7
* Author URI: https://wpmet.com/
*
* Text Domain: elementskit-lite
* Domain Path: /languages
*
* ElementsKit is a powerful addon for Elementor page builder.
* It includes most comprehensive modules, such as "header footer builder", "mega menu",
* "layout installer", "quick form builder" etc under the hood.
* It has a tons of widgets to create any sites with an ease. It has some most unique
* and powerful custom controls for elementor, such as "image picker", "ajax select", "widget area".
*
*/
final class ElementsKit_Lite{
/**
* Plugin Version
*
* @since 1.0.0
* @var string The plugin version.
*/
static function version(){
return '2.3.7';
}
/**
* Package type
*
* @since 1.1.0
* @var string The plugin purchase type [pro/ free].
*/
static function package_type(){
return apply_filters( 'elementskit/core/package_type', 'free' );
}
/**
* Package type
*
* @since 1.1.0
* @var string The plugin purchase type [pro/ free].
*/
static function license_status(){
if(!class_exists('ElementsKit\Libs\Framework\Classes\License')){
return 'invalid';
}
if(ElementsKit\Libs\Framework\Classes\License::instance()->status() != 'valid'){
return 'invalid';
}
return 'valid';
}
public static function license_data(){
if(!class_exists('\ElementsKit_Lite\Libs\Framework\Classes\Utils')){
return [
'key' => '',
'checksum' => '',
'plugin_package' => \ElementsKit_Lite::package_type()
];
}
return [
'key' => \ElementsKit_Lite\Libs\Framework\Classes\Utils::instance()->get_option('license_key'),
'checksum' => get_option('__validate_oppai__'),
'plugin_package' => \ElementsKit_Lite::package_type()
];
}
/**
* Product ID
*
* @since 1.2.6
* @var string The plugin ID in our server.
*/
static function product_id(){
return '9';
}
/**
* Author Name
*
* @since 1.3.1
* @var string The plugin author.
*/
static function author_name(){
return 'Wpmet';
}
/**
* Store Name
*
* @since 1.3.1
* @var string The store name: self site, envato.
*/
static function store_name(){
return 'wordpressorg';
}
/**
* Minimum Elementor Version
*
* @since 1.0.0
* @var string Minimum Elementor version required to run the plugin.
*/
static function min_el_version(){
return '3.0.0';
}
/**
* Minimum PHP Version
*
* @since 1.0.0
* @var string Minimum PHP version required to run the plugin.
*/
static function min_php_version(){
return '7.0';
}
/**
* Plugin file
*
* @since 1.0.0
* @var string plugins's root file.
*/
static function plugin_file(){
return __FILE__;
}
/**
* Plugin url
*
* @since 1.0.0
* @var string plugins's root url.
*/
static function plugin_url(){
return trailingslashit(plugin_dir_url( __FILE__ ));
}
/**
* Plugin dir
*
* @since 1.0.0
* @var string plugins's root directory.
*/
static function plugin_dir(){
return trailingslashit(plugin_dir_path( __FILE__ ));
}
/**
* Plugin's widget directory.
*
* @since 1.0.0
* @var string widget's root directory.
*/
static function widget_dir(){
return self::plugin_dir() . 'widgets/';
}
/**
* Plugin's widget url.
*
* @since 1.0.0
* @var string widget's root url.
*/
static function widget_url(){
return self::plugin_url() . 'widgets/';
}
/**
* API url
*
* @since 1.0.0
* @var string for license, layout notification related functions.
*/
static function api_url(){
return 'https://api.wpmet.com/public/';
}
/**
* Account url
*
* @since 1.2.6
* @var string for plugin update notification, user account page.
*/
static function account_url(){
return 'https://account.wpmet.com';
}
/**
* Plugin's module directory.
*
* @since 1.0.0
* @var string module's root directory.
*/
static function module_dir(){
return self::plugin_dir() . 'modules/';
}
/**
* Plugin's module url.
*
* @since 1.0.0
* @var string module's root url.
*/
static function module_url(){
return self::plugin_url() . 'modules/';
}
/**
* Plugin's lib directory.
*
* @since 1.0.0
* @var string lib's root directory.
*/
static function lib_dir(){
return self::plugin_dir() . 'libs/';
}
/**
* Plugin's lib url.
*
* @since 1.0.0
* @var string lib's root url.
*/
static function lib_url(){
return self::plugin_url() . 'libs/';
}
/**
* Constructor
*
* @since 1.0.0
* @access public
*/
public function __construct() {
// Load the main static helper class.
require_once self::plugin_dir() . 'libs/notice/notice.php'; // new notice system
require_once self::plugin_dir() . 'libs/banner/banner.php'; // new banner system
require_once self::plugin_dir() . 'libs/stories/stories.php'; // new stories system
require_once self::plugin_dir() . 'libs/rating/rating.php';
require_once self::plugin_dir() . 'libs/pro-awareness/pro-awareness.php'; // pro menu class file
require_once self::plugin_dir() . 'helpers/utils.php';
// Load translation
add_action( 'init', array( $this, 'i18n' ) );
// Init Plugin
add_action( 'plugins_loaded', array( $this, 'init' ), 100 );
}
/**
* Load Textdomain
*
* Load plugin localization files.
* Fired by `init` action hook.
*
* @since 1.0.0
* @access public
*/
public function i18n() {
load_plugin_textdomain( 'elementskit-lite', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
/**
* Initialize the plugin
*
* Checks for basic plugin requirements, if one check fail don't continue,
* if all check have passed include the plugin class.
*
* Fired by `plugins_loaded` action hook.
*
* @since 1.0.0
* @access public
*/
public function init() {
// init notice class
\Oxaim\Libs\Notice::init();
// init pro menu class
\Wpmet\Libs\Pro_Awareness::init();
// Check if Elementor installed and activated.
if ( ! did_action( 'elementor/loaded' ) ) {
add_action( 'admin_head', array( $this, 'missing_elementor' ) );
return;
}
// Check for required PHP version.
if ( version_compare( PHP_VERSION, self::min_php_version(), '<' ) ) {
add_action( 'admin_head', array( $this, 'failed_php_version' ) );
return;
}
// Once we get here, We have passed all validation checks so we can safely include our plugin.
// Register ElementsKit_Lite widget category
add_action('elementor/elements/categories_registered', [$this, 'elementor_widget_category']);
add_action( 'elementor/init', function(){
if(class_exists('ElementsKit') && !class_exists('ElementsKit_Comp')){
return;
}
// adding backward classes and methods for older 14 number themes.
require_once self::plugin_dir() . 'compatibility/backward/plugin-class-backward-compatibility.php';
require_once self::plugin_dir() . 'compatibility/backward/utils-backward-compablity.php';
// Load the Plugin class, it's the core class of ElementsKit_Lite.
require_once self::plugin_dir() . 'plugin.php';
// adding backward classes and methods for older 14 number themes.
require_once self::plugin_dir() . 'compatibility/backward/module-list.php';
require_once self::plugin_dir() . 'compatibility/backward/widget-list.php';
});
}
/**
* Admin notice
*
* Warning when the site doesn't have required Elementor.
*
* @since 1.0.0
* @access public
*/
public function missing_elementor() {
if ( isset( $_GET['activate'] ) ) {
unset( $_GET['activate'] );
}
$btn = [
'default_class' => 'button',
'class' => 'button-primary ', // button-primary button-secondary button-small button-large button-link
];
if ( file_exists( WP_PLUGIN_DIR . '/elementor/elementor.php' ) ) {
$btn['text'] = esc_html__('Activate Elementor', 'elementskit-lite');
$btn['url'] = wp_nonce_url( 'plugins.php?action=activate&plugin=elementor/elementor.php&plugin_status=all&paged=1', 'activate-plugin_elementor/elementor.php' );
} else {
$btn['text'] = esc_html__('Install Elementor', 'elementskit-lite');
$btn['url'] = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=elementor' ), 'install-plugin_elementor' );
}
\Oxaim\Libs\Notice::instance('elementskit-lite', 'unsupported-elementor-version')
->set_type('error')
->set_message(sprintf( esc_html__( 'ElementsKit requires Elementor version %1$s+, which is currently NOT RUNNING.', 'elementskit-lite' ), self::min_el_version() ))
->set_button($btn)
->call();
}
/**
* Admin notice
*
* Warning when the site doesn't have a minimum required PHP version.
*
* @since 1.0.0
* @access public
*/
public function failed_php_version() {
\Oxaim\Libs\Notice::instance('elementskit-lite', 'unsupported-php-version')
->set_type('error')
->set_message(sprintf( esc_html__( 'ElementsKit requires PHP version %1$s+, which is currently NOT RUNNING on this server.', 'elementskit-lite' ), self::min_php_version() ))
->call();
}
/**
* Rewrite flush.
*
* @since 1.0.7
* @access public
*/
public static function install_activation_key(){
add_option('elementskit-lite__plugin_activated', self::plugin_file());
}
/**
* Add category.
*
* Register custom widget category in Elementor's editor
*
* @since 1.0.0
* @access public
*/
public function elementor_widget_category($widgets_manager){
\Elementor\Plugin::$instance->elements_manager->add_category(
'elementskit',
[
'title' =>esc_html__( 'ElementsKit', 'elementskit-lite' ),
'icon' => 'fa fa-plug',
],
1
);
\Elementor\Plugin::$instance->elements_manager->add_category(
'elementskit_headerfooter',
[
'title' =>esc_html__( 'ElementsKit Header Footer', 'elementskit-lite' ),
'icon' => 'fa fa-plug',
],
1
);
}
}
new ElementsKit_Lite();
register_activation_hook( __FILE__, 'ElementsKit_Lite::install_activation_key' );