Facebook for WooCommerce - Version 2.6.14

Version Description

  • 2022-05-18 =
  • Fix - Non-latin custom product attribute names sync.
  • Fix - Syncing brand FB attribute instead of the website name.
  • Fix - Trigger InitiateCheckout event when site uses checkout block.
  • Fix - Wrong sale price start date getting synced to FB Catalog.
  • Fix - Allow products with "shop only" WooCommerce catalog visibility to sync to FB.
  • Fix - Remove semicolon from custom attribute value.
  • Tweak - Update the _experimental_woocommerce_blocks_checkoutupdate_order_meta action.
  • Tweak - WooCommerce 6.5 compatibility.
  • Tweak - WordPress 6.0 compatibility.
Download this release

Release Info

Developer automattic
Plugin Icon Facebook for WooCommerce
Version 2.6.14
Comparing to
See all releases

Code changes from version 2.6.13 to 2.6.14

changelog.txt CHANGED
@@ -1,15 +1,26 @@
1
  *** Facebook for WooCommerce Changelog ***
2
 
3
- = 2.6.13 - 2022-04-26 =
4
- * Fix - Issue with Facebook not displayed in the new WC navigation.
5
- * Fix - Issue with variable products syncing to FB product sets.
6
- * Fix - Scheduled job logs written to options table are never removed if job does not complete.
7
- * Fix - User-Agent to contain English extension name.
8
- * Fix - clear out wc_facebook_external_business_id option on disconnect.
9
- * Fix - fix product title length check to account for encoding.
10
- * Tweak - Use `Automattic\WooCommerce\Admin\Features\Features::is_enabled` instead of the deprecated `WooCommerce\Admin\Loader::is_feature_enabled`.
11
-
12
- 2022-03-08 - version 2.6.12
 
 
 
 
 
 
 
 
 
 
 
13
  * Add - Filter to change Facebook Retailer ID, wc_facebook_fb_retailer_id.
14
 
15
  2022-02-28 - version 2.6.11
1
  *** Facebook for WooCommerce Changelog ***
2
 
3
+ 2022-05-18 - version 2.6.14
4
+ * Fix - Non-latin custom product attribute names sync.
5
+ * Fix - Syncing brand FB attribute instead of the website name.
6
+ * Fix - Trigger InitiateCheckout event when site uses checkout block.
7
+ * Fix - Wrong sale price start date getting synced to FB Catalog.
8
+ * Fix - Allow products with "shop only" WooCommerce catalog visibility to sync to FB.
9
+ * Fix - Remove semicolon from custom attribute value.
10
+ * Tweak - Update the __experimental_woocommerce_blocks_checkout_update_order_meta action.
11
+ * Tweak - WooCommerce 6.5 compatibility.
12
+ * Tweak - WordPress 6.0 compatibility.
13
+
14
+ 2022-04-26 - version 2.6.13
15
+ * Fix - Issue with Facebook not displayed in the new WC navigation.
16
+ * Fix - Issue with variable products syncing to FB product sets.
17
+ * Fix - Scheduled job logs written to options table are never removed if job does not complete.
18
+ * Fix - User-Agent to contain English extension name.
19
+ * Fix - clear out wc_facebook_external_business_id option on disconnect.
20
+ * Fix - fix product title length check to account for encoding.
21
+ * Tweak - Use `Automattic\WooCommerce\Admin\Features\Features::is_enabled` instead of the deprecated `WooCommerce\Admin\Loader::is_feature_enabled`.
22
+
23
+ 2022-03-08 - version 2.6.12
24
  * Add - Filter to change Facebook Retailer ID, wc_facebook_fb_retailer_id.
25
 
26
  2022-02-28 - version 2.6.11
facebook-commerce-events-tracker.php CHANGED
@@ -126,12 +126,21 @@ if ( ! class_exists( 'WC_Facebookcommerce_EventsTracker' ) ) :
126
 
127
  // InitiateCheckout events
128
  add_action( 'woocommerce_after_checkout_form', array( $this, 'inject_initiate_checkout_event' ) );
 
 
129
  // Purchase and Subscribe events
130
  add_action( 'woocommerce_checkout_update_order_meta', array( $this, 'inject_purchase_event' ) );
131
  add_action( 'woocommerce_thankyou', array( $this, 'inject_purchase_event' ), 40 );
132
 
133
  // Checkout update order meta from the Checkout Block.
134
- add_action( '__experimental_woocommerce_blocks_checkout_update_order_meta', array( $this, 'inject_order_meta_event_for_checkout_block_flow' ) );
 
 
 
 
 
 
 
135
 
136
  // TODO move this in some 3rd party plugin integrations handler at some point {FN 2020-03-20}
137
  add_action( 'wpcf7_contact_form', array( $this, 'inject_lead_event_hook' ), 11 );
@@ -511,7 +520,7 @@ if ( ! class_exists( 'WC_Facebookcommerce_EventsTracker' ) ) :
511
  } else {
512
  $content_type = 'product';
513
  }
514
-
515
  if ( WC_Facebookcommerce_Utils::is_variable_type( $product->get_type() ) ) {
516
  $product_price = $product->get_variation_price( 'min' );
517
  } else {
@@ -900,7 +909,7 @@ if ( ! class_exists( 'WC_Facebookcommerce_EventsTracker' ) ) :
900
  foreach ( $order->get_items() as $item ) {
901
 
902
  $product = $item->get_product();
903
-
904
  if ( $product ) {
905
  $product_ids[] = \WC_Facebookcommerce_Utils::get_fb_content_ids( $product );
906
  $product_names[] = $product->get_name();
@@ -950,14 +959,17 @@ if ( ! class_exists( 'WC_Facebookcommerce_EventsTracker' ) ) :
950
  /**
951
  * Inject order meta gor WooCommerce Checkout Blocks flow.
952
  * The blocks flow does not trigger the woocommerce_checkout_update_order_meta so we can't rely on it.
953
- * The Checkout Block has its own ( so far ) experimental hook that allows us to inject the meta at
954
- * the appropriate moment: __experimental_woocommerce_blocks_checkout_update_order_meta.
 
 
 
955
  *
956
  * @since 2.6.6
957
  *
958
- * @param WC_Order $order Order object.
959
  */
960
- public function inject_order_meta_event_for_checkout_block_flow( $order ) {
961
 
962
  $event_name = 'Purchase';
963
 
@@ -965,6 +977,12 @@ if ( ! class_exists( 'WC_Facebookcommerce_EventsTracker' ) ) :
965
  return;
966
  }
967
 
 
 
 
 
 
 
968
  $order_placed_meta = '_wc_' . facebook_for_woocommerce()->get_id() . '_order_placed';
969
  $order->update_meta_data( $order_placed_meta, 'yes' );
970
  $order->save_meta_data();
@@ -1050,7 +1068,7 @@ if ( ! class_exists( 'WC_Facebookcommerce_EventsTracker' ) ) :
1050
  } catch ( Framework\SV_WC_API_Exception $exception ) {
1051
 
1052
  $success = false;
1053
-
1054
  facebook_for_woocommerce()->log( 'Could not send Pixel event: ' . $exception->getMessage() );
1055
  }
1056
 
126
 
127
  // InitiateCheckout events
128
  add_action( 'woocommerce_after_checkout_form', array( $this, 'inject_initiate_checkout_event' ) );
129
+ // InitiateCheckout events for checkout block.
130
+ add_action( 'woocommerce_blocks_checkout_enqueue_data', array( $this, 'inject_initiate_checkout_event' ) );
131
  // Purchase and Subscribe events
132
  add_action( 'woocommerce_checkout_update_order_meta', array( $this, 'inject_purchase_event' ) );
133
  add_action( 'woocommerce_thankyou', array( $this, 'inject_purchase_event' ), 40 );
134
 
135
  // Checkout update order meta from the Checkout Block.
136
+ if ( version_compare( \Automattic\WooCommerce\Blocks\Package::get_version(), '7.2.0', '>=' ) ) {
137
+ add_action( 'woocommerce_store_api_checkout_update_order_meta', array( $this, 'inject_order_meta_event_for_checkout_block_flow' ), 10, 1 );
138
+ } elseif ( version_compare( \Automattic\WooCommerce\Blocks\Package::get_version(), '6.3.0', '>=' ) ) {
139
+ add_action( 'woocommerce_blocks_checkout_update_order_meta', array( $this, 'inject_order_meta_event_for_checkout_block_flow' ), 10, 1 );
140
+ } else {
141
+ add_action( '__experimental_woocommerce_blocks_checkout_update_order_meta', array( $this, 'inject_order_meta_event_for_checkout_block_flow' ), 10, 1 );
142
+ }
143
+
144
 
145
  // TODO move this in some 3rd party plugin integrations handler at some point {FN 2020-03-20}
146
  add_action( 'wpcf7_contact_form', array( $this, 'inject_lead_event_hook' ), 11 );
520
  } else {
521
  $content_type = 'product';
522
  }
523
+
524
  if ( WC_Facebookcommerce_Utils::is_variable_type( $product->get_type() ) ) {
525
  $product_price = $product->get_variation_price( 'min' );
526
  } else {
909
  foreach ( $order->get_items() as $item ) {
910
 
911
  $product = $item->get_product();
912
+
913
  if ( $product ) {
914
  $product_ids[] = \WC_Facebookcommerce_Utils::get_fb_content_ids( $product );
915
  $product_names[] = $product->get_name();
959
  /**
960
  * Inject order meta gor WooCommerce Checkout Blocks flow.
961
  * The blocks flow does not trigger the woocommerce_checkout_update_order_meta so we can't rely on it.
962
+ * The Checkout Block has its own hook that allows us to inject the meta at
963
+ * the appropriate moment: woocommerce_store_api_checkout_update_order_meta.
964
+ *
965
+ * Note: __experimental_woocommerce_blocks_checkout_update_order_meta has been deprecated
966
+ * as of WooCommerce Blocks 6.3.0
967
  *
968
  * @since 2.6.6
969
  *
970
+ * @param WC_Order|int $the_order Order object or id.
971
  */
972
+ public function inject_order_meta_event_for_checkout_block_flow( $the_order ) {
973
 
974
  $event_name = 'Purchase';
975
 
977
  return;
978
  }
979
 
980
+ $order = wc_get_order($the_order);
981
+
982
+ if ( ! $order ) {
983
+ return;
984
+ }
985
+
986
  $order_placed_meta = '_wc_' . facebook_for_woocommerce()->get_id() . '_order_placed';
987
  $order->update_meta_data( $order_placed_meta, 'yes' );
988
  $order->save_meta_data();
1068
  } catch ( Framework\SV_WC_API_Exception $exception ) {
1069
 
1070
  $success = false;
1071
+
1072
  facebook_for_woocommerce()->log( 'Could not send Pixel event: ' . $exception->getMessage() );
1073
  }
1074
 
facebook-for-woocommerce.php CHANGED
@@ -11,11 +11,11 @@
11
  * Description: Grow your business on Facebook! Use this official plugin to help sell more of your products using Facebook. After completing the setup, you'll be ready to create ads that promote your products and you can also create a shop section on your Page where customers can browse your products on Facebook.
12
  * Author: Facebook
13
  * Author URI: https://www.facebook.com/
14
- * Version: 2.6.13
15
  * Text Domain: facebook-for-woocommerce
16
- * Tested up to: 5.9
17
  * WC requires at least: 3.5.0
18
- * WC tested up to: 6.0
19
  * Requires PHP: 7.0
20
  *
21
  * @package FacebookCommerce
@@ -33,7 +33,7 @@ class WC_Facebook_Loader {
33
  /**
34
  * @var string the plugin version. This must be in the main plugin file to be automatically bumped by Woorelease.
35
  */
36
- const PLUGIN_VERSION = '2.6.13'; // WRCS: DEFINED_VERSION.
37
 
38
  // Minimum PHP version required by this plugin.
39
  const MINIMUM_PHP_VERSION = '7.0.0';
11
  * Description: Grow your business on Facebook! Use this official plugin to help sell more of your products using Facebook. After completing the setup, you'll be ready to create ads that promote your products and you can also create a shop section on your Page where customers can browse your products on Facebook.
12
  * Author: Facebook
13
  * Author URI: https://www.facebook.com/
14
+ * Version: 2.6.14
15
  * Text Domain: facebook-for-woocommerce
16
+ * Tested up to: 6.0
17
  * WC requires at least: 3.5.0
18
+ * WC tested up to: 6.5
19
  * Requires PHP: 7.0
20
  *
21
  * @package FacebookCommerce
33
  /**
34
  * @var string the plugin version. This must be in the main plugin file to be automatically bumped by Woorelease.
35
  */
36
+ const PLUGIN_VERSION = '2.6.14'; // WRCS: DEFINED_VERSION.
37
 
38
  // Minimum PHP version required by this plugin.
39
  const MINIMUM_PHP_VERSION = '7.0.0';
i18n/languages/facebook-for-woocommerce.pot CHANGED
@@ -2,10 +2,10 @@
2
  # This file is distributed under the same license as the Facebook for WooCommerce package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Facebook for WooCommerce 2.6.13\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://woocommerce.com/my-account/marketplace-ticket-form/\n"
8
- "POT-Creation-Date: 2022-04-26 10:28:01+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
@@ -1015,7 +1015,9 @@ msgid "Product must be in stock."
1015
  msgstr ""
1016
 
1017
  #: includes/ProductSync/ProductValidator.php:234
1018
- msgid "Product is hidden from catalog and search."
 
 
1019
  msgstr ""
1020
 
1021
  #: includes/ProductSync/ProductValidator.php:249
2
  # This file is distributed under the same license as the Facebook for WooCommerce package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Facebook for WooCommerce 2.6.14\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://woocommerce.com/my-account/marketplace-ticket-form/\n"
8
+ "POT-Creation-Date: 2022-05-18 10:03:34+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
1015
  msgstr ""
1016
 
1017
  #: includes/ProductSync/ProductValidator.php:234
1018
+ msgid ""
1019
+ "This product cannot be synced to Facebook because it is hidden from your "
1020
+ "store catalog."
1021
  msgstr ""
1022
 
1023
  #: includes/ProductSync/ProductValidator.php:249
includes/ProductSync/ProductValidator.php CHANGED
@@ -230,8 +230,8 @@ class ProductValidator {
230
  protected function validate_product_visibility() {
231
  $product = $this->product_parent ? $this->product_parent : $this->product;
232
 
233
- if ( 'visible' !== $product->get_catalog_visibility() ) {
234
- throw new ProductExcludedException( __( 'Product is hidden from catalog and search.', 'facebook-for-woocommerce' ) );
235
  }
236
  }
237
 
230
  protected function validate_product_visibility() {
231
  $product = $this->product_parent ? $this->product_parent : $this->product;
232
 
233
+ if ( ! $product->is_visible() ) {
234
+ throw new ProductExcludedException( __( 'This product cannot be synced to Facebook because it is hidden from your store catalog.', 'facebook-for-woocommerce' ) );
235
  }
236
  }
237
 
includes/Products/Sync/Background.php CHANGED
@@ -317,7 +317,8 @@ class Background extends Framework\SV_WP_Background_Job_Handler {
317
  apply_filters( 'facebook_for_woocommerce_variant_attribute_comma_replacement', ' ', $val ),
318
  $val
319
  );
320
- $attributes[] = $key . ':' . $attribute_value;
 
321
  }
322
 
323
  $data['additional_variant_attribute'] = implode( ',', $attributes );
317
  apply_filters( 'facebook_for_woocommerce_variant_attribute_comma_replacement', ' ', $val ),
318
  $val
319
  );
320
+ /** Force replacing , and : characters if those were not cleaned up by filters */
321
+ $attributes[] = $key . ':' . str_replace( array( ',', ':' ), ' ', $attribute_value );
322
  }
323
 
324
  $data['additional_variant_attribute'] = implode( ',', $attributes );
includes/fbproduct.php CHANGED
@@ -376,13 +376,13 @@ if ( ! class_exists( 'WC_Facebook_Product' ) ) :
376
  intval( round( $this->get_price_plus_tax( $sale_price ) * 100 ) );
377
 
378
  $sale_start =
379
- ( $date = get_post_meta( $this->id, '_sale_price_dates_from', true ) )
380
- ? date_i18n( 'Y-m-d', $date ) . self::MIN_TIME
381
  : self::MIN_DATE_1 . self::MIN_TIME;
382
 
383
  $sale_end =
384
- ( $date = get_post_meta( $this->id, '_sale_price_dates_to', true ) )
385
- ? date_i18n( 'Y-m-d', $date ) . self::MAX_TIME
386
  : self::MAX_DATE . self::MAX_TIME;
387
 
388
  // check if sale is expired and sale time range is valid
@@ -564,8 +564,17 @@ if ( ! class_exists( 'WC_Facebook_Product' ) ) :
564
  $categories =
565
  WC_Facebookcommerce_Utils::get_product_categories( $id );
566
 
567
- $brand = get_the_term_list( $id, 'product_brand', '', ', ' );
568
- $brand = is_wp_error( $brand ) || ! $brand ? wp_strip_all_tags( WC_Facebookcommerce_Utils::get_store_name() ) : WC_Facebookcommerce_Utils::clean_string( $brand );
 
 
 
 
 
 
 
 
 
569
 
570
  if ( self::PRODUCT_PREP_TYPE_ITEMS_BATCH === $type_to_prepare_for ) {
571
  $product_data = array(
@@ -814,9 +823,8 @@ if ( ! class_exists( 'WC_Facebook_Product' ) ) :
814
  if ( ! isset( $product_data['custom_data'] ) ) {
815
  $product_data['custom_data'] = array();
816
  }
817
-
818
  $product_data['custom_data'][ $new_name ] = urldecode( $option_values[0] );
819
-
820
  break;
821
  }//end switch
822
  } else {
376
  intval( round( $this->get_price_plus_tax( $sale_price ) * 100 ) );
377
 
378
  $sale_start =
379
+ ( $date = $this->woo_product->get_date_on_sale_from() )
380
+ ? date_i18n( WC_DateTime::ATOM, $date->getOffsetTimestamp() )
381
  : self::MIN_DATE_1 . self::MIN_TIME;
382
 
383
  $sale_end =
384
+ ( $date = $this->woo_product->get_date_on_sale_to() )
385
+ ? date_i18n( WC_DateTime::ATOM, $date->getOffsetTimestamp() )
386
  : self::MAX_DATE . self::MAX_TIME;
387
 
388
  // check if sale is expired and sale time range is valid
564
  $categories =
565
  WC_Facebookcommerce_Utils::get_product_categories( $id );
566
 
567
+ // Get brand attribute.
568
+ $brand = get_post_meta( $id, Products::ENHANCED_CATALOG_ATTRIBUTES_META_KEY_PREFIX . 'brand', true );
569
+ $brand_taxonomy = get_the_term_list( $id, 'product_brand', '', ', ' );
570
+
571
+ if ( $brand ) {
572
+ $brand = WC_Facebookcommerce_Utils::clean_string( $brand );
573
+ } elseif ( !is_wp_error( $brand_taxonomy ) && $brand_taxonomy ) {
574
+ $brand = WC_Facebookcommerce_Utils::clean_string( $brand_taxonomy );
575
+ } else {
576
+ $brand = wp_strip_all_tags( WC_Facebookcommerce_Utils::get_store_name() );
577
+ }
578
 
579
  if ( self::PRODUCT_PREP_TYPE_ITEMS_BATCH === $type_to_prepare_for ) {
580
  $product_data = array(
823
  if ( ! isset( $product_data['custom_data'] ) ) {
824
  $product_data['custom_data'] = array();
825
  }
826
+ $new_name = wc_attribute_label( $new_name, $product );
827
  $product_data['custom_data'][ $new_name ] = urldecode( $option_values[0] );
 
828
  break;
829
  }//end switch
830
  } else {
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: facebook, automattic, woothemes
3
  Tags: facebook, shop, catalog, advertise, pixel, product
4
  Requires at least: 4.4
5
  Tested up to: 5.9
6
- Stable tag: 2.6.13
7
  Requires PHP: 5.6 or greater
8
  MySQL: 5.6 or greater
9
  License: GPLv2 or later
@@ -39,16 +39,27 @@ When opening a bug on GitHub, please give us as many details as possible.
39
 
40
  == Changelog ==
41
 
42
- = 2.6.13 - 2022-04-26 =
43
- * Fix - Issue with Facebook not displayed in the new WC navigation.
44
- * Fix - Issue with variable products syncing to FB product sets.
45
- * Fix - Scheduled job logs written to options table are never removed if job does not complete.
46
- * Fix - User-Agent to contain English extension name.
47
- * Fix - clear out wc_facebook_external_business_id option on disconnect.
48
- * Fix - fix product title length check to account for encoding.
49
- * Tweak - Use `Automattic\WooCommerce\Admin\Features\Features::is_enabled` instead of the deprecated `WooCommerce\Admin\Loader::is_feature_enabled`.
50
-
51
- = 2.6.12 - 2022-03-08 =
 
 
 
 
 
 
 
 
 
 
 
52
  * Add - Filter to change Facebook Retailer ID, wc_facebook_fb_retailer_id.
53
 
54
  = 2.6.11 - 2022-02-28 =
3
  Tags: facebook, shop, catalog, advertise, pixel, product
4
  Requires at least: 4.4
5
  Tested up to: 5.9
6
+ Stable tag: 2.6.14
7
  Requires PHP: 5.6 or greater
8
  MySQL: 5.6 or greater
9
  License: GPLv2 or later
39
 
40
  == Changelog ==
41
 
42
+ = 2.6.14 - 2022-05-18 =
43
+ * Fix - Non-latin custom product attribute names sync.
44
+ * Fix - Syncing brand FB attribute instead of the website name.
45
+ * Fix - Trigger InitiateCheckout event when site uses checkout block.
46
+ * Fix - Wrong sale price start date getting synced to FB Catalog.
47
+ * Fix - Allow products with "shop only" WooCommerce catalog visibility to sync to FB.
48
+ * Fix - Remove semicolon from custom attribute value.
49
+ * Tweak - Update the __experimental_woocommerce_blocks_checkout_update_order_meta action.
50
+ * Tweak - WooCommerce 6.5 compatibility.
51
+ * Tweak - WordPress 6.0 compatibility.
52
+
53
+ = 2.6.13 - 2022-04-26 =
54
+ * Fix - Issue with Facebook not displayed in the new WC navigation.
55
+ * Fix - Issue with variable products syncing to FB product sets.
56
+ * Fix - Scheduled job logs written to options table are never removed if job does not complete.
57
+ * Fix - User-Agent to contain English extension name.
58
+ * Fix - clear out wc_facebook_external_business_id option on disconnect.
59
+ * Fix - fix product title length check to account for encoding.
60
+ * Tweak - Use `Automattic\WooCommerce\Admin\Features\Features::is_enabled` instead of the deprecated `WooCommerce\Admin\Loader::is_feature_enabled`.
61
+
62
+ = 2.6.12 - 2022-03-08 =
63
  * Add - Filter to change Facebook Retailer ID, wc_facebook_fb_retailer_id.
64
 
65
  = 2.6.11 - 2022-02-28 =
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInita2b43888cea4bd45e93809d03e360862::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitc9664324ae539b90345f70ed310cb589::getLoader();
vendor/composer/ClassLoader.php CHANGED
@@ -149,7 +149,7 @@ class ClassLoader
149
 
150
  /**
151
  * @return string[] Array of classname => path
152
- * @psalm-return array<string, string>
153
  */
154
  public function getClassMap()
155
  {
149
 
150
  /**
151
  * @return string[] Array of classname => path
152
+ * @psalm-var array<string, string>
153
  */
154
  public function getClassMap()
155
  {
vendor/composer/InstalledVersions.php CHANGED
@@ -24,21 +24,8 @@ use Composer\Semver\VersionParser;
24
  */
25
  class InstalledVersions
26
  {
27
- /**
28
- * @var mixed[]|null
29
- * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
30
- */
31
  private static $installed;
32
-
33
- /**
34
- * @var bool|null
35
- */
36
  private static $canGetVendors;
37
-
38
- /**
39
- * @var array[]
40
- * @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
41
- */
42
  private static $installedByVendor = array();
43
 
44
  /**
24
  */
25
  class InstalledVersions
26
  {
 
 
 
 
27
  private static $installed;
 
 
 
 
28
  private static $canGetVendors;
 
 
 
 
 
29
  private static $installedByVendor = array();
30
 
31
  /**
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInita2b43888cea4bd45e93809d03e360862
6
  {
7
  private static $loader;
8
 
@@ -24,15 +24,15 @@ class ComposerAutoloaderInita2b43888cea4bd45e93809d03e360862
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
- spl_autoload_register(array('ComposerAutoloaderInita2b43888cea4bd45e93809d03e360862', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
29
- spl_autoload_unregister(array('ComposerAutoloaderInita2b43888cea4bd45e93809d03e360862', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
  require __DIR__ . '/autoload_static.php';
34
 
35
- call_user_func(\Composer\Autoload\ComposerStaticInita2b43888cea4bd45e93809d03e360862::getInitializer($loader));
36
  } else {
37
  $map = require __DIR__ . '/autoload_namespaces.php';
38
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInitc9664324ae539b90345f70ed310cb589
6
  {
7
  private static $loader;
8
 
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
+ spl_autoload_register(array('ComposerAutoloaderInitc9664324ae539b90345f70ed310cb589', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
29
+ spl_autoload_unregister(array('ComposerAutoloaderInitc9664324ae539b90345f70ed310cb589', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
  require __DIR__ . '/autoload_static.php';
34
 
35
+ call_user_func(\Composer\Autoload\ComposerStaticInitc9664324ae539b90345f70ed310cb589::getInitializer($loader));
36
  } else {
37
  $map = require __DIR__ . '/autoload_namespaces.php';
38
  foreach ($map as $namespace => $path) {
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInita2b43888cea4bd45e93809d03e360862
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'S' =>
@@ -43,9 +43,9 @@ class ComposerStaticInita2b43888cea4bd45e93809d03e360862
43
  public static function getInitializer(ClassLoader $loader)
44
  {
45
  return \Closure::bind(function () use ($loader) {
46
- $loader->prefixLengthsPsr4 = ComposerStaticInita2b43888cea4bd45e93809d03e360862::$prefixLengthsPsr4;
47
- $loader->prefixDirsPsr4 = ComposerStaticInita2b43888cea4bd45e93809d03e360862::$prefixDirsPsr4;
48
- $loader->classMap = ComposerStaticInita2b43888cea4bd45e93809d03e360862::$classMap;
49
 
50
  }, null, ClassLoader::class);
51
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInitc9664324ae539b90345f70ed310cb589
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'S' =>
43
  public static function getInitializer(ClassLoader $loader)
44
  {
45
  return \Closure::bind(function () use ($loader) {
46
+ $loader->prefixLengthsPsr4 = ComposerStaticInitc9664324ae539b90345f70ed310cb589::$prefixLengthsPsr4;
47
+ $loader->prefixDirsPsr4 = ComposerStaticInitc9664324ae539b90345f70ed310cb589::$prefixDirsPsr4;
48
+ $loader->classMap = ComposerStaticInitc9664324ae539b90345f70ed310cb589::$classMap;
49
 
50
  }, null, ClassLoader::class);
51
  }
vendor/composer/installed.php CHANGED
@@ -1,11 +1,11 @@
1
  <?php return array(
2
  'root' => array(
3
- 'pretty_version' => 'dev-release/2.6.13',
4
- 'version' => 'dev-release/2.6.13',
5
  'type' => 'wordpress-plugin',
6
  'install_path' => __DIR__ . '/../../',
7
  'aliases' => array(),
8
- 'reference' => 'a16bf14687848fda8415af4653303908c849c655',
9
  'name' => 'facebookincubator/facebook-for-woocommerce',
10
  'dev' => false,
11
  ),
@@ -20,12 +20,12 @@
20
  'dev_requirement' => false,
21
  ),
22
  'facebookincubator/facebook-for-woocommerce' => array(
23
- 'pretty_version' => 'dev-release/2.6.13',
24
- 'version' => 'dev-release/2.6.13',
25
  'type' => 'wordpress-plugin',
26
  'install_path' => __DIR__ . '/../../',
27
  'aliases' => array(),
28
- 'reference' => 'a16bf14687848fda8415af4653303908c849c655',
29
  'dev_requirement' => false,
30
  ),
31
  'roundcube/plugin-installer' => array(
1
  <?php return array(
2
  'root' => array(
3
+ 'pretty_version' => 'dev-release/2.6.14',
4
+ 'version' => 'dev-release/2.6.14',
5
  'type' => 'wordpress-plugin',
6
  'install_path' => __DIR__ . '/../../',
7
  'aliases' => array(),
8
+ 'reference' => '7367bdc89bc85a8d77552b072b94f93e1505267e',
9
  'name' => 'facebookincubator/facebook-for-woocommerce',
10
  'dev' => false,
11
  ),
20
  'dev_requirement' => false,
21
  ),
22
  'facebookincubator/facebook-for-woocommerce' => array(
23
+ 'pretty_version' => 'dev-release/2.6.14',
24
+ 'version' => 'dev-release/2.6.14',
25
  'type' => 'wordpress-plugin',
26
  'install_path' => __DIR__ . '/../../',
27
  'aliases' => array(),
28
+ 'reference' => '7367bdc89bc85a8d77552b072b94f93e1505267e',
29
  'dev_requirement' => false,
30
  ),
31
  'roundcube/plugin-installer' => array(