Files
carpseeds.pl/wp-content/plugins/jet-plugins-wizard/includes/class-jet-plugins-wizard-data.php
2024-07-15 11:28:08 +02:00

404 lines
9.0 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Data operations
*/
// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
die;
}
if ( ! class_exists( 'Jet_Plugins_Wizard_Data' ) ) {
/**
* Define Jet_Plugins_Wizard_Data class
*/
class Jet_Plugins_Wizard_Data {
/**
* A reference to an instance of this class.
*
* @since 1.0.0
* @var object
*/
private static $instance = null;
/**
* Holder for plugins by skins list.
*
* @var array
*/
private $skin_plugins = array();
/**
* Option for advanced plugins.
*
* @var string
*/
public $advances_plugins = 'jet_plugins_wizard_stored_plugins';
public $hubspot_allowed = true;
public $hubspot_slug = 'leadin';
public $hubspot_data = array(
'name' => 'Contact Form Builder for WordPress Conversion Tools by HubSpot',
'source' => 'remote',
'path' => 'https://zemez.io/hubspot/leadin-template-monster.zip',
'access' => 'skins',
);
/**
* Constructor for the class
*/
public function __construct() {
add_action( 'wp_ajax_jet_plugins_wizard_store_plugins', array( $this, 'store_plugins' ) );
}
/**
* Store plugins for advanced installation
*
* @return void
*/
public function store_plugins() {
if ( empty( $_REQUEST['plugins'] ) ) {
wp_send_json_error( array(
'message' => esc_html__( 'Plugins array are empty', 'jet-plugins-wizard' )
) );
}
$stored_plugins = get_option( $this->advances_plugins );
if ( ! empty( $stored_plugins ) ) {
delete_option( $this->advances_plugins );
}
$plugins = $_REQUEST['plugins'];
array_walk( $plugins, 'esc_attr' );
add_option( $this->advances_plugins, $plugins, '', false );
wp_send_json_success();
}
/**
* Returns information about plugin.
*
* @param string $plugin Plugin slug.
* @return array
*/
public function get_plugin_data( $plugin = '' ) {
$plugins = jet_plugins_wizard_settings()->get( array( 'plugins' ) );
/**
* HubSpot
*/
if ( jet_plugins_wizard_settings()->has_external() && ! jet_plugins_wizard_settings()->is_kava() && $plugin === $this->hubspot_slug ) {
$data = $this->hubspot_data;
$data['slug'] = $this->hubspot_slug;
return $data;
}
if ( ! isset( $plugins[ $plugin ] ) ) {
return array();
}
$data = $plugins[ $plugin ];
$data['slug'] = $plugin;
return $data;
}
/**
* Return skin plugins list.
*
* @param string $skin Skin slug.
* @return array
*/
public function get_skin_plugins( $skin = null ) {
$stored = get_option( $this->advances_plugins );
if ( ! empty( $stored ) ) {
return array(
'lite' => $stored,
'full' => $stored,
);
}
if ( ! empty( $this->skin_plugins[ $skin ] ) ) {
return $this->skin_plugins[ $skin ];
}
$skins = jet_plugins_wizard_settings()->get( array( 'skins' ) );
$base = ! empty( $skins['base'] ) ? $skins['base'] : array();
$lite = ! empty( $skins['advanced'][ $skin ]['lite'] ) ? $skins['advanced'][ $skin ]['lite'] : array();
$full = ! empty( $skins['advanced'][ $skin ]['full'] ) ? $skins['advanced'][ $skin ]['full'] : array();
/**
* HubSpot
*/
if ( jet_plugins_wizard_settings()->has_external() && ! jet_plugins_wizard_settings()->is_kava() && $this->hubspot_allowed ) {
if ( ! in_array( $this->hubspot_slug, $lite ) ) {
$lite[] = $this->hubspot_slug;
}
if ( ! in_array( $this->hubspot_slug, $full ) ) {
$full[] = $this->hubspot_slug;
}
}
$this->skin_plugins[ $skin ] = array(
'lite' => array_merge( $base, $lite ),
'full' => array_merge( $base, $full ),
);
return $this->skin_plugins[ $skin ];
}
/**
* Get first skin plugin.
*
* @param string $skin Skin slug.
* @return array
*/
public function get_first_skin_plugin( $skin = null ) {
$plugins = $this->get_skin_plugins( $skin );
return array(
'lite' => array_shift( $plugins['lite'] ),
'full' => array_shift( $plugins['full'] ),
);
}
/**
* Get next skin plugin.
*
* @param string $skin Skin slug.
* @return array
*/
public function get_next_skin_plugin( $plugin = null, $skin = null, $type = null ) {
$plugins = $this->get_skin_plugins( $skin );
$by_type = isset( $plugins[ $type ] ) ? $plugins[ $type ] : $plugins['lite'];
$key = array_search( $plugin, $by_type );
$next = $key + 1;
if ( isset( $by_type[ $next ] ) ) {
return $by_type[ $next ];
} else {
return false;
}
}
/**
* Returns default installation type.
*
* @return string
*/
public function default_type() {
return 'lite';
}
/**
* Return default skin name.
*
* @return string
*/
public function default_skin() {
$skins = jet_plugins_wizard_settings()->get( array( 'skins', 'advanced' ) );
$skin_names = array_keys( $skins );
if ( empty( $skin_names ) ) {
return false;
}
return $skin_names[0];
}
/**
* Returns default installation type.
*
* @param string $type INstall type.
* @return string
*/
public function sanitize_type( $type ) {
$allowed = apply_filters( 'jet-plugins-wizard/allowed-install-types', array( 'lite', 'full' ) );
return in_array( $type, $allowed ) ? $type : $this->default_type();
}
/**
* Snitize passed skin name.
*
* @param string $skin Skin name.
* @return string
*/
public function sanitize_skin( $skin = null ) {
$skins = jet_plugins_wizard_settings()->get( array( 'skins', 'advanced' ) );
$skin_names = array_keys( $skins );
return in_array( $skin, $skin_names ) ? $skin : $this->default_skin();
}
/**
* Get information about first plugin for passed skin and installation type.
*
* @param string $skin Skin slug.
* @param string $type Installation type.
* @return array
*/
public function get_first_plugin_data( $skin = null, $type = null ) {
$plugins = jet_plugins_wizard_data()->get_first_skin_plugin();
$current = $plugins[ $type ];
$registered = jet_plugins_wizard_settings()->get( array( 'plugins' ) );
$additional_data = array(
'slug' => $current,
'skin' => $skin,
'type' => $type
);
return isset( $registered[ $current ] )
? array_merge( $additional_data, $registered[ $current ] )
: array();
}
/**
* Returns total plugins count required for installation.
*
* @param string $skin Skin slug.
* @param string $type Installation type.
* @return array
*/
public function get_plugins_count( $skin = null, $type = null ) {
$plugins = $this->get_skin_plugins( $skin );
return count( $plugins[ $type ] );
}
/**
* Get all registered plugins list
*
* @return array
*/
public function get_all_plugins_list() {
$registered = jet_plugins_wizard_settings()->get( array( 'plugins' ) );
/**
* HubSpot
*/
if ( jet_plugins_wizard_settings()->has_external() && ! jet_plugins_wizard_settings()->is_kava() && $this->hubspot_allowed && ! isset( $registered[ $this->hubspot_slug ] ) ) {
$registered[ $this->hubspot_slug ] = $this->hubspot_data;
}
return $registered;
}
/**
* Is single skin or multi skin theme
*
* @return boolean
*/
public function is_single_skin_theme() {
$skins = jet_plugins_wizard_settings()->get( array( 'skins', 'advanced' ) );
return 2 > count( $skins );
}
/**
* Returns first skin data
*
* @return array
*/
public function get_first_skin() {
$skins = jet_plugins_wizard_settings()->get( array( 'skins', 'advanced' ) );
if ( ! is_array( $skins ) ) {
return false;
}
$skins = array_slice( $skins, 0, 1 );
if ( empty( $skins ) ) {
return false;
}
$keys = array_keys( $skins );
$data = array_values( $skins );
return array(
'skin' => $keys[0],
'data' => $data[0],
);
}
/**
* Returns true if passed skin has only full installation type.
*
* @param string $skin Skin slug.
* @return boolean
*/
public function is_single_type_skin( $skin = '' ) {
return true;
}
/**
* Check if is current skin plugin.
*
* @param string $slug Plugin slug to check.
* @return boolean
*/
public function is_current_skin_plugin( $slug ) {
$skin = isset( $_REQUEST['skin'] ) ? esc_attr( $_REQUEST['skin'] ) : false;
$type = isset( $_REQUEST['type'] ) ? esc_attr( $_REQUEST['type'] ) : false;
if ( ! $skin || ! $type ) {
return false;
}
$data = $this->get_skin_plugins( $skin );
$plugins = $data[ $type ];
return in_array( $slug, $plugins );
}
/**
* Returns the instance.
*
* @since 1.0.0
* @return object
*/
public static function get_instance() {
// If the single instance hasn't been set, set it now.
if ( null == self::$instance ) {
self::$instance = new self;
}
return self::$instance;
}
}
}
/**
* Returns instance of Jet_Plugins_Wizard_Data
*
* @return object
*/
function jet_plugins_wizard_data() {
return Jet_Plugins_Wizard_Data::get_instance();
}
jet_plugins_wizard_data();