%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY Nisof Was Here
NisofShell
Server IP : 54.36.91.62  /  Your IP : 216.73.217.162
Web Server : Apache
System : Linux webm002.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : wellingtpa ( 97533)
PHP Version : 7.4.33
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/w/e/l/wellingtpa/www/wp-content/plugins/kata-plus/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /home/w/e/l/wellingtpa/www/wp-content/plugins/kata-plus//kata-plus.php
<?php
/**
 * Plugin Name:     Kata Plus
 * Plugin URI:      https://wordpress.org/plugins/kata-plus/
 * Description:     Kata Plus is one an all in one addon for Elementor page builder that is fully compatible with Kata WordPress theme. Kata Plus is an all-in-one plugin that has a header, footer, and blog builder inside Styler (the new advanced tool for styling widgets) and comes with 18 practical widgets for creating different websites.
 * Version:         1.5.6
 * Author:          Climax Themes
 * Author URI:      https://climaxthemes.com/
 * Elementor tested up to: 3.32.2
 * Elementor Pro tested up to: 3.32.2
 * License:         GPL-2.0+
 * License URI:     http://www.gnu.org/licenses/gpl-2.0.txt
 * Text Domain:     kata-plus
 * Domain Path:     /languages
 *
 * The plugin bootstrap file
 *
 * @author  ClimaxThemes
 * @package Kata Plus
 * @since   1.0.0
 */

// Don't load directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}
use Elementor\Core\Files\CSS\Base;

if ( ! class_exists( 'Kata_Plus' ) ) {
	class Kata_Plus {
		/**
		 * Maintains the current version of the plugin.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $version;

		/**
		 * Maintains the slug of the plugin.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $slug;

		/**
		 * Maintains the url of the plugin.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $plugin_url;

		/**
		 * Maintains the name of the plugin.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $plugin_name;

		/**
		 * Maintains the wp-include dir.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $kata_plus_wp_include_dir;

		/**
		 * Maintains the wp-admin dir.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $kata_plus_wp_admin_dir;

		/**
		 * The directory of the file.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $dir;

		/**
		 * The url of the file.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $url;

		/**
		 * The base name of the Kata Plus.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $name;

		/**
		 * Fonts table name.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $fonts_table_name;

		/**
		 * Upload dir.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $upload_dir;

		/**
		 * Upload dir.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $upload_dir_url;

		/**
		 * The url of assets file.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $assets;

		/**
		 * The url of assets file.
		 *
		 * @access  public
		 * @var     string
		 */
		public static $assets_dir;

		/**
		 * Instance of this class.
		 *
		 * @since   1.0.0
		 * @access  public
		 * @var     Kata_Plus
		 */
		public static $instance;

		/**
		 * Provides access to a single instance of a module using the singleton pattern.
		 *
		 * @since   1.0.0
		 * @return  object
		 */
		public static function get_instance() {
			if ( null === self::$instance ) {
				self::$instance = new self();
			}
			return self::$instance;
		}

		/**
		 * Define the core functionality of the plugin.
		 *
		 * @since   1.0.0
		 */
		public function __construct() {

			register_activation_hook( __FILE__, array( $this, 'essentials' ) );

			if ( ! class_exists( 'Elementor\Plugin' ) ) {
				return;
			}

			if ( get_option( 'kata_is_active' ) ) {
				add_action( 'admin_notices', array( $this, 'kata_not_active' ) );
				return;
			}
			$this->definitions();
			$this->upload_dir();
			$this->dependencies();
			$this->actions();
			$this->kata_plus_init();
		}

		/**
		 * Kata theme is not activate notice.
		 *
		 * @since   1.0.0
		 */
		public function kata_not_active() {

			echo '<div id="message" class="updated error is-dismissible"><p>' . esc_html__( 'Kata theme is not activated. Kata Plus needs Kata theme to work', 'kata-plus' ) . '</p></div>';
		}

		/**
		 * Kata Plus Init.
		 *
		 * @since   1.0.0
		 */
		public function kata_plus_init() {
			add_action( 'after_setup_theme', function() {
				do_action( 'kata_plus_init' );
			}, 50 );
		}

		/**
		 * Global definitions.
		 *
		 * @since   1.0.0
		 */
		public function definitions() {

			self::$version                  = '1.5.6';
			self::$slug                     = 'kata-plus';
			self::$plugin_url               = 'https://wordpress.org/plugins/kata-plus/';
			self::$plugin_name              = 'Kata Plus';
			self::$dir                      = plugin_dir_path( __FILE__ );
			self::$kata_plus_wp_include_dir = ABSPATH . WPINC;
			self::$kata_plus_wp_admin_dir   = ABSPATH . 'wp-admin';
			self::$url                      = plugin_dir_url( __FILE__ );
			self::$name                     = plugin_basename( __FILE__ );
			self::$assets                   = self::$url . 'assets/src/';
			self::$assets_dir               = self::$dir . 'assets/src/';
			self::$fonts_table_name         = 'kata_plus_fonts_manager';
			self::$upload_dir               = wp_get_upload_dir()['basedir'] . '/kata';
			self::$upload_dir_url           = is_ssl() ? str_replace( 'http://', 'https://', wp_get_upload_dir()['baseurl'] . '/kata' ) : wp_get_upload_dir()['baseurl'] . '/kata';
		}

		/**
		 * Add actions.
		 *
		 * @since   1.0.0
		 */
		public function actions() {
			add_action( 'after_switch_theme', array( $this, 'sync_theme_mods' ), 20 );
			add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ), 10 );
			add_action( 'admin_init', array( $this, 'update_permalink' ), 9 );
			add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 2 );
			add_action( 'wp_print_scripts', array( $this, 'localize_fonts_list' ), 1 );
			add_action( 'customize_controls_enqueue_scripts', array( $this, 'localize_fonts_list' ), -10 );
		}

		/**
		 * Load dependencies.
		 *
		 * @since   1.0.0
		 */
		public function dependencies() {

			// AutoLoader.
			require_once self::$dir . 'includes/autoloader/autoloader.php';

			// Compatiblity.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/compatiblity', 'class-kata-plus-compatibility' );

			// Helpers.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/helpers', 'helpers' );

			// Vendors.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/vendors', 'zilla-likes' );

			// Convertors.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/helpers', 'class-demos-convertor' );
			Kata_Plus_Autoloader::load( self::$dir . 'includes/helpers', 'class-styler-elementor-convertor' );
			Kata_Plus_Autoloader::load( self::$dir . 'includes/helpers', 'class-styler-kirki-convertor' );
			Kata_Plus_Autoloader::load( self::$dir . 'includes/helpers', 'class-styler-elementor-convertor' );

			if ( ! class_exists( 'Kirki' ) ) {

				Kata_Plus_Autoloader::load( self::$dir . 'includes/vendors/kirki', 'kirki' );
			}

			// Styler.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/styler', 'styler' );

			// Theme Options.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/theme-options', 'theme-options' );

			/**
			 * Grid Post Type
			 */
			Kata_Plus_Autoloader::load( self::$dir . 'includes/post-types/grid', 'grid' );

			// Meta Box.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/meta-box', 'meta-box' );

			// Backend.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/backend', 'backend' );

			// Export
			Kata_Plus_Autoloader::load( self::$dir . 'includes/backend', 'export' );

			// Frontend.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/frontend', 'frontend' );

			// Register widgets
			Kata_Plus_Autoloader::load( self::$dir . 'includes/frontend', 'register-assets' );

			// Elementor.
			if ( class_exists( '\Elementor\Plugin' ) ) {

				Kata_Plus_Autoloader::load( self::$dir . 'includes/elementor', 'elementor' );
			}

			// Breadcrumbs.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/vendors', 'breadcrumbs' );

			// Woocommerce.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/woocommerce', 'woocommerce' );

			// Widgets.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/widgets', 'widgets' );

			// Menu.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/menu', 'menu' );

			// Admin Panel.
			Kata_Plus_Autoloader::load( self::$dir . 'includes/admin-panel', 'class-update' );

			if ( is_admin() ) {
				Kata_Plus_Autoloader::load( self::$dir . 'includes/admin-panel', 'admin-panel' );
				Kata_Plus_Autoloader::load( self::$dir . 'includes/admin-panel', 'class-fast-mode' );
				Kata_Plus_Autoloader::load( self::$dir . 'includes/install-plugins', 'install-plugins' );

				Kata_Plus_Autoloader::load( self::$dir . 'includes/importer', 'importer' );

				Kata_Plus_Autoloader::load( self::$dir . 'includes/admin-panel', 'class-system-status' );

				Kata_Plus_Autoloader::load( self::$dir . 'includes/admin-panel', 'class-rollback' );

				Kata_Plus_Autoloader::load( self::$dir . 'includes/helpers', 'class-kata-plus-notices' );

				if ( file_exists( self::$dir . 'rtl-version.php' ) ) {
					Kata_Plus_Autoloader::load( self::$dir,  'rtl-version' );
				}
			}
		}

		/**
		 * Upload dir.
		 *
		 * @since   1.0.0
		 */
		public function upload_dir() {

			if ( ! file_exists( self::$upload_dir ) ) {
				mkdir( self::$upload_dir, 0777 );
			}

			if ( ! file_exists( self::$upload_dir . '/css' ) ) {
				mkdir( self::$upload_dir . '/css', 0777 );
			}

			if ( ! file_exists( self::$upload_dir . '/instagram' ) ) {
				mkdir( self::$upload_dir . '/instagram', 0777 );
			}

			if ( ! file_exists( self::$upload_dir . '/fonts' ) ) {
				mkdir( self::$upload_dir . '/fonts', 0777 );
			}

			if ( ! file_exists( self::$upload_dir . '/importer' ) ) {
				mkdir( self::$upload_dir . '/importer', 0777 );
			}

			if ( ! file_exists( self::$upload_dir . '/localize' ) ) {
				mkdir( self::$upload_dir . '/localize', 0777 );
			}

			if ( ! file_exists( self::$upload_dir . '/css/admin-custom.css' ) ) {

				global $wp_filesystem;
				if ( empty( $wp_filesystem ) ) {
					require_once ABSPATH . '/wp-admin/includes/file.php';
					WP_Filesystem();
				}
				$wp_filesystem->put_contents(
					self::$upload_dir . '/css/admin-custom.css',
					'',
					FS_CHMOD_FILE
				);
			}

			if ( ! file_exists( self::$upload_dir . '/css/dynamic-styles.css' ) ) {

				global $wp_filesystem;
				if ( empty( $wp_filesystem ) ) {
					require_once ABSPATH . '/wp-admin/includes/file.php';
					WP_Filesystem();
				}

				$wp_filesystem->put_contents(
					self::$upload_dir . '/css/dynamic-styles.css',
					'',
					FS_CHMOD_FILE
				);
			}
		}

		/**
		 * Load the textdomain of the plugin.
		 *
		 * @since   1.0.0
		 */
		public function load_plugin_textdomain() {
			load_plugin_textdomain( 'kata-plus', false, basename( __DIR__ ) . '/languages' );
		}

		/**
		 * Deactivator.
		 *
		 * @since   1.0.0
		 */
		public function sync_theme_mods() {
			$kata_options       = get_option( 'theme_mods_kata' );
			$kata_child_options = get_option( 'theme_mods_kata-child' );
			if ( $kata_options === $kata_child_options ) {
				return;
			}
			$current_theme = class_exists( 'Kata' ) ? Kata::$theme->get( 'TextDomain' ) : false;
			if ( ! $current_theme ) {
				return;
			}
			$previous_theme = 'kata-child' === $current_theme ? 'kata' : 'kata-child';
			if ( 'kata' === $previous_theme ) {
				$options = get_option( 'theme_mods_kata' );
				foreach ( $options as $name => $value ) {
					set_theme_mod( $name, $value );
				}
			}
			if ( 'kata-child' === $previous_theme ) {
				$options = get_option( 'theme_mods_kata-child' );
				if ( $options ) {
					foreach ( $options as $name => $value ) {
						set_theme_mod( $name, $value );
					}
				}
			}
		}

		/**
		 * Create Database Tables
		 *
		 * @since     1.0.0
		 */
		public static function update_permalink() {
			$kata_options = get_option( 'kata_options' );
			if ( ! isset( $kata_options['update_permalinks'] ) ) {
				global $wp_rewrite;
				$structure = get_option( 'permalink_structure' );
				$wp_rewrite->set_permalink_structure( $structure );
				flush_rewrite_rules();
				$kata_options['update_permalinks'] = true;
				update_option( 'kata_options', $kata_options );
			}
		}

		/**
		 * Create Database Tables
		 *
		 * @since     1.0.0
		 */
		public static function essentials() {

			global $wpdb;
			$charset_collate = $wpdb->get_charset_collate();


			$sql = 'CREATE TABLE ' . $wpdb->prefix . self::$fonts_table_name . " (
                ID int(9) NOT NULL AUTO_INCREMENT,
                name text NOT NULL,
                source varchar(200) NOT NULL,
                selectors text NOT NULL,
                subsets text NOT NULL,
                variants text NOT NULL,
                url text NOT NULL,
                place varchar(50) NOT NULL DEFAULT 'before_head_end',
                status varchar(50) NOT NULL DEFAULT 'publish',
                created_at int(12) NOT NULL,
                updated_at int(12) NOT NULL,
                PRIMARY KEY  (ID)
            ) $charset_collate;";

			require_once ABSPATH . 'wp-admin/includes/upgrade.php';
			dbDelta( $sql );

			// esential options.
			if ( ! get_option( 'kata_options' ) ) {
				update_option(
					'kata_options',
					array(
						'container'           => 1600,
						'kata_container'      => 1600,
						'elementor_container' => 1600,
						'first_time_import'   => true,
						'images'              => '',
						'license'             => array(
							'purchase_code'   => '',
							'product_version' => '',
							'id'              => '',
						),
						'fast-mode'           => array(
							'websitetype'     => '',
							'blogname'        => '',
							'blogdescription' => '',
							'siteurl'         => '',
							'admin_email'     => '',
							'timezone_string' => '',
						),
						'updates'             => array(
							'builders' => array(
								'primary' => 'updated',
							),
							'styler'   => array(
								'redirection' => false,
								'have_backup' => false,
								'updated'     => false,
							),
						),
					)
				);
			}

			global $wp_rewrite;
			$wp_rewrite->set_permalink_structure( '/%postname%/' );
		}

		/**
		 * Plugin row meta.
		 *
		 * Adds row meta links to the plugin list table
		 *
		 * Fired by `plugin_row_meta` filter.
		 *
		 * @since 1.3.0
		 * @access public
		 *
		 * @param array  $plugin_meta An array of the plugin's metadata, including
		 *                            the version, author, author URI, and plugin URI.
		 * @param string $plugin_file Path to the plugin file, relative to the plugins
		 *                            directory.
		 *
		 * @return array An array of plugin row meta links.
		 */
		public function plugin_row_meta( $plugin_meta, $plugin_file ) {
			if ( self::$name === $plugin_file ) {
				$row_meta = array(
					'docs'      => '<a href="https://climaxthemes.com/kata/documentation/" aria-label="' . esc_attr( esc_html__( 'View Kata Documentation', 'kata-plus' ) ) . '" target="_blank">' . esc_html__( 'Docs & FAQs', 'kata-plus' ) . '</a>',
					'changes'   => '<a href="https://climaxthemes.com/kata/documentation/changelog/" aria-label="' . esc_attr( esc_html__( 'View Kata Changelog', 'kata-plus' ) ) . '" target="_blank">' . esc_html__( 'Changelog', 'kata-plus' ) . '</a>',
					'pro'       => '<a href="https://my.climaxthemes.com/buy/" aria-label="' . esc_attr( esc_html__( 'View Kata Changelog', 'kata-plus' ) ) . '" target="_blank" style="color: red;">' . esc_html__( 'Go Pro', 'kata-plus' ) . '</a>',
					'shoppress' => '<a href="https://climaxthemes.com/shoppress/" aria-label="' . esc_attr( esc_html__( 'ShopPress', 'kata-plus' ) ) . '" target="_blank" style="color: #837AF5;">' . esc_html__( 'ShopPress', 'kata-plus' ) . '</a>',
				);

				$plugin_meta = array_merge( $plugin_meta, $row_meta );
			}

			return $plugin_meta;
		}

		/**
		 * localize Fonts List.
		 *
		 * @since   1.3.0
		 */
		public function localize_fonts_list() {
			$fonts = array();

			if ( ! class_exists( 'Kata_Plus_Pro' ) ) {
				$fonts = Kata_Plus_Theme_Options_Functions::simple_font_manager_data_for_styler();
			}

			$fonts = apply_filters( 'kata_localize_fonts_list', $fonts );

			$list  = array();
			foreach ( $fonts as $font ) {
				if ( isset( $font['source'] ) ) {
					if( $font['source'] === 'upload-icon' ) {
						continue;
					}

					if ( $font['source'] === 'upload-font' ) {
						$font_names = json_decode( $font['name'] );
						$font_names_list = [];
						foreach ( $font_names as $ft => $fl ) {
							foreach ( $fl as $fh => $fn ) {
								if( isset( $font_names_list[$fn] ) ) {
									continue;
								}
								$font_names_list[$fn] = $fn;
								$list[] = trim( $fn );
							}
						}
						continue;
					}
				}

				if ( isset( $font['name'] ) ) {
					$font['name'] = explode( ',' ,$font['name'] );
					foreach ($font['name'] as  $fontname ) {
						$list[] = trim( $fontname );
					}
				}
			}

			echo '<script>var kata_plus_fonts_list=' . json_encode( $list, true ) . '</script>';
		}
	} // class
	Kata_Plus::get_instance();
}

Anon7 - 2022
AnonSec Team