Facebook for WooCommerce - Version 2.6.1

Version Description

  • 2021-06-28 =
    • Dev: Add facebook_for_woocommerce_allow_full_batch_api_sync filter to allow opt-out full batch API sync, to avoid possible performance issues on large sites
Download this release

Release Info

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

Code changes from version 2.6.0 to 2.6.1

changelog.txt CHANGED
@@ -1,6 +1,9 @@
1
  *** Facebook for WooCommerce Changelog ***
2
 
3
- 2021-06-10 - version 2.6.0
 
 
 
4
  * Fix – Add cron heartbeat and use to offload feed generation from init / admin_init (performance) #1953
5
  * Fix – Clean up background sync options (performance) #1962
6
  * Dev – Add tracker props to understand usage of feed-based sync and other FB business config options #1972
1
  *** Facebook for WooCommerce Changelog ***
2
 
3
+ 2021-06-28 - version 2.6.1
4
+ * Dev: Add `facebook_for_woocommerce_allow_full_batch_api_sync` filter to allow opt-out full batch API sync, to avoid possible performance issues on large sites
5
+
6
+ 2021-06-10 - version 2.6.0
7
  * Fix – Add cron heartbeat and use to offload feed generation from init / admin_init (performance) #1953
8
  * Fix – Clean up background sync options (performance) #1962
9
  * Dev – Add tracker props to understand usage of feed-based sync and other FB business config options #1972
facebook-commerce.php CHANGED
@@ -112,7 +112,6 @@ class WC_Facebookcommerce_Integration extends WC_Integration {
112
  /** @var string custom taxonomy FB product set ID */
113
  const FB_PRODUCT_SET_ID = 'fb_product_set_id';
114
 
115
-
116
  /** @var string|null the configured product catalog ID */
117
  public $product_catalog_id;
118
 
@@ -785,26 +784,41 @@ class WC_Facebookcommerce_Integration extends WC_Integration {
785
  return $product_item_ids;
786
  }
787
 
788
-
789
  /**
790
- * Gets the total of published products.
791
  *
792
  * @return int
793
  */
794
  public function get_product_count() {
 
 
 
795
 
796
- $args = array(
797
- 'post_type' => 'product',
798
- 'post_status' => 'publish',
799
- 'posts_per_page' => -1,
800
- 'fields' => 'ids',
801
- );
802
-
803
- $products = new WP_Query( $args );
804
-
805
- wp_reset_postdata();
806
 
807
- return $products->found_posts;
 
 
 
 
 
 
 
 
 
 
 
 
 
808
  }
809
 
810
 
112
  /** @var string custom taxonomy FB product set ID */
113
  const FB_PRODUCT_SET_ID = 'fb_product_set_id';
114
 
 
115
  /** @var string|null the configured product catalog ID */
116
  public $product_catalog_id;
117
 
784
  return $product_item_ids;
785
  }
786
 
 
787
  /**
788
+ * Gets the total number of published products.
789
  *
790
  * @return int
791
  */
792
  public function get_product_count() {
793
+ $product_counts = wp_count_posts( 'product' );
794
+ return $product_counts->publish;
795
+ }
796
 
797
+ /**
798
+ * Should full batch-API sync be allowed?
799
+ *
800
+ * May be used to disable various full sync UI/APIs to avoid performance impact.
801
+ *
802
+ * @return boolean True if full batch sync is safe.
803
+ * @since 2.6.1
804
+ */
805
+ public function allow_full_batch_api_sync() {
806
+ $default_allow_sync = true;
807
 
808
+ /**
809
+ * Allow full batch api sync to be enabled or disabled.
810
+ *
811
+ * @param bool $allow Default value - is full batch sync allowed?
812
+ * @param int $product_count Number of products in store.
813
+ *
814
+ * @return boolean True if full batch sync is safe.
815
+ * @since 2.6.1
816
+ */
817
+ return apply_filters(
818
+ 'facebook_for_woocommerce_allow_full_batch_api_sync',
819
+ $default_allow_sync,
820
+ $this->get_product_count()
821
+ );
822
  }
823
 
824
 
facebook-for-woocommerce.php CHANGED
@@ -10,7 +10,7 @@
10
  * 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.
11
  * Author: Facebook
12
  * Author URI: https://www.facebook.com/
13
- * Version: 2.6.0
14
  * Text Domain: facebook-for-woocommerce
15
  * WC requires at least: 3.5.0
16
  * WC tested up to: 5.7.0
@@ -31,7 +31,7 @@ class WC_Facebook_Loader {
31
  /**
32
  * @var string the plugin version. This must be in the main plugin file to be automatically bumped by Woorelease.
33
  */
34
- const PLUGIN_VERSION = '2.6.0'; // WRCS: DEFINED_VERSION.
35
 
36
  // Minimum PHP version required by this plugin.
37
  const MINIMUM_PHP_VERSION = '7.0.0';
10
  * 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.
11
  * Author: Facebook
12
  * Author URI: https://www.facebook.com/
13
+ * Version: 2.6.1
14
  * Text Domain: facebook-for-woocommerce
15
  * WC requires at least: 3.5.0
16
  * WC tested up to: 5.7.0
31
  /**
32
  * @var string the plugin version. This must be in the main plugin file to be automatically bumped by Woorelease.
33
  */
34
+ const PLUGIN_VERSION = '2.6.1'; // WRCS: DEFINED_VERSION.
35
 
36
  // Minimum PHP version required by this plugin.
37
  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.0\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://woocommerce.com/my-account/marketplace-ticket-form/\n"
8
- "POT-Creation-Date: 2021-06-10 18:28:50+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
@@ -107,69 +107,69 @@ msgstr ""
107
  msgid "Facebook for WooCommerce"
108
  msgstr ""
109
 
110
- #: facebook-commerce.php:230
111
  msgid "Facebook Commerce and Dynamic Ads (Pixel) Extension"
112
  msgstr ""
113
 
114
- #: facebook-commerce.php:642
115
  msgid "Facebook ID:"
116
  msgstr ""
117
 
118
- #: facebook-commerce.php:650
119
  msgid "Variant IDs:"
120
  msgstr ""
121
 
122
- #: facebook-commerce.php:668
123
  msgid "Reset Facebook metadata"
124
  msgstr ""
125
 
126
- #: facebook-commerce.php:673
127
  msgid "Delete product(s) on Facebook"
128
  msgstr ""
129
 
130
- #: facebook-commerce.php:681
131
  msgid "This product is not yet synced to Facebook."
132
  msgstr ""
133
 
134
- #: facebook-commerce.php:1493
135
  msgid "Nothing to update for product group for %1$s"
136
  msgstr ""
137
 
138
- #: facebook-commerce.php:1887
139
  #. translators: Placeholders %1$s - original error message from Facebook API
140
  msgid "There was an issue connecting to the Facebook API: %1$s"
141
  msgstr ""
142
 
143
- #: facebook-commerce.php:2223
144
  msgid "Your connection has expired."
145
  msgstr ""
146
 
147
- #: facebook-commerce.php:2223
148
  msgid ""
149
  "Please click Manage connection > Advanced Options > Update Token to refresh "
150
  "your connection to Facebook."
151
  msgstr ""
152
 
153
- #: facebook-commerce.php:2230
154
  #. translators: Placeholders %s - error message
155
  msgid "There was an error trying to sync the products to Facebook. %s"
156
  msgstr ""
157
 
158
- #: facebook-commerce.php:2253 facebook-commerce.php:2426
159
  msgid "Product sync is disabled."
160
  msgstr ""
161
 
162
- #: facebook-commerce.php:2260 facebook-commerce.php:2433
163
  msgid "The plugin is not configured or the Catalog ID is missing."
164
  msgstr ""
165
 
166
- #: facebook-commerce.php:2283
167
  msgid ""
168
  "A product sync is in progress. Please wait until the sync finishes before "
169
  "starting a new one."
170
  msgstr ""
171
 
172
- #: facebook-commerce.php:2295 facebook-commerce.php:2447
173
  msgid ""
174
  "We've detected that your Facebook Product Catalog is no longer valid. This "
175
  "may happen if it was deleted, but could also be a temporary error. If the "
@@ -177,33 +177,33 @@ msgid ""
177
  "and setup the plugin again."
178
  msgstr ""
179
 
180
- #: facebook-commerce.php:2471
181
  msgid "We couldn't create the feed or upload the product information."
182
  msgstr ""
183
 
184
- #: facebook-commerce.php:2939
185
  msgid "Hi! We're here to answer any questions you may have."
186
  msgstr ""
187
 
188
- #: facebook-commerce.php:3306
189
  msgid "Facebook for WooCommerce error:"
190
  msgstr ""
191
 
192
- #: facebook-commerce.php:3388
193
  msgid ""
194
  "There was an error trying to retrieve information about the Facebook page: "
195
  "%s"
196
  msgstr ""
197
 
198
- #: facebook-commerce.php:3439
199
  msgid "Get started with Messenger Customer Chat"
200
  msgstr ""
201
 
202
- #: facebook-commerce.php:3440
203
  msgid "Get started with Instagram Shopping"
204
  msgstr ""
205
 
206
- #: facebook-commerce.php:3675
207
  #. translators: Placeholders %1$s - original error message from Facebook API
208
  msgid "There was an issue connecting to the Facebook API: %s"
209
  msgstr ""
@@ -240,17 +240,23 @@ msgstr ""
240
  msgid "Order not found"
241
  msgstr ""
242
 
243
- #: includes/AJAX.php:337 includes/AJAX.php:405
 
 
 
 
 
 
244
  msgid "Go to Settings"
245
  msgstr ""
246
 
247
- #: includes/AJAX.php:342 includes/AJAX.php:410 includes/AJAX.php:476
248
  #: includes/Admin/Product_Categories.php:118
249
  #: includes/Admin/Settings_Screens/Product_Sync.php:157 includes/Admin.php:391
250
  msgid "Cancel"
251
  msgstr ""
252
 
253
- #: includes/AJAX.php:351
254
  #. translators: Placeholder %s - <br/> tag
255
  msgid ""
256
  "This product belongs to a category or tag that is excluded from the "
@@ -259,7 +265,7 @@ msgid ""
259
  "or click Cancel and update the product's category / tag assignments."
260
  msgstr ""
261
 
262
- #: includes/AJAX.php:417
263
  msgid ""
264
  "One or more of the selected products belongs to a category or tag that is "
265
  "excluded from the Facebook catalog sync. To sync these products to "
@@ -267,11 +273,11 @@ msgid ""
267
  "settings."
268
  msgstr ""
269
 
270
- #: includes/AJAX.php:470
271
  msgid "Exclude Products"
272
  msgstr ""
273
 
274
- #: includes/AJAX.php:485
275
  #. translators: Placeholder %s - <br/> tags
276
  msgid ""
277
  "The categories and/or tags that you have selected to exclude from sync "
@@ -316,7 +322,7 @@ msgid ""
316
  msgstr ""
317
 
318
  #: includes/Admin/Product_Categories.php:232
319
- #: includes/Admin/Settings_Screens/Product_Sync.php:339
320
  msgid "Default Google product category"
321
  msgstr ""
322
 
@@ -397,8 +403,8 @@ msgstr ""
397
  #: includes/Admin/Settings.php:126
398
  #: includes/Admin/Settings_Screens/Product_Sync.php:42
399
  #: includes/Admin/Settings_Screens/Product_Sync.php:43
400
- #: includes/Admin/Settings_Screens/Product_Sync.php:182
401
- #: includes/Admin/Settings_Screens/Product_Sync.php:285
402
  msgid "Product sync"
403
  msgstr ""
404
 
@@ -610,62 +616,62 @@ msgid ""
610
  "Are you sure you want to proceed?"
611
  msgstr ""
612
 
613
- #: includes/Admin/Settings_Screens/Product_Sync.php:190
614
  msgid "Sync products"
615
  msgstr ""
616
 
617
- #: includes/Admin/Settings_Screens/Product_Sync.php:290
618
  msgid "Enable product sync"
619
  msgstr ""
620
 
621
- #: includes/Admin/Settings_Screens/Product_Sync.php:298
622
  msgid "Exclude categories from sync"
623
  msgstr ""
624
 
625
- #: includes/Admin/Settings_Screens/Product_Sync.php:302
626
  msgid "Products in one or more of these categories will not sync to Facebook."
627
  msgstr ""
628
 
629
- #: includes/Admin/Settings_Screens/Product_Sync.php:306
630
  msgid "Search for a product category&hellip;"
631
  msgstr ""
632
 
633
- #: includes/Admin/Settings_Screens/Product_Sync.php:312
634
  msgid "Exclude tags from sync"
635
  msgstr ""
636
 
637
- #: includes/Admin/Settings_Screens/Product_Sync.php:316
638
  msgid "Products with one or more of these tags will not sync to Facebook."
639
  msgstr ""
640
 
641
- #: includes/Admin/Settings_Screens/Product_Sync.php:320
642
  msgid "Search for a product tag&hellip;"
643
  msgstr ""
644
 
645
- #: includes/Admin/Settings_Screens/Product_Sync.php:326
646
  msgid "Product description sync"
647
  msgstr ""
648
 
649
- #: includes/Admin/Settings_Screens/Product_Sync.php:329
650
  msgid "Choose which product description to display in the Facebook catalog."
651
  msgstr ""
652
 
653
- #: includes/Admin/Settings_Screens/Product_Sync.php:332
654
  msgid "Standard description"
655
  msgstr ""
656
 
657
- #: includes/Admin/Settings_Screens/Product_Sync.php:333
658
  msgid "Short description"
659
  msgstr ""
660
 
661
- #: includes/Admin/Settings_Screens/Product_Sync.php:340
662
  msgid ""
663
  "Choose a default Google product category for your products. Defaults can "
664
  "also be set for product categories. Products need at least two category "
665
  "levels defined for tax to be correctly applied."
666
  msgstr ""
667
 
668
- #: includes/Admin/Settings_Screens/Product_Sync.php:386
669
  #. translators: Placeholders: %1$s - <a> tag, %2$s - </a> tag
670
  msgid "Please %1$sconnect to Facebook%2$s to enable and manage product sync."
671
  msgstr ""
@@ -958,29 +964,29 @@ msgstr ""
958
  msgid "Other"
959
  msgstr ""
960
 
961
- #: includes/Handlers/Connection.php:316
962
  msgid "Connection successful!"
963
  msgstr ""
964
 
965
- #: includes/Handlers/Connection.php:347
966
  msgid "You do not have permission to uninstall Facebook Business Extension."
967
  msgstr ""
968
 
969
- #: includes/Handlers/Connection.php:357
970
  msgid "Disconnection successful."
971
  msgstr ""
972
 
973
- #: includes/Handlers/Connection.php:422
974
  #. translators: Placeholders: %s - API error message
975
  msgid "Could not retrieve page access data. %s"
976
  msgstr ""
977
 
978
- #: includes/Handlers/Connection.php:436
979
  #. translators: Placeholders: %s - Facebook page ID
980
  msgid "Page %s not authorized."
981
  msgstr ""
982
 
983
- #: includes/Handlers/Connection.php:1379
984
  msgid "You do not have permission to finish App Store login."
985
  msgstr ""
986
 
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.1\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://woocommerce.com/my-account/marketplace-ticket-form/\n"
8
+ "POT-Creation-Date: 2021-06-28 02:51:02+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
107
  msgid "Facebook for WooCommerce"
108
  msgstr ""
109
 
110
+ #: facebook-commerce.php:229
111
  msgid "Facebook Commerce and Dynamic Ads (Pixel) Extension"
112
  msgstr ""
113
 
114
+ #: facebook-commerce.php:641
115
  msgid "Facebook ID:"
116
  msgstr ""
117
 
118
+ #: facebook-commerce.php:649
119
  msgid "Variant IDs:"
120
  msgstr ""
121
 
122
+ #: facebook-commerce.php:667
123
  msgid "Reset Facebook metadata"
124
  msgstr ""
125
 
126
+ #: facebook-commerce.php:672
127
  msgid "Delete product(s) on Facebook"
128
  msgstr ""
129
 
130
+ #: facebook-commerce.php:680
131
  msgid "This product is not yet synced to Facebook."
132
  msgstr ""
133
 
134
+ #: facebook-commerce.php:1507
135
  msgid "Nothing to update for product group for %1$s"
136
  msgstr ""
137
 
138
+ #: facebook-commerce.php:1901
139
  #. translators: Placeholders %1$s - original error message from Facebook API
140
  msgid "There was an issue connecting to the Facebook API: %1$s"
141
  msgstr ""
142
 
143
+ #: facebook-commerce.php:2237
144
  msgid "Your connection has expired."
145
  msgstr ""
146
 
147
+ #: facebook-commerce.php:2237
148
  msgid ""
149
  "Please click Manage connection > Advanced Options > Update Token to refresh "
150
  "your connection to Facebook."
151
  msgstr ""
152
 
153
+ #: facebook-commerce.php:2244
154
  #. translators: Placeholders %s - error message
155
  msgid "There was an error trying to sync the products to Facebook. %s"
156
  msgstr ""
157
 
158
+ #: facebook-commerce.php:2267 facebook-commerce.php:2440
159
  msgid "Product sync is disabled."
160
  msgstr ""
161
 
162
+ #: facebook-commerce.php:2274 facebook-commerce.php:2447
163
  msgid "The plugin is not configured or the Catalog ID is missing."
164
  msgstr ""
165
 
166
+ #: facebook-commerce.php:2297
167
  msgid ""
168
  "A product sync is in progress. Please wait until the sync finishes before "
169
  "starting a new one."
170
  msgstr ""
171
 
172
+ #: facebook-commerce.php:2309 facebook-commerce.php:2461
173
  msgid ""
174
  "We've detected that your Facebook Product Catalog is no longer valid. This "
175
  "may happen if it was deleted, but could also be a temporary error. If the "
177
  "and setup the plugin again."
178
  msgstr ""
179
 
180
+ #: facebook-commerce.php:2485
181
  msgid "We couldn't create the feed or upload the product information."
182
  msgstr ""
183
 
184
+ #: facebook-commerce.php:2953
185
  msgid "Hi! We're here to answer any questions you may have."
186
  msgstr ""
187
 
188
+ #: facebook-commerce.php:3320
189
  msgid "Facebook for WooCommerce error:"
190
  msgstr ""
191
 
192
+ #: facebook-commerce.php:3402
193
  msgid ""
194
  "There was an error trying to retrieve information about the Facebook page: "
195
  "%s"
196
  msgstr ""
197
 
198
+ #: facebook-commerce.php:3453
199
  msgid "Get started with Messenger Customer Chat"
200
  msgstr ""
201
 
202
+ #: facebook-commerce.php:3454
203
  msgid "Get started with Instagram Shopping"
204
  msgstr ""
205
 
206
+ #: facebook-commerce.php:3689
207
  #. translators: Placeholders %1$s - original error message from Facebook API
208
  msgid "There was an issue connecting to the Facebook API: %s"
209
  msgstr ""
240
  msgid "Order not found"
241
  msgstr ""
242
 
243
+ #: includes/AJAX.php:219
244
+ msgid ""
245
+ "Full product sync disabled by filter hook "
246
+ "`facebook_for_woocommerce_allow_full_batch_api_sync`."
247
+ msgstr ""
248
+
249
+ #: includes/AJAX.php:342 includes/AJAX.php:410
250
  msgid "Go to Settings"
251
  msgstr ""
252
 
253
+ #: includes/AJAX.php:347 includes/AJAX.php:415 includes/AJAX.php:481
254
  #: includes/Admin/Product_Categories.php:118
255
  #: includes/Admin/Settings_Screens/Product_Sync.php:157 includes/Admin.php:391
256
  msgid "Cancel"
257
  msgstr ""
258
 
259
+ #: includes/AJAX.php:356
260
  #. translators: Placeholder %s - <br/> tag
261
  msgid ""
262
  "This product belongs to a category or tag that is excluded from the "
265
  "or click Cancel and update the product's category / tag assignments."
266
  msgstr ""
267
 
268
+ #: includes/AJAX.php:422
269
  msgid ""
270
  "One or more of the selected products belongs to a category or tag that is "
271
  "excluded from the Facebook catalog sync. To sync these products to "
273
  "settings."
274
  msgstr ""
275
 
276
+ #: includes/AJAX.php:475
277
  msgid "Exclude Products"
278
  msgstr ""
279
 
280
+ #: includes/AJAX.php:490
281
  #. translators: Placeholder %s - <br/> tags
282
  msgid ""
283
  "The categories and/or tags that you have selected to exclude from sync "
322
  msgstr ""
323
 
324
  #: includes/Admin/Product_Categories.php:232
325
+ #: includes/Admin/Settings_Screens/Product_Sync.php:337
326
  msgid "Default Google product category"
327
  msgstr ""
328
 
403
  #: includes/Admin/Settings.php:126
404
  #: includes/Admin/Settings_Screens/Product_Sync.php:42
405
  #: includes/Admin/Settings_Screens/Product_Sync.php:43
406
+ #: includes/Admin/Settings_Screens/Product_Sync.php:180
407
+ #: includes/Admin/Settings_Screens/Product_Sync.php:283
408
  msgid "Product sync"
409
  msgstr ""
410
 
616
  "Are you sure you want to proceed?"
617
  msgstr ""
618
 
619
+ #: includes/Admin/Settings_Screens/Product_Sync.php:188
620
  msgid "Sync products"
621
  msgstr ""
622
 
623
+ #: includes/Admin/Settings_Screens/Product_Sync.php:288
624
  msgid "Enable product sync"
625
  msgstr ""
626
 
627
+ #: includes/Admin/Settings_Screens/Product_Sync.php:296
628
  msgid "Exclude categories from sync"
629
  msgstr ""
630
 
631
+ #: includes/Admin/Settings_Screens/Product_Sync.php:300
632
  msgid "Products in one or more of these categories will not sync to Facebook."
633
  msgstr ""
634
 
635
+ #: includes/Admin/Settings_Screens/Product_Sync.php:304
636
  msgid "Search for a product category&hellip;"
637
  msgstr ""
638
 
639
+ #: includes/Admin/Settings_Screens/Product_Sync.php:310
640
  msgid "Exclude tags from sync"
641
  msgstr ""
642
 
643
+ #: includes/Admin/Settings_Screens/Product_Sync.php:314
644
  msgid "Products with one or more of these tags will not sync to Facebook."
645
  msgstr ""
646
 
647
+ #: includes/Admin/Settings_Screens/Product_Sync.php:318
648
  msgid "Search for a product tag&hellip;"
649
  msgstr ""
650
 
651
+ #: includes/Admin/Settings_Screens/Product_Sync.php:324
652
  msgid "Product description sync"
653
  msgstr ""
654
 
655
+ #: includes/Admin/Settings_Screens/Product_Sync.php:327
656
  msgid "Choose which product description to display in the Facebook catalog."
657
  msgstr ""
658
 
659
+ #: includes/Admin/Settings_Screens/Product_Sync.php:330
660
  msgid "Standard description"
661
  msgstr ""
662
 
663
+ #: includes/Admin/Settings_Screens/Product_Sync.php:331
664
  msgid "Short description"
665
  msgstr ""
666
 
667
+ #: includes/Admin/Settings_Screens/Product_Sync.php:338
668
  msgid ""
669
  "Choose a default Google product category for your products. Defaults can "
670
  "also be set for product categories. Products need at least two category "
671
  "levels defined for tax to be correctly applied."
672
  msgstr ""
673
 
674
+ #: includes/Admin/Settings_Screens/Product_Sync.php:384
675
  #. translators: Placeholders: %1$s - <a> tag, %2$s - </a> tag
676
  msgid "Please %1$sconnect to Facebook%2$s to enable and manage product sync."
677
  msgstr ""
964
  msgid "Other"
965
  msgstr ""
966
 
967
+ #: includes/Handlers/Connection.php:323
968
  msgid "Connection successful!"
969
  msgstr ""
970
 
971
+ #: includes/Handlers/Connection.php:354
972
  msgid "You do not have permission to uninstall Facebook Business Extension."
973
  msgstr ""
974
 
975
+ #: includes/Handlers/Connection.php:364
976
  msgid "Disconnection successful."
977
  msgstr ""
978
 
979
+ #: includes/Handlers/Connection.php:429
980
  #. translators: Placeholders: %s - API error message
981
  msgid "Could not retrieve page access data. %s"
982
  msgstr ""
983
 
984
+ #: includes/Handlers/Connection.php:443
985
  #. translators: Placeholders: %s - Facebook page ID
986
  msgid "Page %s not authorized."
987
  msgstr ""
988
 
989
+ #: includes/Handlers/Connection.php:1386
990
  msgid "You do not have permission to finish App Store login."
991
  msgstr ""
992
 
includes/AJAX.php CHANGED
@@ -214,6 +214,11 @@ class AJAX {
214
  * @since 2.0.0
215
  */
216
  public function sync_products() {
 
 
 
 
 
217
 
218
  check_admin_referer( Product_Sync::ACTION_SYNC_PRODUCTS, 'nonce' );
219
 
214
  * @since 2.0.0
215
  */
216
  public function sync_products() {
217
+ // Allow opt-out of full batch-API sync, for example if store has a large number of products.
218
+ if ( ! facebook_for_woocommerce()->get_integration()->allow_full_batch_api_sync() ) {
219
+ wp_send_json_error( __( 'Full product sync disabled by filter hook `facebook_for_woocommerce_allow_full_batch_api_sync`.', 'facebook-for-woocommerce' ) );
220
+ return;
221
+ }
222
 
223
  check_admin_referer( Product_Sync::ACTION_SYNC_PRODUCTS, 'nonce' );
224
 
includes/Admin/Settings_Screens/Product_Sync.php CHANGED
@@ -174,9 +174,7 @@ class Product_Sync extends Admin\Abstract_Settings_Screen {
174
  * @param array $field field data
175
  */
176
  public function render_title( $field ) {
177
-
178
  ?>
179
-
180
  <h2>
181
 
182
  <?php esc_html_e( 'Product sync', 'facebook-for-woocommerce' ); ?>
174
  * @param array $field field data
175
  */
176
  public function render_title( $field ) {
 
177
  ?>
 
178
  <h2>
179
 
180
  <?php esc_html_e( 'Product sync', 'facebook-for-woocommerce' ); ?>
includes/Handlers/Connection.php CHANGED
@@ -301,7 +301,14 @@ class Connection {
301
  $this->update_system_user_id( $system_user_id );
302
  $this->update_installation_data();
303
 
304
- facebook_for_woocommerce()->get_products_sync_handler()->create_or_update_all_products();
 
 
 
 
 
 
 
305
 
306
  update_option( 'wc_facebook_has_connected_fbe_2', 'yes' );
307
  update_option( 'wc_facebook_has_authorized_pages_read_engagement', 'yes' );
301
  $this->update_system_user_id( $system_user_id );
302
  $this->update_installation_data();
303
 
304
+ // Allow opt-out of full batch-API sync, for example if store has a large number of products.
305
+ if ( facebook_for_woocommerce()->get_integration()->allow_full_batch_api_sync() ) {
306
+ facebook_for_woocommerce()->get_products_sync_handler()->create_or_update_all_products();
307
+ }
308
+ else {
309
+ facebook_for_woocommerce()->log( 'Initial full product sync disabled by filter hook `facebook_for_woocommerce_allow_full_batch_api_sync`', 'facebook_for_woocommerce_connect' );
310
+ }
311
+
312
 
313
  update_option( 'wc_facebook_has_connected_fbe_2', 'yes' );
314
  update_option( 'wc_facebook_has_authorized_pages_read_engagement', 'yes' );
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.7
6
- Stable tag: 2.6.0
7
  Requires PHP: 5.6 or greater
8
  MySQL: 5.6 or greater
9
  License: GPLv2 or later
@@ -39,7 +39,10 @@ When opening a bug on GitHub, please give us as many details as possible.
39
 
40
  == Changelog ==
41
 
42
- = 2.6.0 - 2021-06-10 =
 
 
 
43
  * Fix – Add cron heartbeat and use to offload feed generation from init / admin_init (performance) #1953
44
  * Fix – Clean up background sync options (performance) #1962
45
  * Dev – Add tracker props to understand usage of feed-based sync and other FB business config options #1972
3
  Tags: facebook, shop, catalog, advertise, pixel, product
4
  Requires at least: 4.4
5
  Tested up to: 5.7
6
+ Stable tag: 2.6.1
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.1 - 2021-06-28 =
43
+ * Dev: Add `facebook_for_woocommerce_allow_full_batch_api_sync` filter to allow opt-out full batch API sync, to avoid possible performance issues on large sites
44
+
45
+ = 2.6.0 - 2021-06-10 =
46
  * Fix – Add cron heartbeat and use to offload feed generation from init / admin_init (performance) #1953
47
  * Fix – Clean up background sync options (performance) #1962
48
  * Dev – Add tracker props to understand usage of feed-based sync and other FB business config options #1972
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitf259fca39ad059a7a2ae6e49ea65d16c::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit3f790c8865bba7f592bf745823388190::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitf259fca39ad059a7a2ae6e49ea65d16c
6
  {
7
  private static $loader;
8
 
@@ -22,15 +22,15 @@ class ComposerAutoloaderInitf259fca39ad059a7a2ae6e49ea65d16c
22
  return self::$loader;
23
  }
24
 
25
- spl_autoload_register(array('ComposerAutoloaderInitf259fca39ad059a7a2ae6e49ea65d16c', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
- spl_autoload_unregister(array('ComposerAutoloaderInitf259fca39ad059a7a2ae6e49ea65d16c', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
- call_user_func(\Composer\Autoload\ComposerStaticInitf259fca39ad059a7a2ae6e49ea65d16c::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit3f790c8865bba7f592bf745823388190
6
  {
7
  private static $loader;
8
 
22
  return self::$loader;
23
  }
24
 
25
+ spl_autoload_register(array('ComposerAutoloaderInit3f790c8865bba7f592bf745823388190', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
+ spl_autoload_unregister(array('ComposerAutoloaderInit3f790c8865bba7f592bf745823388190', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
+ call_user_func(\Composer\Autoload\ComposerStaticInit3f790c8865bba7f592bf745823388190::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInitf259fca39ad059a7a2ae6e49ea65d16c
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'S' =>
@@ -39,8 +39,8 @@ class ComposerStaticInitf259fca39ad059a7a2ae6e49ea65d16c
39
  public static function getInitializer(ClassLoader $loader)
40
  {
41
  return \Closure::bind(function () use ($loader) {
42
- $loader->prefixLengthsPsr4 = ComposerStaticInitf259fca39ad059a7a2ae6e49ea65d16c::$prefixLengthsPsr4;
43
- $loader->prefixDirsPsr4 = ComposerStaticInitf259fca39ad059a7a2ae6e49ea65d16c::$prefixDirsPsr4;
44
 
45
  }, null, ClassLoader::class);
46
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit3f790c8865bba7f592bf745823388190
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'S' =>
39
  public static function getInitializer(ClassLoader $loader)
40
  {
41
  return \Closure::bind(function () use ($loader) {
42
+ $loader->prefixLengthsPsr4 = ComposerStaticInit3f790c8865bba7f592bf745823388190::$prefixLengthsPsr4;
43
+ $loader->prefixDirsPsr4 = ComposerStaticInit3f790c8865bba7f592bf745823388190::$prefixDirsPsr4;
44
 
45
  }, null, ClassLoader::class);
46
  }