Facebook for WooCommerce - Version 2.6.24

Version Description

  • 2022-09-27 =
  • Fix - Adds helpful admin notices for correct user roles.
  • Fix - Track purchase event flag in session variable instead post meta table.
Download this release

Release Info

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

Code changes from version 2.6.23 to 2.6.24

changelog.txt CHANGED
@@ -1,5 +1,9 @@
1
  *** Facebook for WooCommerce Changelog ***
2
 
 
 
 
 
3
  = 2.6.23 - 2022-09-13 =
4
  * Add - Show warning when creating product set with excluded categories.
5
  * Fix - Messenger settings are no longer overridden after business config refresh.
1
  *** Facebook for WooCommerce Changelog ***
2
 
3
+ = 2.6.24 - 2022-09-27 =
4
+ * Fix - Adds helpful admin notices for correct user roles.
5
+ * Fix - Track purchase event flag in session variable instead post meta table.
6
+
7
  = 2.6.23 - 2022-09-13 =
8
  * Add - Show warning when creating product set with excluded categories.
9
  * Fix - Messenger settings are no longer overridden after business config refresh.
facebook-commerce-events-tracker.php CHANGED
@@ -917,21 +917,20 @@ if ( ! class_exists( 'WC_Facebookcommerce_EventsTracker' ) ) :
917
  return;
918
  }
919
 
920
- // use an order meta to ensure an order is tracked with any payment method, also when the order is placed through AJAX
921
- $order_placed_meta = '_wc_' . facebook_for_woocommerce()->get_id() . '_order_placed';
922
 
923
- // use an order meta to ensure a Purchase event is not tracked multiple times
924
- $purchase_tracked_meta = '_wc_' . facebook_for_woocommerce()->get_id() . '_purchase_tracked';
925
 
926
  // when saving the order meta data: add a flag to mark the order tracked
927
  if ( 'woocommerce_checkout_update_order_meta' === current_action() ) {
928
- $order->update_meta_data( $order_placed_meta, 'yes' );
929
- $order->save_meta_data();
930
  return;
931
  }
932
 
933
  // bail if by the time we are on the thank you page the meta has not been set or we already tracked a Purchase event
934
- if ( 'yes' !== $order->get_meta( $order_placed_meta ) || 'yes' === $order->get_meta( $purchase_tracked_meta ) ) {
935
  return;
936
  }
937
 
@@ -986,8 +985,7 @@ if ( ! class_exists( 'WC_Facebookcommerce_EventsTracker' ) ) :
986
  $this->inject_subscribe_event( $order_id );
987
 
988
  // mark the order as tracked
989
- $order->update_meta_data( $purchase_tracked_meta, 'yes' );
990
- $order->save_meta_data();
991
  }
992
 
993
  /**
@@ -1017,9 +1015,9 @@ if ( ! class_exists( 'WC_Facebookcommerce_EventsTracker' ) ) :
1017
  return;
1018
  }
1019
 
1020
- $order_placed_meta = '_wc_' . facebook_for_woocommerce()->get_id() . '_order_placed';
1021
- $order->update_meta_data( $order_placed_meta, 'yes' );
1022
- $order->save_meta_data();
1023
  }
1024
 
1025
 
917
  return;
918
  }
919
 
920
+ // use a session flag to ensure an order is tracked with any payment method, also when the order is placed through AJAX
921
+ $order_placed_session_flag = '_wc_' . facebook_for_woocommerce()->get_id() . '_order_placed_' . $order_id;
922
 
923
+ // use a session flag to ensure a Purchase event is not tracked multiple times
924
+ $purchase_tracked_session_flag = '_wc_' . facebook_for_woocommerce()->get_id() . '_purchase_tracked_' . $order_id;
925
 
926
  // when saving the order meta data: add a flag to mark the order tracked
927
  if ( 'woocommerce_checkout_update_order_meta' === current_action() ) {
928
+ WC()->session->set( $order_placed_session_flag, 'yes' );
 
929
  return;
930
  }
931
 
932
  // bail if by the time we are on the thank you page the meta has not been set or we already tracked a Purchase event
933
+ if ( 'yes' !== WC()->session->get( $order_placed_session_flag, 'no' ) || 'yes' === WC()->session->get( $purchase_tracked_session_flag, 'no' ) ) {
934
  return;
935
  }
936
 
985
  $this->inject_subscribe_event( $order_id );
986
 
987
  // mark the order as tracked
988
+ WC()->session->set( $purchase_tracked_session_flag, 'yes' );
 
989
  }
990
 
991
  /**
1015
  return;
1016
  }
1017
 
1018
+ $order_placed_session_flag = '_wc_' . facebook_for_woocommerce()->get_id() . '_order_placed_' . $order->get_id();
1019
+ WC()->session->set( $order_placed_session_flag, 'yes' );
1020
+
1021
  }
1022
 
1023
 
facebook-for-woocommerce.php CHANGED
@@ -11,7 +11,7 @@
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.23
15
  * Text Domain: facebook-for-woocommerce
16
  * Tested up to: 6.0
17
  * WC requires at least: 3.5.0
@@ -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.23'; // WRCS: DEFINED_VERSION.
37
 
38
  // Minimum PHP version required by this plugin.
39
  const MINIMUM_PHP_VERSION = '7.0.0';
@@ -76,8 +76,8 @@ class WC_Facebook_Loader {
76
  register_activation_hook( __FILE__, array( $this, 'activation_check' ) );
77
 
78
  add_action( 'admin_init', array( $this, 'check_environment' ) );
79
- add_action( 'admin_init', array( $this, 'add_plugin_notices' ) );
80
 
 
81
  add_action( 'admin_notices', array( $this, 'admin_notices' ), 15 );
82
 
83
  // If the environment check fails, initialize the plugin.
@@ -218,35 +218,85 @@ class WC_Facebook_Loader {
218
  public function add_plugin_notices() {
219
 
220
  if ( ! $this->is_wp_compatible() ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
221
 
222
- $this->add_admin_notice(
223
- 'update_wordpress',
224
- 'error',
225
- sprintf(
226
- '%s requires WordPress version %s or higher. Please %supdate WordPress »%s',
227
- '<strong>' . self::PLUGIN_NAME . '</strong>',
228
- self::MINIMUM_WP_VERSION,
229
- '<a href="' . esc_url( admin_url( 'update-core.php' ) ) . '">',
230
- '</a>'
231
- )
232
- );
233
  }
234
 
235
- if ( ! $this->is_wc_compatible() ) {
236
-
237
- $this->add_admin_notice(
238
- 'update_woocommerce',
239
- 'error',
240
- sprintf(
241
- '%1$s requires WooCommerce version %2$s or higher. Please %3$supdate WooCommerce%4$s to the latest version, or %5$sdownload the minimum required version &raquo;%6$s',
242
- '<strong>' . self::PLUGIN_NAME . '</strong>',
243
- self::MINIMUM_WC_VERSION,
244
- '<a href="' . esc_url( admin_url( 'update-core.php' ) ) . '">',
245
- '</a>',
246
- '<a href="' . esc_url( 'https://downloads.wordpress.org/plugin/woocommerce.' . self::MINIMUM_WC_VERSION . '.zip' ) . '">',
247
- '</a>'
248
- )
249
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
250
  }
251
  }
252
 
@@ -280,6 +330,28 @@ class WC_Facebook_Loader {
280
  return version_compare( get_bloginfo( 'version' ), self::MINIMUM_WP_VERSION, '>=' );
281
  }
282
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
283
 
284
  /**
285
  * Determines if the WooCommerce compatible.
@@ -346,7 +418,19 @@ class WC_Facebook_Loader {
346
 
347
  ?>
348
  <div class="<?php echo esc_attr( $notice['class'] ); ?>">
349
- <p><?php echo wp_kses( $notice['message'], array( 'a' => array( 'href' => array() ) ) ); ?></p>
 
 
 
 
 
 
 
 
 
 
 
 
350
  </div>
351
  <?php
352
  }
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.24
15
  * Text Domain: facebook-for-woocommerce
16
  * Tested up to: 6.0
17
  * WC requires at least: 3.5.0
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.24'; // WRCS: DEFINED_VERSION.
37
 
38
  // Minimum PHP version required by this plugin.
39
  const MINIMUM_PHP_VERSION = '7.0.0';
76
  register_activation_hook( __FILE__, array( $this, 'activation_check' ) );
77
 
78
  add_action( 'admin_init', array( $this, 'check_environment' ) );
 
79
 
80
+ add_action( 'admin_notices', array( $this, 'add_plugin_notices' ) ); // admin_init is too early for the get_current_screen() function.
81
  add_action( 'admin_notices', array( $this, 'admin_notices' ), 15 );
82
 
83
  // If the environment check fails, initialize the plugin.
218
  public function add_plugin_notices() {
219
 
220
  if ( ! $this->is_wp_compatible() ) {
221
+ if ( current_user_can( 'update_core' ) ) {
222
+ $this->add_admin_notice(
223
+ 'update_wordpress',
224
+ 'error',
225
+ sprintf(
226
+ /* translators: %1$s - plugin name, %2$s - minimum WordPress version required, %3$s - update WordPress link open, %4$s - update WordPress link close */
227
+ esc_html__( '%1$s requires WordPress version %2$s or higher. Please %3$supdate WordPress &raquo;%4$s', 'facebook-for-woocommerce' ),
228
+ '<strong>' . self::PLUGIN_NAME . '</strong>',
229
+ self::MINIMUM_WP_VERSION,
230
+ '<a href="' . esc_url( admin_url( 'update-core.php' ) ) . '">',
231
+ '</a>'
232
+ )
233
+ );
234
+ }
235
+ }
236
 
237
+ // Notices to install and activate or update WooCommerce.
238
+ $screen = get_current_screen();
239
+ if ( isset( $screen->parent_file ) && 'plugins.php' === $screen->parent_file && 'update' === $screen->id ) {
240
+ return; // Do not display the install/update/activate notice in the update plugin screen.
 
 
 
 
 
 
 
241
  }
242
 
243
+ $plugin = 'woocommerce/woocommerce.php';
244
+ // Check if WooCommerce is activated.
245
+ if ( ! $this->is_wc_activated() ) {
246
+
247
+ if ( $this->is_wc_installed() ) {
248
+ // WooCommerce is installed but not activated. Ask the user to activate WooCommerce.
249
+ if ( current_user_can( 'activate_plugins' ) ) {
250
+ $activation_url = wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . $plugin . '&amp;plugin_status=all&amp;paged=1&amp;s', 'activate-plugin_' . $plugin );
251
+ $message = sprintf(
252
+ /* translators: %1$s - Plugin Name, %2$s - activate WooCommerce link open, %3$s - activate WooCommerce link close. */
253
+ esc_html__( '%1$s requires WooCommerce to be activated. Please %2$sactivate WooCommerce%3$s.', 'facebook-for-woocommerce' ),
254
+ '<strong>' . self::PLUGIN_NAME . '</strong>',
255
+ '<a href="' . esc_url( $activation_url ) . '">',
256
+ '</a>'
257
+ );
258
+ $this->add_admin_notice(
259
+ 'activate_woocommerce',
260
+ 'error',
261
+ $message
262
+ );
263
+ }
264
+ } else {
265
+ // WooCommerce is not installed. Ask the user to install WooCommerce.
266
+ if ( current_user_can( 'install_plugins' ) ) {
267
+ $install_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=woocommerce' ), 'install-plugin_woocommerce' );
268
+ $message = sprintf(
269
+ /* translators: %1$s - Plugin Name, %2$s - install WooCommerce link open, %3$s - install WooCommerce link close. */
270
+ esc_html__( '%1$s requires WooCommerce to be installed and activated. Please %2$sinstall WooCommerce%3$s.', 'facebook-for-woocommerce' ),
271
+ '<strong>' . self::PLUGIN_NAME . '</strong>',
272
+ '<a href="' . esc_url( $install_url ) . '">',
273
+ '</a>'
274
+ );
275
+ $this->add_admin_notice(
276
+ 'install_woocommerce',
277
+ 'error',
278
+ $message
279
+ );
280
+ }
281
+ }
282
+ } elseif ( ! $this->is_wc_compatible() ) { // If WooCommerce is activated, check for the version.
283
+ if ( current_user_can( 'update_plugins' ) ) {
284
+ $update_url = wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $plugin, 'upgrade-plugin_' . $plugin );
285
+ $this->add_admin_notice(
286
+ 'update_woocommerce',
287
+ 'error',
288
+ sprintf(
289
+ /* translators: %1$s - Plugin Name, %2$s - minimum WooCommerce version, %3$s - update WooCommerce link open, %4$s - update WooCommerce link close, %5$s - download minimum WooCommerce link open, %6$s - download minimum WooCommerce link close. */
290
+ esc_html__( '%1$s requires WooCommerce version %2$s or higher. Please %3$supdate WooCommerce%4$s to the latest version, or %5$sdownload the minimum required version &raquo;%6$s', 'facebook-for-woocommerce' ),
291
+ '<strong>' . self::PLUGIN_NAME . '</strong>',
292
+ self::MINIMUM_WC_VERSION,
293
+ '<a href="' . esc_url( $update_url ) . '">',
294
+ '</a>',
295
+ '<a href="' . esc_url( 'https://downloads.wordpress.org/plugin/woocommerce.' . self::MINIMUM_WC_VERSION . '.zip' ) . '">',
296
+ '</a>'
297
+ )
298
+ );
299
+ }
300
  }
301
  }
302
 
330
  return version_compare( get_bloginfo( 'version' ), self::MINIMUM_WP_VERSION, '>=' );
331
  }
332
 
333
+ /**
334
+ * Query WooCommerce activation.
335
+ *
336
+ * @since 2.6.24
337
+ * @return bool
338
+ */
339
+ private function is_wc_activated() {
340
+ return class_exists( 'WooCommerce' ) ? true : false;
341
+ }
342
+
343
+ /**
344
+ * Determins if WooCommerce is installed.
345
+ *
346
+ * @since 2.6.24
347
+ * @return bool
348
+ */
349
+ private function is_wc_installed() {
350
+ $plugin = 'woocommerce/woocommerce.php';
351
+ $installed_plugins = get_plugins();
352
+
353
+ return isset( $installed_plugins[ $plugin ] );
354
+ }
355
 
356
  /**
357
  * Determines if the WooCommerce compatible.
418
 
419
  ?>
420
  <div class="<?php echo esc_attr( $notice['class'] ); ?>">
421
+ <p>
422
+ <?php
423
+ echo wp_kses(
424
+ $notice['message'],
425
+ array(
426
+ 'a' => array(
427
+ 'href' => array(),
428
+ ),
429
+ 'strong' => array(),
430
+ )
431
+ );
432
+ ?>
433
+ </p>
434
  </div>
435
  <?php
436
  }
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.23\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://woocommerce.com/my-account/marketplace-ticket-form/\n"
8
- "POT-Creation-Date: 2022-09-13 19:45:12+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
@@ -184,6 +184,41 @@ msgstr ""
184
  msgid "There was an issue connecting to the Facebook API: %s"
185
  msgstr ""
186
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
  #: includes/AJAX.php:82
188
  msgid "Invalid nonce."
189
  msgstr ""
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.24\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://woocommerce.com/my-account/marketplace-ticket-form/\n"
8
+ "POT-Creation-Date: 2022-09-27 12:46:37+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
184
  msgid "There was an issue connecting to the Facebook API: %s"
185
  msgstr ""
186
 
187
+ #: facebook-for-woocommerce.php:227
188
+ #. translators: %1$s - plugin name, %2$s - minimum WordPress version required,
189
+ #. %3$s - update WordPress link open, %4$s - update WordPress link close
190
+ msgid ""
191
+ "%1$s requires WordPress version %2$s or higher. Please %3$supdate WordPress "
192
+ "&raquo;%4$s"
193
+ msgstr ""
194
+
195
+ #: facebook-for-woocommerce.php:253
196
+ #. translators: %1$s - Plugin Name, %2$s - activate WooCommerce link open, %3$s
197
+ #. - activate WooCommerce link close.
198
+ msgid ""
199
+ "%1$s requires WooCommerce to be activated. Please %2$sactivate "
200
+ "WooCommerce%3$s."
201
+ msgstr ""
202
+
203
+ #: facebook-for-woocommerce.php:270
204
+ #. translators: %1$s - Plugin Name, %2$s - install WooCommerce link open, %3$s
205
+ #. - install WooCommerce link close.
206
+ msgid ""
207
+ "%1$s requires WooCommerce to be installed and activated. Please %2$sinstall "
208
+ "WooCommerce%3$s."
209
+ msgstr ""
210
+
211
+ #: facebook-for-woocommerce.php:290
212
+ #. translators: %1$s - Plugin Name, %2$s - minimum WooCommerce version, %3$s -
213
+ #. update WooCommerce link open, %4$s - update WooCommerce link close, %5$s -
214
+ #. download minimum WooCommerce link open, %6$s - download minimum WooCommerce
215
+ #. link close.
216
+ msgid ""
217
+ "%1$s requires WooCommerce version %2$s or higher. Please %3$supdate "
218
+ "WooCommerce%4$s to the latest version, or %5$sdownload the minimum required "
219
+ "version &raquo;%6$s"
220
+ msgstr ""
221
+
222
  #: includes/AJAX.php:82
223
  msgid "Invalid nonce."
224
  msgstr ""
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: 6.0
6
- Stable tag: 2.6.23
7
  Requires PHP: 5.6 or greater
8
  MySQL: 5.6 or greater
9
  License: GPLv2 or later
@@ -39,6 +39,10 @@ When opening a bug on GitHub, please give us as many details as possible.
39
 
40
  == Changelog ==
41
 
 
 
 
 
42
  = 2.6.23 - 2022-09-13 =
43
  * Add - Show warning when creating product set with excluded categories.
44
  * Fix - Messenger settings are no longer overridden after business config refresh.
3
  Tags: facebook, shop, catalog, advertise, pixel, product
4
  Requires at least: 4.4
5
  Tested up to: 6.0
6
+ Stable tag: 2.6.24
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.24 - 2022-09-27 =
43
+ * Fix - Adds helpful admin notices for correct user roles.
44
+ * Fix - Track purchase event flag in session variable instead post meta table.
45
+
46
  = 2.6.23 - 2022-09-13 =
47
  * Add - Show warning when creating product set with excluded categories.
48
  * Fix - Messenger settings are no longer overridden after business config refresh.
vendor/autoload.php CHANGED
@@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) {
9
 
10
  require_once __DIR__ . '/composer/autoload_real.php';
11
 
12
- return ComposerAutoloaderInit3b7fe4ae71dbfe51c3123dd8619deb69::getLoader();
9
 
10
  require_once __DIR__ . '/composer/autoload_real.php';
11
 
12
+ return ComposerAutoloaderInit8035102579d2b598a135fccf060682fc::getLoader();
vendor/composer/InstalledVersions.php CHANGED
@@ -28,7 +28,7 @@ class InstalledVersions
28
  {
29
  /**
30
  * @var mixed[]|null
31
- * @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
32
  */
33
  private static $installed;
34
 
@@ -39,7 +39,7 @@ class InstalledVersions
39
 
40
  /**
41
  * @var array[]
42
- * @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}>}>
43
  */
44
  private static $installedByVendor = array();
45
 
@@ -243,7 +243,7 @@ class InstalledVersions
243
 
244
  /**
245
  * @return array
246
- * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
247
  */
248
  public static function getRootPackage()
249
  {
@@ -257,7 +257,7 @@ class InstalledVersions
257
  *
258
  * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
259
  * @return array[]
260
- * @psalm-return 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}>}
261
  */
262
  public static function getRawData()
263
  {
@@ -280,7 +280,7 @@ class InstalledVersions
280
  * Returns the raw data of all installed.php which are currently loaded for custom implementations
281
  *
282
  * @return array[]
283
- * @psalm-return list<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}>}>
284
  */
285
  public static function getAllRawData()
286
  {
@@ -303,7 +303,7 @@ class InstalledVersions
303
  * @param array[] $data A vendor/composer/installed.php data set
304
  * @return void
305
  *
306
- * @psalm-param 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}>} $data
307
  */
308
  public static function reload($data)
309
  {
@@ -313,7 +313,7 @@ class InstalledVersions
313
 
314
  /**
315
  * @return array[]
316
- * @psalm-return list<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}>}>
317
  */
318
  private static function getInstalled()
319
  {
28
  {
29
  /**
30
  * @var mixed[]|null
31
+ * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
32
  */
33
  private static $installed;
34
 
39
 
40
  /**
41
  * @var array[]
42
+ * @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
43
  */
44
  private static $installedByVendor = array();
45
 
243
 
244
  /**
245
  * @return array
246
+ * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
247
  */
248
  public static function getRootPackage()
249
  {
257
  *
258
  * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
259
  * @return array[]
260
+ * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
261
  */
262
  public static function getRawData()
263
  {
280
  * Returns the raw data of all installed.php which are currently loaded for custom implementations
281
  *
282
  * @return array[]
283
+ * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
284
  */
285
  public static function getAllRawData()
286
  {
303
  * @param array[] $data A vendor/composer/installed.php data set
304
  * @return void
305
  *
306
+ * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
307
  */
308
  public static function reload($data)
309
  {
313
 
314
  /**
315
  * @return array[]
316
+ * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
317
  */
318
  private static function getInstalled()
319
  {
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit3b7fe4ae71dbfe51c3123dd8619deb69
6
  {
7
  private static $loader;
8
 
@@ -24,12 +24,12 @@ class ComposerAutoloaderInit3b7fe4ae71dbfe51c3123dd8619deb69
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
- spl_autoload_register(array('ComposerAutoloaderInit3b7fe4ae71dbfe51c3123dd8619deb69', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
29
- spl_autoload_unregister(array('ComposerAutoloaderInit3b7fe4ae71dbfe51c3123dd8619deb69', 'loadClassLoader'));
30
 
31
  require __DIR__ . '/autoload_static.php';
32
- call_user_func(\Composer\Autoload\ComposerStaticInit3b7fe4ae71dbfe51c3123dd8619deb69::getInitializer($loader));
33
 
34
  $loader->register(true);
35
 
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit8035102579d2b598a135fccf060682fc
6
  {
7
  private static $loader;
8
 
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
+ spl_autoload_register(array('ComposerAutoloaderInit8035102579d2b598a135fccf060682fc', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
29
+ spl_autoload_unregister(array('ComposerAutoloaderInit8035102579d2b598a135fccf060682fc', 'loadClassLoader'));
30
 
31
  require __DIR__ . '/autoload_static.php';
32
+ call_user_func(\Composer\Autoload\ComposerStaticInit8035102579d2b598a135fccf060682fc::getInitializer($loader));
33
 
34
  $loader->register(true);
35
 
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit3b7fe4ae71dbfe51c3123dd8619deb69
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'S' =>
@@ -43,9 +43,9 @@ class ComposerStaticInit3b7fe4ae71dbfe51c3123dd8619deb69
43
  public static function getInitializer(ClassLoader $loader)
44
  {
45
  return \Closure::bind(function () use ($loader) {
46
- $loader->prefixLengthsPsr4 = ComposerStaticInit3b7fe4ae71dbfe51c3123dd8619deb69::$prefixLengthsPsr4;
47
- $loader->prefixDirsPsr4 = ComposerStaticInit3b7fe4ae71dbfe51c3123dd8619deb69::$prefixDirsPsr4;
48
- $loader->classMap = ComposerStaticInit3b7fe4ae71dbfe51c3123dd8619deb69::$classMap;
49
 
50
  }, null, ClassLoader::class);
51
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit8035102579d2b598a135fccf060682fc
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 = ComposerStaticInit8035102579d2b598a135fccf060682fc::$prefixLengthsPsr4;
47
+ $loader->prefixDirsPsr4 = ComposerStaticInit8035102579d2b598a135fccf060682fc::$prefixDirsPsr4;
48
+ $loader->classMap = ComposerStaticInit8035102579d2b598a135fccf060682fc::$classMap;
49
 
50
  }, null, ClassLoader::class);
51
  }
vendor/composer/installed.php CHANGED
@@ -1,31 +1,31 @@
1
  <?php return array(
2
  'root' => array(
3
- 'pretty_version' => 'dev-release/2.6.23',
4
- 'version' => 'dev-release/2.6.23',
 
 
5
  'type' => 'wordpress-plugin',
6
  'install_path' => __DIR__ . '/../../',
7
  'aliases' => array(),
8
- 'reference' => '2777386e9cae9f39dd385db8f311d95c99e225a6',
9
- 'name' => 'facebookincubator/facebook-for-woocommerce',
10
  'dev' => false,
11
  ),
12
  'versions' => array(
13
  'composer/installers' => array(
14
  'pretty_version' => 'v1.12.0',
15
  'version' => '1.12.0.0',
 
16
  'type' => 'composer-plugin',
17
  'install_path' => __DIR__ . '/./installers',
18
  'aliases' => array(),
19
- 'reference' => 'd20a64ed3c94748397ff5973488761b22f6d3f19',
20
  'dev_requirement' => false,
21
  ),
22
  'facebookincubator/facebook-for-woocommerce' => array(
23
- 'pretty_version' => 'dev-release/2.6.23',
24
- 'version' => 'dev-release/2.6.23',
 
25
  'type' => 'wordpress-plugin',
26
  'install_path' => __DIR__ . '/../../',
27
  'aliases' => array(),
28
- 'reference' => '2777386e9cae9f39dd385db8f311d95c99e225a6',
29
  'dev_requirement' => false,
30
  ),
31
  'roundcube/plugin-installer' => array(
@@ -43,19 +43,19 @@
43
  'skyverge/wc-plugin-framework' => array(
44
  'pretty_version' => '5.10.0',
45
  'version' => '5.10.0.0',
 
46
  'type' => 'library',
47
  'install_path' => __DIR__ . '/../skyverge/wc-plugin-framework',
48
  'aliases' => array(),
49
- 'reference' => 'e230d7c40286854e49c0cafeec3398cbf2427a64',
50
  'dev_requirement' => false,
51
  ),
52
  'woocommerce/action-scheduler-job-framework' => array(
53
  'pretty_version' => '2.0.0',
54
  'version' => '2.0.0.0',
 
55
  'type' => 'library',
56
  'install_path' => __DIR__ . '/../woocommerce/action-scheduler-job-framework',
57
  'aliases' => array(),
58
- 'reference' => 'b0b21b9cc87e476ba7f8817050b39274ea7d6732',
59
  'dev_requirement' => false,
60
  ),
61
  ),
1
  <?php return array(
2
  'root' => array(
3
+ 'name' => 'facebookincubator/facebook-for-woocommerce',
4
+ 'pretty_version' => 'dev-release/2.6.24',
5
+ 'version' => 'dev-release/2.6.24',
6
+ 'reference' => '36471d38a2f3ab8e533c52fcc6143d008dad1f37',
7
  'type' => 'wordpress-plugin',
8
  'install_path' => __DIR__ . '/../../',
9
  'aliases' => array(),
 
 
10
  'dev' => false,
11
  ),
12
  'versions' => array(
13
  'composer/installers' => array(
14
  'pretty_version' => 'v1.12.0',
15
  'version' => '1.12.0.0',
16
+ 'reference' => 'd20a64ed3c94748397ff5973488761b22f6d3f19',
17
  'type' => 'composer-plugin',
18
  'install_path' => __DIR__ . '/./installers',
19
  'aliases' => array(),
 
20
  'dev_requirement' => false,
21
  ),
22
  'facebookincubator/facebook-for-woocommerce' => array(
23
+ 'pretty_version' => 'dev-release/2.6.24',
24
+ 'version' => 'dev-release/2.6.24',
25
+ 'reference' => '36471d38a2f3ab8e533c52fcc6143d008dad1f37',
26
  'type' => 'wordpress-plugin',
27
  'install_path' => __DIR__ . '/../../',
28
  'aliases' => array(),
 
29
  'dev_requirement' => false,
30
  ),
31
  'roundcube/plugin-installer' => array(
43
  'skyverge/wc-plugin-framework' => array(
44
  'pretty_version' => '5.10.0',
45
  'version' => '5.10.0.0',
46
+ 'reference' => 'e230d7c40286854e49c0cafeec3398cbf2427a64',
47
  'type' => 'library',
48
  'install_path' => __DIR__ . '/../skyverge/wc-plugin-framework',
49
  'aliases' => array(),
 
50
  'dev_requirement' => false,
51
  ),
52
  'woocommerce/action-scheduler-job-framework' => array(
53
  'pretty_version' => '2.0.0',
54
  'version' => '2.0.0.0',
55
+ 'reference' => 'b0b21b9cc87e476ba7f8817050b39274ea7d6732',
56
  'type' => 'library',
57
  'install_path' => __DIR__ . '/../woocommerce/action-scheduler-job-framework',
58
  'aliases' => array(),
 
59
  'dev_requirement' => false,
60
  ),
61
  ),