Creative Mail – Easier WordPress & WooCommerce Email Marketing - Version 1.4.9

Version Description

Download this release

Release Info

Developer constantcontact
Plugin Icon 128x128 Creative Mail – Easier WordPress & WooCommerce Email Marketing
Version 1.4.9
Comparing to
See all releases

Code changes from version 1.4.8 to 1.4.9

CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
  Changelog
2
  =========
3
 
 
 
 
 
 
4
  #### 1.4.8 - December 1 2021
5
  - Redirect to main Creativ Email templates page when user has abandoned cart template deactivated.
6
  - Fix sync error with contact form 7
@@ -136,4 +141,4 @@ Changelog
136
  - Fixes an issue where the "Let's get started" button needed to be clicked twice in some cases.
137
 
138
  #### 1.0.0 - July 16 2020
139
- - Initial version of the plugin
1
  Changelog
2
  =========
3
 
4
+ #### 1.4.9 - January 3 2022
5
+ - Add Flag Customer Orders
6
+ - Fix phone numbers should now be synced successfully and contacts will only be subscribed if the 'acceptance' checkbox is checked
7
+ - Fix error after Order Completed Trigger
8
+
9
  #### 1.4.8 - December 1 2021
10
  - Redirect to main Creativ Email templates page when user has abandoned cart template deactivated.
11
  - Fix sync error with contact form 7
141
  - Fixes an issue where the "Let's get started" button needed to be clicked twice in some cases.
142
 
143
  #### 1.0.0 - July 16 2020
144
+ - Initial version of the plugin
README.md CHANGED
@@ -3,7 +3,7 @@ Contributors: Constant Contact
3
  Tags: email, marketing, newsletter, subscribe, contact form, constant contact, crm, automations, ecommerce, promotion, offers, retargeting
4
  Requires at least: 4.6
5
  Tested up to: 5.8
6
- Stable tag: 1.4.8
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
  Requires PHP: 5.6
@@ -90,6 +90,7 @@ Creative Mail by Constant Contact [Privacy Notice](https://www.endurance.com/pri
90
  6. Enhance your brand with LogoBuilder
91
 
92
  == Changelog ==
 
93
  * 1.4.8 - Redirect to main Creativ Email templates page when user has abandoned cart template deactivated. Fix sync error with contact form 7. Added automation trigger for customer buying products.
94
  * 1.4.7 - Fix currency type being shown in "Abandoned Cart" emails for WooCommerce.
95
  * 1.4.6 - Add phone number handling for Jetpack Forms. Bug fixes.
@@ -113,4 +114,4 @@ Creative Mail by Constant Contact [Privacy Notice](https://www.endurance.com/pri
113
  * 1.2.3 - Fixes an issue where the banner would show up again after being dismissed.
114
  * 1.2.2 - Introduction of multi step automations and fixes a couple of small issues in the CreativeMail widgets
115
  * 1.2.1 - Fixes an issue where some users would experience an issue where our UI was blocked by pop-up blockers.
116
- * 1.2.0 - Context aware notifications, add support for Ninja forms, add support for Caldera forms
3
  Tags: email, marketing, newsletter, subscribe, contact form, constant contact, crm, automations, ecommerce, promotion, offers, retargeting
4
  Requires at least: 4.6
5
  Tested up to: 5.8
6
+ Stable tag: 1.4.9
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
  Requires PHP: 5.6
90
  6. Enhance your brand with LogoBuilder
91
 
92
  == Changelog ==
93
+ * 1.4.9 - Fixes regarding WooCoomerce and Contact Sync Updates.
94
  * 1.4.8 - Redirect to main Creativ Email templates page when user has abandoned cart template deactivated. Fix sync error with contact form 7. Added automation trigger for customer buying products.
95
  * 1.4.7 - Fix currency type being shown in "Abandoned Cart" emails for WooCommerce.
96
  * 1.4.6 - Add phone number handling for Jetpack Forms. Bug fixes.
114
  * 1.2.3 - Fixes an issue where the banner would show up again after being dismissed.
115
  * 1.2.2 - Introduction of multi step automations and fixes a couple of small issues in the CreativeMail widgets
116
  * 1.2.1 - Fixes an issue where some users would experience an issue where our UI was blocked by pop-up blockers.
117
+ * 1.2.0 - Context aware notifications, add support for Ninja forms, add support for Caldera forms
creative-mail-plugin.php CHANGED
@@ -9,7 +9,7 @@
9
  * Plugin URI: https://wordpress.org/plugins/creative-mail-by-constant-contact/
10
  * Description: Free email marketing designed specifically for WordPress, Jetpack and WooCommerce. Send newsletters, promotions, updates and transactional e-commerce emails. Simple and easy, powered by Constant Contact’s rock solid reliability.
11
  * Author: Constant Contact
12
- * Version: 1.4.8
13
  * Author URI: https://www.constantcontact.com
14
  * WC requires at least: 3.0.0
15
  * WC tested up to: 5.1.0
@@ -27,7 +27,7 @@ function _load_ce4wp_plugin()
27
  define('CE4WP_PLUGIN_DIR', __DIR__ . '/');
28
  define('CE4WP_PLUGIN_URL', plugin_dir_url(__FILE__) . '/');
29
  define('CE4WP_PLUGIN_FILE', __FILE__);
30
- define('CE4WP_PLUGIN_VERSION', '1.4.8');
31
  define('CE4WP_INSTANCE_UUID_KEY', 'ce4wp_instance_uuid');
32
  define('CE4WP_INSTANCE_HANDSHAKE_TOKEN', 'ce4wp_handshake_token');
33
  define('CE4WP_INSTANCE_HANDSHAKE_EXPIRATION', 'ce4wp_handshake_expiration');
@@ -44,7 +44,7 @@ function _load_ce4wp_plugin()
44
  define('CE4WP_APP_GATEWAY_URL', 'https://app-gateway.creativemail.com/');
45
  define('CE4WP_APP_URL', 'https://app.creativemail.com/');
46
  define('CE4WP_ENVIRONMENT', 'PRODUCTION');
47
- define('CE4WP_BUILD_NUMBER', '1509');
48
  define('CE4WP_RAYGUN_PHP_KEY', 'Z85xL3mkgnW13Ri9DajGUg');
49
  define('CE4WP_BATCH_SIZE', 500);
50
  define('CE4WP_WC_API_KEY_ID', 'ce4wp_woocommerce_api_key_id');
9
  * Plugin URI: https://wordpress.org/plugins/creative-mail-by-constant-contact/
10
  * Description: Free email marketing designed specifically for WordPress, Jetpack and WooCommerce. Send newsletters, promotions, updates and transactional e-commerce emails. Simple and easy, powered by Constant Contact’s rock solid reliability.
11
  * Author: Constant Contact
12
+ * Version: 1.4.9
13
  * Author URI: https://www.constantcontact.com
14
  * WC requires at least: 3.0.0
15
  * WC tested up to: 5.1.0
27
  define('CE4WP_PLUGIN_DIR', __DIR__ . '/');
28
  define('CE4WP_PLUGIN_URL', plugin_dir_url(__FILE__) . '/');
29
  define('CE4WP_PLUGIN_FILE', __FILE__);
30
+ define('CE4WP_PLUGIN_VERSION', '1.4.9');
31
  define('CE4WP_INSTANCE_UUID_KEY', 'ce4wp_instance_uuid');
32
  define('CE4WP_INSTANCE_HANDSHAKE_TOKEN', 'ce4wp_handshake_token');
33
  define('CE4WP_INSTANCE_HANDSHAKE_EXPIRATION', 'ce4wp_handshake_expiration');
44
  define('CE4WP_APP_GATEWAY_URL', 'https://app-gateway.creativemail.com/');
45
  define('CE4WP_APP_URL', 'https://app.creativemail.com/');
46
  define('CE4WP_ENVIRONMENT', 'PRODUCTION');
47
+ define('CE4WP_BUILD_NUMBER', '1538');
48
  define('CE4WP_RAYGUN_PHP_KEY', 'Z85xL3mkgnW13Ri9DajGUg');
49
  define('CE4WP_BATCH_SIZE', 500);
50
  define('CE4WP_WC_API_KEY_ID', 'ce4wp_woocommerce_api_key_id');
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: Constant Contact
3
  Tags: email, marketing, newsletter, subscribe, contact form, constant contact, crm, automations, ecommerce, promotion, offers, retargeting
4
  Requires at least: 4.6
5
  Tested up to: 5.8
6
- Stable tag: 1.4.8
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
  Requires PHP: 5.6
@@ -104,6 +104,7 @@ Creative Mail by Constant Contact [Privacy Notice](https://www.endurance.com/pri
104
  6. Enhance your brand with LogoBuilder
105
 
106
  == Changelog ==
 
107
  * 1.4.8 - Redirect to main Creativ Email templates page when user has abandoned cart template deactivated. Fix sync error with contact form 7. Added automation trigger for customer buying products.
108
  * 1.4.7 - Fix currency type being shown in "Abandoned Cart" emails for WooCommerce.
109
  * 1.4.6 - Add phone number handling for Jetpack Forms. Bug fixes.
3
  Tags: email, marketing, newsletter, subscribe, contact form, constant contact, crm, automations, ecommerce, promotion, offers, retargeting
4
  Requires at least: 4.6
5
  Tested up to: 5.8
6
+ Stable tag: 1.4.9
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
  Requires PHP: 5.6
104
  6. Enhance your brand with LogoBuilder
105
 
106
  == Changelog ==
107
+ * 1.4.9 - Fixes regarding WooCoomerce and Contact Sync Updates.
108
  * 1.4.8 - Redirect to main Creativ Email templates page when user has abandoned cart template deactivated. Fix sync error with contact form 7. Added automation trigger for customer buying products.
109
  * 1.4.7 - Fix currency type being shown in "Abandoned Cart" emails for WooCommerce.
110
  * 1.4.6 - Add phone number handling for Jetpack Forms. Bug fixes.
src/CreativeMail.php CHANGED
@@ -3,6 +3,7 @@
3
 
4
  namespace CreativeMail;
5
 
 
6
  use CreativeMail\Managers\AdminManager;
7
  use CreativeMail\Managers\ApiManager;
8
  use CreativeMail\Managers\CheckoutManager;
@@ -67,9 +68,11 @@ class CreativeMail
67
  if ($enabled) {
68
  $this->checkout_manager->add_hooks();
69
  }
70
- // adding WC hook to catch the orders as soon as order is completed
71
- if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) {
72
- $this->checkout_manager->add_order_completed_wc_hooks();
 
 
73
  }
74
  }
75
 
@@ -120,7 +123,6 @@ class CreativeMail
120
 
121
  public static function get_instance()
122
  {
123
-
124
  if (self::$instance === null) {
125
  self::$instance = new CreativeMail();
126
  }
3
 
4
  namespace CreativeMail;
5
 
6
+ use CreativeMail\Helpers\OptionsHelper;
7
  use CreativeMail\Managers\AdminManager;
8
  use CreativeMail\Managers\ApiManager;
9
  use CreativeMail\Managers\CheckoutManager;
68
  if ($enabled) {
69
  $this->checkout_manager->add_hooks();
70
  }
71
+
72
+ if (!empty(OptionsHelper::get_instance_id())) {
73
+ if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) {
74
+ $this->checkout_manager->add_order_completed_wc_hooks();
75
+ }
76
  }
77
  }
78
 
123
 
124
  public static function get_instance()
125
  {
 
126
  if (self::$instance === null) {
127
  self::$instance = new CreativeMail();
128
  }
src/Managers/CheckoutManager.php CHANGED
@@ -823,6 +823,11 @@ class CheckoutManager
823
  // Line Items / Products array for the expected endpoint
824
  foreach ($order->get_items() as $itemsKey => $item) {
825
  $product = $item->get_product();
 
 
 
 
 
826
  $item_meta = $item->get_formatted_meta_data();
827
 
828
  foreach ($item_meta as $key => $values) {
@@ -875,11 +880,11 @@ class CheckoutManager
875
  $requestItem->order->line_items[] = array(
876
  'product_id' => $item->get_product_id(),
877
  'item_meta' => $item->get_formatted_meta_data(),
878
- 'subtotal' => wc_format_decimal($order->get_line_subtotal($item, false, false), $dp),
879
- 'subtotal_tax' => wc_format_decimal($item->get_subtotal_tax(), $dp),
880
- 'total' => wc_format_decimal($order->get_line_total($item, false, false), $dp),
881
- 'total_tax' => wc_format_decimal($item->get_total_tax(), $dp),
882
- 'price' => wc_format_decimal($order->get_item_total($item, false, false), $dp),
883
  'quantity' => $item->get_quantity(),
884
  'tax_class' => $item->get_tax_class(),
885
  'name' => $item->get_name(),
823
  // Line Items / Products array for the expected endpoint
824
  foreach ($order->get_items() as $itemsKey => $item) {
825
  $product = $item->get_product();
826
+
827
+ if (empty($product)) {
828
+ continue;
829
+ }
830
+
831
  $item_meta = $item->get_formatted_meta_data();
832
 
833
  foreach ($item_meta as $key => $values) {
880
  $requestItem->order->line_items[] = array(
881
  'product_id' => $item->get_product_id(),
882
  'item_meta' => $item->get_formatted_meta_data(),
883
+ 'subtotal' => wc_format_decimal($order->get_line_subtotal($item, false, false), $decimal_point),
884
+ 'subtotal_tax' => wc_format_decimal($item->get_subtotal_tax(), $decimal_point),
885
+ 'total' => wc_format_decimal($order->get_line_total($item, false, false), $decimal_point),
886
+ 'total_tax' => wc_format_decimal($item->get_total_tax(), $decimal_point),
887
+ 'price' => wc_format_decimal($order->get_item_total($item, false, false), $decimal_point),
888
  'quantity' => $item->get_quantity(),
889
  'tax_class' => $item->get_tax_class(),
890
  'name' => $item->get_name(),
src/Modules/Contacts/Handlers/BaseContactFormPluginHandler.php CHANGED
@@ -19,6 +19,7 @@ abstract class BaseContactFormPluginHandler
19
  protected $emailFields = array('your-email', 'email', 'e-mail', 'emailaddress', 'email_address', 'email address', 'email-address', 'e-mail address', 'UserEmailAddress');
20
  protected $firstnameFields = array('firstname', 'first_name', 'name', 'your-name', 'first name', 'first-name', 'first', 'UserFirstName');
21
  protected $lastnameFields = array('lastname', 'last_name', 'last name', 'last-name', 'last', 'UserLastName');
 
22
 
23
  public function upsertContact($model)
24
  {
19
  protected $emailFields = array('your-email', 'email', 'e-mail', 'emailaddress', 'email_address', 'email address', 'email-address', 'e-mail address', 'UserEmailAddress');
20
  protected $firstnameFields = array('firstname', 'first_name', 'name', 'your-name', 'first name', 'first-name', 'first', 'UserFirstName');
21
  protected $lastnameFields = array('lastname', 'last_name', 'last name', 'last-name', 'last', 'UserLastName');
22
+ protected $consentFields = array('acceptance', 'consent');
23
 
24
  public function upsertContact($model)
25
  {
src/Modules/Contacts/Handlers/ContactFormSevenPluginHandler.php CHANGED
@@ -51,22 +51,31 @@ class ContactFormSevenPluginHandler extends BaseContactFormPluginHandler
51
  if (!empty($firstName)) {
52
  $contactModel->setFirstName($firstName);
53
  }
 
54
  $lastName = $this->findValue($contactForm, $this->lastnameFields);
55
  if (!empty($lastName)) {
56
  $contactModel->setLastName($lastName);
57
  }
 
58
  $phone = $this->findValue($contactForm, $this->phoneFields);
 
 
 
59
  if (!empty($phone)) {
60
  $contactModel->setPhone($phone);
61
  }
 
62
  $birthday = $this->findValue($contactForm, $this->birthdayFields);
63
  if (!empty($birthday)) {
64
  $contactModel->setBirthday($birthday);
65
  }
66
 
67
- $contactModel->setOptIn(true);
68
- $contactModel->setOptOut(false);
69
- $contactModel->setOptActionBy(OptActionBy::Visitor);
 
 
 
70
  $contactModel->setEventType(CE4WP_CF7_EVENTTYPE);
71
 
72
  return $contactModel;
@@ -167,4 +176,17 @@ class ContactFormSevenPluginHandler extends BaseContactFormPluginHandler
167
  {
168
  parent::__construct();
169
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  }
51
  if (!empty($firstName)) {
52
  $contactModel->setFirstName($firstName);
53
  }
54
+
55
  $lastName = $this->findValue($contactForm, $this->lastnameFields);
56
  if (!empty($lastName)) {
57
  $contactModel->setLastName($lastName);
58
  }
59
+
60
  $phone = $this->findValue($contactForm, $this->phoneFields);
61
+ if (empty($phone)) {
62
+ $phone = $this->GetValueBySubstring($contactForm->get_posted_data(), $this->phoneFields);
63
+ }
64
  if (!empty($phone)) {
65
  $contactModel->setPhone($phone);
66
  }
67
+
68
  $birthday = $this->findValue($contactForm, $this->birthdayFields);
69
  if (!empty($birthday)) {
70
  $contactModel->setBirthday($birthday);
71
  }
72
 
73
+ $consent = $this->GetValueBySubstring($contactForm->get_posted_data(), $this->consentFields);
74
+ if ($consent === "1") {
75
+ $contactModel->setOptIn(true);
76
+ $contactModel->setOptOut(false);
77
+ $contactModel->setOptActionBy(OptActionBy::Visitor);
78
+ }
79
  $contactModel->setEventType(CE4WP_CF7_EVENTTYPE);
80
 
81
  return $contactModel;
176
  {
177
  parent::__construct();
178
  }
179
+
180
+ private function GetValueBySubstring($form_values, $possible_values)
181
+ {
182
+ foreach ($form_values as $form_key => $form_value) {
183
+ foreach ($possible_values as $possible_value) {
184
+ // If the name of the form_key contains the possible_value then we return its value
185
+ if (mb_strpos(strtolower($form_key), $possible_value) !== false)
186
+ {
187
+ return $form_value;
188
+ }
189
+ }
190
+ }
191
+ }
192
  }
src/Modules/Contacts/Handlers/WooCommercePluginHandler.php CHANGED
@@ -25,6 +25,8 @@ class WooCommercePluginHandler extends BaseContactFormPluginHandler
25
  {
26
  $contactModel = new ContactModel();
27
  $products_detail = get_post_meta($orderId);
 
 
28
 
29
  if (isset($products_detail)) {
30
  if (!empty($products_detail["_billing_email"]) && isset($products_detail["_billing_email"][0]) && !empty($products_detail["_billing_email"][0])) {
@@ -57,6 +59,10 @@ class WooCommercePluginHandler extends BaseContactFormPluginHandler
57
  $contactModel->setPhone($products_detail["_billing_phone"][0]);
58
  }
59
 
 
 
 
 
60
  $this->setConsentValues($contactModel, $products_detail);
61
  }
62
  return $contactModel;
25
  {
26
  $contactModel = new ContactModel();
27
  $products_detail = get_post_meta($orderId);
28
+ $order = wc_get_order($orderId);
29
+ $number_of_orders = count(wc_get_orders(array('email' => $order->get_billing_email())));
30
 
31
  if (isset($products_detail)) {
32
  if (!empty($products_detail["_billing_email"]) && isset($products_detail["_billing_email"][0]) && !empty($products_detail["_billing_email"][0])) {
59
  $contactModel->setPhone($products_detail["_billing_phone"][0]);
60
  }
61
 
62
+ if (!empty($number_of_orders)) {
63
+ $contactModel->setNumberOfOrders($number_of_orders);
64
+ }
65
+
66
  $this->setConsentValues($contactModel, $products_detail);
67
  }
68
  return $contactModel;
src/Modules/Contacts/Models/ContactModel.php CHANGED
@@ -17,6 +17,7 @@ class ContactModel
17
  public $optActionBy;
18
  public $contactAddresses;
19
  public $eventType;
 
20
  private $birthday;
21
  private $listId;
22
 
@@ -119,6 +120,16 @@ class ContactModel
119
  return $this->optActionBy;
120
  }
121
 
 
 
 
 
 
 
 
 
 
 
122
  public function setContactAddress(ContactAddressModel $contactAddresses)
123
  {
124
  $this->contactAddresses = $contactAddresses;
@@ -178,7 +189,8 @@ class ContactModel
178
  "opt_out" => $this->getOptOut(),
179
  "opt_action_by" => $this->getOptActionBy(),
180
  "event_type" => $this->getEventType(),
181
- "list_id" => $this->getListId()
 
182
  );
183
 
184
  $address = $this->getContactAddress();
17
  public $optActionBy;
18
  public $contactAddresses;
19
  public $eventType;
20
+ public $numberOfOrders;
21
  private $birthday;
22
  private $listId;
23
 
120
  return $this->optActionBy;
121
  }
122
 
123
+ public function setNumberOfOrders($numberOfOrders)
124
+ {
125
+ $this->numberOfOrders = $numberOfOrders;
126
+ }
127
+
128
+ public function getNumberOfOrders()
129
+ {
130
+ return $this->numberOfOrders;
131
+ }
132
+
133
  public function setContactAddress(ContactAddressModel $contactAddresses)
134
  {
135
  $this->contactAddresses = $contactAddresses;
189
  "opt_out" => $this->getOptOut(),
190
  "opt_action_by" => $this->getOptActionBy(),
191
  "event_type" => $this->getEventType(),
192
+ "list_id" => $this->getListId(),
193
+ "number_of_orders" => $this->getNumberOfOrders(),
194
  );
195
 
196
  $address = $this->getContactAddress();
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit92fb9ea1afd3d369dba1b0da18c58aa9::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit58eec2d19561196f84a677438bdfe34e::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit92fb9ea1afd3d369dba1b0da18c58aa9
6
  {
7
  private static $loader;
8
 
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit92fb9ea1afd3d369dba1b0da18c58aa9
22
  return self::$loader;
23
  }
24
 
25
- spl_autoload_register(array('ComposerAutoloaderInit92fb9ea1afd3d369dba1b0da18c58aa9', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
- spl_autoload_unregister(array('ComposerAutoloaderInit92fb9ea1afd3d369dba1b0da18c58aa9', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
- call_user_func(\Composer\Autoload\ComposerStaticInit92fb9ea1afd3d369dba1b0da18c58aa9::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit58eec2d19561196f84a677438bdfe34e
6
  {
7
  private static $loader;
8
 
22
  return self::$loader;
23
  }
24
 
25
+ spl_autoload_register(array('ComposerAutoloaderInit58eec2d19561196f84a677438bdfe34e', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
+ spl_autoload_unregister(array('ComposerAutoloaderInit58eec2d19561196f84a677438bdfe34e', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
+ call_user_func(\Composer\Autoload\ComposerStaticInit58eec2d19561196f84a677438bdfe34e::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit92fb9ea1afd3d369dba1b0da18c58aa9
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'F' =>
@@ -167,10 +167,10 @@ class ComposerStaticInit92fb9ea1afd3d369dba1b0da18c58aa9
167
  public static function getInitializer(ClassLoader $loader)
168
  {
169
  return \Closure::bind(function () use ($loader) {
170
- $loader->prefixLengthsPsr4 = ComposerStaticInit92fb9ea1afd3d369dba1b0da18c58aa9::$prefixLengthsPsr4;
171
- $loader->prefixDirsPsr4 = ComposerStaticInit92fb9ea1afd3d369dba1b0da18c58aa9::$prefixDirsPsr4;
172
- $loader->prefixesPsr0 = ComposerStaticInit92fb9ea1afd3d369dba1b0da18c58aa9::$prefixesPsr0;
173
- $loader->classMap = ComposerStaticInit92fb9ea1afd3d369dba1b0da18c58aa9::$classMap;
174
 
175
  }, null, ClassLoader::class);
176
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit58eec2d19561196f84a677438bdfe34e
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'F' =>
167
  public static function getInitializer(ClassLoader $loader)
168
  {
169
  return \Closure::bind(function () use ($loader) {
170
+ $loader->prefixLengthsPsr4 = ComposerStaticInit58eec2d19561196f84a677438bdfe34e::$prefixLengthsPsr4;
171
+ $loader->prefixDirsPsr4 = ComposerStaticInit58eec2d19561196f84a677438bdfe34e::$prefixDirsPsr4;
172
+ $loader->prefixesPsr0 = ComposerStaticInit58eec2d19561196f84a677438bdfe34e::$prefixesPsr0;
173
+ $loader->classMap = ComposerStaticInit58eec2d19561196f84a677438bdfe34e::$classMap;
174
 
175
  }, null, ClassLoader::class);
176
  }