%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
| 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/wellingtonrecord/wp-content/plugins/kata-plus/ |
Upload File : |
<?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.5
* Author: Climax Themes
* Author URI: https://climaxthemes.com/
* Elementor tested up to: 3.29.2
* Elementor Pro tested up to: 3.29.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.5';
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 DEFAULT '' 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();
}