PluginProbe
Floating Button – Easily Create Sticky, Fixed & Floating Buttons / 3.0
Floating Button – Easily Create Sticky, Fixed & Floating Buttons v3.0
trunk 2.0.2 3.0 4.0 4.1.2 4.3 5.0 5.0.1 5.1 5.1.1 5.2 5.3 5.3.1 6.0 6.0.1 6.0.10 6.0.11 6.0.12 6.0.13 6.0.2 6.0.3 6.0.4 6.0.5 6.0.6 6.0.7 All 31 releases
floating-button / floating-button.php

floating-button.php in Floating Button – Easily Create Sticky, Fixed & Floating Buttons 3.0, at floating-button.php

209 lines 5.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: Floating Button Lite
4 * Plugin URI: https://wordpress.org/plugins/floating-button/
5 * Description: Easily create a floating button
6 * Version: 3.0
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: floating-button
12 * Domain Path: /languages
13 *
14 * PHP version 5.3.0
15 *
16 * @category Wordpress_Plugin
17 * @package Wow_Plugin
18 * @author Dmytro Lobov <i@wpbiker.com>
19 * @copyright 2019 Wow-Company
20 * @license GNU Public License
21 * @version 1.1
22 */
23
24 // Required set the namespace for plugin.
25 namespace floatingbutton;
26
27 if ( ! defined( 'ABSPATH' ) ) {
28 exit;
29 }
30
31
32 if ( ! class_exists( 'Wow_Plugin' ) ) :
33
34 /**
35 * Main Wow_Plugin Class.
36 *
37 * @since 1.0
38 */
39
40 final class Wow_Plugin {
41
42 private static $_instance;
43
44 const PREF = 'fbtnp';
45
46 public static function instance() {
47
48 if ( ! isset( self::$_instance ) && ! ( self::$_instance instanceof Wow_Plugin ) ) {
49
50 $info = array(
51 'plugin' => array(
52 'name' => esc_attr__( 'Floating Button Lite', 'floating-button' ), // Plugin name
53 'menu' => esc_attr__( 'Floating Button Lite', 'floating-button' ), // Plugin name in menu
54 'author' => 'Wow-Company', // Author
55 'prefix' => self::PREF, // Prefix for database
56 'text' => 'floating-button', // Text domain for translate files
57 'version' => '3.0', // Current version of the plugin
58 'file' => __FILE__, // Main file of the plugin
59 'slug' => dirname( plugin_basename( __FILE__ ) ), // Name of the plugin folder
60 'url' => plugin_dir_url( __FILE__ ), // filesystem directory path for the plugin
61 'dir' => plugin_dir_path( __FILE__ ), // URL directory path for the plugin
62 'shortcode' => 'Floating-Button',
63
64 ),
65 'url' => array(
66 'author' => 'https://wow-estore.com/',
67 'home' => 'https://wordpress.org/plugins/floating-button/',
68 'support' => 'https://wordpress.org/support/plugin/floating-button/',
69 'pro' => 'https://wow-estore.com/item/floating-button-pro/',
70 'facebook' => 'https://www.facebook.com/wowaffect/',
71 ),
72 'rating' => array(
73 'website' => esc_attr__( 'WordPress.org', 'bubble-menu' ), // Name site for rating plugin
74 'url' => 'https://wordpress.org/support/plugin/floating-button/reviews/#new-post',
75 ),
76 );
77
78 self::$_instance = new Wow_Plugin;
79
80 register_activation_hook( __FILE__, array( self::$_instance, 'plugin_activate' ) );
81 register_deactivation_hook( __FILE__, array( self::$_instance, 'plugin_deactivate' ) );
82
83 add_action( 'plugins_loaded', array( self::$_instance, 'text_domain' ) );
84 add_action( 'admin_init', array( self::$_instance, 'create_field' ) );
85
86 self::$_instance->_includes();
87 self::$_instance->admin = new Wow_Plugin_Admin( $info );
88 self::$_instance->public = new Wow_Plugin_Public( $info );
89 }
90
91 return self::$_instance;
92 }
93
94 /**
95 * Throw error on object clone.
96 * The whole idea of the singleton design pattern is that there is a single
97 * object therefore, we don't want the object to be cloned.
98 *
99 * @return void
100 * @since 1.0
101 * @access protected
102 */
103 public function __clone() {
104 // Cloning instances of the class is forbidden.
105 _doing_it_wrong( __FUNCTION__, esc_attr__( 'Cheatin&#8217; huh?', 'floating-button' ), '0.1' );
106 }
107
108 /**
109 * Disable unserializing of the class.
110 *
111 * @return void
112 * @since 1.0
113 * @access protected
114 */
115 public function __wakeup() {
116 // Unserializing instances of the class is forbidden.
117 _doing_it_wrong( __FUNCTION__, esc_attr__( 'Cheatin&#8217; huh?', 'floating-button' ), '0.1' );
118 }
119
120
121 /**
122 * Include required files.
123 *
124 * @access private
125 * @return void
126 * @since 1.0
127 */
128 private function _includes() {
129 if ( ! class_exists( 'Wow_Company' ) ) {
130 include_once 'includes/class-wow-company.php';
131 }
132
133 include_once 'includes/class-db.php';
134 include_once 'admin/class-admin.php';
135 include_once 'public/class-public.php';
136 }
137
138 /**
139 * Activate the plugin.
140 * create the database
141 * create the folder in wp-upload
142 *
143 * @access public
144 * @return void
145 * @since 1.0
146 */
147 public function plugin_activate() {
148 update_option( 'wow_' . self::PREF . '_notice_action', 'read' );
149 self::create_field();
150 include_once 'includes/plugin-activation.php';
151 }
152
153 /**
154 * Deactivate the plugin.
155 * delete the plugin folder and files from wp-upload
156 *
157 * @access public
158 * @since 1.0
159 */
160 public function plugin_deactivate() {
161 include_once 'includes/plugin-deactivation.php';
162 }
163
164
165 /**
166 * Create the plugin field in wp-upload.
167 * Create the folder when the plugin update
168 *
169 * @access public
170 * @return void
171 * @since 1.0
172 */
173 public function create_field() {
174 $upload = wp_upload_dir();
175 $field = dirname( plugin_basename( __FILE__ ) );
176 $basedir = $upload['basedir'] . '/' . $field . '/';
177 if ( ! file_exists( $basedir ) ) {
178 wp_mkdir_p( $basedir );
179 }
180 }
181
182 /**
183 * Download the folder with languages.
184 *
185 * @access public
186 * @return void
187 * @since 1.0
188 */
189 public function text_domain() {
190 $languages_folder = dirname( plugin_basename( __FILE__ ) ) . '/languages/';
191 load_plugin_textdomain( 'floating-button', false, $languages_folder );
192 }
193
194 }
195
196 endif; // End if class_exists check.
197
198 /**
199 * The main function for that returns Wow_Plugin
200 *
201 * @since 1.0
202 */
203 function Wow_Plugin_run() {
204 return Wow_Plugin::instance();
205 }
206
207 // Get Running.
208 Wow_Plugin_run();
209