register_settings(); $this->include_data_sdk(); } /** * Enqueue admin scripts and styles * @param string $screen Current admin screen */ public function admin_assets($screen) { if ($screen !== 'toplevel_page_gutslider-blocks' && $screen !== 'gutslider_page_gutslider-blocks-settings' && $screen !== 'gutslider_page_gutslider-license') { return; } $this->enqueue_admin_assets(); } /** * Add admin menu */ public function admin_menu() { add_menu_page( __('GutSlider', 'slider-blocks'), __('GutSlider', 'slider-blocks'), 'manage_options', 'gutslider-blocks', [$this, 'render_admin_page'], 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiByeD0iMTIiIGZpbGw9IiNEOUQ5RDkiLz4KPHBhdGggZD0iTTE1IDdIMTEuODIzNUg5VjE3SDE1VjEyLjQxNjdIMTIuODgyNEgxMS44MjM1IiBzdHJva2U9IiMxRDIzMjciIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPgo=', 100 ); add_submenu_page( 'gutslider-blocks', __( 'Welcome', 'slider-blocks' ), __( 'Welcome', 'slider-blocks' ), 'manage_options', 'gutslider-blocks', array( $this, 'render_admin_page' ) ); add_submenu_page( 'gutslider-blocks', __( 'Blocks', 'slider-blocks' ), __( 'Blocks', 'slider-blocks' ), 'manage_options', 'gutslider-blocks-settings', array( $this, 'render_blocks_page' ) ); } /** * Render main admin page */ public function render_admin_page() { $has_pro = defined('GUTSLIDER_PRO_VERSION'); ?>

get_blocks(); $has_pro = defined('GUTSLIDER_PRO_VERSION'); ?>

__('Permission denied', 'slider-blocks')]); } $block_key = isset($_POST['block_key']) ? sanitize_text_field($_POST['block_key']) : ''; $status = isset($_POST['status']) ? rest_sanitize_boolean($_POST['status']) : false; if (empty($block_key)) { wp_send_json_error(['message' => __('Invalid block key', 'slider-blocks')]); } update_option($block_key, $status); wp_send_json_success(['message' => __('Block status updated', 'slider-blocks')]); } /** * Register block settings */ public function register_settings() { foreach (self::BLOCK_SETTINGS as $setting) { register_setting('rest-api-settings', $setting, [ 'type' => 'boolean', 'default' => true, 'show_in_rest' => true, 'sanitize_callback' => 'rest_sanitize_boolean', ]); } } /** * Include data SDK */ private function include_data_sdk() { require_once dirname(__FILE__) . '/dci/start.php'; dci_dynamic_init([ 'sdk_version' => '1.2.1', 'product_id' => 3, 'plugin_name' => 'GutSlider', 'plugin_title' => 'GutSlider', 'api_endpoint' => 'https://dashboard.codedivo.com/wp-json/dci/v1/data-insights', 'slug' => 'gutslider-blocks', 'core_file' => false, 'plugin_deactivate_id' => false, 'menu' => ['slug' => 'gutslider-blocks'], 'public_key' => 'pk_KxU4qcYXPyqvBDwsyyBkbCfY9Gulc1z5', 'is_premium' => false, 'popup_notice' => false, 'deactivate_feedback' => true, 'delay_time' => ['time' => 3 * DAY_IN_SECONDS], 'text_domain' => 'slider-blocks', 'plugin_msg' => '

Thank you for using GutSlider! 🎉

We collect some non-sensitive data to improve our product and decide which features to build next.

', ]); } /** * Enqueue admin assets */ private function enqueue_admin_assets() { wp_enqueue_script('gutslider-admin-script', GUTSLIDER_URL . 'admin/js/admin.js', array('jquery'), GUTSLIDER_VERSION, true); wp_enqueue_style('gutslider-admin-style', GUTSLIDER_URL . 'admin/css/admin.css', [], GUTSLIDER_VERSION); wp_localize_script('gutslider-admin-script', 'gutslider', [ 'version' => GUTSLIDER_VERSION, 'nonce' => wp_create_nonce('gutslider_nonce'), 'isPro' => defined('GUTSLIDER_PRO_VERSION'), 'proVersion' => defined('GUTSLIDER_PRO_VERSION') ? GUTSLIDER_PRO_VERSION : '', 'ajaxUrl' => admin_url('admin-ajax.php'), ]); } } } new GutSlider_Admin();