PluginProbe
MailerLite – WooCommerce integration / 3.1.24
MailerLite – WooCommerce integration v3.1.24
3.1.25 3.1.26 3.1.24 3.1.23 3.1.22 3.1.21 3.1.20 3.1.19 3.1.18 3.1.17 3.1.16 3.1.15 1.8.7 1.8.8 2.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 All 147 releases
woo-mailerlite / bootstrap.php

bootstrap.php in MailerLite – WooCommerce integration 3.1.24, at bootstrap.php

201 lines 7.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 // If this file is called directly, abort.
4 if (!defined( 'WPINC')) {
5 die;
6 }
7
8 $woo_mailerlite_autoload = true;
9 spl_autoload_register(function($class) {
10 $classes = array(
11 // includes
12 'WooMailerLiteActivator' => 'includes/WooMailerLiteActivator.php',
13 'WooMailerLiteDeActivator' => 'includes/WooMailerLiteDeActivator.php',
14 'WooMailerLiteLoader' => 'includes/WooMailerLiteLoader.php',
15 'WooMailerLite' => 'includes/WooMailerLite.php',
16 'WooMailerLiteService' => 'includes/WooMailerLiteService.php',
17 'WooMailerLiteSession' => 'includes/WooMailerLiteSession.php',
18 'WooMailerLiteCache' => 'includes/WooMailerLiteCache.php',
19
20 // includes/controllers
21 'WooMailerLiteAdminWizardController' => 'admin/controllers/WooMailerLiteAdminWizardController.php',
22 'WooMailerLiteAdminGroupController' => 'admin/controllers/WooMailerLiteAdminGroupController.php',
23 'WooMailerLiteAdminSettingsController' => 'admin/controllers/WooMailerLiteAdminSettingsController.php',
24 'WooMailerLiteAdminSyncController' => 'admin/controllers/WooMailerLiteAdminSyncController.php',
25 'WooMailerLiteAdminMetaBoxController' => 'admin/controllers/WooMailerLiteAdminMetaBoxController.php',
26 'WooMailerLiteCheckoutBlocksController' => 'admin/controllers/WooMailerLiteCheckoutBlocksController.php',
27 'WooMailerLitePluginController' => 'includes/controllers/WooMailerLitePluginController.php',
28 'WooMailerLiteOrderController' => 'includes/controllers/WooMailerLiteOrderController.php',
29
30
31 'WooMailerLiteCheckoutDataService' => 'includes/services/WooMailerLiteCheckoutDataService.php',
32
33 // includes/api
34 'WooMailerLiteApi' => 'includes/api/WooMailerLiteApi.php',
35 'WooMailerLiteRewriteApi' => 'includes/api/WooMailerLiteRewriteApi.php',
36 'WooMailerLiteClassicApi' => 'includes/api/WooMailerLiteClassicApi.php',
37 'WooMailerLiteApiResponse' => 'includes/api/WooMailerLiteApiResponse.php',
38
39 //includes/jobs
40 'WooMailerLiteAbstractJob' => 'includes/jobs/WooMailerLiteAbstractJob.php',
41 'WooMailerLiteProductSyncJob' => 'includes/jobs/WooMailerLiteProductSyncJob.php',
42 'WooMailerLiteCategorySyncJob' => 'includes/jobs/WooMailerLiteCategorySyncJob.php',
43 'WooMailerLiteCustomerSyncJob' => 'includes/jobs/WooMailerLiteCustomerSyncJob.php',
44 'WooMailerLiteProductSyncResetJob' => 'includes/jobs/WooMailerLiteProductSyncResetJob.php',
45 'WooMailerLiteCategorySyncResetJob' => 'includes/jobs/WooMailerLiteCategorySyncResetJob.php',
46 'WooMailerLiteCustomerSyncResetJob' => 'includes/jobs/WooMailerLiteCustomerSyncResetJob.php',
47 'WooMailerLiteProductVariantsMigrationJob' => 'includes/jobs/WooMailerLiteProductVariantsMigrationJob.php',
48
49 //includes/models
50 'WooMailerLiteModel' => 'includes/models/WooMailerLiteModel.php',
51 'WooMailerLiteCart' => 'includes/models/WooMailerLiteCart.php',
52 'WooMailerLiteJob' => 'includes/models/WooMailerLiteJob.php',
53 'WooMailerLiteProduct' => 'includes/models/WooMailerLiteProduct.php',
54 'WooMailerLiteCategory' => 'includes/models/WooMailerLiteCategory.php',
55 'WooMailerLiteCustomer' => 'includes/models/WooMailerLiteCustomer.php',
56
57 // includes/controllers
58 'WooMailerLiteController' => 'includes/controllers/WooMailerLiteController.php',
59
60 // admin
61 'WooMailerLiteAdmin' => 'admin/WooMailerLiteAdmin.php',
62 'WooMailerLiteBlocksIntegration' => 'admin/Integrations/WooMailerLiteBlocksIntegration.php',
63
64
65 // includes/common
66 'WooMailerLiteDBConnection' => 'includes/common/WooMailerLiteDBConnection.php',
67 'WooMailerLiteOptions' => 'includes/common/WooMailerLiteOptions.php',
68 'WooMailerLiteResources' => 'includes/common/traits/WooMailerLiteResources.php',
69 'WooMailerLiteProductVariantsTrait' => 'includes/common/traits/WooMailerLiteProductVariantsTrait.php',
70 'WooMailerLiteCollection' => 'includes/common/WooMailerLiteCollection.php',
71 'WooMailerLiteQueryBuilder' => 'includes/common/WooMailerLiteQueryBuilder.php',
72 'WooMailerLiteEncryption' => 'includes/common/WooMailerLiteEncryption.php',
73
74 // includes/migrations
75 'WooMailerLiteMigration' => 'includes/migrations/WooMailerLiteMigration.php',
76
77 // includes/public
78 'WooMailerLitePublic' => 'public/WooMailerLitePublic.php',
79 );
80
81 // if the file exists, require it
82 $path = plugin_dir_path( __FILE__ );
83 if (array_key_exists($class, $classes) && file_exists($path.$classes[$class])) {
84 require $path.$classes[$class];
85 }
86 });
87
88 function activate_woo_mailerlite() {
89 WooMailerLiteActivator::activate();
90 }
91
92 function deactivate_woo_mailerlite()
93 {
94 WooMailerLiteDeActivator::deactivate();
95 }
96
97 function woo_mailerlite_check_woocommerce_is_installed() {
98 if (!woo_mailerlit_check_woocommerce_plugin_status()) {
99 // Deactivate the plugin
100 deactivate_plugins(__FILE__);
101 $error_message = __('The MailerLite – WooCommerce integration plugin requires the <a href="http://wordpress.org/extend/plugins/woocommerce/">WooCommerce</a> plugin to be active!', 'woocommerce');
102 wp_die($error_message);
103 }
104 return true;
105 }
106
107 /**
108 * @return bool
109 */
110 function woo_mailerlit_check_woocommerce_plugin_status()
111 {
112 if (in_array('woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option('active_plugins')))) {
113 return true;
114 }
115 $plugins = get_site_option( 'active_sitewide_plugins');
116 return isset($plugins['woocommerce/woocommerce.php']);
117 }
118
119
120 function run_woo_mailerlite() {
121 try {
122 $plugin = new WooMailerLite();
123 $plugin->run();
124 } catch(Throwable $th) {
125 WooMailerLiteLog()->error('run_woo_mailerlite', ['error' => $th->getMessage(), 'trace' => $th->getTraceAsString()]);
126 return true;
127 }
128
129 }
130
131 function db() {
132 $class = new WooMailerLiteDBConnection();
133 return $class->db();
134 }
135
136 function get_table(string $class) : ?string {
137 $model_classes = [
138 'WooMailerLiteJob' => 'jobs',
139 'WooMailerLiteCart' => 'woo_mailerlite_carts',
140 'WooMailerLiteProduct' => 'products',
141 ];
142 return $model_classes[$class] ?? null;
143 }
144 //register_activation_hook(__FILE__, 'schedule_product_sync');
145
146 function schedule_product_sync() {
147 // Run an immediate sync when the plugin is activated
148 as_schedule_single_action(time(), 'sync_products_action');
149
150 // Then schedule recurring syncs
151 // if (!as_next_scheduled_action('sync_products_action')) {
152 // as_schedule_recurring_action(time() + 10, HOUR_IN_SECONDS, 'sync_products_action');
153 // }
154 }
155
156 function cacheSet($key, $value, $expire = 0)
157 {
158 wp_cache_set($key, $value, 'woo_mailerlite', $expire);
159 }
160
161 function cacheGet($key)
162 {
163 return wp_cache_get($key, 'woo_mailerlite');
164 }
165
166 function WooMailerLiteLog() {
167 return new class() {
168 public function debug($message, $data = []) {
169 $this->log('debug', $message, $data);
170 }
171 public function notice($message, $data = []) {
172 $this->log('notice', $message, $data);
173 }
174 public function info($message, $data = []) {
175 $this->log('notice', $message, $data);
176 }
177
178 public function error($message, $data = []) {
179 $this->log('error', $message, $data);
180 }
181
182 protected function log($action, $message, $data = [])
183 {
184 if (is_array($data) && !empty($data)) {
185 $message .= " :: ".wc_print_r($data, true);
186 } else {
187 $message .= " :: ".json_encode($data);
188 }
189 wc_get_logger()->$action("{$message}", ['source' => 'woo_mailerlite']);
190 }
191 };
192 }
193
194 function textInput($key, $default = '') {
195 return isset($_POST[$key]) ? sanitize_text_field($_POST[$key]) : $default;
196 }
197
198 function emailInput($key, $default = '') {
199 return isset($_POST[$key]) ? sanitize_email($_POST[$key]) : $default;
200 }
201