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
shortcode-variables / includes / hooks.php

hooks.php in Snippet Shortcodes 3.4.1, at includes/hooks.php

141 lines 4.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 defined('ABSPATH') or die('Jog on!');
4
5 /**
6 * Build admin menu
7 */
8 function sh_cd_build_admin_menu() {
9
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
12 // Hide duplicated sub menu (wee hack!)
13 add_submenu_page( 'sh-cd-shortcode-variables-main-menu', '', '', 'manage_options', 'sh-cd-shortcode-variables-main-menu', 'sh_cd_pages_your_shortcodes');
14
15 // Add sub menus
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');
18
19 $menu_text = ( true === sh_cd_license_is_premium() ) ? __( 'Your License', SH_CD_SLUG ) : __( 'Upgrade to Premium', SH_CD_SLUG );
20
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');
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' );
23 }
24 add_action( 'admin_menu', 'sh_cd_build_admin_menu' );
25
26 /**
27 * Enqueue relevant CSS / JS
28 */
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);
33
34 wp_localize_script( 'sh-cd', 'sh_cd', [ 'security' => wp_create_nonce( 'sh-cd-security' ), 'premium' => sh_cd_license_is_premium() ] );
35
36 }
37 add_action( 'admin_enqueue_scripts', 'sh_cd_enqueue_scripts' );
38
39 /**
40 * Run installer on each version number change or install
41 */
42 function sh_cd_upgrade() {
43
44 if ( true === update_option( 'sh-cd-version-number-2021', SH_CD_PLUGIN_VERSION ) ) {
45
46 sh_cd_create_database_table();
47
48 sh_cd_create_database_table_multisite();
49
50 sh_cd_cron_licence_check();
51
52 do_action( 'sh-cd-upgrade' );
53 }
54 }
55 add_action('admin_init', 'sh_cd_upgrade');
56
57
58 /**
59 Ajax handler for toggling disable status of a shortcode
60 **/
61 function sh_cd_ajax_toggle_status() {
62
63 if ( false === sh_cd_license_is_premium() ) {
64 wp_send_json( 'not-premium' );
65 }
66
67 check_ajax_referer( 'sh-cd-security', 'security' );
68
69 $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
70
71 if ( false === empty( $id ) ) {
72
73 $new_status = sh_cd_toggle_status( $id );
74
75 wp_send_json( [ 'id' => $id, 'status' => $new_status, 'ok' => 1 ] );
76 }
77
78 wp_send_json( 'shortcode-not-found' );
79 }
80 add_action( 'wp_ajax_toggle_status', 'sh_cd_ajax_toggle_status' );
81
82 /**
83 Ajax handler for toggling disable status of a shortcode
84 **/
85 function sh_cd_ajax_toggle_multisite() {
86
87 if ( false === sh_cd_license_is_premium() ) {
88 wp_send_json( 'not-premium' );
89 }
90
91 check_ajax_referer( 'sh-cd-security', 'security' );
92
93 $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
94
95 if ( false === empty( $id ) ) {
96
97 $new_multisite = sh_cd_toggle_multisite( $id );
98
99 wp_send_json( [ 'id' => $id, 'multisite' => $new_multisite, 'ok' => 1 ] );
100 }
101
102 wp_send_json( 'shortcode-not-found' );
103 }
104 add_action( 'wp_ajax_toggle_multisite', 'sh_cd_ajax_toggle_multisite' );
105
106 /**
107 Ajax handler for saving shortcode inline
108 **/
109 function sh_cd_ajax_update_shortcode() {
110
111 if ( false === sh_cd_license_is_premium() ) {
112 wp_send_json( 'not-premium' );
113 }
114
115 check_ajax_referer( 'sh-cd-security', 'security' );
116
117 $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
118 $content = ( false === empty( $_POST['content'] ) ) ? $_POST['content'] : '';
119
120 if ( false === empty( $id ) ) {
121
122 $result = sh_cd_db_shortcodes_update_content( $id, $content );
123
124 wp_send_json( [ 'id' => $id, 'ok' => ( true === $result ) ? 1 : 0 ] );
125 }
126
127 wp_send_json( 'shortcode-not-found' );
128 }
129 add_action( 'wp_ajax_update_shortcode', 'sh_cd_ajax_update_shortcode' );
130
131 /**
132 * Replace shortcodes within menu titles.
133 *
134 * @param $title
135 * @return mixed
136 */
137 function sh_cd_menu_replace_shortcodes( $title ) {
138 return do_shortcode( $title );
139 }
140 add_filter('nav_menu_item_title', 'sh_cd_menu_replace_shortcodes', 10, 1);
141