PluginProbe
Snippet Shortcodes / 3.2
Snippet Shortcodes v3.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.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', 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 }
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-2020', SH_CD_PLUGIN_VERSION ) ) {
44
45 sh_cd_create_database_table();
46
47 sh_cd_create_database_table_multisite();
48
49 do_action( 'sh-cd-upgrade' );
50 }
51 }
52 add_action('admin_init', 'sh_cd_upgrade');
53
54
55 /**
56 Ajax handler for toggling disable status of a shortcode
57 **/
58 function sh_cd_ajax_toggle_status() {
59
60 if ( false === sh_cd_license_is_premium() ) {
61 wp_send_json( 'not-premium' );
62 }
63
64 check_ajax_referer( 'sh-cd-security', 'security' );
65
66 $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
67
68 if ( false === empty( $id ) ) {
69
70 $new_status = sh_cd_toggle_status( $id );
71
72 wp_send_json( [ 'id' => $id, 'status' => $new_status, 'ok' => 1 ] );
73 }
74
75 wp_send_json( 'shortcode-not-found' );
76 }
77 add_action( 'wp_ajax_toggle_status', 'sh_cd_ajax_toggle_status' );
78
79 /**
80 Ajax handler for toggling disable status of a shortcode
81 **/
82 function sh_cd_ajax_toggle_multisite() {
83
84 if ( false === sh_cd_license_is_premium() ) {
85 wp_send_json( 'not-premium' );
86 }
87
88 check_ajax_referer( 'sh-cd-security', 'security' );
89
90 $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
91
92 if ( false === empty( $id ) ) {
93
94 $new_multisite = sh_cd_toggle_multisite( $id );
95
96 wp_send_json( [ 'id' => $id, 'multisite' => $new_multisite, 'ok' => 1 ] );
97 }
98
99 wp_send_json( 'shortcode-not-found' );
100 }
101 add_action( 'wp_ajax_toggle_multisite', 'sh_cd_ajax_toggle_multisite' );
102
103 /**
104 Ajax handler for saving shortcode inline
105 **/
106 function sh_cd_ajax_update_shortcode() {
107
108 if ( false === sh_cd_license_is_premium() ) {
109 wp_send_json( 'not-premium' );
110 }
111
112 check_ajax_referer( 'sh-cd-security', 'security' );
113
114 $id = ( false === empty( $_POST['id'] ) ) ? (int) $_POST['id'] : NULL;
115 $content = ( false === empty( $_POST['content'] ) ) ? $_POST['content'] : '';
116
117 if ( false === empty( $id ) ) {
118
119 $result = sh_cd_db_shortcodes_update_content( $id, $content );
120
121 wp_send_json( [ 'id' => $id, 'ok' => ( true === $result ) ? 1 : 0 ] );
122 }
123
124 wp_send_json( 'shortcode-not-found' );
125 }
126 add_action( 'wp_ajax_update_shortcode', 'sh_cd_ajax_update_shortcode' );
127
128 /**
129 * Replace shortcodes within menu titles.
130 *
131 * @param $title
132 * @return mixed
133 */
134 function sh_cd_menu_replace_shortcodes( $title ) {
135 return do_shortcode( $title );
136 }
137 add_filter('nav_menu_item_title', 'sh_cd_menu_replace_shortcodes', 10, 1);
138