PluginProbe
Snippet Shortcodes / 3.0.2
Snippet Shortcodes v3.0.2
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.0.2, at includes/hooks.php

138 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 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'), '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'), '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 }
23 add_action( 'admin_menu', 'sh_cd_build_admin_menu' );
24
25 /**
26 * Enqueue relevant CSS / JS
27 */
28 function sh_cd_enqueue_scripts() {
29 wp_enqueue_style( 'sh-cd', plugins_url( '../assets/css/sh-cd.css', __FILE__ ), [], SH_CD_PLUGIN_VERSION ) ;
30 wp_enqueue_style('fontawesome', 'https://use.fontawesome.com/releases/v5.7.2/css/all.css', [], SH_CD_PLUGIN_VERSION);
31 wp_enqueue_script( 'sh-cd', plugins_url( '../assets/js/sh-cd.js', __FILE__ ), [ 'jquery' ], SH_CD_PLUGIN_VERSION);
32
33 wp_localize_script( 'sh-cd', 'sh_cd', [ 'security' => wp_create_nonce( 'sh-cd-security' ), 'premium' => sh_cd_license_is_premium() ] );
34
35 }
36 add_action( 'admin_enqueue_scripts', 'sh_cd_enqueue_scripts' );
37
38 /**
39 * Run installer on each version number change or install
40 */
41 function sh_cd_upgrade() {
42
43 if ( true === update_option( 'sh-cd-version-number', SH_CD_PLUGIN_VERSION ) ) {
44
45 sh_cd_create_database_table();
46
47 if ( true === is_multisite() ) {
48 sh_cd_create_database_table_multisite();
49 }
50
51 }
52 }
53 add_action('admin_init', 'sh_cd_upgrade');
54
55
56 /**
57 Ajax handler for toggling disable status of a shortcode
58 **/
59 function sh_cd_ajax_toggle_status() {
60
61 if ( false === sh_cd_license_is_premium() ) {
62 wp_send_json( 'not-premium' );
63 }
64
65 check_ajax_referer( 'sh-cd-security', 'security' );
66
67 $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
68
69 if ( false === empty( $id ) ) {
70
71 $new_status = sh_cd_toggle_status( $id );
72
73 wp_send_json( [ 'id' => $id, 'status' => $new_status, 'ok' => 1 ] );
74 }
75
76 wp_send_json( 'shortcode-not-found' );
77 }
78 add_action( 'wp_ajax_toggle_status', 'sh_cd_ajax_toggle_status' );
79
80 /**
81 Ajax handler for toggling disable status of a shortcode
82 **/
83 function sh_cd_ajax_toggle_multisite() {
84
85 if ( false === sh_cd_license_is_premium() ) {
86 wp_send_json( 'not-premium' );
87 }
88
89 check_ajax_referer( 'sh-cd-security', 'security' );
90
91 $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
92
93 if ( false === empty( $id ) ) {
94
95 $new_multisite = sh_cd_toggle_multisite( $id );
96
97 wp_send_json( [ 'id' => $id, 'multisite' => $new_multisite, 'ok' => 1 ] );
98 }
99
100 wp_send_json( 'shortcode-not-found' );
101 }
102 add_action( 'wp_ajax_toggle_multisite', 'sh_cd_ajax_toggle_multisite' );
103
104 /**
105 Ajax handler for saving shortcode inline
106 **/
107 function sh_cd_ajax_update_shortcode() {
108
109 if ( false === sh_cd_license_is_premium() ) {
110 wp_send_json( 'not-premium' );
111 }
112
113 check_ajax_referer( 'sh-cd-security', 'security' );
114
115 $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
116 $content = ( false === empty( $_POST['content'] ) ) ? $_POST['content'] : '';
117
118 if ( false === empty( $id ) ) {
119
120 $result = sh_cd_db_shortcodes_update_content( $id, $content );
121
122 wp_send_json( [ 'id' => $id, 'ok' => ( true === $result ) ? 1 : 0 ] );
123 }
124
125 wp_send_json( 'shortcode-not-found' );
126 }
127 add_action( 'wp_ajax_update_shortcode', 'sh_cd_ajax_update_shortcode' );
128
129 /**
130 * Replace shortcodes within menu titles.
131 *
132 * @param $title
133 * @return mixed
134 */
135 function sh_cd_menu_replace_shortcodes( $title ) {
136 return do_shortcode( $title );
137 }
138 add_filter('nav_menu_item_title', 'sh_cd_menu_replace_shortcodes', 10, 1);