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 +140 -9 1.13.4.1 View file →
@@ -1,9 +1,140 @@
1 -<?php
2 -
3 -defined('ABSPATH') or die('Jog on!');
4 -
5 -
6 -
7 -/* Menu */
8 -add_action( 'admin_menu', 'sh_cd_admin_menu' );
9 -
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);