PluginProbe
YayMail – WooCommerce Email Customizer / 4.3.2
YayMail – WooCommerce Email Customizer v4.3.2
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.3.2, at src/Initialize.php

121 lines 3.1 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
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 ) {
71 if ( $version_current_backup !== $version_current ) {
72 \YayMail\Migrations\MainMigration::get_instance()->migrate();
73
74 update_option( 'yaymail_version', YAYMAIL_VERSION );
75 update_option( 'yaymail_version_backup', YAYMAIL_VERSION );
76 }
77 }
78
79 ActDeact::get_instance();
80
81 WooHandler::get_instance();
82 /**
83 * Preview Email loader
84 */
85
86 PreviewEmailsLoader::get_instance();
87
88 /**
89 * Supported templates
90 */
91 SupportedPlugins::get_instance();
92
93 /**
94 * Core core filters
95 */
96
97 SectionTemplatesLoader::get_instance();
98 PatternsLoader::get_instance();
99
100 /**
101 * Initialize rest api
102 */
103 RestAPI::get_instance();
104
105 /**
106 * Initialize pages
107 */
108 SettingsPage::get_instance();
109
110 TemplatePostType::get_instance();
111 Ajax::get_instance();
112
113 /**
114 * Notices
115 */
116 NoticeMain::get_instance();
117
118 do_action( 'yaymail_loaded' );
119 }
120 }
121