MailChimp for WooCommerce - Version 2.3.4

Version Description

  • updates to Action Scheduler
Download this release

Release Info

Developer ryanhungate
Plugin Icon wp plugin MailChimp for WooCommerce
Version 2.3.4
Comparing to
See all releases

Code changes from version 2.3.3 to 2.3.4

README.txt CHANGED
@@ -4,7 +4,7 @@ Tags: ecommerce,email,workflows,mailchimp
4
  Donate link: https://mailchimp.com
5
  Requires at least: 4.9
6
  Tested up to: 5.3.2
7
- Stable tag: 2.3.3
8
  Requires PHP: 7.0
9
  WC requires at least: 3.5
10
  WC tested up to: 3.9
@@ -63,6 +63,8 @@ The Mailchimp for WooCommerce supports Wordpress Multi Sites and below are a few
63
  - Deleting removes the connection between Mailchimp and WooCommerce, and uninstalls the plugin from your site.
64
  Refer to the Wordpress Codex for more information about [Multisite Network Administration](https://codex.wordpress.org/Multisite_Network_Administration)
65
  == Changelog ==
 
 
66
  = 2.3.3 =
67
  * fixes abandoned cart issues with Paypal
68
  * resolves Action Scheduler 3.0 compatiblity issues
4
  Donate link: https://mailchimp.com
5
  Requires at least: 4.9
6
  Tested up to: 5.3.2
7
+ Stable tag: 2.3.4
8
  Requires PHP: 7.0
9
  WC requires at least: 3.5
10
  WC tested up to: 3.9
63
  - Deleting removes the connection between Mailchimp and WooCommerce, and uninstalls the plugin from your site.
64
  Refer to the Wordpress Codex for more information about [Multisite Network Administration](https://codex.wordpress.org/Multisite_Network_Administration)
65
  == Changelog ==
66
+ = 2.3.4 =
67
+ * updates to Action Scheduler
68
  = 2.3.3 =
69
  * fixes abandoned cart issues with Paypal
70
  * resolves Action Scheduler 3.0 compatiblity issues
admin/class-mailchimp-woocommerce-admin.php CHANGED
@@ -67,6 +67,9 @@ class MailChimp_WooCommerce_Admin extends MailChimp_WooCommerce_Options {
67
  update_option('mailchimp-woocommerce-sync.completed_at', false);
68
  update_option('mailchimp-woocommerce-resource-last-updated', false);
69
  update_option('mailchimp-woocommerce-empty_line_item_placeholder', false);
 
 
 
70
 
71
  if (($store_id = mailchimp_get_store_id()) && ($mc = mailchimp_get_api())) {
72
  if ($mc->deleteStore($store_id)) {
@@ -135,6 +138,21 @@ class MailChimp_WooCommerce_Admin extends MailChimp_WooCommerce_Options {
135
  );
136
  }
137
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  /**
139
  * check if current user can view options pages/ save plugin options
140
  */
@@ -212,6 +230,7 @@ class MailChimp_WooCommerce_Admin extends MailChimp_WooCommerce_Options {
212
  public function update_db_check() {
213
  // grab the current version set in the plugin variables
214
  global $wpdb;
 
215
 
216
  $version = mailchimp_environment_variables()->version;
217
 
@@ -282,10 +301,9 @@ class MailChimp_WooCommerce_Admin extends MailChimp_WooCommerce_Options {
282
  implode(' | ', $constants_used).'<br/>'.
283
  __('These constants are deprecated since Mailchimp for Woocommerce version 2.3. Please refer to the <a href="https://github.com/mailchimp/mc-woocommerce/wiki/">plugin official wiki</a> for further details.' ,'mailchimp-for-woocommerce').'</p>';
284
 
285
- add_settings_error('mailchimp-woocommerce_notice', $this->plugin_name, $text, 'notice-info');
286
-
287
- if (!isset($_GET['page']) || $_GET['page'] != 'mailchimp-woocommerce') {
288
- settings_errors();
289
  }
290
  }
291
 
@@ -440,11 +458,11 @@ class MailChimp_WooCommerce_Admin extends MailChimp_WooCommerce_Options {
440
  if ($this->is_disconnecting()) {
441
  // Disconnect store!
442
  if ($data = $this->disconnect_store()) {
443
- add_settings_error('mailchimp_store_settings', '', __('Store Disconnected', 'mailchimp-for-woocommerce'),'notice-info');
444
  }
445
  else {
446
  $data['active_tab'] = 'sync';
447
- add_settings_error('mailchimp_store_settings', '', __('Store Disconnect Failed', 'mailchimp-for-woocommerce'),'notice-warning');
448
  }
449
  }
450
  //case sync
@@ -1453,13 +1471,13 @@ class MailChimp_WooCommerce_Admin extends MailChimp_WooCommerce_Options {
1453
  */
1454
  private function showSyncStartedMessage()
1455
  {
1456
- $text = __('Starting the sync process...', 'mailchimp-for-woocommerce').'<br/>'.
1457
  '<p id="sync-status-message">'.
1458
  __('The plugin has started the initial sync with your store, and the process will work in the background automatically.', 'mailchimp-for-woocommerce') .
1459
  ' ' .
1460
  __('Sometimes the sync can take a while, especially on sites with lots of orders and/or products. It is safe to navigate away from this screen while it is running.', 'mailchimp-for-woocommerce') .
1461
  '</p>';
1462
- add_settings_error('mailchimp-woocommerce_notice', $this->plugin_name, $text, 'updated');
1463
  }
1464
 
1465
  /**
@@ -1473,7 +1491,7 @@ class MailChimp_WooCommerce_Admin extends MailChimp_WooCommerce_Options {
1473
  $order_count = mailchimp_get_order_count();
1474
  }
1475
 
1476
- $text = __('Your store is synced with Mailchimp!', 'mailchimp-for-woocommerce').'</br>'.
1477
  '<p id="sync-status-message">'.
1478
  /* translators: %1$s: Number of synced orders %2$s: Audience name */
1479
  sprintf(__('We\'ve successfully synced %1$s orders to your Audience %2$s, that\'s awesome!', 'mailchimp-for-woocommerce'),
@@ -1490,7 +1508,7 @@ class MailChimp_WooCommerce_Admin extends MailChimp_WooCommerce_Options {
1490
  esc_html__('Leave a Review', 'mailchimp-for-woocommerce').
1491
  '</a>';
1492
 
1493
- add_settings_error('mailchimp-woocommerce_notice', $this->plugin_name.'-initial-sync-end', $text, 'updated');
1494
  }
1495
 
1496
  /**
@@ -1526,16 +1544,24 @@ class MailChimp_WooCommerce_Admin extends MailChimp_WooCommerce_Options {
1526
  /**
1527
  * set Communications box status.
1528
  */
1529
- public function mailchimp_set_communications_status_on_server($opt, $admin_email) {
1530
  $env = mailchimp_environment_variables();
1531
-
 
 
1532
  $post_data = array(
1533
  'store_id' => mailchimp_get_store_id(),
1534
  'email' => $admin_email,
1535
  'domain' => site_url(),
1536
  'marketing_status' => $opt,
1537
- 'plugin_version' => "MailChimp for WooCommerce/{$env->version}; PHP/{$env->php_version}; WordPress/{$env->wp_version}; Woo/{$env->wc_version};"
 
 
 
1538
  );
 
 
 
1539
 
1540
  $route = "https://woocommerce.mailchimpapp.com/api/opt_in_status";
1541
 
67
  update_option('mailchimp-woocommerce-sync.completed_at', false);
68
  update_option('mailchimp-woocommerce-resource-last-updated', false);
69
  update_option('mailchimp-woocommerce-empty_line_item_placeholder', false);
70
+
71
+ // remove user from our marketing status audience
72
+ mailchimp_remove_communication_status();
73
 
74
  if (($store_id = mailchimp_get_store_id()) && ($mc = mailchimp_get_api())) {
75
  if ($mc->deleteStore($store_id)) {
138
  );
139
  }
140
 
141
+ /**
142
+ * Include the new Navigation Bar the Admin page.
143
+ */
144
+ public function add_woocommerce_navigation_bar() {
145
+ if ( function_exists( 'wc_admin_connect_page' ) ) {
146
+ wc_admin_connect_page(
147
+ array(
148
+ 'id' => $this->plugin_name,
149
+ 'screen_id' => 'toplevel_page_mailchimp-woocommerce',
150
+ 'title' => __( 'Mailchimp for WooCommerce', 'mailchimp-for-woocommerce' ),
151
+ )
152
+ );
153
+ }
154
+ }
155
+
156
  /**
157
  * check if current user can view options pages/ save plugin options
158
  */
230
  public function update_db_check() {
231
  // grab the current version set in the plugin variables
232
  global $wpdb;
233
+ global $pagenow;
234
 
235
  $version = mailchimp_environment_variables()->version;
236
 
301
  implode(' | ', $constants_used).'<br/>'.
302
  __('These constants are deprecated since Mailchimp for Woocommerce version 2.3. Please refer to the <a href="https://github.com/mailchimp/mc-woocommerce/wiki/">plugin official wiki</a> for further details.' ,'mailchimp-for-woocommerce').'</p>';
303
 
304
+ // only print notice for deprecated constants, on mailchimp woocoomerce pages
305
+ if ($pagenow == 'admin.php' && 'mailchimp-woocommerce' === $_GET['page']) {
306
+ add_settings_error('mailchimp-woocommerce_notice', $this->plugin_name, $text, 'info');
 
307
  }
308
  }
309
 
458
  if ($this->is_disconnecting()) {
459
  // Disconnect store!
460
  if ($data = $this->disconnect_store()) {
461
+ add_settings_error('mailchimp_store_settings', '', __('Store Disconnected', 'mailchimp-for-woocommerce'), 'info');
462
  }
463
  else {
464
  $data['active_tab'] = 'sync';
465
+ add_settings_error('mailchimp_store_settings', '', __('Store Disconnect Failed', 'mailchimp-for-woocommerce'), 'warning');
466
  }
467
  }
468
  //case sync
1471
  */
1472
  private function showSyncStartedMessage()
1473
  {
1474
+ $text = '<b>' . __('Starting the sync process...', 'mailchimp-for-woocommerce').'</b><br/>'.
1475
  '<p id="sync-status-message">'.
1476
  __('The plugin has started the initial sync with your store, and the process will work in the background automatically.', 'mailchimp-for-woocommerce') .
1477
  ' ' .
1478
  __('Sometimes the sync can take a while, especially on sites with lots of orders and/or products. It is safe to navigate away from this screen while it is running.', 'mailchimp-for-woocommerce') .
1479
  '</p>';
1480
+ add_settings_error('mailchimp-woocommerce_notice', $this->plugin_name, $text, 'success');
1481
  }
1482
 
1483
  /**
1491
  $order_count = mailchimp_get_order_count();
1492
  }
1493
 
1494
+ $text = '<b>' . __('Your store is synced with Mailchimp!', 'mailchimp-for-woocommerce').'</b></br>'.
1495
  '<p id="sync-status-message">'.
1496
  /* translators: %1$s: Number of synced orders %2$s: Audience name */
1497
  sprintf(__('We\'ve successfully synced %1$s orders to your Audience %2$s, that\'s awesome!', 'mailchimp-for-woocommerce'),
1508
  esc_html__('Leave a Review', 'mailchimp-for-woocommerce').
1509
  '</a>';
1510
 
1511
+ add_settings_error('mailchimp-woocommerce_notice', $this->plugin_name.'-initial-sync-end', $text, 'success');
1512
  }
1513
 
1514
  /**
1544
  /**
1545
  * set Communications box status.
1546
  */
1547
+ public function mailchimp_set_communications_status_on_server($opt, $admin_email, $remove = false) {
1548
  $env = mailchimp_environment_variables();
1549
+ $audience = !empty(mailchimp_get_list_id()) ? 1 : 0;
1550
+ $synced = get_option('mailchimp-woocommerce-sync.completed_at') > 0 ? 1 : 0;
1551
+
1552
  $post_data = array(
1553
  'store_id' => mailchimp_get_store_id(),
1554
  'email' => $admin_email,
1555
  'domain' => site_url(),
1556
  'marketing_status' => $opt,
1557
+ 'audience' => $audience,
1558
+ 'synced' => $synced,
1559
+ 'plugin_version' => "MailChimp for WooCommerce/{$env->version}; PHP/{$env->php_version}; WordPress/{$env->wp_version}; Woo/{$env->wc_version};",
1560
+
1561
  );
1562
+ if ($remove) {
1563
+ $post_data['remove_email'] = true;
1564
+ }
1565
 
1566
  $route = "https://woocommerce.mailchimpapp.com/api/opt_in_status";
1567
 
admin/css/mailchimp-woocommerce-admin-settings.css CHANGED
@@ -12,7 +12,7 @@
12
 
13
  .mc-woocommerce-settings {
14
  width:90%;
15
- margin: 4em auto 0 auto;
16
  font-family: "proxima-nova", Arial, Helvetica, sans-serif;
17
 
18
  }
12
 
13
  .mc-woocommerce-settings {
14
  width:90%;
15
+ margin: 4em auto 0 auto !important;
16
  font-family: "proxima-nova", Arial, Helvetica, sans-serif;
17
 
18
  }
admin/partials/mailchimp-woocommerce-admin-tabs.php CHANGED
@@ -72,13 +72,6 @@ else {
72
  </div>
73
  <?php endif; ?>
74
 
75
- <?php
76
- $settings_errors = get_settings_errors();
77
- if (!$show_wizard || ($show_wizard && isset($settings_errors[0]) && $settings_errors[0]['type'] != 'updated' )) {
78
- settings_errors();
79
- }
80
- ?>
81
-
82
  <!-- Create a header in the default WordPress 'wrap' container -->
83
  <div class="mc-woocommerce-settings wrap">
84
 
@@ -190,7 +183,12 @@ else {
190
  </div>
191
  <?php endif; ?>
192
  <h2><!-- Needed to show the notifications on the right spot --></h2>
193
-
 
 
 
 
 
194
  <?php if ($active_tab != 'sync'): ?>
195
  <div class="tab-content-wrapper">
196
  <?php endif; ?>
72
  </div>
73
  <?php endif; ?>
74
 
 
 
 
 
 
 
 
75
  <!-- Create a header in the default WordPress 'wrap' container -->
76
  <div class="mc-woocommerce-settings wrap">
77
 
183
  </div>
184
  <?php endif; ?>
185
  <h2><!-- Needed to show the notifications on the right spot --></h2>
186
+ <?php
187
+ $settings_errors = get_settings_errors();
188
+ if (!$show_wizard || ($show_wizard && isset($settings_errors[0]) && $settings_errors[0]['type'] != 'updated' )) {
189
+ echo mailchimp_settings_errors();
190
+ }
191
+ ?>
192
  <?php if ($active_tab != 'sync'): ?>
193
  <div class="tab-content-wrapper">
194
  <?php endif; ?>
bootstrap.php CHANGED
@@ -90,7 +90,7 @@ function mailchimp_environment_variables() {
90
  return (object) array(
91
  'repo' => 'master',
92
  'environment' => 'production', // staging or production
93
- 'version' => '2.3.2',
94
  'php_version' => phpversion(),
95
  'wp_version' => (empty($wp_version) ? 'Unknown' : $wp_version),
96
  'wc_version' => function_exists('WC') ? WC()->version : null,
@@ -240,18 +240,35 @@ function mailchimp_get_list_id() {
240
  */
241
  function mailchimp_get_store_id() {
242
  $store_id = mailchimp_get_data('store_id', false);
 
 
 
 
 
 
 
 
 
 
 
 
 
243
  $api = mailchimp_get_api();
244
  if (mailchimp_is_configured()) {
 
245
  // let's retrieve the store for this domain, through the API
246
  $store = $api->getStore($store_id, false);
247
  // if there's no store, try to fetch from mc a store related to the current domain
248
  if (!$store) {
 
249
  $stores = $api->stores();
250
- //iterate thru stores, find correct store ID and save it to db
251
- foreach ($stores as $mc_store) {
252
- if ($mc_store->getDomain() === get_option('siteurl')) {
253
- update_option('mailchimp-woocommerce-store_id', $mc_store->getId(), 'yes');
254
- $store_id = $mc_store->getId();
 
 
255
  }
256
  }
257
  }
@@ -260,6 +277,11 @@ function mailchimp_get_store_id() {
260
  if (empty($store_id)) {
261
  mailchimp_set_data('store_id', $store_id = uniqid(), 'yes');
262
  }
 
 
 
 
 
263
  return $store_id;
264
  }
265
 
@@ -1021,6 +1043,37 @@ function mailchimp_update_member_with_double_opt_in(MailChimp_WooCommerce_Order
1021
  }
1022
  }
1023
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1024
  // Add WP CLI commands
1025
  if (defined( 'WP_CLI' ) && WP_CLI) {
1026
  try {
90
  return (object) array(
91
  'repo' => 'master',
92
  'environment' => 'production', // staging or production
93
+ 'version' => '2.3.4',
94
  'php_version' => phpversion(),
95
  'wp_version' => (empty($wp_version) ? 'Unknown' : $wp_version),
96
  'wc_version' => function_exists('WC') ? WC()->version : null,
240
  */
241
  function mailchimp_get_store_id() {
242
  $store_id = mailchimp_get_data('store_id', false);
243
+
244
+ // if the store ID is not empty, let's check the last time the store id's have been verified correctly
245
+ if (!empty($store_id)) {
246
+ // see if we have a record of the last verification set for this job.
247
+ $last_verification = mailchimp_get_data('store-id-last-verified');
248
+ // if it's less than 300 seconds, we don't need to beat up on Mailchimp's API to do this so often.
249
+ // just return the store ID that was in memory.
250
+ if ((!empty($last_verification) && is_numeric($last_verification)) && ((time() - $last_verification) < 600)) {
251
+ //mailchimp_log('debug.performance', 'prevented store endpoint api call');
252
+ return $store_id;
253
+ }
254
+ }
255
+
256
  $api = mailchimp_get_api();
257
  if (mailchimp_is_configured()) {
258
+ //mailchimp_log('debug.performance', 'get_store_id - calling STORE endpoint.');
259
  // let's retrieve the store for this domain, through the API
260
  $store = $api->getStore($store_id, false);
261
  // if there's no store, try to fetch from mc a store related to the current domain
262
  if (!$store) {
263
+ //mailchimp_log('debug.performance', 'get_store_id - no store found - calling STORES endpoint to update site id.');
264
  $stores = $api->stores();
265
+ if (!empty($stores)) {
266
+ //iterate thru stores, find correct store ID and save it to db
267
+ foreach ($stores as $mc_store) {
268
+ if ($mc_store->getDomain() === get_option('siteurl')) {
269
+ update_option('mailchimp-woocommerce-store_id', $mc_store->getId(), 'yes');
270
+ $store_id = $mc_store->getId();
271
+ }
272
  }
273
  }
274
  }
277
  if (empty($store_id)) {
278
  mailchimp_set_data('store_id', $store_id = uniqid(), 'yes');
279
  }
280
+
281
+ // tell the system the last time we verified this store ID is valid with a timestamp.
282
+ mailchimp_set_data('store-id-last-verified', time(), 'yes');
283
+ //mailchimp_log('debug.performance', 'setting store id in memory for 300 seconds.');
284
+
285
  return $store_id;
286
  }
287
 
1043
  }
1044
  }
1045
 
1046
+
1047
+ // call server to update comm status
1048
+ function mailchimp_update_communication_status() {
1049
+ $plugin_admin = MailChimp_WooCommerce_Admin::instance();
1050
+ $original_opt = $plugin_admin->getData('comm.opt',0);
1051
+ $admin_email = $plugin_admin->getOptions()['admin_email'];
1052
+
1053
+ $plugin_admin->mailchimp_set_communications_status_on_server($original_opt, $admin_email);
1054
+
1055
+ }
1056
+
1057
+ // call server to update comm status
1058
+ function mailchimp_remove_communication_status() {
1059
+ $plugin_admin = MailChimp_WooCommerce_Admin::instance();
1060
+ $original_opt = $plugin_admin->getData('comm.opt',0);
1061
+ $admin_email = $plugin_admin->getOptions()['admin_email'];
1062
+ $remove = true;
1063
+
1064
+ $plugin_admin->mailchimp_set_communications_status_on_server($original_opt, $admin_email, $remove);
1065
+ }
1066
+
1067
+ // Print notices outside woocommerce admin bar
1068
+ function mailchimp_settings_errors() {
1069
+ $settings_errors = get_settings_errors();
1070
+ $notices_html = '';
1071
+ foreach ($settings_errors as $notices) {
1072
+ $notices_html .= '<div id="setting-error-'. $notices['code'].'" class="notice notice-'. $notices['type'].' inline is-dismissible"><p>' . $notices['message'] . '</p></div>';
1073
+ }
1074
+ return $notices_html;
1075
+ }
1076
+
1077
  // Add WP CLI commands
1078
  if (defined( 'WP_CLI' ) && WP_CLI) {
1079
  try {
includes/api/class-mailchimp-woocommerce-transform-products.php CHANGED
@@ -258,7 +258,8 @@ class MailChimp_WooCommerce_Transform_Products
258
 
259
  public function getProductImage($post)
260
  {
261
- $meta = get_post_meta($post->ID);
 
262
  $key = '_thumbnail_id';
263
  $image_key = $this->getProductImageKey();
264
  if ($meta && is_array($meta) && array_key_exists($key, $meta) && isset($meta[$key][0])) {
@@ -270,7 +271,7 @@ class MailChimp_WooCommerce_Transform_Products
270
  return $img[0];
271
  }
272
  }
273
- return get_the_post_thumbnail_url($post->ID, $image_key);
274
  }
275
 
276
  /**
258
 
259
  public function getProductImage($post)
260
  {
261
+ $id = is_a($post, 'WC_Product') ? $post->get_id() : $post->ID;
262
+ $meta = get_post_meta($id);
263
  $key = '_thumbnail_id';
264
  $image_key = $this->getProductImageKey();
265
  if ($meta && is_array($meta) && array_key_exists($key, $meta) && isset($meta[$key][0])) {
271
  return $img[0];
272
  }
273
  }
274
+ return get_the_post_thumbnail_url($id, $image_key);
275
  }
276
 
277
  /**
includes/class-mailchimp-woocommerce-activator.php CHANGED
@@ -49,7 +49,10 @@ class MailChimp_WooCommerce_Activator {
49
  if (class_exists('MailChimp_WooCommerce_MailChimpApi')) {
50
  // try this now for existing stores on an update.
51
  mailchimp_update_connected_site_script();
52
- }
 
 
 
53
  }
54
 
55
  /**
49
  if (class_exists('MailChimp_WooCommerce_MailChimpApi')) {
50
  // try this now for existing stores on an update.
51
  mailchimp_update_connected_site_script();
52
+ }
53
+
54
+ // set initial comm status
55
+ mailchimp_update_communication_status();
56
  }
57
 
58
  /**
includes/class-mailchimp-woocommerce-service.php CHANGED
@@ -118,7 +118,9 @@ class MailChimp_Service extends MailChimp_WooCommerce_Options
118
  $tracking = $this->onNewOrder($order_id);
119
  $newOrder = true;
120
  }
121
-
 
 
122
  $this->onOrderSave($order_id, $tracking, $newOrder);
123
  }
124
 
@@ -456,12 +458,12 @@ class MailChimp_Service extends MailChimp_WooCommerce_Options
456
  }
457
  }
458
 
459
- if (isset($_REQUEST['mc_cid'])) {
460
- $this->setCampaignTrackingID($_REQUEST['mc_cid'], $cookie_duration);
461
  }
462
 
463
- if (isset($_REQUEST['mc_eid'])) {
464
- @setcookie('mailchimp_email_id', trim($_REQUEST['mc_eid']), $cookie_duration, '/' );
465
  }
466
  }
467
 
118
  $tracking = $this->onNewOrder($order_id);
119
  $newOrder = true;
120
  }
121
+
122
+ mailchimp_log('debug', "Order ID {$order_id} was {$old_status} and is now {$new_status}", array('new_order' => $newOrder, 'tracking' => $tracking));
123
+
124
  $this->onOrderSave($order_id, $tracking, $newOrder);
125
  }
126
 
458
  }
459
  }
460
 
461
+ if (isset($_GET['mc_cid'])) {
462
+ $this->setCampaignTrackingID($_GET['mc_cid'], $cookie_duration);
463
  }
464
 
465
+ if (isset($_GET['mc_eid'])) {
466
+ @setcookie('mailchimp_email_id', trim($_GET['mc_eid']), $cookie_duration, '/' );
467
  }
468
  }
469
 
includes/class-mailchimp-woocommerce.php CHANGED
@@ -226,7 +226,10 @@ class MailChimp_WooCommerce
226
  // Add menu item
227
  $this->loader->add_action('admin_menu', $plugin_admin, 'add_plugin_admin_menu');
228
 
229
- // Add Settings link to the plugin
 
 
 
230
  $plugin_basename = plugin_basename( plugin_dir_path( __DIR__ ) . $this->plugin_name . '.php');
231
  $this->loader->add_filter('plugin_action_links_' . $plugin_basename, $plugin_admin, 'add_action_links');
232
 
226
  // Add menu item
227
  $this->loader->add_action('admin_menu', $plugin_admin, 'add_plugin_admin_menu');
228
 
229
+ // Add WooCommerce Navigation Bar
230
+ $this->loader->add_action('admin_menu', $plugin_admin, 'add_woocommerce_navigation_bar');
231
+
232
+ // Add Settings link to the plugin
233
  $plugin_basename = plugin_basename( plugin_dir_path( __DIR__ ) . $this->plugin_name . '.php');
234
  $this->loader->add_filter('plugin_action_links_' . $plugin_basename, $plugin_admin, 'add_action_links');
235
 
includes/processes/class-mailchimp-woocommerce-abstract-sync.php CHANGED
@@ -227,6 +227,8 @@ abstract class MailChimp_WooCommerce_Abstract_Sync extends Mailchimp_Woocommerce
227
 
228
  // flag the store as sync_finished
229
  mailchimp_get_api()->flagStoreSync(mailchimp_get_store_id(), false);
 
 
230
 
231
  return $this;
232
  }
227
 
228
  // flag the store as sync_finished
229
  mailchimp_get_api()->flagStoreSync(mailchimp_get_store_id(), false);
230
+
231
+ mailchimp_update_communication_status();
232
 
233
  return $this;
234
  }
includes/vendor/action-scheduler/action-scheduler.php CHANGED
@@ -5,7 +5,7 @@
5
  * Description: A robust scheduling library for use in WordPress plugins.
6
  * Author: Automattic
7
  * Author URI: https://automattic.com/
8
- * Version: 3.1.0
9
  * License: GPLv3
10
  *
11
  * Copyright 2019 Automattic, Inc. (https://automattic.com/contact/)
@@ -25,35 +25,28 @@
25
  *
26
  */
27
 
28
- if ( ! function_exists( 'action_scheduler_register_3_dot_1_dot_0' ) ) {
29
 
30
  if ( ! class_exists( 'ActionScheduler_Versions' ) ) {
31
  require_once( 'classes/ActionScheduler_Versions.php' );
32
  add_action( 'plugins_loaded', array( 'ActionScheduler_Versions', 'initialize_latest_version' ), 1, 0 );
33
  }
34
 
35
- add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_1_dot_0', 0, 0 );
36
 
37
- function action_scheduler_register_3_dot_1_dot_0() {
38
  $versions = ActionScheduler_Versions::instance();
39
- $versions->register( '3.1.0', 'action_scheduler_initialize_3_dot_1_dot_0' );
40
  }
41
 
42
- function action_scheduler_initialize_3_dot_1_dot_0() {
43
- $autoloader = __DIR__ . '/vendor/autoload.php';
44
- if ( is_readable( $autoloader ) ) {
45
- require_once( $autoloader );
46
- define( 'AS_COMPOSER_AUTOLOADING', true );
47
- } else {
48
- define( 'AS_COMPOSER_AUTOLOADING', false );
49
- require_once( 'classes/abstracts/ActionScheduler.php' );
50
- }
51
  ActionScheduler::init( __FILE__ );
52
  }
53
 
54
  // Support usage in themes - load this version if no plugin has loaded a version yet.
55
  if ( did_action( 'plugins_loaded' ) && ! class_exists( 'ActionScheduler' ) ) {
56
- action_scheduler_register_3_dot_1_dot_0();
57
  do_action( 'action_scheduler_pre_theme_init' );
58
  ActionScheduler_Versions::initialize_latest_version();
59
  }
5
  * Description: A robust scheduling library for use in WordPress plugins.
6
  * Author: Automattic
7
  * Author URI: https://automattic.com/
8
+ * Version: 3.1.1
9
  * License: GPLv3
10
  *
11
  * Copyright 2019 Automattic, Inc. (https://automattic.com/contact/)
25
  *
26
  */
27
 
28
+ if ( ! function_exists( 'action_scheduler_register_3_dot_1_dot_1' ) ) {
29
 
30
  if ( ! class_exists( 'ActionScheduler_Versions' ) ) {
31
  require_once( 'classes/ActionScheduler_Versions.php' );
32
  add_action( 'plugins_loaded', array( 'ActionScheduler_Versions', 'initialize_latest_version' ), 1, 0 );
33
  }
34
 
35
+ add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_1_dot_1', 0, 0 );
36
 
37
+ function action_scheduler_register_3_dot_1_dot_1() {
38
  $versions = ActionScheduler_Versions::instance();
39
+ $versions->register( '3.1.1', 'action_scheduler_initialize_3_dot_1_dot_1' );
40
  }
41
 
42
+ function action_scheduler_initialize_3_dot_1_dot_1() {
43
+ require_once( 'classes/abstracts/ActionScheduler.php' );
 
 
 
 
 
 
 
44
  ActionScheduler::init( __FILE__ );
45
  }
46
 
47
  // Support usage in themes - load this version if no plugin has loaded a version yet.
48
  if ( did_action( 'plugins_loaded' ) && ! class_exists( 'ActionScheduler' ) ) {
49
+ action_scheduler_initialize_3_dot_1_dot_1();
50
  do_action( 'action_scheduler_pre_theme_init' );
51
  ActionScheduler_Versions::initialize_latest_version();
52
  }
includes/vendor/action-scheduler/classes/ActionScheduler_DataController.php CHANGED
@@ -64,6 +64,15 @@ class ActionScheduler_DataController {
64
  update_option( self::STATUS_FLAG, self::STATUS_COMPLETE );
65
  }
66
 
 
 
 
 
 
 
 
 
 
67
  /**
68
  * Set the action store class name.
69
  *
@@ -157,6 +166,7 @@ class ActionScheduler_DataController {
157
  if ( self::is_migration_complete() ) {
158
  add_filter( 'action_scheduler_store_class', array( 'ActionScheduler_DataController', 'set_store_class' ), 100 );
159
  add_filter( 'action_scheduler_logger_class', array( 'ActionScheduler_DataController', 'set_logger_class' ), 100 );
 
160
  } elseif ( self::dependencies_met() ) {
161
  Controller::init();
162
  }
64
  update_option( self::STATUS_FLAG, self::STATUS_COMPLETE );
65
  }
66
 
67
+ /**
68
+ * Unmark migration when a plugin is de-activated. Will not work in case of silent activation, for example in an update.
69
+ * We do this to mitigate the bug of lost actions which happens if there was an AS 2.x to AS 3.x migration in the past, but that plugin is now
70
+ * deactivated and the site was running on AS 2.x again.
71
+ */
72
+ public static function mark_migration_incomplete() {
73
+ delete_option( self::STATUS_FLAG );
74
+ }
75
+
76
  /**
77
  * Set the action store class name.
78
  *
166
  if ( self::is_migration_complete() ) {
167
  add_filter( 'action_scheduler_store_class', array( 'ActionScheduler_DataController', 'set_store_class' ), 100 );
168
  add_filter( 'action_scheduler_logger_class', array( 'ActionScheduler_DataController', 'set_logger_class' ), 100 );
169
+ add_action( 'deactivate_plugin', array( 'ActionScheduler_DataController', 'mark_migration_incomplete' ) );
170
  } elseif ( self::dependencies_met() ) {
171
  Controller::init();
172
  }
includes/vendor/action-scheduler/classes/ActionScheduler_wcSystemStatus.php CHANGED
@@ -93,7 +93,6 @@ class ActionScheduler_wcSystemStatus {
93
  */
94
  protected function get_template( $status_labels, $action_counts, $oldest_and_newest ) {
95
  $as_version = ActionScheduler_Versions::instance()->latest_version();
96
- $autoloader = AS_COMPOSER_AUTOLOADING ? __( 'Composer', 'action-scheduler' ) : __( 'Internal', 'action-scheduler' );
97
  ?>
98
 
99
  <table class="wc_status_table widefat" cellspacing="0">
@@ -105,10 +104,6 @@ class ActionScheduler_wcSystemStatus {
105
  <td colspan="2" data-export-label="Version"><?php esc_html_e( 'Version:', 'action-scheduler' ); ?></td>
106
  <td colspan="3"><?php echo esc_html( $as_version ); ?></td>
107
  </tr>
108
- <tr>
109
- <td colspan="2" data-export-label="Version"><?php esc_html_e( 'Autoloader:', 'action-scheduler' ); ?></td>
110
- <td colspan="3"><?php echo esc_html( $autoloader ); ?></td>
111
- </tr>
112
  <tr>
113
  <td><strong><?php esc_html_e( 'Action Status', 'action-scheduler' ); ?></strong></td>
114
  <td class="help">&nbsp;</td>
93
  */
94
  protected function get_template( $status_labels, $action_counts, $oldest_and_newest ) {
95
  $as_version = ActionScheduler_Versions::instance()->latest_version();
 
96
  ?>
97
 
98
  <table class="wc_status_table widefat" cellspacing="0">
104
  <td colspan="2" data-export-label="Version"><?php esc_html_e( 'Version:', 'action-scheduler' ); ?></td>
105
  <td colspan="3"><?php echo esc_html( $as_version ); ?></td>
106
  </tr>
 
 
 
 
107
  <tr>
108
  <td><strong><?php esc_html_e( 'Action Status', 'action-scheduler' ); ?></strong></td>
109
  <td class="help">&nbsp;</td>
includes/vendor/action-scheduler/classes/abstracts/ActionScheduler.php CHANGED
@@ -130,9 +130,7 @@ abstract class ActionScheduler {
130
  */
131
  public static function init( $plugin_file ) {
132
  self::$plugin_file = $plugin_file;
133
- if ( ! AS_COMPOSER_AUTOLOADING ) {
134
- spl_autoload_register( array( __CLASS__, 'autoload' ) );
135
- }
136
 
137
  /**
138
  * Fires in the early stages of Action Scheduler init hook.
130
  */
131
  public static function init( $plugin_file ) {
132
  self::$plugin_file = $plugin_file;
133
+ spl_autoload_register( array( __CLASS__, 'autoload' ) );
 
 
134
 
135
  /**
136
  * Fires in the early stages of Action Scheduler init hook.
includes/vendor/action-scheduler/composer.json CHANGED
@@ -32,12 +32,5 @@
32
  "phpcs": "Analyze code against the WordPress coding standards with PHP_CodeSniffer",
33
  "phpcbf": "Fix coding standards warnings/errors automatically with PHP Code Beautifier"
34
  }
35
- },
36
- "autoload": {
37
- "classmap": [
38
- "classes/",
39
- "deprecated/",
40
- "lib/"
41
- ]
42
  }
43
  }
32
  "phpcs": "Analyze code against the WordPress coding standards with PHP_CodeSniffer",
33
  "phpcbf": "Fix coding standards warnings/errors automatically with PHP Code Beautifier"
34
  }
 
 
 
 
 
 
 
35
  }
36
  }
includes/vendor/action-scheduler/composer.lock CHANGED
@@ -9,16 +9,16 @@
9
  "packages-dev": [
10
  {
11
  "name": "composer/ca-bundle",
12
- "version": "1.2.4",
13
  "source": {
14
  "type": "git",
15
  "url": "https://github.com/composer/ca-bundle.git",
16
- "reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527"
17
  },
18
  "dist": {
19
  "type": "zip",
20
- "url": "https://api.github.com/repos/composer/ca-bundle/zipball/10bb96592168a0f8e8f6dcde3532d9fa50b0b527",
21
- "reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527",
22
  "shasum": ""
23
  },
24
  "require": {
@@ -29,7 +29,7 @@
29
  "require-dev": {
30
  "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8",
31
  "psr/log": "^1.0",
32
- "symfony/process": "^2.5 || ^3.0 || ^4.0"
33
  },
34
  "type": "library",
35
  "extra": {
@@ -61,20 +61,20 @@
61
  "ssl",
62
  "tls"
63
  ],
64
- "time": "2019-08-30T08:44:50+00:00"
65
  },
66
  {
67
  "name": "composer/composer",
68
- "version": "1.9.0",
69
  "source": {
70
  "type": "git",
71
  "url": "https://github.com/composer/composer.git",
72
- "reference": "314aa57fdcfc942065996f59fb73a8b3f74f3fa5"
73
  },
74
  "dist": {
75
  "type": "zip",
76
- "url": "https://api.github.com/repos/composer/composer/zipball/314aa57fdcfc942065996f59fb73a8b3f74f3fa5",
77
- "reference": "314aa57fdcfc942065996f59fb73a8b3f74f3fa5",
78
  "shasum": ""
79
  },
80
  "require": {
@@ -141,28 +141,27 @@
141
  "dependency",
142
  "package"
143
  ],
144
- "time": "2019-08-02T18:55:33+00:00"
145
  },
146
  {
147
  "name": "composer/semver",
148
- "version": "1.5.0",
149
  "source": {
150
  "type": "git",
151
  "url": "https://github.com/composer/semver.git",
152
- "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e"
153
  },
154
  "dist": {
155
  "type": "zip",
156
- "url": "https://api.github.com/repos/composer/semver/zipball/46d9139568ccb8d9e7cdd4539cab7347568a5e2e",
157
- "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e",
158
  "shasum": ""
159
  },
160
  "require": {
161
  "php": "^5.3.2 || ^7.0"
162
  },
163
  "require-dev": {
164
- "phpunit/phpunit": "^4.5 || ^5.0.5",
165
- "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0"
166
  },
167
  "type": "library",
168
  "extra": {
@@ -203,20 +202,20 @@
203
  "validation",
204
  "versioning"
205
  ],
206
- "time": "2019-03-19T17:25:45+00:00"
207
  },
208
  {
209
  "name": "composer/spdx-licenses",
210
- "version": "1.5.2",
211
  "source": {
212
  "type": "git",
213
  "url": "https://github.com/composer/spdx-licenses.git",
214
- "reference": "7ac1e6aec371357df067f8a688c3d6974df68fa5"
215
  },
216
  "dist": {
217
  "type": "zip",
218
- "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/7ac1e6aec371357df067f8a688c3d6974df68fa5",
219
- "reference": "7ac1e6aec371357df067f8a688c3d6974df68fa5",
220
  "shasum": ""
221
  },
222
  "require": {
@@ -263,28 +262,28 @@
263
  "spdx",
264
  "validator"
265
  ],
266
- "time": "2019-07-29T10:31:59+00:00"
267
  },
268
  {
269
  "name": "composer/xdebug-handler",
270
- "version": "1.3.3",
271
  "source": {
272
  "type": "git",
273
  "url": "https://github.com/composer/xdebug-handler.git",
274
- "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f"
275
  },
276
  "dist": {
277
  "type": "zip",
278
- "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/46867cbf8ca9fb8d60c506895449eb799db1184f",
279
- "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f",
280
  "shasum": ""
281
  },
282
  "require": {
283
- "php": "^5.3.2 || ^7.0",
284
  "psr/log": "^1.0"
285
  },
286
  "require-dev": {
287
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
288
  },
289
  "type": "library",
290
  "autoload": {
@@ -302,12 +301,12 @@
302
  "email": "john-stevenson@blueyonder.co.uk"
303
  }
304
  ],
305
- "description": "Restarts a process without xdebug.",
306
  "keywords": [
307
  "Xdebug",
308
  "performance"
309
  ],
310
- "time": "2019-05-27T17:52:04+00:00"
311
  },
312
  {
313
  "name": "dealerdirect/phpcodesniffer-composer-installer",
@@ -377,16 +376,16 @@
377
  },
378
  {
379
  "name": "doctrine/instantiator",
380
- "version": "1.2.0",
381
  "source": {
382
  "type": "git",
383
  "url": "https://github.com/doctrine/instantiator.git",
384
- "reference": "a2c590166b2133a4633738648b6b064edae0814a"
385
  },
386
  "dist": {
387
  "type": "zip",
388
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a",
389
- "reference": "a2c590166b2133a4633738648b6b064edae0814a",
390
  "shasum": ""
391
  },
392
  "require": {
@@ -429,7 +428,7 @@
429
  "constructor",
430
  "instantiate"
431
  ],
432
- "time": "2019-03-17T17:37:11+00:00"
433
  },
434
  {
435
  "name": "justinrainbow/json-schema",
@@ -499,16 +498,16 @@
499
  },
500
  {
501
  "name": "mustache/mustache",
502
- "version": "v2.12.0",
503
  "source": {
504
  "type": "git",
505
  "url": "https://github.com/bobthecow/mustache.php.git",
506
- "reference": "fe8fe72e9d580591854de404cc59a1b83ca4d19e"
507
  },
508
  "dist": {
509
  "type": "zip",
510
- "url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/fe8fe72e9d580591854de404cc59a1b83ca4d19e",
511
- "reference": "fe8fe72e9d580591854de404cc59a1b83ca4d19e",
512
  "shasum": ""
513
  },
514
  "require": {
@@ -541,20 +540,20 @@
541
  "mustache",
542
  "templating"
543
  ],
544
- "time": "2017-07-11T12:54:05+00:00"
545
  },
546
  {
547
  "name": "myclabs/deep-copy",
548
- "version": "1.9.3",
549
  "source": {
550
  "type": "git",
551
  "url": "https://github.com/myclabs/DeepCopy.git",
552
- "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea"
553
  },
554
  "dist": {
555
  "type": "zip",
556
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea",
557
- "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea",
558
  "shasum": ""
559
  },
560
  "require": {
@@ -589,7 +588,7 @@
589
  "object",
590
  "object graph"
591
  ],
592
- "time": "2019-08-09T12:45:53+00:00"
593
  },
594
  {
595
  "name": "nb/oxymel",
@@ -634,16 +633,16 @@
634
  },
635
  {
636
  "name": "phpcompatibility/php-compatibility",
637
- "version": "9.3.2",
638
  "source": {
639
  "type": "git",
640
  "url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
641
- "reference": "bfca2be3992f40e92206e5a7ebe5eaee37280b58"
642
  },
643
  "dist": {
644
  "type": "zip",
645
- "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/bfca2be3992f40e92206e5a7ebe5eaee37280b58",
646
- "reference": "bfca2be3992f40e92206e5a7ebe5eaee37280b58",
647
  "shasum": ""
648
  },
649
  "require": {
@@ -688,20 +687,20 @@
688
  "phpcs",
689
  "standards"
690
  ],
691
- "time": "2019-10-16T21:24:24+00:00"
692
  },
693
  {
694
  "name": "phpcompatibility/phpcompatibility-paragonie",
695
- "version": "1.2.0",
696
  "source": {
697
  "type": "git",
698
  "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git",
699
- "reference": "94b2388c4fe99e9e2ef0772e280fa0eafa1d0603"
700
  },
701
  "dist": {
702
  "type": "zip",
703
- "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/94b2388c4fe99e9e2ef0772e280fa0eafa1d0603",
704
- "reference": "94b2388c4fe99e9e2ef0772e280fa0eafa1d0603",
705
  "shasum": ""
706
  },
707
  "require": {
@@ -740,7 +739,7 @@
740
  "polyfill",
741
  "standards"
742
  ],
743
- "time": "2019-10-16T21:41:26+00:00"
744
  },
745
  {
746
  "name": "phpcompatibility/phpcompatibility-wp",
@@ -846,16 +845,16 @@
846
  },
847
  {
848
  "name": "phpdocumentor/reflection-docblock",
849
- "version": "4.3.2",
850
  "source": {
851
  "type": "git",
852
  "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
853
- "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e"
854
  },
855
  "dist": {
856
  "type": "zip",
857
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e",
858
- "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e",
859
  "shasum": ""
860
  },
861
  "require": {
@@ -867,6 +866,7 @@
867
  "require-dev": {
868
  "doctrine/instantiator": "^1.0.5",
869
  "mockery/mockery": "^1.0",
 
870
  "phpunit/phpunit": "^6.4"
871
  },
872
  "type": "library",
@@ -893,7 +893,7 @@
893
  }
894
  ],
895
  "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
896
- "time": "2019-09-12T14:27:41+00:00"
897
  },
898
  {
899
  "name": "phpdocumentor/type-resolver",
@@ -944,33 +944,33 @@
944
  },
945
  {
946
  "name": "phpspec/prophecy",
947
- "version": "1.9.0",
948
  "source": {
949
  "type": "git",
950
  "url": "https://github.com/phpspec/prophecy.git",
951
- "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203"
952
  },
953
  "dist": {
954
  "type": "zip",
955
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/f6811d96d97bdf400077a0cc100ae56aa32b9203",
956
- "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203",
957
  "shasum": ""
958
  },
959
  "require": {
960
  "doctrine/instantiator": "^1.0.2",
961
  "php": "^5.3|^7.0",
962
  "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
963
- "sebastian/comparator": "^1.1|^2.0|^3.0",
964
- "sebastian/recursion-context": "^1.0|^2.0|^3.0"
965
  },
966
  "require-dev": {
967
- "phpspec/phpspec": "^2.5|^3.2",
968
  "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
969
  },
970
  "type": "library",
971
  "extra": {
972
  "branch-alias": {
973
- "dev-master": "1.8.x-dev"
974
  }
975
  },
976
  "autoload": {
@@ -1003,7 +1003,7 @@
1003
  "spy",
1004
  "stub"
1005
  ],
1006
- "time": "2019-10-03T11:07:50+00:00"
1007
  },
1008
  {
1009
  "name": "phpunit/php-code-coverage",
@@ -1447,16 +1447,16 @@
1447
  },
1448
  {
1449
  "name": "psr/log",
1450
- "version": "1.1.1",
1451
  "source": {
1452
  "type": "git",
1453
  "url": "https://github.com/php-fig/log.git",
1454
- "reference": "bf73deb2b3b896a9d9c75f3f0d88185d2faa27e2"
1455
  },
1456
  "dist": {
1457
  "type": "zip",
1458
- "url": "https://api.github.com/repos/php-fig/log/zipball/bf73deb2b3b896a9d9c75f3f0d88185d2faa27e2",
1459
- "reference": "bf73deb2b3b896a9d9c75f3f0d88185d2faa27e2",
1460
  "shasum": ""
1461
  },
1462
  "require": {
@@ -1490,7 +1490,7 @@
1490
  "psr",
1491
  "psr-3"
1492
  ],
1493
- "time": "2019-10-25T08:06:51+00:00"
1494
  },
1495
  {
1496
  "name": "ramsey/array_column",
@@ -2151,16 +2151,16 @@
2151
  },
2152
  {
2153
  "name": "seld/phar-utils",
2154
- "version": "1.0.1",
2155
  "source": {
2156
  "type": "git",
2157
  "url": "https://github.com/Seldaek/phar-utils.git",
2158
- "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a"
2159
  },
2160
  "dist": {
2161
  "type": "zip",
2162
- "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/7009b5139491975ef6486545a39f3e6dad5ac30a",
2163
- "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a",
2164
  "shasum": ""
2165
  },
2166
  "require": {
@@ -2189,22 +2189,22 @@
2189
  ],
2190
  "description": "PHAR file format utilities, for when PHP phars you up",
2191
  "keywords": [
2192
- "phra"
2193
  ],
2194
- "time": "2015-10-13T18:44:15+00:00"
2195
  },
2196
  {
2197
  "name": "squizlabs/php_codesniffer",
2198
- "version": "3.5.1",
2199
  "source": {
2200
  "type": "git",
2201
  "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
2202
- "reference": "82cd0f854ceca17731d6d019c7098e3755c45060"
2203
  },
2204
  "dist": {
2205
  "type": "zip",
2206
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/82cd0f854ceca17731d6d019c7098e3755c45060",
2207
- "reference": "82cd0f854ceca17731d6d019c7098e3755c45060",
2208
  "shasum": ""
2209
  },
2210
  "require": {
@@ -2242,20 +2242,20 @@
2242
  "phpcs",
2243
  "standards"
2244
  ],
2245
- "time": "2019-10-16T21:14:26+00:00"
2246
  },
2247
  {
2248
  "name": "symfony/config",
2249
- "version": "v3.4.32",
2250
  "source": {
2251
  "type": "git",
2252
  "url": "https://github.com/symfony/config.git",
2253
- "reference": "717ad66b5257e9752ae3c5722b5810bb4c40b236"
2254
  },
2255
  "dist": {
2256
  "type": "zip",
2257
- "url": "https://api.github.com/repos/symfony/config/zipball/717ad66b5257e9752ae3c5722b5810bb4c40b236",
2258
- "reference": "717ad66b5257e9752ae3c5722b5810bb4c40b236",
2259
  "shasum": ""
2260
  },
2261
  "require": {
@@ -2306,20 +2306,20 @@
2306
  ],
2307
  "description": "Symfony Config Component",
2308
  "homepage": "https://symfony.com",
2309
- "time": "2019-09-19T15:32:51+00:00"
2310
  },
2311
  {
2312
  "name": "symfony/console",
2313
- "version": "v3.4.32",
2314
  "source": {
2315
  "type": "git",
2316
  "url": "https://github.com/symfony/console.git",
2317
- "reference": "4727d7f3c99b9dea0ae70ed4f34645728aa90453"
2318
  },
2319
  "dist": {
2320
  "type": "zip",
2321
- "url": "https://api.github.com/repos/symfony/console/zipball/4727d7f3c99b9dea0ae70ed4f34645728aa90453",
2322
- "reference": "4727d7f3c99b9dea0ae70ed4f34645728aa90453",
2323
  "shasum": ""
2324
  },
2325
  "require": {
@@ -2378,20 +2378,20 @@
2378
  ],
2379
  "description": "Symfony Console Component",
2380
  "homepage": "https://symfony.com",
2381
- "time": "2019-10-06T19:52:09+00:00"
2382
  },
2383
  {
2384
  "name": "symfony/debug",
2385
- "version": "v3.4.32",
2386
  "source": {
2387
  "type": "git",
2388
  "url": "https://github.com/symfony/debug.git",
2389
- "reference": "b3e7ce815d82196435d16dc458023f8fb6b36ceb"
2390
  },
2391
  "dist": {
2392
  "type": "zip",
2393
- "url": "https://api.github.com/repos/symfony/debug/zipball/b3e7ce815d82196435d16dc458023f8fb6b36ceb",
2394
- "reference": "b3e7ce815d82196435d16dc458023f8fb6b36ceb",
2395
  "shasum": ""
2396
  },
2397
  "require": {
@@ -2434,20 +2434,20 @@
2434
  ],
2435
  "description": "Symfony Debug Component",
2436
  "homepage": "https://symfony.com",
2437
- "time": "2019-09-19T15:32:51+00:00"
2438
  },
2439
  {
2440
  "name": "symfony/dependency-injection",
2441
- "version": "v3.4.32",
2442
  "source": {
2443
  "type": "git",
2444
  "url": "https://github.com/symfony/dependency-injection.git",
2445
- "reference": "9cf81798f857205c5bbb4c8c7895f838d40b0c4b"
2446
  },
2447
  "dist": {
2448
  "type": "zip",
2449
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/9cf81798f857205c5bbb4c8c7895f838d40b0c4b",
2450
- "reference": "9cf81798f857205c5bbb4c8c7895f838d40b0c4b",
2451
  "shasum": ""
2452
  },
2453
  "require": {
@@ -2505,20 +2505,20 @@
2505
  ],
2506
  "description": "Symfony DependencyInjection Component",
2507
  "homepage": "https://symfony.com",
2508
- "time": "2019-09-27T15:47:48+00:00"
2509
  },
2510
  {
2511
  "name": "symfony/event-dispatcher",
2512
- "version": "v3.4.32",
2513
  "source": {
2514
  "type": "git",
2515
  "url": "https://github.com/symfony/event-dispatcher.git",
2516
- "reference": "3e922c4c3430b9de624e8a285dada5e61e230959"
2517
  },
2518
  "dist": {
2519
  "type": "zip",
2520
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3e922c4c3430b9de624e8a285dada5e61e230959",
2521
- "reference": "3e922c4c3430b9de624e8a285dada5e61e230959",
2522
  "shasum": ""
2523
  },
2524
  "require": {
@@ -2568,20 +2568,20 @@
2568
  ],
2569
  "description": "Symfony EventDispatcher Component",
2570
  "homepage": "https://symfony.com",
2571
- "time": "2019-08-23T08:05:57+00:00"
2572
  },
2573
  {
2574
  "name": "symfony/filesystem",
2575
- "version": "v3.4.32",
2576
  "source": {
2577
  "type": "git",
2578
  "url": "https://github.com/symfony/filesystem.git",
2579
- "reference": "00e3a6ddd723b8bcfe4f2a1b6f82b98eeeb51516"
2580
  },
2581
  "dist": {
2582
  "type": "zip",
2583
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/00e3a6ddd723b8bcfe4f2a1b6f82b98eeeb51516",
2584
- "reference": "00e3a6ddd723b8bcfe4f2a1b6f82b98eeeb51516",
2585
  "shasum": ""
2586
  },
2587
  "require": {
@@ -2618,20 +2618,20 @@
2618
  ],
2619
  "description": "Symfony Filesystem Component",
2620
  "homepage": "https://symfony.com",
2621
- "time": "2019-08-20T13:31:17+00:00"
2622
  },
2623
  {
2624
  "name": "symfony/finder",
2625
- "version": "v3.4.32",
2626
  "source": {
2627
  "type": "git",
2628
  "url": "https://github.com/symfony/finder.git",
2629
- "reference": "2b6a666d6ff7fb65d10b97d817c8e7930944afb9"
2630
  },
2631
  "dist": {
2632
  "type": "zip",
2633
- "url": "https://api.github.com/repos/symfony/finder/zipball/2b6a666d6ff7fb65d10b97d817c8e7930944afb9",
2634
- "reference": "2b6a666d6ff7fb65d10b97d817c8e7930944afb9",
2635
  "shasum": ""
2636
  },
2637
  "require": {
@@ -2667,20 +2667,20 @@
2667
  ],
2668
  "description": "Symfony Finder Component",
2669
  "homepage": "https://symfony.com",
2670
- "time": "2019-09-01T21:32:23+00:00"
2671
  },
2672
  {
2673
  "name": "symfony/polyfill-ctype",
2674
- "version": "v1.12.0",
2675
  "source": {
2676
  "type": "git",
2677
  "url": "https://github.com/symfony/polyfill-ctype.git",
2678
- "reference": "550ebaac289296ce228a706d0867afc34687e3f4"
2679
  },
2680
  "dist": {
2681
  "type": "zip",
2682
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4",
2683
- "reference": "550ebaac289296ce228a706d0867afc34687e3f4",
2684
  "shasum": ""
2685
  },
2686
  "require": {
@@ -2692,7 +2692,7 @@
2692
  "type": "library",
2693
  "extra": {
2694
  "branch-alias": {
2695
- "dev-master": "1.12-dev"
2696
  }
2697
  },
2698
  "autoload": {
@@ -2725,20 +2725,20 @@
2725
  "polyfill",
2726
  "portable"
2727
  ],
2728
- "time": "2019-08-06T08:03:45+00:00"
2729
  },
2730
  {
2731
  "name": "symfony/polyfill-mbstring",
2732
- "version": "v1.12.0",
2733
  "source": {
2734
  "type": "git",
2735
  "url": "https://github.com/symfony/polyfill-mbstring.git",
2736
- "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17"
2737
  },
2738
  "dist": {
2739
  "type": "zip",
2740
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17",
2741
- "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17",
2742
  "shasum": ""
2743
  },
2744
  "require": {
@@ -2750,7 +2750,7 @@
2750
  "type": "library",
2751
  "extra": {
2752
  "branch-alias": {
2753
- "dev-master": "1.12-dev"
2754
  }
2755
  },
2756
  "autoload": {
@@ -2784,20 +2784,20 @@
2784
  "portable",
2785
  "shim"
2786
  ],
2787
- "time": "2019-08-06T08:03:45+00:00"
2788
  },
2789
  {
2790
  "name": "symfony/process",
2791
- "version": "v3.4.32",
2792
  "source": {
2793
  "type": "git",
2794
  "url": "https://github.com/symfony/process.git",
2795
- "reference": "344dc588b163ff58274f1769b90b75237f32ed16"
2796
  },
2797
  "dist": {
2798
  "type": "zip",
2799
- "url": "https://api.github.com/repos/symfony/process/zipball/344dc588b163ff58274f1769b90b75237f32ed16",
2800
- "reference": "344dc588b163ff58274f1769b90b75237f32ed16",
2801
  "shasum": ""
2802
  },
2803
  "require": {
@@ -2833,20 +2833,20 @@
2833
  ],
2834
  "description": "Symfony Process Component",
2835
  "homepage": "https://symfony.com",
2836
- "time": "2019-09-25T14:09:38+00:00"
2837
  },
2838
  {
2839
  "name": "symfony/translation",
2840
- "version": "v3.4.32",
2841
  "source": {
2842
  "type": "git",
2843
  "url": "https://github.com/symfony/translation.git",
2844
- "reference": "dd313664be0588560acacb252543b585f5408547"
2845
  },
2846
  "dist": {
2847
  "type": "zip",
2848
- "url": "https://api.github.com/repos/symfony/translation/zipball/dd313664be0588560acacb252543b585f5408547",
2849
- "reference": "dd313664be0588560acacb252543b585f5408547",
2850
  "shasum": ""
2851
  },
2852
  "require": {
@@ -2903,20 +2903,20 @@
2903
  ],
2904
  "description": "Symfony Translation Component",
2905
  "homepage": "https://symfony.com",
2906
- "time": "2019-09-27T05:57:25+00:00"
2907
  },
2908
  {
2909
  "name": "symfony/yaml",
2910
- "version": "v3.4.32",
2911
  "source": {
2912
  "type": "git",
2913
  "url": "https://github.com/symfony/yaml.git",
2914
- "reference": "768f817446da74a776a31eea335540f9dcb53942"
2915
  },
2916
  "dist": {
2917
  "type": "zip",
2918
- "url": "https://api.github.com/repos/symfony/yaml/zipball/768f817446da74a776a31eea335540f9dcb53942",
2919
- "reference": "768f817446da74a776a31eea335540f9dcb53942",
2920
  "shasum": ""
2921
  },
2922
  "require": {
@@ -2962,35 +2962,33 @@
2962
  ],
2963
  "description": "Symfony Yaml Component",
2964
  "homepage": "https://symfony.com",
2965
- "time": "2019-09-10T10:38:46+00:00"
2966
  },
2967
  {
2968
  "name": "webmozart/assert",
2969
- "version": "1.5.0",
2970
  "source": {
2971
  "type": "git",
2972
  "url": "https://github.com/webmozart/assert.git",
2973
- "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4"
2974
  },
2975
  "dist": {
2976
  "type": "zip",
2977
- "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4",
2978
- "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4",
2979
  "shasum": ""
2980
  },
2981
  "require": {
2982
  "php": "^5.3.3 || ^7.0",
2983
  "symfony/polyfill-ctype": "^1.8"
2984
  },
 
 
 
2985
  "require-dev": {
2986
  "phpunit/phpunit": "^4.8.36 || ^7.5.13"
2987
  },
2988
  "type": "library",
2989
- "extra": {
2990
- "branch-alias": {
2991
- "dev-master": "1.3-dev"
2992
- }
2993
- },
2994
  "autoload": {
2995
  "psr-4": {
2996
  "Webmozart\\Assert\\": "src/"
@@ -3012,7 +3010,7 @@
3012
  "check",
3013
  "validate"
3014
  ],
3015
- "time": "2019-08-24T08:43:50+00:00"
3016
  },
3017
  {
3018
  "name": "woocommerce/woocommerce-sniffs",
9
  "packages-dev": [
10
  {
11
  "name": "composer/ca-bundle",
12
+ "version": "1.2.6",
13
  "source": {
14
  "type": "git",
15
  "url": "https://github.com/composer/ca-bundle.git",
16
+ "reference": "47fe531de31fca4a1b997f87308e7d7804348f7e"
17
  },
18
  "dist": {
19
  "type": "zip",
20
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/47fe531de31fca4a1b997f87308e7d7804348f7e",
21
+ "reference": "47fe531de31fca4a1b997f87308e7d7804348f7e",
22
  "shasum": ""
23
  },
24
  "require": {
29
  "require-dev": {
30
  "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8",
31
  "psr/log": "^1.0",
32
+ "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0"
33
  },
34
  "type": "library",
35
  "extra": {
61
  "ssl",
62
  "tls"
63
  ],
64
+ "time": "2020-01-13T10:02:55+00:00"
65
  },
66
  {
67
  "name": "composer/composer",
68
+ "version": "1.9.3",
69
  "source": {
70
  "type": "git",
71
  "url": "https://github.com/composer/composer.git",
72
+ "reference": "1291a16ce3f48bfdeca39d64fca4875098af4d7b"
73
  },
74
  "dist": {
75
  "type": "zip",
76
+ "url": "https://api.github.com/repos/composer/composer/zipball/1291a16ce3f48bfdeca39d64fca4875098af4d7b",
77
+ "reference": "1291a16ce3f48bfdeca39d64fca4875098af4d7b",
78
  "shasum": ""
79
  },
80
  "require": {
141
  "dependency",
142
  "package"
143
  ],
144
+ "time": "2020-02-04T11:58:49+00:00"
145
  },
146
  {
147
  "name": "composer/semver",
148
+ "version": "1.5.1",
149
  "source": {
150
  "type": "git",
151
  "url": "https://github.com/composer/semver.git",
152
+ "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de"
153
  },
154
  "dist": {
155
  "type": "zip",
156
+ "url": "https://api.github.com/repos/composer/semver/zipball/c6bea70230ef4dd483e6bbcab6005f682ed3a8de",
157
+ "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de",
158
  "shasum": ""
159
  },
160
  "require": {
161
  "php": "^5.3.2 || ^7.0"
162
  },
163
  "require-dev": {
164
+ "phpunit/phpunit": "^4.5 || ^5.0.5"
 
165
  },
166
  "type": "library",
167
  "extra": {
202
  "validation",
203
  "versioning"
204
  ],
205
+ "time": "2020-01-13T12:06:48+00:00"
206
  },
207
  {
208
  "name": "composer/spdx-licenses",
209
+ "version": "1.5.3",
210
  "source": {
211
  "type": "git",
212
  "url": "https://github.com/composer/spdx-licenses.git",
213
+ "reference": "0c3e51e1880ca149682332770e25977c70cf9dae"
214
  },
215
  "dist": {
216
  "type": "zip",
217
+ "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/0c3e51e1880ca149682332770e25977c70cf9dae",
218
+ "reference": "0c3e51e1880ca149682332770e25977c70cf9dae",
219
  "shasum": ""
220
  },
221
  "require": {
262
  "spdx",
263
  "validator"
264
  ],
265
+ "time": "2020-02-14T07:44:31+00:00"
266
  },
267
  {
268
  "name": "composer/xdebug-handler",
269
+ "version": "1.4.0",
270
  "source": {
271
  "type": "git",
272
  "url": "https://github.com/composer/xdebug-handler.git",
273
+ "reference": "cbe23383749496fe0f373345208b79568e4bc248"
274
  },
275
  "dist": {
276
  "type": "zip",
277
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/cbe23383749496fe0f373345208b79568e4bc248",
278
+ "reference": "cbe23383749496fe0f373345208b79568e4bc248",
279
  "shasum": ""
280
  },
281
  "require": {
282
+ "php": "^5.3.2 || ^7.0 || ^8.0",
283
  "psr/log": "^1.0"
284
  },
285
  "require-dev": {
286
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8"
287
  },
288
  "type": "library",
289
  "autoload": {
301
  "email": "john-stevenson@blueyonder.co.uk"
302
  }
303
  ],
304
+ "description": "Restarts a process without Xdebug.",
305
  "keywords": [
306
  "Xdebug",
307
  "performance"
308
  ],
309
+ "time": "2019-11-06T16:40:04+00:00"
310
  },
311
  {
312
  "name": "dealerdirect/phpcodesniffer-composer-installer",
376
  },
377
  {
378
  "name": "doctrine/instantiator",
379
+ "version": "1.3.0",
380
  "source": {
381
  "type": "git",
382
  "url": "https://github.com/doctrine/instantiator.git",
383
+ "reference": "ae466f726242e637cebdd526a7d991b9433bacf1"
384
  },
385
  "dist": {
386
  "type": "zip",
387
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1",
388
+ "reference": "ae466f726242e637cebdd526a7d991b9433bacf1",
389
  "shasum": ""
390
  },
391
  "require": {
428
  "constructor",
429
  "instantiate"
430
  ],
431
+ "time": "2019-10-21T16:45:58+00:00"
432
  },
433
  {
434
  "name": "justinrainbow/json-schema",
498
  },
499
  {
500
  "name": "mustache/mustache",
501
+ "version": "v2.13.0",
502
  "source": {
503
  "type": "git",
504
  "url": "https://github.com/bobthecow/mustache.php.git",
505
+ "reference": "e95c5a008c23d3151d59ea72484d4f72049ab7f4"
506
  },
507
  "dist": {
508
  "type": "zip",
509
+ "url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/e95c5a008c23d3151d59ea72484d4f72049ab7f4",
510
+ "reference": "e95c5a008c23d3151d59ea72484d4f72049ab7f4",
511
  "shasum": ""
512
  },
513
  "require": {
540
  "mustache",
541
  "templating"
542
  ],
543
+ "time": "2019-11-23T21:40:31+00:00"
544
  },
545
  {
546
  "name": "myclabs/deep-copy",
547
+ "version": "1.9.5",
548
  "source": {
549
  "type": "git",
550
  "url": "https://github.com/myclabs/DeepCopy.git",
551
+ "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef"
552
  },
553
  "dist": {
554
  "type": "zip",
555
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef",
556
+ "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef",
557
  "shasum": ""
558
  },
559
  "require": {
588
  "object",
589
  "object graph"
590
  ],
591
+ "time": "2020-01-17T21:11:47+00:00"
592
  },
593
  {
594
  "name": "nb/oxymel",
633
  },
634
  {
635
  "name": "phpcompatibility/php-compatibility",
636
+ "version": "9.3.5",
637
  "source": {
638
  "type": "git",
639
  "url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
640
+ "reference": "9fb324479acf6f39452e0655d2429cc0d3914243"
641
  },
642
  "dist": {
643
  "type": "zip",
644
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243",
645
+ "reference": "9fb324479acf6f39452e0655d2429cc0d3914243",
646
  "shasum": ""
647
  },
648
  "require": {
687
  "phpcs",
688
  "standards"
689
  ],
690
+ "time": "2019-12-27T09:44:58+00:00"
691
  },
692
  {
693
  "name": "phpcompatibility/phpcompatibility-paragonie",
694
+ "version": "1.3.0",
695
  "source": {
696
  "type": "git",
697
  "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git",
698
+ "reference": "b862bc32f7e860d0b164b199bd995e690b4b191c"
699
  },
700
  "dist": {
701
  "type": "zip",
702
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/b862bc32f7e860d0b164b199bd995e690b4b191c",
703
+ "reference": "b862bc32f7e860d0b164b199bd995e690b4b191c",
704
  "shasum": ""
705
  },
706
  "require": {
739
  "polyfill",
740
  "standards"
741
  ],
742
+ "time": "2019-11-04T15:17:54+00:00"
743
  },
744
  {
745
  "name": "phpcompatibility/phpcompatibility-wp",
845
  },
846
  {
847
  "name": "phpdocumentor/reflection-docblock",
848
+ "version": "4.3.4",
849
  "source": {
850
  "type": "git",
851
  "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
852
+ "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c"
853
  },
854
  "dist": {
855
  "type": "zip",
856
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c",
857
+ "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c",
858
  "shasum": ""
859
  },
860
  "require": {
866
  "require-dev": {
867
  "doctrine/instantiator": "^1.0.5",
868
  "mockery/mockery": "^1.0",
869
+ "phpdocumentor/type-resolver": "0.4.*",
870
  "phpunit/phpunit": "^6.4"
871
  },
872
  "type": "library",
893
  }
894
  ],
895
  "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
896
+ "time": "2019-12-28T18:55:12+00:00"
897
  },
898
  {
899
  "name": "phpdocumentor/type-resolver",
944
  },
945
  {
946
  "name": "phpspec/prophecy",
947
+ "version": "v1.10.2",
948
  "source": {
949
  "type": "git",
950
  "url": "https://github.com/phpspec/prophecy.git",
951
+ "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9"
952
  },
953
  "dist": {
954
  "type": "zip",
955
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9",
956
+ "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9",
957
  "shasum": ""
958
  },
959
  "require": {
960
  "doctrine/instantiator": "^1.0.2",
961
  "php": "^5.3|^7.0",
962
  "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
963
+ "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
964
+ "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
965
  },
966
  "require-dev": {
967
+ "phpspec/phpspec": "^2.5 || ^3.2",
968
  "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
969
  },
970
  "type": "library",
971
  "extra": {
972
  "branch-alias": {
973
+ "dev-master": "1.10.x-dev"
974
  }
975
  },
976
  "autoload": {
1003
  "spy",
1004
  "stub"
1005
  ],
1006
+ "time": "2020-01-20T15:57:02+00:00"
1007
  },
1008
  {
1009
  "name": "phpunit/php-code-coverage",
1447
  },
1448
  {
1449
  "name": "psr/log",
1450
+ "version": "1.1.2",
1451
  "source": {
1452
  "type": "git",
1453
  "url": "https://github.com/php-fig/log.git",
1454
+ "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801"
1455
  },
1456
  "dist": {
1457
  "type": "zip",
1458
+ "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801",
1459
+ "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801",
1460
  "shasum": ""
1461
  },
1462
  "require": {
1490
  "psr",
1491
  "psr-3"
1492
  ],
1493
+ "time": "2019-11-01T11:05:21+00:00"
1494
  },
1495
  {
1496
  "name": "ramsey/array_column",
2151
  },
2152
  {
2153
  "name": "seld/phar-utils",
2154
+ "version": "1.1.0",
2155
  "source": {
2156
  "type": "git",
2157
  "url": "https://github.com/Seldaek/phar-utils.git",
2158
+ "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0"
2159
  },
2160
  "dist": {
2161
  "type": "zip",
2162
+ "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8800503d56b9867d43d9c303b9cbcc26016e82f0",
2163
+ "reference": "8800503d56b9867d43d9c303b9cbcc26016e82f0",
2164
  "shasum": ""
2165
  },
2166
  "require": {
2189
  ],
2190
  "description": "PHAR file format utilities, for when PHP phars you up",
2191
  "keywords": [
2192
+ "phar"
2193
  ],
2194
+ "time": "2020-02-14T15:25:33+00:00"
2195
  },
2196
  {
2197
  "name": "squizlabs/php_codesniffer",
2198
+ "version": "3.5.4",
2199
  "source": {
2200
  "type": "git",
2201
  "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
2202
+ "reference": "dceec07328401de6211037abbb18bda423677e26"
2203
  },
2204
  "dist": {
2205
  "type": "zip",
2206
+ "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dceec07328401de6211037abbb18bda423677e26",
2207
+ "reference": "dceec07328401de6211037abbb18bda423677e26",
2208
  "shasum": ""
2209
  },
2210
  "require": {
2242
  "phpcs",
2243
  "standards"
2244
  ],
2245
+ "time": "2020-01-30T22:20:29+00:00"
2246
  },
2247
  {
2248
  "name": "symfony/config",
2249
+ "version": "v3.4.37",
2250
  "source": {
2251
  "type": "git",
2252
  "url": "https://github.com/symfony/config.git",
2253
+ "reference": "6abc18b2a97f63508d23929bbb2ae65aaa07bace"
2254
  },
2255
  "dist": {
2256
  "type": "zip",
2257
+ "url": "https://api.github.com/repos/symfony/config/zipball/6abc18b2a97f63508d23929bbb2ae65aaa07bace",
2258
+ "reference": "6abc18b2a97f63508d23929bbb2ae65aaa07bace",
2259
  "shasum": ""
2260
  },
2261
  "require": {
2306
  ],
2307
  "description": "Symfony Config Component",
2308
  "homepage": "https://symfony.com",
2309
+ "time": "2020-01-04T12:05:51+00:00"
2310
  },
2311
  {
2312
  "name": "symfony/console",
2313
+ "version": "v3.4.37",
2314
  "source": {
2315
  "type": "git",
2316
  "url": "https://github.com/symfony/console.git",
2317
+ "reference": "7c5bdd346f9d90a2d22d4e1fe61e02dc19b98f12"
2318
  },
2319
  "dist": {
2320
  "type": "zip",
2321
+ "url": "https://api.github.com/repos/symfony/console/zipball/7c5bdd346f9d90a2d22d4e1fe61e02dc19b98f12",
2322
+ "reference": "7c5bdd346f9d90a2d22d4e1fe61e02dc19b98f12",
2323
  "shasum": ""
2324
  },
2325
  "require": {
2378
  ],
2379
  "description": "Symfony Console Component",
2380
  "homepage": "https://symfony.com",
2381
+ "time": "2020-01-10T07:52:48+00:00"
2382
  },
2383
  {
2384
  "name": "symfony/debug",
2385
+ "version": "v3.4.37",
2386
  "source": {
2387
  "type": "git",
2388
  "url": "https://github.com/symfony/debug.git",
2389
+ "reference": "70dd18e93bb8bdf3c4db7fde832619fef9828cf8"
2390
  },
2391
  "dist": {
2392
  "type": "zip",
2393
+ "url": "https://api.github.com/repos/symfony/debug/zipball/70dd18e93bb8bdf3c4db7fde832619fef9828cf8",
2394
+ "reference": "70dd18e93bb8bdf3c4db7fde832619fef9828cf8",
2395
  "shasum": ""
2396
  },
2397
  "require": {
2434
  ],
2435
  "description": "Symfony Debug Component",
2436
  "homepage": "https://symfony.com",
2437
+ "time": "2020-01-08T16:36:15+00:00"
2438
  },
2439
  {
2440
  "name": "symfony/dependency-injection",
2441
+ "version": "v3.4.37",
2442
  "source": {
2443
  "type": "git",
2444
  "url": "https://github.com/symfony/dependency-injection.git",
2445
+ "reference": "22000f10c9e1cfef051e8b4de46815b41a0223fc"
2446
  },
2447
  "dist": {
2448
  "type": "zip",
2449
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/22000f10c9e1cfef051e8b4de46815b41a0223fc",
2450
+ "reference": "22000f10c9e1cfef051e8b4de46815b41a0223fc",
2451
  "shasum": ""
2452
  },
2453
  "require": {
2505
  ],
2506
  "description": "Symfony DependencyInjection Component",
2507
  "homepage": "https://symfony.com",
2508
+ "time": "2020-01-08T11:20:51+00:00"
2509
  },
2510
  {
2511
  "name": "symfony/event-dispatcher",
2512
+ "version": "v3.4.37",
2513
  "source": {
2514
  "type": "git",
2515
  "url": "https://github.com/symfony/event-dispatcher.git",
2516
+ "reference": "79ede8f2836e5ec910ebb325bde40f987244baa8"
2517
  },
2518
  "dist": {
2519
  "type": "zip",
2520
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/79ede8f2836e5ec910ebb325bde40f987244baa8",
2521
+ "reference": "79ede8f2836e5ec910ebb325bde40f987244baa8",
2522
  "shasum": ""
2523
  },
2524
  "require": {
2568
  ],
2569
  "description": "Symfony EventDispatcher Component",
2570
  "homepage": "https://symfony.com",
2571
+ "time": "2020-01-04T12:05:51+00:00"
2572
  },
2573
  {
2574
  "name": "symfony/filesystem",
2575
+ "version": "v3.4.37",
2576
  "source": {
2577
  "type": "git",
2578
  "url": "https://github.com/symfony/filesystem.git",
2579
+ "reference": "0a0d3b4bda11aa3a0464531c40e681e184e75628"
2580
  },
2581
  "dist": {
2582
  "type": "zip",
2583
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/0a0d3b4bda11aa3a0464531c40e681e184e75628",
2584
+ "reference": "0a0d3b4bda11aa3a0464531c40e681e184e75628",
2585
  "shasum": ""
2586
  },
2587
  "require": {
2618
  ],
2619
  "description": "Symfony Filesystem Component",
2620
  "homepage": "https://symfony.com",
2621
+ "time": "2020-01-17T08:50:08+00:00"
2622
  },
2623
  {
2624
  "name": "symfony/finder",
2625
+ "version": "v3.4.37",
2626
  "source": {
2627
  "type": "git",
2628
  "url": "https://github.com/symfony/finder.git",
2629
+ "reference": "a90a9d3b9f458a5cdeabfa4090b20c000ca3962f"
2630
  },
2631
  "dist": {
2632
  "type": "zip",
2633
+ "url": "https://api.github.com/repos/symfony/finder/zipball/a90a9d3b9f458a5cdeabfa4090b20c000ca3962f",
2634
+ "reference": "a90a9d3b9f458a5cdeabfa4090b20c000ca3962f",
2635
  "shasum": ""
2636
  },
2637
  "require": {
2667
  ],
2668
  "description": "Symfony Finder Component",
2669
  "homepage": "https://symfony.com",
2670
+ "time": "2020-01-01T11:03:25+00:00"
2671
  },
2672
  {
2673
  "name": "symfony/polyfill-ctype",
2674
+ "version": "v1.14.0",
2675
  "source": {
2676
  "type": "git",
2677
  "url": "https://github.com/symfony/polyfill-ctype.git",
2678
+ "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38"
2679
  },
2680
  "dist": {
2681
  "type": "zip",
2682
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38",
2683
+ "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38",
2684
  "shasum": ""
2685
  },
2686
  "require": {
2692
  "type": "library",
2693
  "extra": {
2694
  "branch-alias": {
2695
+ "dev-master": "1.14-dev"
2696
  }
2697
  },
2698
  "autoload": {
2725
  "polyfill",
2726
  "portable"
2727
  ],
2728
+ "time": "2020-01-13T11:15:53+00:00"
2729
  },
2730
  {
2731
  "name": "symfony/polyfill-mbstring",
2732
+ "version": "v1.14.0",
2733
  "source": {
2734
  "type": "git",
2735
  "url": "https://github.com/symfony/polyfill-mbstring.git",
2736
+ "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2"
2737
  },
2738
  "dist": {
2739
  "type": "zip",
2740
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2",
2741
+ "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2",
2742
  "shasum": ""
2743
  },
2744
  "require": {
2750
  "type": "library",
2751
  "extra": {
2752
  "branch-alias": {
2753
+ "dev-master": "1.14-dev"
2754
  }
2755
  },
2756
  "autoload": {
2784
  "portable",
2785
  "shim"
2786
  ],
2787
+ "time": "2020-01-13T11:15:53+00:00"
2788
  },
2789
  {
2790
  "name": "symfony/process",
2791
+ "version": "v3.4.37",
2792
  "source": {
2793
  "type": "git",
2794
  "url": "https://github.com/symfony/process.git",
2795
+ "reference": "5b9d2bcffe4678911a4c941c00b7c161252cf09a"
2796
  },
2797
  "dist": {
2798
  "type": "zip",
2799
+ "url": "https://api.github.com/repos/symfony/process/zipball/5b9d2bcffe4678911a4c941c00b7c161252cf09a",
2800
+ "reference": "5b9d2bcffe4678911a4c941c00b7c161252cf09a",
2801
  "shasum": ""
2802
  },
2803
  "require": {
2833
  ],
2834
  "description": "Symfony Process Component",
2835
  "homepage": "https://symfony.com",
2836
+ "time": "2020-01-01T11:03:25+00:00"
2837
  },
2838
  {
2839
  "name": "symfony/translation",
2840
+ "version": "v3.4.37",
2841
  "source": {
2842
  "type": "git",
2843
  "url": "https://github.com/symfony/translation.git",
2844
+ "reference": "577ec9ba1d6443947c48058acc3de298ad25e2bf"
2845
  },
2846
  "dist": {
2847
  "type": "zip",
2848
+ "url": "https://api.github.com/repos/symfony/translation/zipball/577ec9ba1d6443947c48058acc3de298ad25e2bf",
2849
+ "reference": "577ec9ba1d6443947c48058acc3de298ad25e2bf",
2850
  "shasum": ""
2851
  },
2852
  "require": {
2903
  ],
2904
  "description": "Symfony Translation Component",
2905
  "homepage": "https://symfony.com",
2906
+ "time": "2020-01-04T12:05:51+00:00"
2907
  },
2908
  {
2909
  "name": "symfony/yaml",
2910
+ "version": "v3.4.37",
2911
  "source": {
2912
  "type": "git",
2913
  "url": "https://github.com/symfony/yaml.git",
2914
+ "reference": "aa46bc2233097d5212332c907f9911533acfbf80"
2915
  },
2916
  "dist": {
2917
  "type": "zip",
2918
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/aa46bc2233097d5212332c907f9911533acfbf80",
2919
+ "reference": "aa46bc2233097d5212332c907f9911533acfbf80",
2920
  "shasum": ""
2921
  },
2922
  "require": {
2962
  ],
2963
  "description": "Symfony Yaml Component",
2964
  "homepage": "https://symfony.com",
2965
+ "time": "2020-01-13T08:00:59+00:00"
2966
  },
2967
  {
2968
  "name": "webmozart/assert",
2969
+ "version": "1.7.0",
2970
  "source": {
2971
  "type": "git",
2972
  "url": "https://github.com/webmozart/assert.git",
2973
+ "reference": "aed98a490f9a8f78468232db345ab9cf606cf598"
2974
  },
2975
  "dist": {
2976
  "type": "zip",
2977
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598",
2978
+ "reference": "aed98a490f9a8f78468232db345ab9cf606cf598",
2979
  "shasum": ""
2980
  },
2981
  "require": {
2982
  "php": "^5.3.3 || ^7.0",
2983
  "symfony/polyfill-ctype": "^1.8"
2984
  },
2985
+ "conflict": {
2986
+ "vimeo/psalm": "<3.6.0"
2987
+ },
2988
  "require-dev": {
2989
  "phpunit/phpunit": "^4.8.36 || ^7.5.13"
2990
  },
2991
  "type": "library",
 
 
 
 
 
2992
  "autoload": {
2993
  "psr-4": {
2994
  "Webmozart\\Assert\\": "src/"
3010
  "check",
3011
  "validate"
3012
  ],
3013
+ "time": "2020-02-14T12:15:55+00:00"
3014
  },
3015
  {
3016
  "name": "woocommerce/woocommerce-sniffs",
includes/vendor/action-scheduler/package.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "name": "action-scheduler",
3
  "title": "Action Scheduler",
4
- "version": "3.0.0",
5
  "homepage": "https://actionscheduler.org/",
6
  "repository": {
7
  "type": "git",
1
  {
2
  "name": "action-scheduler",
3
  "title": "Action Scheduler",
4
+ "version": "3.1.1",
5
  "homepage": "https://actionscheduler.org/",
6
  "repository": {
7
  "type": "git",
mailchimp-woocommerce.php CHANGED
@@ -16,7 +16,7 @@
16
  * Plugin Name: Mailchimp for WooCommerce
17
  * Plugin URI: https://mailchimp.com/connect-your-store/
18
  * Description: Connects WooCommerce to Mailchimp to sync your store data, send targeted campaigns to your customers, and sell more stuff.
19
- * Version: 2.3.3
20
  * Author: Mailchimp
21
  * Author URI: https://mailchimp.com
22
  * License: GPL-2.0+
16
  * Plugin Name: Mailchimp for WooCommerce
17
  * Plugin URI: https://mailchimp.com/connect-your-store/
18
  * Description: Connects WooCommerce to Mailchimp to sync your store data, send targeted campaigns to your customers, and sell more stuff.
19
+ * Version: 2.3.4
20
  * Author: Mailchimp
21
  * Author URI: https://mailchimp.com
22
  * License: GPL-2.0+
uninstall.php CHANGED
@@ -49,6 +49,7 @@ function mailchimp_woocommerce_uninstall() {
49
  } catch (\Exception $e) {
50
  error_log($e->getMessage().' on '.$e->getLine().' in '.$e->getFile());
51
  }
 
52
  mailchimp_clean_database();
53
  }
54
 
49
  } catch (\Exception $e) {
50
  error_log($e->getMessage().' on '.$e->getLine().' in '.$e->getFile());
51
  }
52
+ mailchimp_remove_communication_status();
53
  mailchimp_clean_database();
54
  }
55