File "class-yith-bh-onboarding.php"
Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/yith-woocommerce-compare/plugin-fw/includes/class-yith-bh-onboarding.php
File size: 3.12 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* YITH BH Onboarding Class
*
* @class YITH_BH_Onboarding
* @package YITH\PluginFramework\Classes
*/
defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
if ( ! class_exists( 'YITH_BH_Onboarding' ) ) {
/**
* Main Class
*/
class YITH_BH_Onboarding {
/**
* The single instance of the class.
*
* @var self
*/
protected static $instance = null;
/**
* Get class instance.
*
* @return self
*/
public static function get_instance() {
return ! is_null( static::$instance ) ? static::$instance : static::$instance = new static();
}
/**
* Constructor
*/
protected function __construct() {
add_action( 'yith_bh_onboarding', array( $this, 'show_onboarding_content' ), 10, 1 );
add_action( 'wp_ajax_yith_bh_onboarding', array( $this, 'save_options' ) );
}
/**
* Show onboarding content
*
* @param string $slug Slug of current plugin modal.
*/
public function show_onboarding_content( $slug ) {
$options = apply_filters( 'yith_bh_onboarding_' . $slug, array() );
if ( empty( $options ) || ! isset( $options['tabs'], $options['slug'] ) ) {
return;
}
define( 'DOING_YITH_BH_ONBOARDING', true );
if ( ! wp_script_is( 'yith-plugin-fw-fields', 'registered' ) || ! wp_style_is( 'yith-plugin-fw-fields', 'registered' ) ) {
YIT_Assets::instance()->register_styles_and_scripts();
}
if ( isset( $options['enqueue_script'] ) ) {
foreach ( $options['enqueue_script'] as $handle ) {
wp_enqueue_script( $handle );
}
}
if ( isset( $options['enqueue_style'] ) ) {
foreach ( $options['enqueue_style'] as $handle ) {
wp_enqueue_style( $handle );
}
}
wp_enqueue_script( 'yith-bh-onboarding' );
wp_enqueue_style( 'yith-bh-onboarding' );
include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/bh-onboarding/onboarding-tabs.php';
}
/**
* Save options
*
* @return void
*/
public function save_options() {
check_ajax_referer( 'yith-bh-onboarding-save-options' );
if ( ! isset( $_REQUEST['yith-plugin'], $_REQUEST['tab'] ) ) {
wp_send_json_error( __( 'It is not possible save the options', 'yith-plugin-fw' ) );
}
$slug = sanitize_text_field( wp_unslash( $_REQUEST['yith-plugin'] ) );
$posted = $_REQUEST;
// the options are filtered by each plugin.
$options = apply_filters( 'yith_bh_onboarding_' . $slug, array() );
$tab = $posted['tab'];
if ( apply_filters( 'yith_bh_onboarding_save_options_' . $slug, isset( $options['tabs'][ $tab ]['options'] ), $posted ) ) {
foreach ( $options['tabs'][ $tab ]['options'] as $single_option ) {
if ( isset( $posted[ $single_option['id'] ] ) ) {
$value = $posted[ $single_option['id'] ] ?? false;
$value = YIT_Plugin_Panel_WooCommerce::sanitize_option( $value, $single_option, $value );
$value = apply_filters( 'yith_bh_onboarding_save_option_value', $value, $single_option, $slug );
update_option( $single_option['id'], $value );
}
}
}
wp_send_json_success();
}
}
}
YITH_BH_Onboarding::get_instance();