PluginProbe
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management / 1.0.0
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management v1.0.0
1.6.0 1.5.1 1.5.0 1.4.0 1.3.0 trunk 0.0.1 1.0.0 1.1.0 1.1.1 1.1.2 1.2.0
suredonation / inc / admin / admin-ajax.php

admin-ajax.php in SureDonation – Donation Forms, Fundraising Campaigns & Donor Management 1.0.0, at inc/admin/admin-ajax.php

97 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 * Admin AJAX handlers.
4 *
5 * @package SureDonation
6 */
7
8 namespace SureDonation\Inc\Admin;
9
10 use SureDonation\Inc\Traits\Get_Instance;
11
12 // Exit if accessed directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 /**
18 * Handles admin-side AJAX for recommended-plugin install and activate.
19 *
20 * Installation reuses WordPress core's `wp_ajax_install_plugin` handler;
21 * activation is handled here.
22 *
23 * @since 1.0.0
24 */
25 class Admin_Ajax {
26 use Get_Instance;
27
28 /**
29 * Constructor.
30 *
31 * @since 1.0.0
32 */
33 public function __construct() {
34 add_action( 'wp_ajax_suredonation_recommended_plugin_install', 'wp_ajax_install_plugin' );
35 add_action( 'wp_ajax_suredonation_recommended_plugin_activate', [ $this, 'recommended_plugin_activate' ] );
36 }
37
38 /**
39 * Activate a recommended plugin.
40 *
41 * @since 1.0.0
42 * @return void
43 */
44 public function recommended_plugin_activate() {
45 if ( ! current_user_can( 'activate_plugins' ) ) {
46 wp_send_json_error(
47 [
48 'success' => false,
49 'message' => __( 'You do not have permission to activate plugins.', 'suredonation' ),
50 ]
51 );
52 }
53
54 if ( ! check_ajax_referer( 'suredonation_plugin_manager', 'security', false ) ) {
55 wp_send_json_error(
56 [
57 'success' => false,
58 'message' => __( 'Invalid security token. Please refresh the page and try again.', 'suredonation' ),
59 ]
60 );
61 }
62
63 $plugin_init = isset( $_POST['init'] ) ? sanitize_text_field( wp_unslash( $_POST['init'] ) ) : '';
64
65 if ( '' === $plugin_init ) {
66 wp_send_json_error(
67 [
68 'success' => false,
69 'message' => __( 'No plugin specified.', 'suredonation' ),
70 ]
71 );
72 }
73
74 if ( ! function_exists( 'activate_plugin' ) ) {
75 require_once ABSPATH . 'wp-admin/includes/plugin.php';
76 }
77
78 $activated = activate_plugin( $plugin_init, '', false, true );
79
80 if ( is_wp_error( $activated ) ) {
81 wp_send_json_error(
82 [
83 'success' => false,
84 'message' => $activated->get_error_message(),
85 ]
86 );
87 }
88
89 wp_send_json_success(
90 [
91 'success' => true,
92 'message' => __( 'Plugin activated successfully.', 'suredonation' ),
93 ]
94 );
95 }
96 }
97