/var/www/html_fr/wp-content/plugins/yaymail/src/Initialize.php


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' );
    }
}