-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpsrm.php
More file actions
108 lines (83 loc) · 3.11 KB
/
Copy pathpsrm.php
File metadata and controls
108 lines (83 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
/*
Plugin Name: PSRM Plugin
*/
namespace psrm;
require_once __DIR__ . '/vendor/autoload.php';
use psrm\models\Donation;
use psrm\models\Settings;
new PSRM();
class PSRM
{
const NAME = 'PSRM';
public static $slug;
public static $dir;
public static $url;
public static $classes;
public static $controllers;
public static $models;
public static $views;
public static $scripts;
public static $styles;
public static $interfaces;
public static $utils;
public static $settingsKey;
function __construct()
{
$this->setConstants();
$this->setVariables();
$this->initPlugin();
}
function setConstants()
{
}
function setVariables()
{
self::$slug = basename( dirname( __FILE__ ) );
self::$dir = WPMU_PLUGIN_DIR . '/' . self::$slug;
self::$url = WPMU_PLUGIN_URL . '/' . self::$slug;
self::$classes = self::$dir . '/classes';
self::$controllers = self::$dir . '/classes/controllers';
self::$models = self::$dir . '/classes/models';
self::$interfaces = self::$dir . '/classes/interfaces';
self::$utils = self::$dir . '/classes/utils';
self::$scripts = self::$url . '/public/js';
self::$styles = self::$url . '/public/css';
self::$views = self::$dir . '/resources/views';
}
function initPlugin()
{
add_action('wp_enqueue_scripts', [$this, 'enqueueScripts']);
add_action( 'admin_enqueue_scripts', [ $this, 'enqueueAdminScripts' ] );
// Instantiate all controllers
$dir = new \DirectoryIterator(self::$controllers);
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
$class_name = 'psrm\controllers\\' . str_replace('.php', '', $fileinfo->getFilename());
new $class_name();
}
}
// Instantiate Cron utility
new utils\Cron();
}
function enqueueScripts()
{
$settings_model = Settings::load();
wp_enqueue_style(self::$slug . '-plugin-styles', self::$styles . '/main.css', [], '1468126460');
wp_enqueue_script('stripe-checkout', 'https://js.stripe.com/v3/');
wp_register_script(self::$slug . '-plugin-scripts', self::$scripts . '/main.js', ['jquery', 'stripe-checkout'], '1595630425');
wp_localize_script( self::$slug . '-plugin-scripts', 'psrm', [
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'name' => get_bloginfo( 'name' ),
'stripe_pk' => $settings_model->getOption(Donation::StripePublicKeyOptionName, Settings::DonationGroup),
'logo' => $settings_model->getOption(Donation::CheckoutImageUrlOptionName, Settings::DonationGroup),
'donation_amount_floor' => $settings_model->getOption(Donation::CustomAmountFloorOptionName, Settings::DonationGroup),
] );
wp_enqueue_script(self::$slug . '-plugin-scripts');
}
public function enqueueAdminScripts() {
wp_enqueue_style( self::$slug . '-plugin-admin-styles', self::$styles . '/admin.css', [ ], '1468126460' );
wp_enqueue_script( self::$slug . '-plugin-admin-sortable', self::$scripts . '/sortable.js', [ 'jquery' ], '1594614722' );
wp_enqueue_script( self::$slug . '-plugin-admin-scripts', self::$scripts . '/admin.js', [ 'jquery' ], '1468126460' );
}
}