# suredonation/1.1.2/inc/admin/admin-ajax.php

SureDonation – Donation Forms, Fundraising Campaigns &amp; Donor Management, version 1.1.2. 97 lines.

- Page: https://pluginprobe.com/plugins/suredonation/1.1.2/code/inc/admin/admin-ajax.php
- Raw: https://pluginprobe.com/plugins/suredonation/1.1.2/raw/inc/admin/admin-ajax.php
- Modified: 2026-06-15T14:19:50+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/suredonation/1.1.2/code/inc/admin/admin-ajax.php#L10-L20`.

```php
<?php
/**
 * Admin AJAX handlers.
 *
 * @package SureDonation
 */

namespace SureDonation\Inc\Admin;

use SureDonation\Inc\Traits\Get_Instance;

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Handles admin-side AJAX for recommended-plugin install and activate.
 *
 * Installation reuses WordPress core's `wp_ajax_install_plugin` handler;
 * activation is handled here.
 *
 * @since 1.0.0
 */
class Admin_Ajax {
	use Get_Instance;

	/**
	 * Constructor.
	 *
	 * @since 1.0.0
	 */
	public function __construct() {
		add_action( 'wp_ajax_suredonation_recommended_plugin_install', 'wp_ajax_install_plugin' );
		add_action( 'wp_ajax_suredonation_recommended_plugin_activate', [ $this, 'recommended_plugin_activate' ] );
	}

	/**
	 * Activate a recommended plugin.
	 *
	 * @since 1.0.0
	 * @return void
	 */
	public function recommended_plugin_activate() {
		if ( ! current_user_can( 'activate_plugins' ) ) {
			wp_send_json_error(
				[
					'success' => false,
					'message' => __( 'You do not have permission to activate plugins.', 'suredonation' ),
				]
			);
		}

		if ( ! check_ajax_referer( 'suredonation_plugin_manager', 'security', false ) ) {
			wp_send_json_error(
				[
					'success' => false,
					'message' => __( 'Invalid security token. Please refresh the page and try again.', 'suredonation' ),
				]
			);
		}

		$plugin_init = isset( $_POST['init'] ) ? sanitize_text_field( wp_unslash( $_POST['init'] ) ) : '';

		if ( '' === $plugin_init ) {
			wp_send_json_error(
				[
					'success' => false,
					'message' => __( 'No plugin specified.', 'suredonation' ),
				]
			);
		}

		if ( ! function_exists( 'activate_plugin' ) ) {
			require_once ABSPATH . 'wp-admin/includes/plugin.php';
		}

		$activated = activate_plugin( $plugin_init, '', false, true );

		if ( is_wp_error( $activated ) ) {
			wp_send_json_error(
				[
					'success' => false,
					'message' => $activated->get_error_message(),
				]
			);
		}

		wp_send_json_success(
			[
				'success' => true,
				'message' => __( 'Plugin activated successfully.', 'suredonation' ),
			]
		);
	}
}

```
