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

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