-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathultimate-multisite-mailster.php
More file actions
160 lines (132 loc) · 3.79 KB
/
ultimate-multisite-mailster.php
File metadata and controls
160 lines (132 loc) · 3.79 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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<?php
/**
* Plugin Name: Ultimate Multisite: Mailster Integration
* Description: Integrate with Mailster email marketing during checkout
* Plugin URI: https://multisiteultimate.com
* Text Domain: ultimate-multisite-mailster
* Version: 1.0.3
* Author: David Stone - Multisite Ultimate
* Author URI: https://multisiteultimate.com
* Copyright: David Stone, Multisite Ultimate
* Network: true
* Requires Plugins: ultimate-multisite
* Requires at least: 5.3
* Tested up to: 6.9
* Requires PHP: 7.4
*/
// Exit if accessed directly.
if (! defined('ABSPATH')) {
exit;
}
// Define addon constants.
const ULTIMATE_MULTISITE_MAILSTER_VERSION = '1.0.1';
const ULTIMATE_MULTISITE_MAILSTER_PLUGIN_FILE = __FILE__;
define('ULTIMATE_MULTISITE_MAILSTER_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('ULTIMATE_MULTISITE_MAILSTER_PLUGIN_URL', plugin_dir_url(__FILE__));
/**
* Main addon class.
*/
class WP_Ultimo_Mailster {
/**
* Plugin version.
*
* @var string
*/
public $version = '1.0.1';
/**
* Single instance of the class.
*
* @var WP_Ultimo_Mailster
*/
protected static $instance = null;
/**
* Main instance.
*
* @return WP_Ultimo_Mailster
*/
public static function get_instance() {
if (null === self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Constructor.
*/
public function __construct() {
add_action('plugins_loaded', [$this, 'init'], 11);
}
/**
* Initialize the addon.
*/
public function init() {
// Check if Ultimate Multisite is active.
if (! class_exists('WP_Ultimo') && ! function_exists('WP_Ultimo')) {
add_action('network_admin_notices', [$this, 'ultimate_multisite_missing_notice']);
return;
}
// Load plugin files.
$this->load_dependencies();
// Initialize hooks.
$this->init_hooks();
// Initialize updater.
$this->init_updater();
// Initialize main functionality.
\WP_Ultimo\Mailster\Mailster_Main::get_instance();
}
/**
* Load required dependencies.
*/
private function load_dependencies() {
// Skip plugin autoloader if Bedrock's root autoloader already loaded dependencies.
if (! class_exists('WP_Ultimo\Addons\Mailster\Mailster_Main', false) && file_exists(ULTIMATE_MULTISITE_MAILSTER_PLUGIN_DIR . 'vendor/autoload.php')) {
require_once ULTIMATE_MULTISITE_MAILSTER_PLUGIN_DIR . 'vendor/autoload.php';
}
// All classes are now autoloaded via Jetpack autoloader.
// No manual require_once needed - the autoloader handles everything!
}
/**
* Initialize hooks.
*/
private function init_hooks() {
add_action('plugins_loaded', [$this, 'register_translation_updates']);
}
/**
* Initialize the updater.
*/
private function init_updater() {
$updater = new \WP_Ultimo\Multisite_Ultimate_Updater('ultimate-multisite-mailster', __FILE__);
$updater->init();
}
/**
* Register with Traduttore for automatic translation updates.
*/
public function register_translation_updates() {
\Required\Traduttore_Registry\add_project(
'plugin',
'ultimate-multisite-mailster',
'https://translate.ultimatemultisite.com/api/translations/ultimatemultisite/ultimate-multisite-mailster/'
);
}
/**
* Display notice when Ultimate Multisite is not active.
*/
public function ultimate_multisite_missing_notice() {
?>
<div class="notice notice-error is-dismissible">
<p>
<?php
printf(
/* translators: %1$s: Plugin name, %2$s: Required plugin */
esc_html__('%1$s requires %2$s to be installed and active.', 'ultimate-multisite-mailster'),
'<strong>' . esc_html__('Ultimate Multisite: Mailster Integration', 'ultimate-multisite-mailster') . '</strong>',
'<strong>' . esc_html__('Ultimate Multisite', 'ultimate-multisite-mailster') . '</strong>'
);
?>
</p>
</div>
<?php
}
}
// Initialize the addon.
WP_Ultimo_Mailster::get_instance();