PluginProbe
YayMail – WooCommerce Email Customizer / 4.4.0
YayMail – WooCommerce Email Customizer v4.4.0
4.4.4 4.4.3 4.4.2 4.4.1 trunk 1.9.6 2.1.4 2.1.5 3.2.2 3.2.6 3.2.7.1 3.2.8.1 3.2.9 3.3 3.3.1 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4 3.4.1 3.4.2 3.4.3 All 55 releases
yaymail / src / Initialize.php

Initialize.php in YayMail – WooCommerce Email Customizer 4.4.0, at src/Initialize.php

125 lines 3.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace YayMail;
3
4 use YayMail\Elements\ElementsLoader;
5 use YayMail\Emails\EmailsLoader;
6 use YayMail\Engine\ActDeact;
7 use YayMail\Engine\Backend\SettingsPage;
8 use YayMail\Engine\RestAPI;
9 use YayMail\Integrations\IntegrationsLoader;
10 use YayMail\PostTypes\TemplatePostType;
11 use YayMail\Shortcodes\ShortcodesLoader;
12 use YayMail\Utils\SingletonTrait;
13 use YayMail\TemplatePatterns\PatternsLoader;
14 use YayMail\TemplatePatterns\SectionTemplatesLoader;
15 use YayMail\PreviewEmail\PreviewEmailsLoader;
16 use YayMail\Notices\NoticeMain;
17 use YayMail\TemplateLibrary\TemplateLibraryLoader;
18 /**
19 * YayMail Plugin Initializer
20 *
21 * @method static Initialize get_instance()
22 */
23 class Initialize {
24
25 use SingletonTrait;
26
27 /**
28 * The Constructor that load the engine classes
29 */
30 protected function __construct() {
31 I18n::get_instance();
32
33 /**
34 * Handle init core
35 * Emails, Templates, Elements, Shortcodes, Integrations
36 * $hook_name => $priority
37 */
38 $initialization_core_hooks = [
39 apply_filters( 'yaymail_temp_init_hook_name', 'init' ) => 10,
40 // Integrate for Mastercard Gateway plugin
41 'woocommerce_api_mastercard_gateway' => 10,
42 ];
43 foreach ( $initialization_core_hooks as $hook => $priority ) {
44 add_action( $hook, [ $this, 'init_core' ], $priority ?? 10 );
45 }
46
47 add_action( 'init', [ $this, 'init_modules' ] );
48 }
49
50 public function init_core() {
51 require_once YAYMAIL_PLUGIN_PATH . 'src/Functions.php';
52 do_action( 'yaymail_init_start' );
53
54 /**
55 * Core Integrations
56 */
57 IntegrationsLoader::get_instance();
58
59 EmailsLoader::get_instance();
60 ElementsLoader::get_instance();
61 ShortcodesLoader::get_instance();
62 }
63
64 public function init_modules() {
65
66 $version_current = yaymail_version();
67 $version_old = get_option( 'yaymail_version' );
68 $version_current_backup = get_option( 'yaymail_version_backup' );
69
70 if ( $version_current !== $version_old && yaymail_is_wc_installed() ) {
71 if ( $version_current_backup !== $version_current ) {
72 \YayMail\Migrations\MainMigration::get_instance()->migrate();
73
74 update_option( 'yaymail_version', $version_current );
75 update_option( 'yaymail_version_backup', $version_current );
76 }
77 }
78
79 ActDeact::get_instance();
80
81 if ( yaymail_is_wc_installed() ) {
82 WooHandler::get_instance();
83 }
84
85 /**
86 * Preview Email loader
87 */
88
89 PreviewEmailsLoader::get_instance();
90
91 /**
92 * Supported templates
93 */
94 SupportedPlugins::get_instance();
95
96 /**
97 * Core core filters
98 */
99
100 SectionTemplatesLoader::get_instance();
101 PatternsLoader::get_instance();
102 TemplateLibraryLoader::get_instance();
103
104 /**
105 * Initialize rest api
106 */
107 RestAPI::get_instance();
108
109 /**
110 * Initialize pages
111 */
112 SettingsPage::get_instance();
113
114 TemplatePostType::get_instance();
115 Ajax::get_instance();
116
117 /**
118 * Notices
119 */
120 NoticeMain::get_instance();
121
122 do_action( 'yaymail_loaded' );
123 }
124 }
125