PluginProbe
Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts / 2.2.7
Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts v2.2.7
2.7.7 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 All 28 releases
← All changes | includes/class.plugin.php +251 -276 2.4.92.2.7 View file →
@@ -1,276 +1,251 @@
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_Factory463_Plugin {
18 -
19 - /**
20 - * @var Wbcr_Factory463_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_460_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 -}
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_Factory419_Plugin {
18 +
19 + /**
20 + * @var Wbcr_Factory419_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 + * @author Alexander Kovalev <alex.kovalevv@gmail.com>
99 + * @since 2.2.0
100 + * @throws \Exception
101 + */
102 + /*public function plugins_loaded() {
103 + $this->register_pages();
104 + }*/
105 +
106 + protected function initActivation() {
107 + include_once( WINP_PLUGIN_DIR . '/admin/activation.php' );
108 + $this->registerActivation( 'WINP_Activation' );
109 + }
110 +
111 + /**
112 + * @author Alexander Kovalev <alex.kovalevv@gmail.com>
113 + * @since 2.2.0
114 + * @throws \Exception
115 + */
116 + public function register_pages() {
117 + require_once( WINP_PLUGIN_DIR . '/admin/pages/page.php' );
118 +
119 + $this->registerPage( 'WINP_NewItemPage', WINP_PLUGIN_DIR . '/admin/pages/new-item.php' );
120 + $this->registerPage( 'WINP_SettingsPage', WINP_PLUGIN_DIR . '/admin/pages/settings.php' );
121 + $this->registerPage( 'WINP_SnippetLibraryPage', WINP_PLUGIN_DIR . '/admin/pages/snippet-library.php' );
122 + $this->registerPage( 'WINP_License_Page', WINP_PLUGIN_DIR . '/admin/pages/license.php' );
123 + $this->registerPage( 'WINP_AboutPage', WINP_PLUGIN_DIR . '/admin/pages/about.php' );
124 + }
125 +
126 + /**
127 + * @author Alexander Kovalev <alex.kovalevv@gmail.com>
128 + * @since 2.2.0
129 + * @throws \Exception
130 + */
131 + public function register_depence_pages() {
132 + require_once( WINP_PLUGIN_DIR . '/admin/pages/page.php' );
133 +
134 + if ( ! ( defined( 'WASP_PLUGIN_ACTIVE' ) && WASP_PLUGIN_ACTIVE ) ) {
135 + $this->registerPage( 'WINP_ImportPage', WINP_PLUGIN_DIR . '/admin/pages/import.php' );
136 + }
137 + }
138 +
139 + /**
140 + * @author Alexander Kovalev <alex.kovalevv@gmail.com>
141 + * @since 2.2.0
142 + * @throws \Exception
143 + */
144 + private function register_types() {
145 + require_once( WINP_PLUGIN_DIR . '/admin/types/snippets-post-types.php' );
146 + Wbcr_FactoryTypes410::register( 'WINP_SnippetsType', $this );
147 +
148 + require_once( WINP_PLUGIN_DIR . '/admin/types/snippets-taxonomy.php' );
149 + Wbcr_FactoryTaxonomies330::register( 'WINP_SnippetsTaxonomy', $this );
150 + }
151 +
152 + /**
153 + * @author Alexander Kovalev <alex.kovalevv@gmail.com>
154 + * @since 2.2.0
155 + */
156 + private function register_shortcodes() {
157 + $is_cron = WINP_Helper::doing_cron();
158 + $is_rest = WINP_Helper::doing_rest_api();
159 +
160 + $action = WINP_Plugin::app()->request->get( 'action', '' );
161 + if ( ! ( 'edit' == $action && is_admin() ) && ! $is_cron && ! $is_rest ) {
162 + if ( WINP_Plugin::app()->getOption( 'support_old_shortcodes' ) ) {
163 + // todo: Deprecated
164 + require_once( WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-insert-php.php' );
165 + }
166 +
167 + require_once( WINP_PLUGIN_DIR . '/includes/shortcodes/shortcodes.php' );
168 + require_once( WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-php.php' );
169 + require_once( WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-text.php' );
170 + require_once( WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-universal.php' );
171 + require_once( WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-css.php' );
172 + require_once( WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-js.php' );
173 + require_once( WINP_PLUGIN_DIR . '/includes/shortcodes/shortcode-html.php' );
174 +
175 + WINP_Helper::register_shortcode( 'WINP_SnippetShortcodePhp', $this );
176 + WINP_Helper::register_shortcode( 'WINP_SnippetShortcodeText', $this );
177 + WINP_Helper::register_shortcode( 'WINP_SnippetShortcodeUniversal', $this );
178 + WINP_Helper::register_shortcode( 'WINP_SnippetShortcodeCss', $this );
179 + WINP_Helper::register_shortcode( 'WINP_SnippetShortcodeJs', $this );
180 + WINP_Helper::register_shortcode( 'WINP_SnippetShortcodeHtml', $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 + new WINP_Gutenberg_Snippet();
193 +
194 + $this->getExecuteObject()->registerHooks();
195 + $this->register_shortcodes();
196 +
197 + /**
198 + * Enables/Disable safe mode, in which the php code will not be executed.
199 + */
200 + add_action( 'plugins_loaded', function () {
201 + if ( isset( $_GET['wbcr-php-snippets-safe-mode'] ) ) {
202 + WINP_Helper::enable_safe_mode();
203 + wp_safe_redirect( remove_query_arg( [ 'wbcr-php-snippets-safe-mode' ] ) );
204 + die();
205 + }
206 +
207 + if ( isset( $_GET['wbcr-php-snippets-disable-safe-mode'] ) ) {
208 + WINP_Helper::disable_safe_mode();
209 + wp_safe_redirect( remove_query_arg( [ 'wbcr-php-snippets-disable-safe-mode' ] ) );
210 + die();
211 + }
212 + }, - 1 );
213 + }
214 +
215 + /**
216 + * Initialization and require files for backend.
217 + *
218 + * @author Alexander Kovalev <alex.kovalevv@gmail.com>
219 + * @since 2.2.0
220 + * @throws \Exception
221 + */
222 + private function load_backend() {
223 + require_once( WINP_PLUGIN_DIR . '/admin/includes/class.snippets.viewtable.php' );
224 + require_once( WINP_PLUGIN_DIR . '/admin/includes/class.filter.snippet.php' );
225 + require_once( WINP_PLUGIN_DIR . '/admin/includes/class.actions.snippet.php' );
226 + require_once( WINP_PLUGIN_DIR . '/admin/includes/class.import.snippet.php' );
227 + require_once( WINP_PLUGIN_DIR . '/admin/includes/class.notices.php' );
228 + require_once( WINP_PLUGIN_DIR . '/admin/includes/class.request.php' );
229 + require_once( WINP_PLUGIN_DIR . '/admin/includes/class.dashboard.widget.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 + new WINP_Dashboard_Widget();
242 +
243 + # Required for i18n to be loaded properly
244 + add_action( 'plugins_loaded', [ $this, 'register_pages' ] );
245 +
246 + # Required for compatibility with the premium plugin.
247 + # We set the priority to 30 to wait for the premium plugin to load.
248 + add_action( 'plugins_loaded', [ $this, 'register_depence_pages' ], 30 );
249 + }
250 + }
251 +}