forked from acyba/acymailing
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.php
97 lines (82 loc) · 3.86 KB
/
index.php
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
<?php
/*
Plugin Name: AcyMailing
Description: Manage your contact lists and send newsletters from your site.
Author: AcyMailing Newsletter Team
Author URI: https://www.acymailing.com
License: GPLv3
Version: 7.9.2
Text Domain: acymailing
Domain Path: /language
*/
use AcyMailing\Init\acyActivation;
defined('ABSPATH') || die('Restricted Access');
$acyMailingLoader = new acymailingLoader();
// Install Acy DB and sample data on first activation (not on installation because of FTP install)
register_activation_hook(__DIR__.'/index.php', [$acyMailingLoader, 'activation']);
// Prevent bad plugins from loading on AcyMailing pages
add_action('plugins_loaded', [$acyMailingLoader, 'protectAcyMailingPages'], 5);
// Init widgets. According to the WP doc widgets_init should be loaded after init, but it isn't
add_action('widgets_init', [$acyMailingLoader, 'initWidgets']);
// Init AcyMailing
add_action('init', [$acyMailingLoader, 'initAcyMailing'], 0);
class acymailingLoader
{
public function activation()
{
// Load Acy library
$helperFile = __DIR__.DIRECTORY_SEPARATOR.'back'.DIRECTORY_SEPARATOR.'helpers'.DIRECTORY_SEPARATOR.'helper.php';
if (file_exists($helperFile) && include_once $helperFile) {
$acyActivation = new acyActivation();
$acyActivation->install();
}
}
public function protectAcyMailingPages()
{
// Make sure we're on an AcyMailing page
$page = isset($_REQUEST['page']) ? sanitize_text_field(wp_unslash($_REQUEST['page'])) : '';
if (empty($page) || strpos($page, 'acymailing_') === false) return;
// Prevent plugins from breaking AcyMailing pages (mainly JS scripts loaded without the WP way)
remove_action('plugins_loaded', 'mailchimp_on_all_plugins_loaded', 12);
remove_action('plugins_loaded', '_imagify_init');
remove_action('plugins_loaded', 'plugins_loaded_wps_hide_login_plugin');
remove_action('plugins_loaded', ['WPAS_Gas', 'get_instance'], 11);
}
public function initWidgets()
{
$ds = DIRECTORY_SEPARATOR;
include_once __DIR__.$ds.'widgets'.$ds.'archive'.$ds.'widget.php';
include_once __DIR__.$ds.'widgets'.$ds.'profile'.$ds.'widget.php';
include_once __DIR__.$ds.'widgets'.$ds.'subscriptionform'.$ds.'widget.php';
register_widget('acym_archive_widget');
register_widget('acym_profile_widget');
register_widget('acym_subscriptionform_widget');
}
public function initAcyMailing()
{
// Load Acy library
$helperFile = __DIR__.DIRECTORY_SEPARATOR.'back'.DIRECTORY_SEPARATOR.'helpers'.DIRECTORY_SEPARATOR.'helper.php';
if (file_exists($helperFile) && include_once $helperFile) {
//__START__development_
acym_displayErrors();
acym_query('SET SESSION query_cache_type=0;');
//__END__development_
include_once __DIR__.DS.'wpinit'.DS.'update.php';
include_once __DIR__.DS.'wpinit'.DS.'router.php';
include_once __DIR__.DS.'wpinit'.DS.'menu.php';
include_once __DIR__.DS.'wpinit'.DS.'usersynch.php';
include_once __DIR__.DS.'wpinit'.DS.'message.php';
include_once __DIR__.DS.'wpinit'.DS.'elementor.php';
include_once __DIR__.DS.'wpinit'.DS.'beaver.php';
include_once __DIR__.DS.'wpinit'.DS.'wprocket.php';
include_once __DIR__.DS.'wpinit'.DS.'addons.php';
include_once __DIR__.DS.'wpinit'.DS.'forms.php';
include_once __DIR__.DS.'wpinit'.DS.'override_email.php';
include_once __DIR__.DS.'wpinit'.DS.'cron.php';
include_once __DIR__.DS.'wpinit'.DS.'gutenberg.php';
include_once __DIR__.DS.'wpinit'.DS.'security.php';
include_once __DIR__.DS.'wpinit'.DS.'deactivate.php';
include_once __DIR__.DS.'wpinit'.DS.'Oauth.php';
}
}
}