PluginProbe
Bubble Menu – Floating Button Menu with Sticky Navigation / 4.0.6
Bubble Menu – Floating Button Menu with Sticky Navigation v4.0.6
trunk 1.3 2.0 2.2 2.2.1 3.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1 3.1.1 4.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.1 4.1.1
bubble-menu / admin / class-wowp-admin.php

class-wowp-admin.php in Bubble Menu – Floating Button Menu with Sticky Navigation 4.0.6, at admin/class-wowp-admin.php

139 lines 4.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Class WOWP_Admin
5 *
6 * The main admin class responsible for initializing the admin functionality of the plugin.
7 *
8 * @package BubbleMenu
9 * @subpackage Admin
10 * @author Dmytro Lobov <hey@wow-company.com>, Wow-Company
11 * @copyright 2024 Dmytro Lobov
12 * @license GPL-2.0+
13 */
14
15 namespace BubbleMenu;
16
17 use BubbleMenu\Admin\AdminActions;
18 use BubbleMenu\Admin\Dashboard;
19
20 defined( 'ABSPATH' ) || exit;
21
22 class WOWP_Admin {
23 public function __construct() {
24 Dashboard::init();
25 AdminActions::init();
26 $this->includes();
27
28 add_action( WOWP_Plugin::PREFIX . '_admin_header_links', [ $this, 'plugin_links' ] );
29 add_filter( WOWP_Plugin::PREFIX . '_save_settings', [ $this, 'save_settings' ] );
30 add_action( WOWP_Plugin::PREFIX . '_admin_load_assets', [ $this, 'load_assets' ] );
31
32 }
33
34 public function includes(): void {
35 require_once plugin_dir_path( __FILE__ ) . 'class-settings-helper.php';
36 }
37
38 public function plugin_links(): void {
39 ?>
40 <div class="wpie-links">
41 <a href="<?php echo esc_url( WOWP_Plugin::info( 'change' ) ); ?>" target="_blank">Check for Updates</a>
42 <a href="<?php echo esc_url( WOWP_Plugin::info( 'rating' ) ); ?>" target="_blank" class="wpie-color-orange">Rate Us</a>
43 <a href="<?php echo esc_url( WOWP_Plugin::info( 'docs' ) ); ?>" target="_blank">Documentation</a>
44 <span class="wpie-links-divider">|</span>
45 <a href="<?php echo esc_url( WOWP_Plugin::info( 'pro' ) ); ?>" target="_blank" class="wpie-color-danger">Upgrade to Pro</a>
46 <a href="<?php echo esc_url( WOWP_Plugin::info( 'demo' ) ); ?>" target="_blank">Live Pro Demo</a>
47 </div>
48 <?php
49 }
50
51 public function save_settings() {
52
53 $param = ! empty( $_POST['param'] ) ? map_deep( $_POST['param'], 'sanitize_text_field' ) : [];
54
55 if(!empty($_POST['param']['label'])) {
56 $param['label'] = $this->sanitize_tooltip( $_POST['param']['label'] );
57 }
58
59 if(!empty($_POST['param']['emoji'])) {
60 $param['emoji'] = $this->sanitize_tooltip( $_POST['param']['emoji'] );
61 }
62
63 if ( isset( $_POST['param']['item']['label'] ) ) {
64 $param['item']['label'] = map_deep( $_POST['param']['item']['label'], array(
65 $this,
66 'sanitize_tooltip'
67 ) );
68 }
69
70 if ( isset( $_POST['param']['item']['emoji'] ) ) {
71 $param['item']['emoji'] = map_deep( $_POST['param']['item']['emoji'], [
72 $this,
73 'sanitize_text'
74 ] );
75 }
76
77 if ( isset( $_POST['param']['item']['popup'] ) ) {
78 $param['item']['popup'] = map_deep( $_POST['param']['item']['popup'], [
79 $this,
80 'sanitize_tooltip'
81 ] );
82 }
83
84 return $param;
85
86 }
87
88 public function sanitize_text( $text ): string {
89 return wp_kses_post( wp_encode_emoji( wp_unslash( $text ) ) );
90 }
91
92 public function sanitize_tooltip( $text ): string {
93 return sanitize_text_field( wp_encode_emoji(wp_unslash( $text ) ));
94 }
95
96
97 public function load_assets(): void {
98 wp_enqueue_style( 'wp-color-picker' );
99 wp_enqueue_script( 'wp-color-picker' );
100 wp_enqueue_script( 'wp-tinymce' );
101 wp_enqueue_editor();
102 wp_enqueue_media();
103 wp_enqueue_script( 'thickbox' );
104 wp_enqueue_style( 'thickbox' );
105
106 wp_enqueue_script( 'jquery-ui-sortable' );
107
108 wp_enqueue_script( 'code-editor' );
109 wp_enqueue_style( 'code-editor' );
110 wp_enqueue_script( 'htmlhint' );
111 wp_enqueue_script( 'csslint' );
112
113 wp_enqueue_style( 'notification-fontawesome', WOWP_Plugin::url() . 'vendors/fontawesome/css/all.min.css', [], '6.6' );
114
115 // include fonticonpicker styles & scripts
116 $url_assets = WOWP_Plugin::url() . 'vendors/';
117 $slug = WOWP_Plugin::SLUG;
118 $version = WOWP_Plugin::info( 'version' );
119
120 wp_enqueue_style( $slug. '-fontawesome', $url_assets . '/fontawesome/css/all.min.css', [], '6.6' );
121
122 $fonticonpicker_js = $url_assets . 'fonticonpicker/js/jquery.fonticonpicker.js';
123 wp_enqueue_script( $slug . '-fonticonpicker', $fonticonpicker_js, array( 'jquery' ), $version, true );
124
125 $fonticonpicker_css = $url_assets . 'fonticonpicker/css/base/jquery.fonticonpicker.css';
126 wp_enqueue_style( $slug . '-fonticonpicker', $fonticonpicker_css, null, $version );
127
128 $fonticonpicker_dark_css = $url_assets . 'fonticonpicker/css/themes/dark-grey-theme/jquery.fonticonpicker.darkgrey.css';
129 wp_enqueue_style( $slug . '-fonticonpicker-darkgrey', $fonticonpicker_dark_css, null, $version );
130
131 $arg = [
132 'plugin_url' => WOWP_Plugin::url(),
133 ];
134
135 wp_localize_script( 'wp-tinymce', 'notification_obj', $arg );
136 }
137
138
139 }