PluginProbe
WP Coder – Insert & Manage Code Snippets / 3.5
WP Coder – Insert & Manage Code Snippets v3.5
4.5.1 1.1 2.3.1 2.3.2 2.4.1 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 3.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1 3.1.1 3.2 3.2.1 3.3 3.4 3.5 3.5.1 All 39 releases
wp-coder / wp-coder.php

wp-coder.php in WP Coder – Insert & Manage Code Snippets 3.5, at wp-coder.php

181 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 * Plugin Name: WP Coder
4 * Plugin URI: https://wordpress.org/plugins/wp-coder/
5 * Description: Adding custom HTML, CSS, JavaScript and PHP code to your WordPress site.
6 * Version: 3.5
7 * Author: WPCoder
8 * Author URI: https://wpcoder.pro
9 * Author Email: dev@wpcoder.pro
10 * License: GPL-2.0+
11 * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
12 * Text Domain: wpcoder
13 * Requires at least: 5.4
14 * Requires PHP: 7.4
15 */
16
17 namespace WPCoder;
18
19 // Exit if accessed directly.
20 use WPCoder\Dashboard\DBManager;
21 use WPCoder\Dashboard\FolderManager;
22 use WPCoder\Update\UpdateDB;
23
24 defined( 'ABSPATH' ) || exit;
25
26 if ( ! class_exists( 'WPCoder' ) ) :
27
28 final class WPCoder {
29
30 // Plugin slug
31 public const SLUG = 'wp-coder';
32
33 // Plugin prefix
34 public const PREFIX = 'wow_coder';
35
36 public const FOLDER = 'wp-coder';
37
38 public const SHORTCODE = 'wp_code';
39
40 // Plugin ULR
41 public const PluginURL = 'https://wordpress.org/plugins/wp-coder/';
42
43 private static $instance;
44 /**
45 * @var Autoloader
46 */
47 private $autoloader;
48 /**
49 * @var Wow_Dashboard
50 */
51 private $dashboard;
52 private $public;
53
54 public static function instance(): WPCoder {
55 if ( ! isset( self::$instance ) && ! ( self::$instance instanceof WPCoder ) ) {
56 self::$instance = new self;
57
58 self::$instance->includes();
59 self::$instance->autoloader = new Autoloader( 'WPCoder' );
60 self::$instance->dashboard = new WOWP_Dashboard();
61 self::$instance->public = new WOWP_Public();
62
63
64 register_activation_hook( __FILE__, [ self::$instance, 'plugin_activate' ] );
65 add_action( 'plugins_loaded', [ self::$instance, 'loaded' ] );
66 }
67
68
69 return self::$instance;
70 }
71
72 // Plugin Root File.
73 public static function file(): string {
74 return __FILE__;
75 }
76
77 // Plugin Base Name.
78 public static function basename(): string {
79 return plugin_basename( __FILE__ );
80 }
81
82 // Plugin Folder Path.
83 public static function dir(): string {
84 return plugin_dir_path( __FILE__ );
85 }
86
87 // Plugin Folder URL.
88 public static function url(): string {
89 return plugin_dir_url( __FILE__ );
90 }
91
92
93 // Get Plugin Info
94 public static function info( $show = '' ): string {
95 $data = [
96 'name' => 'Plugin Name',
97 'version' => 'Version',
98 'url' => 'Plugin URI',
99 'author' => 'Author',
100 'email' => 'Author Email',
101 ];
102 $plugin_data = get_file_data( __FILE__, $data, false );
103
104 return $plugin_data[ $show ] ?? '';
105
106 }
107
108 /**
109 * Include required files.
110 *
111 * @access private
112 * @since 1.0
113 */
114 private function includes(): void {
115 require_once self::dir() . 'includes/safe-mode.php';
116 require_once self::dir() . 'includes/snippets.php';
117 require_once self::dir() . 'classes/Autoloader.php';
118 require_once self::dir() . 'includes/class-wowp-dashboard.php';
119 require_once self::dir() . 'includes/class-wowp-public.php';
120 }
121
122 /**
123 * Throw error on object clone.
124 * The whole idea of the singleton design pattern is that there is a single
125 * object therefore, we don't want the object to be cloned.
126 *
127 * @return void
128 * @access protected
129 */
130 public function __clone() {
131 // Cloning instances of the class is forbidden.
132 _doing_it_wrong( __FUNCTION__, esc_attr__( 'Cheatin&#8217; huh?', 'wpcoder' ), '1.0' );
133 }
134
135 /**
136 * Disable unserializing of the class.
137 *
138 * @return void
139 * @access protected
140 */
141 public function __wakeup() {
142 // Unserializing instances of the class is forbidden.
143 _doing_it_wrong( __FUNCTION__, esc_attr__( 'Cheatin&#8217; huh?', 'wpcoder' ), '1.0' );
144 }
145
146 public function plugin_activate(): void {
147 DBManager::create();
148 FolderManager::create();
149 update_option( self::PREFIX . '_db_version', '3.2' );
150
151 include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
152 if ( is_plugin_active( 'wp-coder-pro/wp-coder-pro.php' ) ) {
153 deactivate_plugins( 'wp-coder-pro/wp-coder-pro.php' );
154 }
155 if ( is_plugin_active( 'wpcoderpro/wpcoderpro.php' ) ) {
156 deactivate_plugins( 'wpcoderpro/wpcoderpro.php' );
157 }
158
159 }
160
161 /**
162 * Download the folder with languages.
163 *
164 * @access Publisher
165 * @return void
166 */
167 public function loaded(): void {
168 UpdateDB::init();
169 $languages_folder = dirname( plugin_basename( __FILE__ ) ) . '/languages/';
170 load_plugin_textdomain( 'wpcoder', false, $languages_folder );
171 }
172
173 }
174
175 endif;
176
177 function wp_coder_run() {
178 return WPCoder::instance();
179 }
180
181 wp_coder_run();