PluginProbe
Snippet Shortcodes / 3.4.1
Snippet Shortcodes v3.4.1
5.2.1 5.2 5.1.8 5.1.6 5.1.7 5.1.5 trunk 1.0 1.1 1.2 1.3 1.3.1 1.4 1.5 1.5.1 1.6 1.6.1 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.8 2.0 2.0.1 All 74 releases
← All changes | includes/hooks.php +13 -152 trunk3.4.1 View file →
@@ -6,28 +6,20 @@
6 6 * Build admin menu
7 7 */
8 8 function sh_cd_build_admin_menu() {
9 9
10 - $allowed_viewer = sh_cd_permission_role();
10 + add_menu_page( SH_CD_PLUGIN_NAME, SH_CD_PLUGIN_NAME, 'manage_options', 'sh-cd-shortcode-variables-main-menu', 'sh_cd_pages_your_shortcodes', 'dashicons-editor-kitchensink' );
11 11
12 - add_menu_page( SH_CD_PLUGIN_NAME, SH_CD_PLUGIN_NAME, 'manage_options', 'sh-cd-shortcode-variables-main-menu', 'sh_cd_pages_your_shortcodes', 'dashicons-snippet-shortcodes' );
13 -
14 12 // Hide duplicated sub menu (wee hack!)
15 13 add_submenu_page( 'sh-cd-shortcode-variables-main-menu', '', '', 'manage_options', 'sh-cd-shortcode-variables-main-menu', 'sh_cd_pages_your_shortcodes');
16 14
17 15 // Add sub menus
18 - add_submenu_page( 'sh-cd-shortcode-variables-main-menu', __( 'Your Shortcodes', SH_CD_SLUG ), __( 'Your shortcodes', SH_CD_SLUG ), $allowed_viewer, 'sh-cd-shortcode-variables-your-shortcodes', 'sh_cd_pages_your_shortcodes');
19 - add_submenu_page( 'sh-cd-shortcode-variables-main-menu', __( 'Premade Shortcodes', SH_CD_SLUG ), __( 'Premade shortcodes', SH_CD_SLUG ), $allowed_viewer, 'sh-cd-shortcode-variables-sub-premade', 'sh_cd_premade_shortcodes_page');
16 + add_submenu_page( 'sh-cd-shortcode-variables-main-menu', __( 'Your Shortcodes', SH_CD_SLUG ), __( 'Your shortcodes', SH_CD_SLUG ), 'manage_options', 'sh-cd-shortcode-variables-your-shortcodes', 'sh_cd_pages_your_shortcodes');
17 + add_submenu_page( 'sh-cd-shortcode-variables-main-menu', __( 'Premade Shortcodes', SH_CD_SLUG ), __( 'Premade shortcodes', SH_CD_SLUG ), 'manage_options', 'sh-cd-shortcode-variables-sub-premade', 'sh_cd_premade_shortcodes_page');
20 18
21 - add_submenu_page( 'sh-cd-shortcode-variables-main-menu', __( 'Import / Export', SH_CD_SLUG ), __( 'Import / Export', SH_CD_SLUG ), 'manage_options', 'sh-cd-import', 'sh_cd_admin_page_import' );
19 + $menu_text = ( true === sh_cd_license_is_premium() ) ? __( 'Your License', SH_CD_SLUG ) : __( 'Upgrade to Premium', SH_CD_SLUG );
22 20
23 - if( false === sh_cd_is_premium_plugin_activated() ) {
24 - add_submenu_page( 'sh-cd-shortcode-variables-main-menu', '<i class="fa-solid fa-star"></i> ' . __( 'Upgrade to Premium', SH_CD_SLUG ), '<i class="fa-solid fa-star"></i> ' . __( 'Get Premium', SH_CD_SLUG ), 'manage_options', 'sh-cd-shortcode-variables-upgrade', 'sh_cd_page_upgrade');
25 - }
26 -
27 - do_action( 'sh-cd-admin-menu-upgrade' );
28 -
29 - add_submenu_page( 'sh-cd-shortcode-variables-main-menu', __( 'Settings', SH_CD_SLUG ), __( 'Settings', SH_CD_SLUG ), 'manage_options', 'sh-cd-settings', 'sh_cd_settings_page_generic' );
21 + add_submenu_page( 'sh-cd-shortcode-variables-main-menu', $menu_text, $menu_text, 'manage_options', 'sh-cd-shortcode-variables-license', 'sh_cd_advertise_pro');
30 22 add_submenu_page( 'sh-cd-shortcode-variables-main-menu', __( 'Help', SH_CD_SLUG ), __( 'Help', SH_CD_SLUG ), 'manage_options', 'sh-cd-help', 'sh_cd_help_page' );
31 23 }
32 24 add_action( 'admin_menu', 'sh_cd_build_admin_menu' );
33 25
@@ -34,86 +26,18 @@
34 26 /**
35 27 * Enqueue relevant CSS / JS
36 28 */
37 29 function sh_cd_enqueue_scripts() {
30 + wp_enqueue_style( 'sh-cd', plugins_url( '../assets/css/sh-cd.css', __FILE__ ), [], SH_CD_PLUGIN_VERSION ) ;
31 + wp_enqueue_style('fontawesome', 'https://use.fontawesome.com/releases/v5.7.2/css/all.css', [], SH_CD_PLUGIN_VERSION);
32 + wp_enqueue_script( 'sh-cd', plugins_url( '../assets/js/sh-cd.js', __FILE__ ), [ 'jquery' ], SH_CD_PLUGIN_VERSION);
38 33
39 - wp_enqueue_style( 'sh-cd-dashicon', plugins_url( '../assets/css/sh-cd-dashicon.css', __FILE__ ), [], SH_CD_PLUGIN_VERSION );
34 + wp_localize_script( 'sh-cd', 'sh_cd', [ 'security' => wp_create_nonce( 'sh-cd-security' ), 'premium' => sh_cd_license_is_premium() ] );
40 35
41 - // Allow marketing.js on any page so admin's can dismiss admin notices anywhere
42 - wp_enqueue_script( 'sh-cd-marketing', plugins_url( '../assets/js/marketing.js', __FILE__ ), [ 'jquery' ], SH_CD_PLUGIN_VERSION, true );
43 -
44 - if ( ! sh_cd_is_snippet_shortcodes_admin_page() ) {
45 - return;
46 - }
47 -
48 - $main_js_dependencies = [ 'jquery', 'sh-cd-clipboard' ];
49 -
50 - // Tooltips
51 - if ( sh_cd_tooltips_is_enabled() ) {
52 - wp_enqueue_script( 'sh-cd-tooltip', plugins_url( '../assets/zerbratooltips/zebra_tooltips.min.js', __FILE__ ), [ ], SH_CD_PLUGIN_VERSION );
53 - wp_enqueue_style( 'sh-cd-tooltip', plugins_url( '../assets/zerbratooltips/zebra_tooltips.min.css', __FILE__ ), [], SH_CD_PLUGIN_VERSION ) ;
54 -
55 - $main_js_dependencies[] = 'sh-cd-tooltip';
56 - }
57 -
58 - // CSS
59 - wp_enqueue_style( 'sh-cd', plugins_url( '../assets/css/sh-cd.css', __FILE__ ), [ 'sh-cd-dashicon' ], SH_CD_PLUGIN_VERSION );
60 - wp_enqueue_style( 'sh-cd-fontawesome', plugins_url( '../assets/fontawesome/css/fontawesome.min.css', __FILE__ ), [], SH_CD_PLUGIN_VERSION );
61 - wp_enqueue_style( 'sh-cd-fontawesome-solid', plugins_url( '../assets/fontawesome/css/solid.min.css', __FILE__ ), [ 'sh-cd-fontawesome' ], SH_CD_PLUGIN_VERSION );
62 - wp_enqueue_style( 'sh-cd-fontawesome-regular', plugins_url( '../assets/fontawesome/css/regular.min.css', __FILE__ ), [ 'sh-cd-fontawesome' ], SH_CD_PLUGIN_VERSION );
63 - wp_enqueue_style( 'sh-cd-fontawesome-brands', plugins_url( '../assets/fontawesome/css/brands.min.css', __FILE__ ), [ 'sh-cd-fontawesome' ], SH_CD_PLUGIN_VERSION );
64 -
65 - // JS
66 - wp_enqueue_script( 'sh-cd-clipboard', plugins_url( '../assets/js/clipboard.min.js', __FILE__ ), [], SH_CD_PLUGIN_VERSION, true );
67 - wp_enqueue_script( 'sh-cd', plugins_url( '../assets/js/sh-cd.js', __FILE__ ), $main_js_dependencies, SH_CD_PLUGIN_VERSION, true );
68 - wp_localize_script( 'sh-cd', 'sh_cd', sh_cd_js_config() );
69 -
70 36 }
71 37 add_action( 'admin_enqueue_scripts', 'sh_cd_enqueue_scripts' );
72 38
73 39 /**
74 - * Determine if we are on a Snippet Shortcodes admin page
75 - *
76 - * @return bool
77 - */
78 -function sh_cd_is_snippet_shortcodes_admin_page() {
79 -
80 - if ( true === empty( $_GET['page' ] ) ) {
81 - return false;
82 - }
83 -
84 - $known_admin_pages = apply_filters( 'sh-cd-admin-pages', [ 'sh-cd-shortcode-variables-main-menu',
85 - 'sh-cd-shortcode-variables-your-shortcodes',
86 - 'sh-cd-shortcode-variables-sub-premade',
87 - 'sh-cd-import',
88 - 'sh-cd-shortcode-variables-upgrade',
89 - 'sh-cd-settings',
90 - 'sh-cd-help' ] );
91 -
92 - return in_array( $_GET['page'], $known_admin_pages );
93 -}
94 -
95 -/**
96 - * Config for JS
97 - * @return array
98 - */
99 -function sh_cd_js_config() {
100 - return [ 'editor' => sh_cd_default_editor_get(),
101 - 'page' => false === empty( $_GET['page'] ) ? $_GET['page'] : '',
102 - 'action' => false === empty( $_GET['action'] ) ? $_GET['action'] : '',
103 - 'security' => wp_create_nonce( 'sh-cd-security' ),
104 - 'premium' => sh_cd_is_premium(),
105 - 'text-delete-confirm' => __( 'Are you sure you wish to delete this shortcode?', SH_CD_SLUG ),
106 - 'text-add' => __( 'Add', SH_CD_SLUG ),
107 - 'text-save' => __( 'Save', SH_CD_SLUG ),
108 - 'text-saved' => __( 'Saved!', SH_CD_SLUG ),
109 - 'text-editor-change' => __( 'Changing the editor will cause any unsaved changes to be lost. Please ensure you have saved your shortcode before proceeding.', SH_CD_SLUG ),
110 - 'text-error' => __( 'Unfortunately something went wrong!', SH_CD_SLUG ),
111 - 'tooltips-enabled' => sh_cd_tooltips_is_enabled() ? 'yes' : 'no',
112 - ];
113 -}
114 -
115 -/**
116 40 * Run installer on each version number change or install
117 41 */
118 42 function sh_cd_upgrade() {
119 43
@@ -122,9 +46,9 @@
122 46 sh_cd_create_database_table();
123 47
124 48 sh_cd_create_database_table_multisite();
125 49
126 - sh_cd_create_database_table_revisions();
50 + sh_cd_cron_licence_check();
127 51
128 52 do_action( 'sh-cd-upgrade' );
129 53 }
130 54 }
@@ -135,16 +59,14 @@
135 59 Ajax handler for toggling disable status of a shortcode
136 60 **/
137 61 function sh_cd_ajax_toggle_status() {
138 62
139 - if ( false === sh_cd_is_premium() ) {
63 + if ( false === sh_cd_license_is_premium() ) {
140 64 wp_send_json( 'not-premium' );
141 65 }
142 66
143 67 check_ajax_referer( 'sh-cd-security', 'security' );
144 68
145 - sh_cd_permission_check();
146 -
147 69 $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
148 70
149 71 if ( false === empty( $id ) ) {
150 72
@@ -157,42 +79,18 @@
157 79 }
158 80 add_action( 'wp_ajax_toggle_status', 'sh_cd_ajax_toggle_status' );
159 81
160 82 /**
161 -Ajax handler for deleting a shortcode
162 - **/
163 -function sh_cd_ajax_delete_shortcode() {
164 -
165 - check_ajax_referer( 'sh-cd-security', 'security' );
166 -
167 - sh_cd_permission_check();
168 -
169 - $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
170 -
171 - if ( false === empty( $id ) ) {
172 -
173 - $result = sh_cd_db_shortcodes_delete( $id );
174 -
175 - wp_send_json( [ 'id' => $id, 'ok' => $result ] );
176 - }
177 -
178 - wp_send_json( 'shortcode-not-found' );
179 -}
180 -add_action( 'wp_ajax_delete_shortcode', 'sh_cd_ajax_delete_shortcode' );
181 -
182 -/**
183 83 Ajax handler for toggling disable status of a shortcode
184 84 **/
185 85 function sh_cd_ajax_toggle_multisite() {
186 86
187 - if ( false === sh_cd_is_multisite_enabled() ) {
87 + if ( false === sh_cd_license_is_premium() ) {
188 88 wp_send_json( 'not-premium' );
189 89 }
190 90
191 91 check_ajax_referer( 'sh-cd-security', 'security' );
192 92
193 - sh_cd_permission_check();
194 -
195 93 $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
196 94
197 95 if ( false === empty( $id ) ) {
198 96
@@ -209,16 +107,14 @@
209 107 Ajax handler for saving shortcode inline
210 108 **/
211 109 function sh_cd_ajax_update_shortcode() {
212 110
213 - if ( false === sh_cd_is_premium() ) {
111 + if ( false === sh_cd_license_is_premium() ) {
214 112 wp_send_json( 'not-premium' );
215 113 }
216 114
217 115 check_ajax_referer( 'sh-cd-security', 'security' );
218 116
219 - sh_cd_permission_check();
220 -
221 117 $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
222 118 $content = ( false === empty( $_POST['content'] ) ) ? $_POST['content'] : '';
223 119
224 120 if ( false === empty( $id ) ) {
@@ -230,43 +126,8 @@
230 126
231 127 wp_send_json( 'shortcode-not-found' );
232 128 }
233 129 add_action( 'wp_ajax_update_shortcode', 'sh_cd_ajax_update_shortcode' );
234 -
235 -/**
236 -Ajax handler for adding shortcode inline
237 - **/
238 -function sh_cd_ajax_add_shortcode() {
239 -
240 - if ( false === sh_cd_is_premium() ) {
241 - wp_send_json( 'not-premium' );
242 - }
243 -
244 - check_ajax_referer( 'sh-cd-security', 'security' );
245 -
246 - sh_cd_permission_check();
247 -
248 - if( true === empty( $_POST['slug'] ) ) {
249 - wp_send_json( [ 'id' => 0, 'ok' => 0, 'error_message' => __( 'Error: Please specify a "Slug".', SH_CD_SLUG ) ] );
250 - }
251 -
252 - if( true === empty( $_POST['content'] ) ) {
253 - wp_send_json( [ 'id' => 0, 'ok' => 0, 'error_message' => __( 'Error: Please add something for "Content".', SH_CD_SLUG ) ] );
254 - }
255 -
256 - $shortcode = [ 'slug' => $_POST['slug'],
257 - 'previous_slug' => '',
258 - 'data' => $_POST['content'],
259 - 'disabled' => ! sh_cd_to_bool( $_POST[ 'enabled' ] ),
260 - 'multisite' => sh_cd_to_bool( $_POST[ 'multisite' ] )
261 - ];
262 -
263 - $result = sh_cd_db_shortcodes_save( $shortcode, true );
264 -
265 - wp_send_json( [ 'shortcode' => $result, 'ok' => ( false !== $result ), 'error_message' => __( 'Error: There was an error when saving your shortcode.', SH_CD_SLUG ) ] );
266 -
267 -}
268 -add_action( 'wp_ajax_add_shortcode', 'sh_cd_ajax_add_shortcode' );
269 130
270 131 /**
271 132 * Replace shortcodes within menu titles.
272 133 *