PluginProbe
Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts / 2.4.10
Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts v2.4.10
2.7.6 2.7.5 2.7.4 trunk 1.3 2.0.4 2.0.6 2.1.91 2.2.4 2.2.7 2.2.9 2.3.1 2.3.10 2.4.10 2.4.2 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.6.0 2.6.1 2.7.0 2.7.1 All 27 releases
insert-php / includes / class.plugin.php

class.plugin.php in Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts 2.4.10, at includes/class.plugin.php

277 lines 8.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * PHP snippets plugin base
4 *
5 * @author Webcraftic <WordPress.webraftic@gmail.com>
6 * @copyright (c) 19.02.2018, Webcraftic
7 * @version 1.0
8 */
9
10 // Exit if accessed directly
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit;
13 }
14
15 if ( ! class_exists( 'WINP_Plugin' ) ) {
16
17 class WINP_Plugin extends Wbcr_Factory466_Plugin {
18
19 /**
20 * @var Wbcr_Factory466_Plugin
21 */
22 private static $app;
23
24 /**
25 * @param string $plugin_path
26 * @param array $data
27 *
28 * @throws Exception
29 */
30 public function __construct( $plugin_path, $data ) {
31 parent::__construct( $plugin_path, $data );
32
33 self::$app = $this;
34
35 $this->load_global();
36
37 if ( is_admin() ) {
38 $this->initActivation();
39
40 if ( WINP_Helper::doing_ajax() ) {
41 require WINP_PLUGIN_DIR . '/admin/ajax/ajax.php';
42 require WINP_PLUGIN_DIR . '/admin/ajax/check-license.php';
43 require WINP_PLUGIN_DIR . '/admin/ajax/snippet-library.php';
44 }
45
46 $this->load_backend();
47 }
48 }
49
50 /**
51 * @return WINP_Plugin
52 */
53 public static function app() {
54 return self::$app;
55 }
56
57 /**
58 * @return bool
59 */
60 public function currentUserCan() {
61 return current_user_can( 'manage_options' );
62 }
63
64 /**
65 * Get Execute_Snippet object
66 *
67 * @return WINP_Execute_Snippet
68 */
69 public function getExecuteObject() {
70 require_once WINP_PLUGIN_DIR . '/includes/class.execute.snippet.php';
71
72 return new WINP_Execute_Snippet();
73 }
74
75 /**
76 * Get WINP_Api object
77 *
78 * @return WINP_Api
79 */
80 public function get_api_object() {
81 require_once WINP_PLUGIN_DIR . '/admin/includes/class.api.php';
82
83 return new WINP_Api();
84 }
85
86 /**
87 * Get WINP_Common_Snippet object
88 *
89 * @return WINP_Common_Snippet
90 */
91 public function get_common_object() {
92 require_once WINP_PLUGIN_DIR . '/admin/includes/class.common.snippet.php';
93
94 return new WINP_Common_Snippet();
95 }
96
97 /**
98 * @throws \Exception
99 * @since 2.2.0
100 * @author Alexander Kovalev <alex.kovalevv@gmail.com>
101 */
102 /*
103 public function plugins_loaded() {
104 $this->register_pages();
105 }*/
106
107 protected function initActivation() {
108 include_once WINP_PLUGIN_DIR . '/admin/activation.php';
109 $this->registerActivation( 'WINP_Activation' );
110 }
111
112 /**
113 * @throws \Exception
114 * @since 2.2.0
115 * @author Alexander Kovalev <alex.kovalevv@gmail.com>
116 */
117 public function register_pages() {
118 require_once WINP_PLUGIN_DIR . '/admin/pages/page.php';
119
120 $this->registerPage( 'WINP_NewItemPage', WINP_PLUGIN_DIR . '/admin/pages/new-item.php' );
121 $this->registerPage( 'WINP_SettingsPage', WINP_PLUGIN_DIR . '/admin/pages/settings.php' );
122 $this->registerPage( 'WINP_SnippetLibraryPage', WINP_PLUGIN_DIR . '/admin/pages/snippet-library.php' );
123 $this->registerPage( 'WINP_License_Page', WINP_PLUGIN_DIR . '/admin/pages/license.php' );
124 $this->registerPage( 'WINP_AboutPage', WINP_PLUGIN_DIR . '/admin/pages/about.php' );
125 }
126
127 /**
128 * @throws \Exception
129 * @since 2.2.0
130 * @author Alexander Kovalev <alex.kovalevv@gmail.com>
131 */
132 public function register_depence_pages() {
133 require_once WINP_PLUGIN_DIR . '/admin/pages/page.php';
134
135 if ( ! ( defined( 'WASP_PLUGIN_ACTIVE' ) && WASP_PLUGIN_ACTIVE ) ) {
136 $this->registerPage( 'WINP_ImportPage', WINP_PLUGIN_DIR . '/admin/pages/import.php' );
137 }
138 }
139
140 /**
141 * @throws \Exception
142 * @since 2.2.0
143 * @author Alexander Kovalev <alex.kovalevv@gmail.com>
144 */
145 private function register_types() {
146 require_once WINP_PLUGIN_DIR . '/admin/types/snippets-post-types.php';
147 Wbcr_FactoryTypes413::register( 'WINP_SnippetsType', $this );
148
149 require_once WINP_PLUGIN_DIR . '/admin/types/snippets-taxonomy.php';
150 Wbcr_FactoryTaxonomies333::register( 'WINP_SnippetsTaxonomy', $this );
151 }
152
153 /**
154 * @author Alexander Kovalev <alex.kovalevv@gmail.com>
155 * @since 2.2.0
156 */
157 private function register_shortcodes() {
158 $action = self::app()->request->get( 'action', '' );
159 if ( ! ( 'edit' == $action && is_admin() ) ) {
160 if ( self::app()->getOption( 'support_old_shortcodes' ) ) {
161 // todo: Deprecated
162 require_once WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-insert-php.php';
163 }
164
165 require_once WINP_PLUGIN_DIR . '/includes/shortcodes/shortcodes.php';
166 require_once WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-php.php';
167 require_once WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-text.php';
168 require_once WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-universal.php';
169 require_once WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-css.php';
170 require_once WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-js.php';
171 require_once WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-html.php';
172 require_once WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-ad.php';
173
174 WINP_Helper::register_shortcode( 'WINP_SnippetShortcodePhp', $this );
175 WINP_Helper::register_shortcode( 'WINP_SnippetShortcodeText', $this );
176 WINP_Helper::register_shortcode( 'WINP_SnippetShortcodeUniversal', $this );
177 WINP_Helper::register_shortcode( 'WINP_SnippetShortcodeCss', $this );
178 WINP_Helper::register_shortcode( 'WINP_SnippetShortcodeJs', $this );
179 WINP_Helper::register_shortcode( 'WINP_SnippetShortcodeHtml', $this );
180 WINP_Helper::register_shortcode( 'WINP_SnippetShortcodeAdvert', $this );
181 }
182 }
183
184 /**
185 * Initialization and require files for backend and frontend.
186 *
187 * @author Alexander Kovalev <alex.kovalevv@gmail.com>
188 * @since 2.2.0
189 */
190 private function load_global() {
191 require_once WINP_PLUGIN_DIR . '/admin/includes/class.gutenberg.snippet.php';
192
193 new WINP_Gutenberg_Snippet();
194
195 $this->getExecuteObject()->registerHooks();
196 $this->register_shortcodes();
197
198 /**
199 * Enables/Disable safe mode, in which the php code will not be executed.
200 */
201 add_action( 'plugins_loaded', function () {
202 if ( isset( $_GET['wbcr-php-snippets-safe-mode'] ) ) {
203 WINP_Helper::enable_safe_mode();
204 wp_safe_redirect( esc_url( remove_query_arg( [ 'wbcr-php-snippets-safe-mode' ] ) ) );
205 die();
206 }
207
208 if ( isset( $_GET['wbcr-php-snippets-disable-safe-mode'] ) ) {
209 WINP_Helper::disable_safe_mode();
210 wp_safe_redirect( esc_url( remove_query_arg( [ 'wbcr-php-snippets-disable-safe-mode' ] ) ) );
211 die();
212 }
213 }, - 1 );
214 }
215
216 /**
217 * Initialization and require files for backend.
218 *
219 * @throws \Exception
220 * @since 2.2.0
221 * @author Alexander Kovalev <alex.kovalevv@gmail.com>
222 */
223 private function load_backend() {
224 require_once WINP_PLUGIN_DIR . '/admin/includes/class.snippets.viewtable.php';
225 require_once WINP_PLUGIN_DIR . '/admin/includes/class.filter.snippet.php';
226 require_once WINP_PLUGIN_DIR . '/admin/includes/class.actions.snippet.php';
227 require_once WINP_PLUGIN_DIR . '/admin/includes/class.import.snippet.php';
228 require_once WINP_PLUGIN_DIR . '/admin/includes/class.notices.php';
229 require_once WINP_PLUGIN_DIR . '/admin/includes/class.request.php';
230 require_once WINP_PLUGIN_DIR . '/admin/metaboxes/metabox.php';
231 require_once WINP_PLUGIN_DIR . '/admin/boot.php';
232
233 $this->get_common_object()->registerHooks();
234
235 $this->register_types();
236
237 new WINP_Filter_List();
238 new WINP_Export_Snippet();
239 new WINP_Import_Snippet();
240 new WINP_WarningNotices();
241
242 # Required for i18n to be loaded properly
243 add_action( 'plugins_loaded', [ $this, 'register_pages' ] );
244
245 # Required for compatibility with the premium plugin.
246 # We set the priority to 30 to wait for the premium plugin to load.
247 add_action( 'plugins_loaded', [ $this, 'register_depence_pages' ], 30 );
248
249 add_action( 'wbcr_factory_forms_463_register_controls', function () {
250 $colorControls = [
251 [
252 'type' => 'winp-dropdown',
253 'class' => 'WINP_FactoryForms_Dropdown',
254 'include' => WINP_PLUGIN_DIR . '/includes/controls/class.dropdown.php',
255 ],
256 ];
257 $this->forms->registerControls( $colorControls );
258 } );
259 }
260
261 /**
262 * Метод проверяет активацию премиум плагина и наличие действующего лицензионного ключа
263 *
264 * @return bool
265 */
266 public function is_premium() {
267 if ( $this->premium->is_active() && $this->premium->is_activate() //&& $this->premium->is_install_package()
268 ) {
269 return true;
270 } else {
271 return false;
272 }
273 }
274
275 }
276 }
277