PluginProbe
WP Coder – Insert & Manage Code Snippets / trunk
WP Coder – Insert & Manage Code Snippets vtrunk
4.5.1 1.1 2.3.1 2.3.2 2.4.1 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 3.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1 3.1.1 3.2 3.2.1 3.3 3.4 3.5 3.5.1 All 39 releases
wp-coder / classes / Admin / AdminActions.php

AdminActions.php in WP Coder – Insert & Manage Code Snippets trunk, at classes/Admin/AdminActions.php

82 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPCoder\Admin;
4
5 defined( 'ABSPATH' ) || exit;
6
7 use WPCoder\Dashboard\DBManager;
8 use WPCoder\Dashboard\ImporterExporter;
9 use WPCoder\Dashboard\Settings;
10 use WPCoder\WPCoder;
11
12 class AdminActions {
13
14 public function __construct() {
15 add_action( 'admin_init', [ $this, 'actions' ] );
16 }
17
18
19 public function actions() {
20 $name = $this->check_name( $_REQUEST );
21 if ( ! $name ) {
22 return false;
23 }
24 $verify = $this->verify( $name );
25
26 if ( ! $verify ) {
27 return false;
28 }
29
30 if ( strpos( $name, '_export_data' ) !== false ) {
31 ImporterExporter::export_data();
32 } elseif ( strpos( $name, '_export_item' ) !== false ) {
33 ImporterExporter::export_item();
34 } elseif ( strpos( $name, '_import_data' ) !== false ) {
35 ImporterExporter::import_data();
36 } elseif ( strpos( $name, '_remove_item' ) !== false ) {
37 DBManager::remove_item();
38 } elseif ( strpos( $name, '_settings' ) !== false ) {
39 Settings::save_item();
40 } elseif ( strpos( $name, '_activate_item' ) !== false ) {
41 Settings::activate_item();
42 } elseif ( strpos( $name, '_deactivate_item' ) !== false ) {
43 Settings::deactivate_item();
44 } elseif ( strpos( $name, '_activate_mode' ) !== false ) {
45 Settings::activate_mode();
46 } elseif ( strpos( $name, '_deactivate_mode' ) !== false ) {
47 Settings::deactivate_mode();
48 }
49
50 }
51
52 private function verify( $name ): bool {
53 $nonce_action = WPCoder::PREFIX . '_nonce';
54
55 return ! ( ! isset( $_REQUEST[ $name ] ) || ! wp_verify_nonce( $_REQUEST[ $name ], $nonce_action ) || ! current_user_can( 'unfiltered_html' ) );
56 }
57
58 private function check_name( $request ) {
59 $names = [
60 WPCoder::PREFIX . '_import_data',
61 WPCoder::PREFIX . '_export_data',
62 WPCoder::PREFIX . '_export_item',
63 WPCoder::PREFIX . '_remove_item',
64 WPCoder::PREFIX . '_settings',
65 WPCoder::PREFIX . '_activate_item',
66 WPCoder::PREFIX . '_deactivate_item',
67 WPCoder::PREFIX . '_activate_mode',
68 WPCoder::PREFIX . '_deactivate_mode',
69 ];
70
71 foreach ( $request as $key => $value ) {
72
73 if ( in_array( $key, $names, true ) ) {
74 return $key;
75 }
76 }
77
78 return false;
79
80 }
81
82 }