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

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