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
|
<?php namespace YayMail;
use YayMail\Elements\ElementsLoader; use YayMail\Emails\EmailsLoader; use YayMail\Engine\ActDeact; use YayMail\Engine\Backend\SettingsPage; use YayMail\Engine\RestAPI; use YayMail\Integrations\IntegrationsLoader; use YayMail\PostTypes\TemplatePostType; use YayMail\Shortcodes\ShortcodesLoader; use YayMail\Utils\SingletonTrait; use YayMail\TemplatePatterns\PatternsLoader; use YayMail\TemplatePatterns\SectionTemplatesLoader; use YayMail\PreviewEmail\PreviewEmailsLoader; use YayMail\Notices\NoticeMain;
/** * YayMail Plugin Initializer * * @method static Initialize get_instance() */ class Initialize {
use SingletonTrait;
/** * The Constructor that load the engine classes */ protected function __construct() { I18n::get_instance();
$yaymail_init = apply_filters( 'yaymail_temp_init_hook_name', 'init' );
add_action( $yaymail_init, [ $this, 'woocommerce_init' ] ); add_action( 'init', [ $this, 'yaymail_init' ] ); }
public function woocommerce_init() { require_once YAYMAIL_PLUGIN_PATH . 'src/Functions.php'; do_action( 'yaymail_init_start' );
/** * Core Integrations */ IntegrationsLoader::get_instance();
EmailsLoader::get_instance(); ElementsLoader::get_instance(); ShortcodesLoader::get_instance(); }
public static function yaymail_init() {
$version_current = YAYMAIL_VERSION; $version_old = get_option( 'yaymail_version' ); $version_current_backup = get_option( 'yaymail_version_backup' );
if ( $version_current !== $version_old ) { if ( $version_current_backup !== $version_current ) { \YayMail\Migrations\MainMigration::get_instance()->migrate();
update_option( 'yaymail_version', YAYMAIL_VERSION ); update_option( 'yaymail_version_backup', YAYMAIL_VERSION ); } }
ActDeact::get_instance();
WooHandler::get_instance(); /** * Preview Email loader */
PreviewEmailsLoader::get_instance();
/** * Supported templates */ SupportedPlugins::get_instance();
/** * Core core filters */
SectionTemplatesLoader::get_instance(); PatternsLoader::get_instance();
/** * Initialize rest api */ RestAPI::get_instance();
/** * Initialize pages */ SettingsPage::get_instance();
TemplatePostType::get_instance(); Ajax::get_instance();
/** * Notices */ NoticeMain::get_instance();
do_action( 'yaymail_loaded' ); } }
|