PluginProbe
Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) / 1.7.0.7
Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) v1.7.0.7
1.8.13.1 1.8.13 1.8.12.3 1.8.12.2 1.8.12.1 1.8.12 1.8.11.3 1.8.11.2 1.8.11.1 1.8.11 1.6.6 1.6.60 1.6.7 1.6.8 1.6.9 1.7.0 1.7.0.1 1.7.0.11 1.7.0.12 1.7.0.14 1.7.0.2 1.7.0.3 1.7.0.5 1.7.0.6 1.7.0.7 All 212 releases
charitable / includes / stripe / admin / class-charitable-extension-activation.php

class-charitable-extension-activation.php in Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) 1.7.0.7, at includes/stripe/admin/class-charitable-extension-activation.php

91 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Activation handler for Charitable extensions.
4 *
5 * @package Charitable\Activation Handler
6 * @since 1.0.0
7 */
8
9 // Exit if accessed directly.
10 if ( ! defined( 'ABSPATH' ) ) { exit; }
11
12 /**
13 * Charitable_Extension_Activation
14 *
15 * @since 1.0.0
16 */
17 class Charitable_Extension_Activation {
18
19 public $plugin_name, $plugin_path, $plugin_file, $has_charitable, $charitable_base;
20
21 /**
22 * Setup the activation class
23 *
24 * @param string $plugin_path Path to this plugin's directory.
25 * @param string $plugin_file Core plugin file.
26 * @return void
27 * @access public
28 * @since 1.0.0
29 */
30 public function __construct( $plugin_path, $plugin_file ) {
31 // We need plugin.php!
32 require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
33
34 $plugins = get_plugins();
35
36 // Set plugin directory.
37 $plugin_path = array_filter( explode( '/', $plugin_path ) );
38 $this->plugin_path = end( $plugin_path );
39
40 // Set plugin file.
41 $this->plugin_file = $plugin_file;
42
43 // Set plugin name.
44 if ( isset( $plugins[ $this->plugin_path . '/' . $this->plugin_file ]['Name'] ) ) {
45 $this->plugin_name = str_replace( 'Charitable - ', '', $plugins[ $this->plugin_path . '/' . $this->plugin_file ]['Name'] );
46 } else {
47 $this->plugin_name = __( 'This plugin', 'ch-edd-connect' );
48 }
49
50 // Is EDD installed?
51 foreach ( $plugins as $plugin_path => $plugin ) {
52 if ( $plugin['Name'] == 'Charitable' ) {
53 $this->has_charitable = true;
54 $this->charitable_base = $plugin_path;
55 break;
56 }
57 }
58 }
59
60
61 /**
62 * Process plugin deactivation
63 *
64 * @return void
65 * @access public
66 * @since 1.0.0
67 */
68 public function run() {
69 add_action( 'admin_notices', [ $this, 'missing_charitable_notice' ] );
70 }
71
72
73 /**
74 * Display notice if Charitable isn't installed
75 *
76 * @return void
77 * @access public
78 * @since 1.0.0
79 */
80 public function missing_charitable_notice() {
81 if ( $this->has_charitable ) {
82 $url = esc_url( wp_nonce_url( admin_url( 'plugins.php?action=activate&plugin=' . $this->charitable_base ), 'activate-plugin_' . $this->charitable_base ) );
83 $link = '<a href="' . $url . '">' . __( 'activate it', 'ch-edd-connect' ) . '</a>';
84 } else {
85 $url = esc_url( wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=charitable' ), 'install-plugin_charitable' ) );
86 $link = '<a href="' . $url . '">' . __( 'install it', 'ch-edd-connect' ) . '</a>';
87 }
88
89 echo '<div class="error"><p>' . $this->plugin_name . sprintf( __( ' requires Charitable! Please %s to continue!', 'ch-edd-connect' ), $link ) . '</p></div>';
90 }
91 }