PluginProbe
Float menu – awesome floating side menu / 7.0.3
Float menu – awesome floating side menu v7.0.3
7.2.5 trunk 2.1 2.2 3.0.1 3.1 3.2.2 3.3.1 3.5 3.5.1 3.5.2 3.5.3. 3.5.4 4.0 4.1 4.1.1 4.2 4.3 4.3.1 4.3.2 5.0 5.0.1 5.0.2 5.0.3 5.1 All 57 releases
float-menu / float-menu.php

float-menu.php in Float menu – awesome floating side menu 7.0.3, at float-menu.php

199 lines 5.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: Float Menu Lite
4 * Plugin URI: https://wow-estore.com/item/float-menu-pro/
5 * Description: Easily create floating menus of varying complexity
6 * Version: 7.0.3
7 * Author: Wow-Company
8 * Author URI: https://wow-estore.com
9 * License: GPL-2.0+
10 * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
11 * Text Domain: float-menu
12 * Domain Path: /languages
13 * Item ID: 5174
14 * Store URI: https://wow-estore.com/
15 * Author Email: hey@wow-company.com
16 * Plugin Menu: Float Menu Lite
17 * Rating URI: https://wordpress.org/support/plugin/float-menu/reviews/?filter=5#new-post
18 * Support URI: https://wordpress.org/support/plugin/float-menu/
19 * Item URI: https://wow-estore.com/item/float-menu-pro/
20 * Change URI: https://wow-estore.com/float-menu-lite-changelog/#version-6.0
21 *
22 * PHP version 7.4
23 *
24 * @category Wordpress_Plugin
25 * @package Wow_Plugin
26 * @author Dmytro Lobov <dev@wow-company.com>, Wow-Company
27 * @copyright 2024 Dmytro Lobov
28 * @license GPL-2.0+
29 *
30 */
31
32 namespace FloatMenuLite;
33
34 use FloatMenuLite\Admin\DBManager;
35 use FloatMenuLite\Update\UpdateDB;
36
37 defined( 'ABSPATH' ) || exit;
38
39 if ( ! class_exists( 'WOWP_Plugin' ) ) :
40
41 final class WOWP_Plugin {
42
43 // Plugin slug
44 public const SLUG = 'float-menu';
45
46 // Plugin prefix
47 public const PREFIX = 'wow_fmp';
48
49 // Plugin Shortcode
50 public const SHORTCODE = 'Float-Menu';
51
52 private static $instance;
53
54 private WOWP_Admin $admin;
55 private Autoloader $autoloader;
56 private WOWP_Public $public;
57 private WOWP_Plugin_Checker $check;
58
59 public static function instance(): WOWP_Plugin {
60 if ( ! isset( self::$instance ) && ! ( self::$instance instanceof self ) ) {
61 self::$instance = new self;
62
63 self::$instance->includes();
64
65 self::$instance->autoloader = new Autoloader( 'FloatMenuLite' );
66 self::$instance->admin = new WOWP_Admin();
67 self::$instance->public = new WOWP_Public();
68
69 register_activation_hook( __FILE__, [ self::$instance, 'plugin_activate' ] );
70 add_action( 'plugins_loaded', [ self::$instance, 'loaded' ] );
71 }
72
73
74 return self::$instance;
75 }
76
77 // Plugin Root File.
78 public static function file(): string {
79 return __FILE__;
80 }
81
82 // Plugin Base Name.
83 public static function basename(): string {
84 return plugin_basename( __FILE__ );
85 }
86
87 // Plugin Folder Path.
88 public static function dir(): string {
89 return plugin_dir_path( __FILE__ );
90 }
91
92 // Plugin Folder URL.
93 public static function url(): string {
94 return plugin_dir_url( __FILE__ );
95 }
96
97 // Get Plugin Info
98 public static function info( $show = '' ): string {
99 $data = [
100 'name' => 'Plugin Name',
101 'version' => 'Version',
102 'url' => 'Plugin URI',
103 'author' => 'Author',
104 'email' => 'Author Email',
105 'store' => 'Store URI',
106 'item_id' => 'Item ID',
107 'menu_title' => 'Plugin Menu',
108 'rating' => 'Rating URI',
109 'support' => 'Support URI',
110 'pro' => 'Item URI',
111 'change' => 'Change URI',
112
113 ];
114 $plugin_data = get_file_data( __FILE__, $data, false );
115
116 return $plugin_data[ $show ] ?? '';
117 }
118
119 /**
120 * Include required files.
121 *
122 * @access private
123 * @since 1.0
124 */
125 private function includes(): void {
126 if ( ! class_exists( 'Wow_Company' ) ) {
127 require_once self::dir() . 'includes/class-wow-company.php';
128 }
129
130 require_once self::dir() . 'classes/Autoloader.php';
131 require_once self::dir() . 'admin/class-wowp-admin.php';
132 require_once self::dir() . 'public/class-wowp-public.php';
133 }
134
135 /**
136 * Throw error on object clone.
137 * The whole idea of the singleton design pattern is that there is a single
138 * object therefore, we don't want the object to be cloned.
139 *
140 * @return void
141 * @access protected
142 */
143 public function __clone() {
144 // Cloning instances of the class is forbidden.
145 _doing_it_wrong( __FUNCTION__, esc_attr__( 'Cheatin&#8217; huh?', 'float-menu' ), '1.0' );
146 }
147
148 /**
149 * Disable unserializing of the class.
150 *
151 * @return void
152 * @access protected
153 */
154 public function __wakeup() {
155 // Unserializing instances of the class is forbidden.
156 _doing_it_wrong( __FUNCTION__, esc_attr__( 'Cheatin&#8217; huh?', 'float-menu' ), '1.0' );
157 }
158
159 public function plugin_activate(): void {
160 if ( is_plugin_active( 'float-menu-pro/float-menu-pro.php' ) ) {
161 deactivate_plugins( 'float-menu-pro/float-menu-pro.php' );
162 }
163
164 $columns = "
165 id mediumint(9) NOT NULL AUTO_INCREMENT,
166 title VARCHAR(200),
167 param longtext,
168 status boolean DEFAULT 0 NOT NULL,
169 mode boolean DEFAULT 0 NOT NULL,
170 tag text,
171 PRIMARY KEY (id)
172 ";
173
174 DBManager::create( $columns );
175
176 update_site_option( self::PREFIX . '_db_version', '6.0' );
177 }
178
179 /**
180 * Download the folder with languages.
181 *
182 * @access Publisher
183 * @return void
184 */
185 public function loaded(): void {
186 UpdateDB::init();
187 $languages_folder = dirname( plugin_basename( __FILE__ ) ) . '/languages/';
188 load_plugin_textdomain( 'float-menu', false, $languages_folder );
189 }
190 }
191
192 endif;
193
194 function wp_plugin_run(): WOWP_Plugin {
195 return WOWP_Plugin::instance();
196 }
197
198 wp_plugin_run();
199