File "index.php"
Full Path: /home/arielcor/public_html/wp-content/plugins/lastudio-core/index.php
File size: 19.94 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/*
Plugin Name: LA Studio Core
Plugin URI: https://themeforest.net/user/la-studio/?ref=la-studio
Description: (VERSION 3) This plugin use only for LA Studio theme
Author: LA Studio
Author URI: https://themeforest.net/user/la-studio/?ref=la-studio
Version: 3.0.7
Text Domain: la-studio
*/
// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
exit( 'Direct script access denied.' );
}
defined( 'LA_TEXTDOMAIN' ) or define( 'LA_TEXTDOMAIN', 'la-studio' );
define('LA_OPTIONS_DEBUG_LIGHT', false);
define('LA_OPTIONS_DEBUG', false);
if(!class_exists('LaStudio_Plugin')) {
class LaStudio_Plugin {
const VERSION = '3.0.7';
public static $plugin_dir_path = '';
public static $plugin_dir_url = '';
protected static $instance = null;
public $post_type_allow = array();
public $taxonomy_allow = array();
public static function get_instance() {
// If the single instance hasn't been set yet, set it now.
if ( null == self::$instance ) {
self::$instance = new self;
}
return self::$instance;
}
private function __construct() {
if ( '' === self::$plugin_dir_path ) {
self::$plugin_dir_path = plugin_dir_path(__FILE__);
}
if ( '' === self::$plugin_dir_url ) {
self::$plugin_dir_url = plugin_dir_url(__FILE__);
}
add_action( 'after_setup_theme', array( $this, 'load_core_text_domain' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue' ), 999 );
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue' ) );
add_action( 'customize_controls_enqueue_scripts', array( $this, 'admin_customize_enqueue' ) );
add_filter( 'vc_enqueue_font_icon_element', array( $this, 'add_fonts_to_visual_composer') );
add_filter( 'vc_iconpicker-type-la_icon_outline', array( $this, 'get_la_icon_outline_font_icon') );
add_filter( 'vc_iconpicker-type-nucleo_glyph', array( $this, 'get_nucleo_glyph_font_icon') );
$this->post_type_allow = apply_filters( 'lastudio/core/post_type_allow', array(
'la_block' => array(
'label' => __( 'Custom Block', 'la-studio' ),
'supports' => array( 'title', 'editor'),
'menu_icon' => 'dashicons-slides',
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 6,
'show_in_admin_bar' => false,
'show_in_nav_menus' => false,
'can_export' => true,
'has_archive' => false,
'exclude_from_search' => true,
'publicly_queryable' => false,
'capability_type' => 'page'
),
'la_testimonial' => array(
'label' => __( 'Testimonial', 'la-studio' ),
'supports' => array('title'),
'menu_icon' => 'dashicons-testimonial',
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 7,
'show_in_admin_bar' => false,
'show_in_nav_menus' => false,
'can_export' => true,
'has_archive' => false,
'exclude_from_search' => true,
'publicly_queryable' => false,
'capability_type' => 'page',
'rewrite' => array( 'slug' => 'testimonial' )
),
'la_portfolio' => array(
'label' => __( 'Portfolio', 'la-studio' ),
'supports' => array('title', 'editor', 'thumbnail'),
'menu_icon' => 'dashicons-portfolio',
'public' => true,
'menu_position' => 8,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'rewrite' => array( 'slug' => 'portfolio' )
),
'la_team_member' => array(
'label' => __( 'Team Member', 'la-studio' ),
'supports' => array('title', 'editor', 'thumbnail'),
'menu_icon' => 'dashicons-groups',
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 8,
'show_in_admin_bar' => false,
'show_in_nav_menus' => false,
'can_export' => true,
'has_archive' => false,
'exclude_from_search' => true,
'publicly_queryable' => true,
'capability_type' => 'page',
'rewrite' => array( 'slug' => 'team-member' )
)
));
$this->taxonomy_allow = apply_filters( 'lastudio/core/taxonomy_type_allow', array(
'la_portfolio_category' => array(
'post_type' => 'la_portfolio',
'args' => array(
'hierarchical' => true,
'show_in_nav_menus' => true,
'labels' => array(
'name' => __( 'Portfolio Categories', 'la-studio' ),
'singular_name' => __( 'Portfolio Category', 'la-studio' )
),
'query_var' => true,
'show_admin_column' => true,
'rewrite' => array('slug' => 'portfolio-category')
)
),
'la_portfolio_skill' => array(
'post_type' => 'la_portfolio',
'args' => array(
'hierarchical' => true,
'show_in_nav_menus' => true,
'labels' => array(
'name' => __( 'Portfolio Skills', 'la-studio' ),
'singular_name' => __( 'Portfolio Skill', 'la-studio' )
),
'query_var' => true,
'show_admin_column' => true,
'rewrite' => array('slug' => 'portfolio-skill')
)
)
));
new LaStudio_PostType( $this->post_type_allow, $this->taxonomy_allow );
if($this->is_active_woocommerce()){
LaStudio_Swatch::get_instance();
LaStudio_WooThreeSixty::get_instance();
}
LaStudio_Shortcodes::register();
add_action('admin_footer', array( $this, 'load_svg_icon' ) );
add_action( 'wp_before_admin_bar_render', array( $this, 'add_admin_menu_toolbar' ), 999 );
}
function load_core_text_domain() {
load_plugin_textdomain( 'la-studio', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
}
public function admin_enqueue(){
wp_deregister_script('jquery-chosen');
wp_deregister_style('jquery-chosen');
// admin utilities
wp_enqueue_media();
// wp core styles
wp_enqueue_style( 'wp-color-picker' );
wp_enqueue_style( 'wp-jquery-ui-dialog' );
// framework core styles
wp_enqueue_style( 'lastudio-admin', self::$plugin_dir_url . 'assets/css/admin.css', array(), null);
wp_enqueue_style( 'font-awesome', self::$plugin_dir_url . 'assets/css/font-awesome.min.css', array(), null);
wp_enqueue_style( 'la-icon-outline', self::$plugin_dir_url . 'assets/css/font-la-icon-outline.min.css', array(), null);
wp_enqueue_style( 'font-nucleo-glyph', self::$plugin_dir_url . 'assets/css/font-nucleo-glyph.min.css', array(), null);
if ( is_rtl() ) {
wp_enqueue_style( 'lastudio-admin-rtl', self::$plugin_dir_url . 'assets/css/admin-rtl.css', array(), null);
}
// wp core scripts
wp_enqueue_script( 'wp-color-picker' );
wp_enqueue_script( 'jquery-ui-dialog' );
wp_enqueue_script( 'jquery-ui-sortable' );
wp_enqueue_script( 'jquery-ui-accordion' );
// framework core scripts
if(!wp_script_is('ace-editor','registered')){
//wp_enqueue_script( 'ace-editor', '//cdnjs.cloudflare.com/ajax/libs/ace/1.2.6/ace.js', array('jquery'), '1.2.6', true );
wp_register_script( 'ace-editor', self::$plugin_dir_url .'assets/js/vendors/ace.js', array('jquery'), self::VERSION, true);
wp_register_script( 'ace-editor-mode-css', self::$plugin_dir_url .'assets/js/vendors/mode-css.js', array( 'ace-editor' ), self::VERSION, true );
wp_register_script( 'ace-editor-mode-javascript', self::$plugin_dir_url .'assets/js/vendors/mode-javascript.js', array( 'ace-editor' ), self::VERSION, true );
wp_register_script( 'ace-editor-mode-html', self::$plugin_dir_url .'assets/js/vendors/mode-html.js', array( 'ace-editor' ), self::VERSION, true );
wp_register_script( 'ace-editor-language_tools', self::$plugin_dir_url .'assets/js/vendors/ext-language_tools.js', array( 'ace-editor' ), self::VERSION, true );
}
//wp_register_script( 'lastudio-vc', self::$plugin_dir_url . 'assets/js/vc.js', array(), self::VERSION, true );
wp_enqueue_script( 'lastudio-admin-plugin', self::$plugin_dir_url . 'assets/js/admin-plugin.js', array(), self::VERSION, true );
wp_enqueue_script( 'lastudio-admin', self::$plugin_dir_url . 'assets/js/admin.js', array( 'lastudio-admin-plugin', 'ace-editor' ), self::VERSION, true );
wp_localize_script( 'lastudio-vc', 'lastudio_settings', array(
'ajax_url' => admin_url( 'admin-ajax.php', 'relative' ),
'plugins_url' => self::$plugin_dir_url
) );
$asset_font_without_domain = apply_filters('LaStudio/filter/assets_font_url', untrailingslashit(self::$plugin_dir_url));
wp_add_inline_style('font-awesome', "
@font-face{
font-family: 'FontAwesome';
src: url('{$asset_font_without_domain}/assets/fonts/fontawesome-webfont.eot');
src: url('{$asset_font_without_domain}/assets/fonts/fontawesome-webfont.eot') format('embedded-opentype'),
url('{$asset_font_without_domain}/assets/fonts/fontawesome-webfont.woff2') format('woff2'),
url('{$asset_font_without_domain}/assets/fonts/fontawesome-webfont.woff') format('woff'),
url('{$asset_font_without_domain}/assets/fonts/fontawesome-webfont.ttf') format('truetype'),
url('{$asset_font_without_domain}/assets/fonts/fontawesome-webfont.svg') format('svg');
font-weight:normal;
font-style:normal
}
");
wp_add_inline_style('la-icon-outline', "
@font-face {
font-family: 'LaStudio Outline';
src: url('{$asset_font_without_domain}/assets/fonts/nucleo-outline.eot');
src: url('{$asset_font_without_domain}/assets/fonts/nucleo-outline.eot') format('embedded-opentype'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-outline.woff2') format('woff2'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-outline.woff') format('woff'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-outline.ttf') format('truetype'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-outline.svg') format('svg');
font-weight: 400;
font-style: normal
}
");
wp_add_inline_style('font-nucleo-glyph', "
@font-face {
font-family: 'Nucleo Glyph';
src: url('{$asset_font_without_domain}/assets/fonts/nucleo-glyph.eot');
src: url('{$asset_font_without_domain}/assets/fonts/nucleo-glyph.eot') format('embedded-opentype'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-glyph.woff2') format('woff2'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-glyph.woff') format('woff'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-glyph.ttf') format('truetype'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-glyph.svg') format('svg');
font-weight: 400;
font-style: normal
}
");
}
public function admin_customize_enqueue(){
wp_enqueue_script( 'lastudio-admin-customizer', self::$plugin_dir_url .'/assets/js/customize.js', array( 'jquery','customize-preview' ), '', true );
}
public function enqueue(){
$url = 'https://maps.googleapis.com/maps/api/js';
$key = apply_filters('lastudio/google_map_api', '');
if(!empty($key)){
$url = add_query_arg('key',$key, $url);
}
wp_register_script( 'googleapis', $url, array() , null, false );
wp_register_style( 'la-icon-outline', self::$plugin_dir_url . 'assets/css/font-la-icon-outline.min.css', array(), null);
wp_register_style( 'font-nucleo-glyph', self::$plugin_dir_url . 'assets/css/font-nucleo-glyph.min.css', array(), null);
if(wp_style_is('font-awesome', 'registered')){
wp_deregister_style('font-awesome');
}
if(wp_style_is('animate-css', 'registered')){
wp_deregister_style('animate-css');
}
//$asset_font_without_domain = str_replace( site_url('/'), '/', self::$plugin_dir_url );
$asset_font_without_domain = apply_filters('LaStudio/filter/assets_font_url', untrailingslashit(self::$plugin_dir_url));
wp_add_inline_style('la-icon-outline', "
@font-face {
font-family: 'LaStudio Outline';
src: url('{$asset_font_without_domain}/assets/fonts/nucleo-outline.eot');
src: url('{$asset_font_without_domain}/assets/fonts/nucleo-outline.eot') format('embedded-opentype'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-outline.woff2') format('woff2'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-outline.woff') format('woff'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-outline.ttf') format('truetype'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-outline.svg') format('svg');
font-weight: 400;
font-style: normal
}
");
wp_add_inline_style('font-nucleo-glyph', "
@font-face {
font-family: 'Nucleo Glyph';
src: url('{$asset_font_without_domain}/assets/fonts/nucleo-glyph.eot');
src: url('{$asset_font_without_domain}/assets/fonts/nucleo-glyph.eot') format('embedded-opentype'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-glyph.woff2') format('woff2'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-glyph.woff') format('woff'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-glyph.ttf') format('truetype'),
url('{$asset_font_without_domain}/assets/fonts/nucleo-glyph.svg') format('svg');
font-weight: 400;
font-style: normal
}
");
}
public function load_svg_icon(){
include_once LaStudio_Plugin::$plugin_dir_path . 'assets/css/dlicon.php';
}
public function add_fonts_to_visual_composer( $font_name ){
$css_files = array();
if( 'la_icon_outline' == $font_name ){
$css_files[] = self::$plugin_dir_url . 'assets/css/font-la-icon-outline.min.css';
wp_enqueue_style('la-icon-outline');
}
if( 'nucleo_glyph' == $font_name ){
$css_files[] = self::$plugin_dir_url . 'assets/css/font-nucleo-glyph.min.css';
wp_enqueue_style('font-nucleo-glyph');
}
if( !empty( $css_files ) ) {
printf(
'<span data-la_component="loadCSSFile" class="js-el hidden" data-files="%s"></span>',
esc_attr( json_encode($css_files) )
);
}
}
public function get_la_icon_outline_font_icon( $icons = array() ) {
global $wp_filesystem;
if (empty($wp_filesystem)) {
require_once(ABSPATH . '/wp-admin/includes/file.php');
WP_Filesystem();
}
$json_file = LaStudio_Plugin::$plugin_dir_path . 'assets/fonts/font-la-icon-outline-object.json';
if(file_exists($json_file)){
$file_data = $wp_filesystem->get_contents( $json_file );
if( !is_wp_error( $file_data ) ) {
$file_data = json_decode( $file_data, true);
return array_merge( $icons, $file_data );
}
}
return $icons;
}
public function get_nucleo_glyph_font_icon( $icons = array() ) {
global $wp_filesystem;
if (empty($wp_filesystem)) {
require_once(ABSPATH . '/wp-admin/includes/file.php');
WP_Filesystem();
}
$json_file = LaStudio_Plugin::$plugin_dir_path . 'assets/fonts/font-nucleo-glyph-object.json';
if(file_exists($json_file)){
$file_data = $wp_filesystem->get_contents( $json_file );
if( !is_wp_error( $file_data ) ) {
$file_data = json_decode( $file_data, true);
return array_merge( $icons, $file_data );
}
}
return $icons;
}
public function is_active_woocommerce(){
include_once ABSPATH . 'wp-admin/includes/plugin.php';
return is_plugin_active('woocommerce/woocommerce.php');
}
// Add Toolbar Menus
public function add_admin_menu_toolbar() {
global $wp_admin_bar;
$args = array(
'id' => 'la_bar',
'title' => sprintf('<span class="ab-icon"></span><span class="ab-label">%s</span>', __( 'Theme Options', 'la-studio' ) ),
'href' => admin_url('themes.php?page=theme_options')
);
$wp_admin_bar->add_menu( $args );
}
}
}
include_once 'functions/helpers.php';
include_once 'functions/actions.php';
include_once 'functions/sanitize.php';
include_once 'functions/validate.php';
/**
* Include the autoloader.
*/
include_once 'includes/class-autoload.php';
new LaStudio_Autoload();
LaStudio_Plugin::get_instance();
//add_action( 'plugins_loaded', array( 'LaStudio_Plugin', 'get_instance' ) );