Facebook for WooCommerce - Version 2.6.23

Version Description

  • 2022-09-13 =
  • Add - Show warning when creating product set with excluded categories.
  • Fix - Messenger settings are no longer overridden after business config refresh.
  • Fix - PHP notice thrown by get_page_id() in facebook-for-woocommerce/includes/API/FBE/Installation/Read/Response.php.
  • Fix - When disabling Enable Messenger on the Messenger setting page, the setting does not persist after selecting Save Changes.
Download this release

Release Info

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

Code changes from version 2.6.22 to 2.6.23

assets/build/admin/product-sets-admin.asset.php CHANGED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('wp-polyfill'), 'version' => '98d555c2e6a0ef6072bdf3f337f9302c');
1
+ <?php return array('dependencies' => array('wp-polyfill'), 'version' => '646cbd7ed7e31a6978b8ef073dc8196f');
assets/build/admin/product-sets-admin.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=9)}({9:function(e,t){jQuery(document).ready((function(e){jQuery(".select2.wc-facebook").length&&(jQuery(".select2.wc-facebook").select2().addClass("visible").attr("disabled",!1),jQuery(".select2.updating-message").addClass("hidden"),jQuery(document).ajaxSuccess((function(e,t,n){var r=new URLSearchParams(n.data);r.has("action")&&"add-tag"===r.get("action")&&r.has("taxonomy")&&"fb_product_set"===r.get("taxonomy")&&jQuery(".select2.wc-facebook").select2().val(null).trigger("change")})))}))}});
1
+ !function(e){var t={};function o(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.m=e,o.c=t,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)o.d(r,n,function(t){return e[t]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=9)}({9:function(e,t){jQuery(document).ready((function(e){jQuery(".select2.wc-facebook").length&&(jQuery(".select2.wc-facebook").select2().addClass("visible").attr("disabled",!1),jQuery(".select2.updating-message").addClass("hidden"),jQuery(document).ajaxSuccess((function(e,t,o){var r=new URLSearchParams(o.data);r.has("action")&&"add-tag"===r.get("action")&&r.has("taxonomy")&&"fb_product_set"===r.get("taxonomy")&&jQuery(".select2.wc-facebook").select2().val(null).trigger("change")}))),e('form[id="addtag"] input[name="submit"]').on("click",(function(t){var o=e("#_wc_facebook_product_cats").val(),r=[];window.facebook_for_woocommerce_product_sets&&window.facebook_for_woocommerce_product_sets.excluded_category_ids&&(r=window.facebook_for_woocommerce_product_sets.excluded_category_ids),o.length>0&&r.length>0&&function(e,t){for(var o=0,r=0;r<t.length;r++)t.includes(t[r])&&o++;return o>0}(0,r)&&alert(facebook_for_woocommerce_product_sets.excluded_category_warning_message)}))}))}});
assets/js/admin/product-sets-admin.js CHANGED
@@ -27,4 +27,42 @@ jQuery( document ).ready( function( $ ) {
27
 
28
  }
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  } );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
  }
29
 
30
+ let $submitButton = $( 'form[id="addtag"] input[name="submit"]' );
31
+
32
+ $submitButton.on( 'click', function( e ) {
33
+
34
+ let $selectedCategories = $('#_wc_facebook_product_cats').val();
35
+ let excludedCategoryIDs = [];
36
+
37
+ if ( window.facebook_for_woocommerce_product_sets && window.facebook_for_woocommerce_product_sets.excluded_category_ids ) {
38
+ excludedCategoryIDs = window.facebook_for_woocommerce_product_sets.excluded_category_ids;
39
+ }
40
+
41
+ if ( $selectedCategories.length > 0 && excludedCategoryIDs.length > 0 ) {
42
+ if ( hasExcludedCategories( $selectedCategories, excludedCategoryIDs ) ) {
43
+ alert( facebook_for_woocommerce_product_sets.excluded_category_warning_message );
44
+ }
45
+ }
46
+
47
+ });
48
+
49
  } );
50
+
51
+ /**
52
+ * Checks if selected categories contains any excluded categories.
53
+ *
54
+ * @param selectedCategories Array of submitted category ids
55
+ * @param excludedCategoryIDs Array category ids excluded from sync.
56
+ * @returns {boolean}
57
+ */
58
+ function hasExcludedCategories( selectedCategories, excludedCategoryIDs ) {
59
+
60
+ let counter = 0;
61
+
62
+ for ( let i = 0; i < excludedCategoryIDs.length; i++ ) {
63
+ if ( excludedCategoryIDs.includes( excludedCategoryIDs[i] ) ) counter++;
64
+ }
65
+
66
+ return counter > 0;
67
+
68
+ }
changelog.txt CHANGED
@@ -1,43 +1,49 @@
1
  *** Facebook for WooCommerce Changelog ***
2
 
3
- = 2.6.22 - 2022-09-06 =
4
- * Fix - Adding an excluded category doesn't remove that category synced products.
5
- * Fix - Ensure content_name and content_ids addToCart pixel event properties are correct for variable products when redirect to cart is enabled in WooCommerce.
6
- * Fix - Remove out-of-stock products on Facebook when the "Hide out of stock items from the catalog" option in WooCommerce is checked.
7
- * Tweak - WC 6.9 compatibility.
8
- * Update - Facebook Business Extension flow from COMMERCE_OFFSITE to DEFAULT.
9
 
10
- = 2.6.21 - 2022-08-16 =
11
- * Dev - Add branch-labels GH workflow.
12
- * Fix - `Undefined array key "HTTP_REFERER"` not longer happens when `new Event` is triggered from an AJAX call that doesn't include a referrer (likely due to browser configuration).
13
- * Tweak - WC 6.8 compatibility.
14
- * Tweak - WP 6.0 compatibility.
15
-
16
- 2022-08-09 - version 2.6.20
17
- * Fix - Ensure product is deleted from FB when moved to trash.
18
- * Fix - Price not updating when the sale price is removed.
19
-
20
- = 2.6.19 - 2022-07-27 =
21
- * Add - `wc_facebook_string_apply_shortcodes` filter to check whether to apply shortcodes on a string before syncing.
22
- * Tweak - Use the Heartbeat system to refresh the local business configuration data with the latest from Facebook.
23
- * Tweak - WC 6.8 compatibility.
24
-
25
- 2022-07-19 - version 2.6.18
26
- * Fix - Misaligned help icons on Product Categories > Google Product Categories form.
27
- * Fix - Syncing WC custom placeholder to Facebook shop.
28
- * Fix - is_search() causing fatal error when custom queries are used.
29
-
30
- = 2.6.17 - 2022-07-06 =
31
- * Fix - Add allow-plugins directive and adjust phpcs GitHub workflow.
32
- * Fix - Scheduled product not synced when status becomes "publish".
33
- * Tweak - WooCommerce 6.7 compatibility.
34
- * Update - Facebook Marketing API from v12.0 to v13.0.
35
-
36
- = 2.6.16 - 2022-06-07 =
37
- * Fix - Updating reference from old master branch.
38
- * Tweak - WC 6.6 compatibility.
39
-
40
- 2022-06-01 - version 2.6.15
 
 
 
 
 
 
 
41
  * Fix - Do not set `sale_price` when the product is not on sale.
42
  * Fix - FB Pixel is missing some ajax Add to cart events.
43
  * Fix - Feed visibility field value for hidden items.
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.
6
+ * Fix - PHP notice thrown by get_page_id() in facebook-for-woocommerce/includes/API/FBE/Installation/Read/Response.php.
7
+ * Fix - When disabling Enable Messenger on the Messenger setting page, the setting does not persist after selecting Save Changes.
 
8
 
9
+ = 2.6.22 - 2022-09-06 =
10
+ * Fix - Adding an excluded category doesn't remove that category synced products.
11
+ * Fix - Ensure content_name and content_ids addToCart pixel event properties are correct for variable products when redirect to cart is enabled in WooCommerce.
12
+ * Fix - Remove out-of-stock products on Facebook when the "Hide out of stock items from the catalog" option in WooCommerce is checked.
13
+ * Tweak - WC 6.9 compatibility.
14
+ * Update - Facebook Business Extension flow from COMMERCE_OFFSITE to DEFAULT.
15
+
16
+ = 2.6.21 - 2022-08-16 =
17
+ * Dev - Add branch-labels GH workflow.
18
+ * Fix - `Undefined array key "HTTP_REFERER"` not longer happens when `new Event` is triggered from an AJAX call that doesn't include a referrer (likely due to browser configuration).
19
+ * Tweak - WC 6.8 compatibility.
20
+ * Tweak - WP 6.0 compatibility.
21
+
22
+ 2022-08-09 - version 2.6.20
23
+ * Fix - Ensure product is deleted from FB when moved to trash.
24
+ * Fix - Price not updating when the sale price is removed.
25
+
26
+ = 2.6.19 - 2022-07-27 =
27
+ * Add - `wc_facebook_string_apply_shortcodes` filter to check whether to apply shortcodes on a string before syncing.
28
+ * Tweak - Use the Heartbeat system to refresh the local business configuration data with the latest from Facebook.
29
+ * Tweak - WC 6.8 compatibility.
30
+
31
+ 2022-07-19 - version 2.6.18
32
+ * Fix - Misaligned help icons on Product Categories > Google Product Categories form.
33
+ * Fix - Syncing WC custom placeholder to Facebook shop.
34
+ * Fix - is_search() causing fatal error when custom queries are used.
35
+
36
+ = 2.6.17 - 2022-07-06 =
37
+ * Fix - Add allow-plugins directive and adjust phpcs GitHub workflow.
38
+ * Fix - Scheduled product not synced when status becomes "publish".
39
+ * Tweak - WooCommerce 6.7 compatibility.
40
+ * Update - Facebook Marketing API from v12.0 to v13.0.
41
+
42
+ = 2.6.16 - 2022-06-07 =
43
+ * Fix - Updating reference from old master branch.
44
+ * Tweak - WC 6.6 compatibility.
45
+
46
+ 2022-06-01 - version 2.6.15
47
  * Fix - Do not set `sale_price` when the product is not on sale.
48
  * Fix - FB Pixel is missing some ajax Add to cart events.
49
  * Fix - Feed visibility field value for hidden items.
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.22
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.22'; // 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.23
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.23'; // 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.22\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://woocommerce.com/my-account/marketplace-ticket-form/\n"
8
- "POT-Creation-Date: 2022-09-06 17:06:25+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
@@ -226,7 +226,7 @@ msgstr ""
226
 
227
  #: includes/AJAX.php:348 includes/AJAX.php:416 includes/AJAX.php:482
228
  #: includes/Admin/Product_Categories.php:119
229
- #: includes/Admin/Settings_Screens/Product_Sync.php:158 includes/Admin.php:411
230
  msgid "Cancel"
231
  msgstr ""
232
 
@@ -392,9 +392,9 @@ msgid "Connection"
392
  msgstr ""
393
 
394
  #: includes/Admin/Settings.php:128
395
- #: includes/Admin/Settings_Screens/Messenger.php:41
396
- #: includes/Admin/Settings_Screens/Messenger.php:42
397
- #: includes/Admin/Settings_Screens/Messenger.php:148
398
  msgid "Messenger"
399
  msgstr ""
400
 
@@ -540,40 +540,33 @@ msgid ""
540
  "with feed generation. This is an experimental feature in testing phase."
541
  msgstr ""
542
 
543
- #: includes/Admin/Settings_Screens/Messenger.php:122
544
  #. translators: Placeholders: %1$s - <a> tag, %2$s - </a> tag
545
  msgid "%1$sClick here%2$s to manage your Messenger greeting and colors."
546
  msgstr ""
547
 
548
- #: includes/Admin/Settings_Screens/Messenger.php:154
549
  msgid "Enable Messenger"
550
  msgstr ""
551
 
552
- #: includes/Admin/Settings_Screens/Messenger.php:156
553
  msgid "Enable and customize Facebook Messenger on your store"
554
  msgstr ""
555
 
556
- #: includes/Admin/Settings_Screens/Messenger.php:166
557
  msgid "Language"
558
  msgstr ""
559
 
560
- #: includes/Admin/Settings_Screens/Messenger.php:171
561
  msgid "Greeting & Colors"
562
  msgstr ""
563
 
564
- #: includes/Admin/Settings_Screens/Messenger.php:193
565
  #. translators: Placeholders: %1$s - <a> tag, %2$s - </a> tag
566
  msgid "Please %1$sconnect to Facebook%2$s to enable and manage Facebook Messenger."
567
  msgstr ""
568
 
569
- #: includes/Admin/Settings_Screens/Messenger.php:246
570
- #. translators: Placeholders: %1$s - <a> tag, %2$s - </a> tag
571
- msgid ""
572
- "There was an error communicating with the Facebook Business Extension. "
573
- "%1$sClick here%2$s to manage your Messenger settings."
574
- msgstr ""
575
-
576
- #: includes/Admin/Settings_Screens/Messenger.php:318
577
  msgid "Please try again."
578
  msgstr ""
579
 
@@ -692,41 +685,48 @@ msgstr ""
692
  msgid "The name is how it appears on Facebook Catalog."
693
  msgstr ""
694
 
695
- #: includes/Admin.php:214
 
 
 
 
 
 
 
696
  msgid ""
697
  "Please enter a Google product category and at least one sub-category to "
698
  "sell this product on Instagram."
699
  msgstr ""
700
 
701
- #: includes/Admin.php:240
702
  msgid "Search main categories..."
703
  msgstr ""
704
 
705
- #: includes/Admin.php:241
706
  msgid "Choose a main category"
707
  msgstr ""
708
 
709
- #: includes/Admin.php:242
710
  msgid "Choose a category"
711
  msgstr ""
712
 
713
- #: includes/Admin.php:299
714
  msgid ""
715
  "To sell this product on Instagram, please ensure it meets the following "
716
  "requirements:"
717
  msgstr ""
718
 
719
- #: includes/Admin.php:302
720
  msgid "Has a price defined"
721
  msgstr ""
722
 
723
- #: includes/Admin.php:308
724
  #. translators: Placeholders: %1$s - <strong> opening HTML tag, %2$s -
725
  #. </strong> closing HTML tag
726
  msgid "Has %1$sManage Stock%2$s enabled on the %1$sInventory%2$s tab"
727
  msgstr ""
728
 
729
- #: includes/Admin.php:320
730
  #. translators: Placeholders: %1$s - <strong> opening HTML tag, %2$s -
731
  #. </strong> closing HTML tag
732
  msgid ""
@@ -734,11 +734,11 @@ msgid ""
734
  "and hide\""
735
  msgstr ""
736
 
737
- #: includes/Admin.php:349
738
  msgid "Close"
739
  msgstr ""
740
 
741
- #: includes/Admin.php:374
742
  #. translators: Placeholders: %1$s - opening <a> link tag, %2$s - closing </a>
743
  #. link tag
744
  msgid ""
@@ -747,44 +747,44 @@ msgid ""
747
  "the Facebook catalog as well?"
748
  msgstr ""
749
 
750
- #: includes/Admin.php:403
751
  msgid "Remove from sync only"
752
  msgstr ""
753
 
754
- #: includes/Admin.php:407
755
  msgid "Remove from sync and delete"
756
  msgstr ""
757
 
758
- #: includes/Admin.php:443 includes/Admin.php:1286 includes/Admin.php:1428
759
  msgid "Facebook sync"
760
  msgstr ""
761
 
762
- #: includes/Admin.php:470 includes/Admin.php:501
763
  msgid "Sync and show"
764
  msgstr ""
765
 
766
- #: includes/Admin.php:472 includes/Admin.php:502
767
  msgid "Sync and hide"
768
  msgstr ""
769
 
770
- #: includes/Admin.php:476 includes/Admin.php:503 includes/Admin.php:1290
771
- #: includes/Admin.php:1432
772
  msgid "Do not sync"
773
  msgstr ""
774
 
775
- #: includes/Admin.php:500
776
  msgid "Filter by Facebook sync setting"
777
  msgstr ""
778
 
779
- #: includes/Admin.php:913
780
  msgid "Include in Facebook sync"
781
  msgstr ""
782
 
783
- #: includes/Admin.php:914
784
  msgid "Exclude from Facebook sync"
785
  msgstr ""
786
 
787
- #: includes/Admin.php:1107
788
  #. translators: Placeholders: %1$s - <strong> tag, %2$s - </strong> tag, %3$s -
789
  #. <a> tag, %4$s - <a> tag
790
  msgid ""
@@ -798,11 +798,11 @@ msgid_plural ""
798
  msgstr[0] ""
799
  msgstr[1] ""
800
 
801
- #: includes/Admin.php:1114
802
  msgid "Don't show this notice again"
803
  msgstr ""
804
 
805
- #: includes/Admin.php:1148
806
  #. translators: Placeholders: %1$s - number of affected products, %2$s opening
807
  #. HTML <a> tag, %3$s - closing HTML </a> tag, %4$s - opening HTML <a> tag,
808
  #. %5$s - closing HTML </a> tag
@@ -819,7 +819,7 @@ msgid_plural ""
819
  msgstr[0] ""
820
  msgstr[1] ""
821
 
822
- #: includes/Admin.php:1214
823
  #. translators: Placeholders: %1$s - opening HTML <strong> tag, %2$s - closing
824
  #. HTML </strong> tag, %3$s - opening HTML <a> tag, %4$s - closing HTML </a>
825
  #. tag
@@ -829,69 +829,69 @@ msgid ""
829
  "your Facebook catalog. You may still advertise Virtual products on Facebook."
830
  msgstr ""
831
 
832
- #: includes/Admin.php:1288 includes/Admin.php:1430
833
  msgid "Sync and show in catalog"
834
  msgstr ""
835
 
836
- #: includes/Admin.php:1289 includes/Admin.php:1431
837
  msgid "Sync and hide in catalog"
838
  msgstr ""
839
 
840
- #: includes/Admin.php:1299 includes/Admin.php:1444
841
  msgid "Facebook Description"
842
  msgstr ""
843
 
844
- #: includes/Admin.php:1301 includes/Admin.php:1446
845
  msgid ""
846
  "Custom (plain-text only) description for product on Facebook. If blank, "
847
  "product description will be used. If product description is blank, "
848
  "shortname will be used."
849
  msgstr ""
850
 
851
- #: includes/Admin.php:1312 includes/Admin.php:1459
852
  msgid "Facebook Product Image"
853
  msgstr ""
854
 
855
- #: includes/Admin.php:1314 includes/Admin.php:1461
856
  msgid ""
857
  "Choose the product image that should be synced to the Facebook catalog for "
858
  "this product. If using a custom image, please enter an absolute URL (e.g. "
859
  "https://domain.com/image.jpg)."
860
  msgstr ""
861
 
862
- #: includes/Admin.php:1316
863
  msgid "Use WooCommerce image"
864
  msgstr ""
865
 
866
- #: includes/Admin.php:1317 includes/Admin.php:1465
867
  msgid "Use custom image"
868
  msgstr ""
869
 
870
- #: includes/Admin.php:1328 includes/Admin.php:1477
871
  msgid "Custom Image URL"
872
  msgstr ""
873
 
874
- #: includes/Admin.php:1339 includes/Admin.php:1490
875
  #. translators: Placeholders %1$s - WC currency symbol
876
  msgid "Facebook Price (%1$s)"
877
  msgstr ""
878
 
879
- #: includes/Admin.php:1343 includes/Admin.php:1494
880
  msgid ""
881
  "Custom price for product on Facebook. Please enter in monetary decimal (.) "
882
  "format without thousand separators and currency symbols. If blank, product "
883
  "price will be used."
884
  msgstr ""
885
 
886
- #: includes/Admin.php:1463
887
  msgid "Use variation image"
888
  msgstr ""
889
 
890
- #: includes/Admin.php:1464
891
  msgid "Use parent image"
892
  msgstr ""
893
 
894
- #: includes/Admin.php:1618
895
  msgid "Close modal panel"
896
  msgstr ""
897
 
@@ -976,29 +976,29 @@ msgstr ""
976
  msgid "Other"
977
  msgstr ""
978
 
979
- #: includes/Handlers/Connection.php:316
980
  msgid "Connection successful!"
981
  msgstr ""
982
 
983
- #: includes/Handlers/Connection.php:370
984
  msgid "You do not have permission to uninstall Facebook Business Extension."
985
  msgstr ""
986
 
987
- #: includes/Handlers/Connection.php:380
988
  msgid "Disconnection successful."
989
  msgstr ""
990
 
991
- #: includes/Handlers/Connection.php:446
992
  #. translators: Placeholders: %s - API error message
993
  msgid "Could not retrieve page access data. %s"
994
  msgstr ""
995
 
996
- #: includes/Handlers/Connection.php:460
997
  #. translators: Placeholders: %s - Facebook page ID
998
  msgid "Page %s not authorized."
999
  msgstr ""
1000
 
1001
- #: includes/Handlers/Connection.php:1433
1002
  msgid "You do not have permission to finish App Store login."
1003
  msgstr ""
1004
 
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"
226
 
227
  #: includes/AJAX.php:348 includes/AJAX.php:416 includes/AJAX.php:482
228
  #: includes/Admin/Product_Categories.php:119
229
+ #: includes/Admin/Settings_Screens/Product_Sync.php:158 includes/Admin.php:421
230
  msgid "Cancel"
231
  msgstr ""
232
 
392
  msgstr ""
393
 
394
  #: includes/Admin/Settings.php:128
395
+ #: includes/Admin/Settings_Screens/Messenger.php:37
396
+ #: includes/Admin/Settings_Screens/Messenger.php:38
397
+ #: includes/Admin/Settings_Screens/Messenger.php:140
398
  msgid "Messenger"
399
  msgstr ""
400
 
540
  "with feed generation. This is an experimental feature in testing phase."
541
  msgstr ""
542
 
543
+ #: includes/Admin/Settings_Screens/Messenger.php:114
544
  #. translators: Placeholders: %1$s - <a> tag, %2$s - </a> tag
545
  msgid "%1$sClick here%2$s to manage your Messenger greeting and colors."
546
  msgstr ""
547
 
548
+ #: includes/Admin/Settings_Screens/Messenger.php:146
549
  msgid "Enable Messenger"
550
  msgstr ""
551
 
552
+ #: includes/Admin/Settings_Screens/Messenger.php:148
553
  msgid "Enable and customize Facebook Messenger on your store"
554
  msgstr ""
555
 
556
+ #: includes/Admin/Settings_Screens/Messenger.php:158
557
  msgid "Language"
558
  msgstr ""
559
 
560
+ #: includes/Admin/Settings_Screens/Messenger.php:163
561
  msgid "Greeting & Colors"
562
  msgstr ""
563
 
564
+ #: includes/Admin/Settings_Screens/Messenger.php:185
565
  #. translators: Placeholders: %1$s - <a> tag, %2$s - </a> tag
566
  msgid "Please %1$sconnect to Facebook%2$s to enable and manage Facebook Messenger."
567
  msgstr ""
568
 
569
+ #: includes/Admin/Settings_Screens/Messenger.php:262
 
 
 
 
 
 
 
570
  msgid "Please try again."
571
  msgstr ""
572
 
685
  msgid "The name is how it appears on Facebook Catalog."
686
  msgstr ""
687
 
688
+ #: includes/Admin.php:183
689
+ msgid ""
690
+ "You have selected one or more categories currently excluded from the "
691
+ "Facebook sync. Products belonging to the excluded categories will not be "
692
+ "added to your FB product set."
693
+ msgstr ""
694
+
695
+ #: includes/Admin.php:224
696
  msgid ""
697
  "Please enter a Google product category and at least one sub-category to "
698
  "sell this product on Instagram."
699
  msgstr ""
700
 
701
+ #: includes/Admin.php:250
702
  msgid "Search main categories..."
703
  msgstr ""
704
 
705
+ #: includes/Admin.php:251
706
  msgid "Choose a main category"
707
  msgstr ""
708
 
709
+ #: includes/Admin.php:252
710
  msgid "Choose a category"
711
  msgstr ""
712
 
713
+ #: includes/Admin.php:309
714
  msgid ""
715
  "To sell this product on Instagram, please ensure it meets the following "
716
  "requirements:"
717
  msgstr ""
718
 
719
+ #: includes/Admin.php:312
720
  msgid "Has a price defined"
721
  msgstr ""
722
 
723
+ #: includes/Admin.php:318
724
  #. translators: Placeholders: %1$s - <strong> opening HTML tag, %2$s -
725
  #. </strong> closing HTML tag
726
  msgid "Has %1$sManage Stock%2$s enabled on the %1$sInventory%2$s tab"
727
  msgstr ""
728
 
729
+ #: includes/Admin.php:330
730
  #. translators: Placeholders: %1$s - <strong> opening HTML tag, %2$s -
731
  #. </strong> closing HTML tag
732
  msgid ""
734
  "and hide\""
735
  msgstr ""
736
 
737
+ #: includes/Admin.php:359
738
  msgid "Close"
739
  msgstr ""
740
 
741
+ #: includes/Admin.php:384
742
  #. translators: Placeholders: %1$s - opening <a> link tag, %2$s - closing </a>
743
  #. link tag
744
  msgid ""
747
  "the Facebook catalog as well?"
748
  msgstr ""
749
 
750
+ #: includes/Admin.php:413
751
  msgid "Remove from sync only"
752
  msgstr ""
753
 
754
+ #: includes/Admin.php:417
755
  msgid "Remove from sync and delete"
756
  msgstr ""
757
 
758
+ #: includes/Admin.php:453 includes/Admin.php:1296 includes/Admin.php:1438
759
  msgid "Facebook sync"
760
  msgstr ""
761
 
762
+ #: includes/Admin.php:480 includes/Admin.php:511
763
  msgid "Sync and show"
764
  msgstr ""
765
 
766
+ #: includes/Admin.php:482 includes/Admin.php:512
767
  msgid "Sync and hide"
768
  msgstr ""
769
 
770
+ #: includes/Admin.php:486 includes/Admin.php:513 includes/Admin.php:1300
771
+ #: includes/Admin.php:1442
772
  msgid "Do not sync"
773
  msgstr ""
774
 
775
+ #: includes/Admin.php:510
776
  msgid "Filter by Facebook sync setting"
777
  msgstr ""
778
 
779
+ #: includes/Admin.php:923
780
  msgid "Include in Facebook sync"
781
  msgstr ""
782
 
783
+ #: includes/Admin.php:924
784
  msgid "Exclude from Facebook sync"
785
  msgstr ""
786
 
787
+ #: includes/Admin.php:1117
788
  #. translators: Placeholders: %1$s - <strong> tag, %2$s - </strong> tag, %3$s -
789
  #. <a> tag, %4$s - <a> tag
790
  msgid ""
798
  msgstr[0] ""
799
  msgstr[1] ""
800
 
801
+ #: includes/Admin.php:1124
802
  msgid "Don't show this notice again"
803
  msgstr ""
804
 
805
+ #: includes/Admin.php:1158
806
  #. translators: Placeholders: %1$s - number of affected products, %2$s opening
807
  #. HTML <a> tag, %3$s - closing HTML </a> tag, %4$s - opening HTML <a> tag,
808
  #. %5$s - closing HTML </a> tag
819
  msgstr[0] ""
820
  msgstr[1] ""
821
 
822
+ #: includes/Admin.php:1224
823
  #. translators: Placeholders: %1$s - opening HTML <strong> tag, %2$s - closing
824
  #. HTML </strong> tag, %3$s - opening HTML <a> tag, %4$s - closing HTML </a>
825
  #. tag
829
  "your Facebook catalog. You may still advertise Virtual products on Facebook."
830
  msgstr ""
831
 
832
+ #: includes/Admin.php:1298 includes/Admin.php:1440
833
  msgid "Sync and show in catalog"
834
  msgstr ""
835
 
836
+ #: includes/Admin.php:1299 includes/Admin.php:1441
837
  msgid "Sync and hide in catalog"
838
  msgstr ""
839
 
840
+ #: includes/Admin.php:1309 includes/Admin.php:1454
841
  msgid "Facebook Description"
842
  msgstr ""
843
 
844
+ #: includes/Admin.php:1311 includes/Admin.php:1456
845
  msgid ""
846
  "Custom (plain-text only) description for product on Facebook. If blank, "
847
  "product description will be used. If product description is blank, "
848
  "shortname will be used."
849
  msgstr ""
850
 
851
+ #: includes/Admin.php:1322 includes/Admin.php:1469
852
  msgid "Facebook Product Image"
853
  msgstr ""
854
 
855
+ #: includes/Admin.php:1324 includes/Admin.php:1471
856
  msgid ""
857
  "Choose the product image that should be synced to the Facebook catalog for "
858
  "this product. If using a custom image, please enter an absolute URL (e.g. "
859
  "https://domain.com/image.jpg)."
860
  msgstr ""
861
 
862
+ #: includes/Admin.php:1326
863
  msgid "Use WooCommerce image"
864
  msgstr ""
865
 
866
+ #: includes/Admin.php:1327 includes/Admin.php:1475
867
  msgid "Use custom image"
868
  msgstr ""
869
 
870
+ #: includes/Admin.php:1338 includes/Admin.php:1487
871
  msgid "Custom Image URL"
872
  msgstr ""
873
 
874
+ #: includes/Admin.php:1349 includes/Admin.php:1500
875
  #. translators: Placeholders %1$s - WC currency symbol
876
  msgid "Facebook Price (%1$s)"
877
  msgstr ""
878
 
879
+ #: includes/Admin.php:1353 includes/Admin.php:1504
880
  msgid ""
881
  "Custom price for product on Facebook. Please enter in monetary decimal (.) "
882
  "format without thousand separators and currency symbols. If blank, product "
883
  "price will be used."
884
  msgstr ""
885
 
886
+ #: includes/Admin.php:1473
887
  msgid "Use variation image"
888
  msgstr ""
889
 
890
+ #: includes/Admin.php:1474
891
  msgid "Use parent image"
892
  msgstr ""
893
 
894
+ #: includes/Admin.php:1628
895
  msgid "Close modal panel"
896
  msgstr ""
897
 
976
  msgid "Other"
977
  msgstr ""
978
 
979
+ #: includes/Handlers/Connection.php:298
980
  msgid "Connection successful!"
981
  msgstr ""
982
 
983
+ #: includes/Handlers/Connection.php:352
984
  msgid "You do not have permission to uninstall Facebook Business Extension."
985
  msgstr ""
986
 
987
+ #: includes/Handlers/Connection.php:362
988
  msgid "Disconnection successful."
989
  msgstr ""
990
 
991
+ #: includes/Handlers/Connection.php:428
992
  #. translators: Placeholders: %s - API error message
993
  msgid "Could not retrieve page access data. %s"
994
  msgstr ""
995
 
996
+ #: includes/Handlers/Connection.php:442
997
  #. translators: Placeholders: %s - Facebook page ID
998
  msgid "Page %s not authorized."
999
  msgstr ""
1000
 
1001
+ #: includes/Handlers/Connection.php:1415
1002
  msgid "You do not have permission to finish App Store login."
1003
  msgstr ""
1004
 
includes/API/FBE/Installation/Read/Response.php CHANGED
@@ -84,12 +84,13 @@ class Response extends API\Response {
84
  */
85
  public function get_page_id() {
86
 
87
- $pages = $this->get_data()->pages;
 
 
88
 
89
- return ! empty( $pages ) && is_array( $pages ) ? current( $pages ) : '';
90
  }
91
 
92
-
93
  /**
94
  * Gets Instagram Business ID.
95
  *
84
  */
85
  public function get_page_id() {
86
 
87
+ if ( empty( $pages = $this->get_data()->pages ) ) {
88
+ return '';
89
+ }
90
 
91
+ return is_array( $pages ) ? current( $pages ) : $pages;
92
  }
93
 
 
94
  /**
95
  * Gets Instagram Business ID.
96
  *
includes/Admin.php CHANGED
@@ -173,6 +173,16 @@ class Admin {
173
  \WC_Facebookcommerce::PLUGIN_VERSION,
174
  true
175
  );
 
 
 
 
 
 
 
 
 
 
176
  }
177
 
178
  if ( 'product' === $current_screen->id || 'edit-product' === $current_screen->id ) {
173
  \WC_Facebookcommerce::PLUGIN_VERSION,
174
  true
175
  );
176
+
177
+ wp_localize_script(
178
+ 'facebook-for-woocommerce-product-sets',
179
+ 'facebook_for_woocommerce_product_sets',
180
+ array(
181
+
182
+ 'excluded_category_ids' => facebook_for_woocommerce()->get_integration()->get_excluded_product_category_ids(),
183
+ 'excluded_category_warning_message' => __( 'You have selected one or more categories currently excluded from the Facebook sync. Products belonging to the excluded categories will not be added to your FB product set.', 'facebook-for-woocommerce' ),
184
+ )
185
+ );
186
  }
187
 
188
  if ( 'product' === $current_screen->id || 'edit-product' === $current_screen->id ) {
includes/Admin/Settings_Screens/Messenger.php CHANGED
@@ -28,10 +28,6 @@ class Messenger extends Admin\Abstract_Settings_Screen {
28
  const ID = 'messenger';
29
 
30
 
31
- /** @var null|Configuration\Messenger */
32
- private $remote_configuration;
33
-
34
-
35
  /**
36
  * Connection constructor.
37
  */
@@ -72,11 +68,7 @@ class Messenger extends Admin\Abstract_Settings_Screen {
72
  */
73
  public function render_locale_field( $field ) {
74
 
75
- if ( ! $this->remote_configuration ) {
76
- return;
77
- }
78
-
79
- $configured_locale = $this->remote_configuration->get_default_locale();
80
  $supported_locales = Locale::get_supported_locales();
81
 
82
  if ( ! empty( $supported_locales[ $configured_locale ] ) ) {
@@ -140,7 +132,7 @@ class Messenger extends Admin\Abstract_Settings_Screen {
140
  */
141
  public function get_settings() {
142
 
143
- $is_enabled = $this->remote_configuration && $this->remote_configuration->is_enabled();
144
 
145
  $settings = array(
146
 
@@ -155,12 +147,12 @@ class Messenger extends Admin\Abstract_Settings_Screen {
155
  'type' => 'checkbox',
156
  'desc' => __( 'Enable and customize Facebook Messenger on your store', 'facebook-for-woocommerce' ),
157
  'default' => 'no',
158
- 'value' => $is_enabled ? 'yes' : 'no',
159
  ),
160
  );
161
 
162
  // only add the static configuration display if messenger is enabled
163
- if ( $is_enabled ) {
164
 
165
  $settings[] = array(
166
  'title' => __( 'Language', 'facebook-for-woocommerce' ),
@@ -196,68 +188,6 @@ class Messenger extends Admin\Abstract_Settings_Screen {
196
  );
197
  }
198
 
199
-
200
- /**
201
- * Renders the settings page.
202
- *
203
- * This is overridden to pull the latest FBE configuration so the settings can be populated correctly.
204
- *
205
- * @since 2.0.0
206
- */
207
- public function render() {
208
-
209
- // if not connected, don't try and retrieve any settings and just fall back to standard display
210
- if ( ! facebook_for_woocommerce()->get_connection_handler()->is_connected() ) {
211
- parent::render();
212
- return;
213
- }
214
-
215
- $plugin = facebook_for_woocommerce();
216
-
217
- try {
218
-
219
- $response = $plugin->get_api()->get_business_configuration( $plugin->get_connection_handler()->get_external_business_id() );
220
-
221
- $configuration = $response->get_messenger_configuration();
222
-
223
- if ( ! $configuration ) {
224
- throw new Framework\SV_WC_API_Exception( 'Could not retrieve latest messenger configuration' );
225
- }
226
-
227
- update_option( \WC_Facebookcommerce_Integration::SETTING_ENABLE_MESSENGER, wc_bool_to_string( $configuration->is_enabled() ) );
228
-
229
- if ( $default_locale = $configuration->get_default_locale() ) {
230
- update_option( \WC_Facebookcommerce_Integration::SETTING_MESSENGER_LOCALE, $default_locale );
231
- }
232
-
233
- // set the remote configuration so other methods can use its values
234
- $this->remote_configuration = $configuration;
235
-
236
- parent::render();
237
-
238
- } catch ( Framework\SV_WC_API_Exception $exception ) {
239
-
240
- ?>
241
- <div class="notice notice-error">
242
- <p>
243
- <?php
244
- printf(
245
- /* translators: Placeholders: %1$s - <a> tag, %2$s - </a> tag */
246
- esc_html__( 'There was an error communicating with the Facebook Business Extension. %1$sClick here%2$s to manage your Messenger settings.', 'facebook-for-woocommerce' ),
247
- '<a href="' . esc_url( $plugin->get_connection_handler()->get_manage_url() ) . '" target="_blank">',
248
- '</a>'
249
- );
250
- ?>
251
- </p>
252
- </div>
253
- <?php
254
-
255
- // always log this error, regardless of debug setting
256
- $plugin->log( 'Could not display messenger settings. ' . $exception->getMessage() );
257
- }
258
- }
259
-
260
-
261
  /**
262
  * Saves the settings.
263
  *
@@ -302,9 +232,23 @@ class Messenger extends Admin\Abstract_Settings_Screen {
302
  $configuration->set_enabled( $setting_enabled );
303
  $configuration->add_domain( home_url( '/' ) );
304
 
305
- $plugin->get_api()->update_messenger_configuration( $external_business_id, $configuration );
 
 
 
 
 
 
 
 
 
 
 
 
 
306
 
307
  delete_transient( 'wc_facebook_business_configuration_refresh' );
 
308
  }
309
 
310
  // save any real settings
28
  const ID = 'messenger';
29
 
30
 
 
 
 
 
31
  /**
32
  * Connection constructor.
33
  */
68
  */
69
  public function render_locale_field( $field ) {
70
 
71
+ $configured_locale = get_option( \WC_Facebookcommerce_Integration::SETTING_MESSENGER_LOCALE, '' );;
 
 
 
 
72
  $supported_locales = Locale::get_supported_locales();
73
 
74
  if ( ! empty( $supported_locales[ $configured_locale ] ) ) {
132
  */
133
  public function get_settings() {
134
 
135
+ $is_enabled = get_option( \WC_Facebookcommerce_Integration::SETTING_ENABLE_MESSENGER, 'no' );
136
 
137
  $settings = array(
138
 
147
  'type' => 'checkbox',
148
  'desc' => __( 'Enable and customize Facebook Messenger on your store', 'facebook-for-woocommerce' ),
149
  'default' => 'no',
150
+ 'value' => $is_enabled,
151
  ),
152
  );
153
 
154
  // only add the static configuration display if messenger is enabled
155
+ if ( 'yes' === $is_enabled ) {
156
 
157
  $settings[] = array(
158
  'title' => __( 'Language', 'facebook-for-woocommerce' ),
188
  );
189
  }
190
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  /**
192
  * Saves the settings.
193
  *
232
  $configuration->set_enabled( $setting_enabled );
233
  $configuration->add_domain( home_url( '/' ) );
234
 
235
+ try {
236
+ $plugin->get_api()->update_messenger_configuration( $external_business_id, $configuration );
237
+
238
+ update_option( \WC_Facebookcommerce_Integration::SETTING_ENABLE_MESSENGER, wc_bool_to_string( $configuration->is_enabled() ) );
239
+
240
+ if ( $default_locale = $configuration->get_default_locale() ) {
241
+ update_option( \WC_Facebookcommerce_Integration::SETTING_MESSENGER_LOCALE, $default_locale );
242
+ }
243
+ } catch ( Framework\SV_WC_API_Exception $exception ) {
244
+
245
+ // always log this error, regardless of debug setting
246
+ $plugin->log( 'Could not display messenger settings. ' . $exception->getMessage() );
247
+
248
+ }
249
 
250
  delete_transient( 'wc_facebook_business_configuration_refresh' );
251
+
252
  }
253
 
254
  // save any real settings
includes/Handlers/Connection.php CHANGED
@@ -148,24 +148,6 @@ class Connection {
148
  $response->is_ig_cta_enabled()
149
  );
150
 
151
- // update the messenger settings
152
- if ( $messenger_configuration = $response->get_messenger_configuration() ) {
153
-
154
- // store the local "enabled" setting
155
- update_option( \WC_Facebookcommerce_Integration::SETTING_ENABLE_MESSENGER, wc_bool_to_string( $messenger_configuration->is_enabled() ) );
156
-
157
- if ( $default_locale = $messenger_configuration->get_default_locale() ) {
158
- update_option( \WC_Facebookcommerce_Integration::SETTING_MESSENGER_LOCALE, sanitize_text_field( $default_locale ) );
159
- }
160
-
161
- // if the site's domain is somehow missing from the allowed domains, re-add it
162
- if ( $messenger_configuration->is_enabled() && ! in_array( home_url( '/' ), $messenger_configuration->get_domains(), true ) ) {
163
-
164
- $messenger_configuration->add_domain( home_url( '/' ) );
165
-
166
- $this->get_plugin()->get_api()->update_messenger_configuration( $this->get_external_business_id(), $messenger_configuration );
167
- }
168
- }
169
  } catch ( SV_WC_API_Exception $exception ) {
170
 
171
  $this->get_plugin()->log( 'Could not refresh business configuration. ' . $exception->getMessage() );
148
  $response->is_ig_cta_enabled()
149
  );
150
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  } catch ( SV_WC_API_Exception $exception ) {
152
 
153
  $this->get_plugin()->log( 'Could not refresh business configuration. ' . $exception->getMessage() );
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  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.22
7
  Requires PHP: 5.6 or greater
8
  MySQL: 5.6 or greater
9
  License: GPLv2 or later
@@ -39,44 +39,50 @@ When opening a bug on GitHub, please give us as many details as possible.
39
 
40
  == Changelog ==
41
 
42
- = 2.6.22 - 2022-09-06 =
43
- * Fix - Adding an excluded category doesn't remove that category synced products.
44
- * Fix - Ensure content_name and content_ids addToCart pixel event properties are correct for variable products when redirect to cart is enabled in WooCommerce.
45
- * Fix - Remove out-of-stock products on Facebook when the "Hide out of stock items from the catalog" option in WooCommerce is checked.
46
- * Tweak - WC 6.9 compatibility.
47
- * Update - Facebook Business Extension flow from COMMERCE_OFFSITE to DEFAULT.
48
 
49
- = 2.6.21 - 2022-08-16 =
50
- * Dev - Add branch-labels GH workflow.
51
- * Fix - `Undefined array key "HTTP_REFERER"` not longer happens when `new Event` is triggered from an AJAX call that doesn't include a referrer (likely due to browser configuration).
52
- * Tweak - WC 6.8 compatibility.
53
- * Tweak - WP 6.0 compatibility.
54
-
55
- = 2.6.20 - 2022-08-09 =
56
- * Fix - Ensure product is deleted from FB when moved to trash.
57
- * Fix - Price not updating when the sale price is removed.
58
-
59
- = 2.6.19 - 2022-07-27 =
60
- * Add - `wc_facebook_string_apply_shortcodes` filter to check whether to apply shortcodes on a string before syncing.
61
- * Tweak - Use the Heartbeat system to refresh the local business configuration data with the latest from Facebook.
62
- * Tweak - WC 6.8 compatibility.
63
-
64
- = 2.6.18 - 2022-07-19 =
65
- * Fix - Misaligned help icons on Product Categories > Google Product Categories form.
66
- * Fix - Syncing WC custom placeholder to Facebook shop.
67
- * Fix - is_search() causing fatal error when custom queries are used.
68
-
69
- = 2.6.17 - 2022-07-06 =
70
- * Fix - Add allow-plugins directive and adjust phpcs GitHub workflow.
71
- * Fix - Scheduled product not synced when status becomes "publish".
72
- * Tweak - WooCommerce 6.7 compatibility.
73
- * Update - Facebook Marketing API from v12.0 to v13.0.
74
-
75
- = 2.6.16 - 2022-06-07 =
76
- * Fix - Updating reference from old master branch.
77
- * Tweak - WC 6.6 compatibility.
78
-
79
- = 2.6.15 - 2022-06-01 =
 
 
 
 
 
 
 
80
  * Fix - Do not set `sale_price` when the product is not on sale.
81
  * Fix - FB Pixel is missing some ajax Add to cart events.
82
  * Fix - Feed visibility field value for hidden items.
2
  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
 
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.
45
+ * Fix - PHP notice thrown by get_page_id() in facebook-for-woocommerce/includes/API/FBE/Installation/Read/Response.php.
46
+ * Fix - When disabling Enable Messenger on the Messenger setting page, the setting does not persist after selecting Save Changes.
 
47
 
48
+ = 2.6.22 - 2022-09-06 =
49
+ * Fix - Adding an excluded category doesn't remove that category synced products.
50
+ * Fix - Ensure content_name and content_ids addToCart pixel event properties are correct for variable products when redirect to cart is enabled in WooCommerce.
51
+ * Fix - Remove out-of-stock products on Facebook when the "Hide out of stock items from the catalog" option in WooCommerce is checked.
52
+ * Tweak - WC 6.9 compatibility.
53
+ * Update - Facebook Business Extension flow from COMMERCE_OFFSITE to DEFAULT.
54
+
55
+ = 2.6.21 - 2022-08-16 =
56
+ * Dev - Add branch-labels GH workflow.
57
+ * Fix - `Undefined array key "HTTP_REFERER"` not longer happens when `new Event` is triggered from an AJAX call that doesn't include a referrer (likely due to browser configuration).
58
+ * Tweak - WC 6.8 compatibility.
59
+ * Tweak - WP 6.0 compatibility.
60
+
61
+ = 2.6.20 - 2022-08-09 =
62
+ * Fix - Ensure product is deleted from FB when moved to trash.
63
+ * Fix - Price not updating when the sale price is removed.
64
+
65
+ = 2.6.19 - 2022-07-27 =
66
+ * Add - `wc_facebook_string_apply_shortcodes` filter to check whether to apply shortcodes on a string before syncing.
67
+ * Tweak - Use the Heartbeat system to refresh the local business configuration data with the latest from Facebook.
68
+ * Tweak - WC 6.8 compatibility.
69
+
70
+ = 2.6.18 - 2022-07-19 =
71
+ * Fix - Misaligned help icons on Product Categories > Google Product Categories form.
72
+ * Fix - Syncing WC custom placeholder to Facebook shop.
73
+ * Fix - is_search() causing fatal error when custom queries are used.
74
+
75
+ = 2.6.17 - 2022-07-06 =
76
+ * Fix - Add allow-plugins directive and adjust phpcs GitHub workflow.
77
+ * Fix - Scheduled product not synced when status becomes "publish".
78
+ * Tweak - WooCommerce 6.7 compatibility.
79
+ * Update - Facebook Marketing API from v12.0 to v13.0.
80
+
81
+ = 2.6.16 - 2022-06-07 =
82
+ * Fix - Updating reference from old master branch.
83
+ * Tweak - WC 6.6 compatibility.
84
+
85
+ = 2.6.15 - 2022-06-01 =
86
  * Fix - Do not set `sale_price` when the product is not on sale.
87
  * Fix - FB Pixel is missing some ajax Add to cart events.
88
  * Fix - Feed visibility field value for hidden items.
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 ComposerAutoloaderInitbb699a0c32a522adc2681dad8ff45e89::getLoader();
9
 
10
  require_once __DIR__ . '/composer/autoload_real.php';
11
 
12
+ return ComposerAutoloaderInit3b7fe4ae71dbfe51c3123dd8619deb69::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, 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,7 +39,7 @@ class InstalledVersions
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,7 +243,7 @@ class InstalledVersions
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,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, 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,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, 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,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, 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,7 +313,7 @@ class InstalledVersions
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
  {
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
 
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
 
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
  *
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
  * 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
  * @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
 
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
  {
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitbb699a0c32a522adc2681dad8ff45e89
6
  {
7
  private static $loader;
8
 
@@ -24,12 +24,12 @@ class ComposerAutoloaderInitbb699a0c32a522adc2681dad8ff45e89
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
- spl_autoload_register(array('ComposerAutoloaderInitbb699a0c32a522adc2681dad8ff45e89', 'loadClassLoader'), true, true);
28
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
29
- spl_autoload_unregister(array('ComposerAutoloaderInitbb699a0c32a522adc2681dad8ff45e89', 'loadClassLoader'));
30
 
31
  require __DIR__ . '/autoload_static.php';
32
- call_user_func(\Composer\Autoload\ComposerStaticInitbb699a0c32a522adc2681dad8ff45e89::getInitializer($loader));
33
 
34
  $loader->register(true);
35
 
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit3b7fe4ae71dbfe51c3123dd8619deb69
6
  {
7
  private static $loader;
8
 
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
 
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInitbb699a0c32a522adc2681dad8ff45e89
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'S' =>
@@ -43,9 +43,9 @@ class ComposerStaticInitbb699a0c32a522adc2681dad8ff45e89
43
  public static function getInitializer(ClassLoader $loader)
44
  {
45
  return \Closure::bind(function () use ($loader) {
46
- $loader->prefixLengthsPsr4 = ComposerStaticInitbb699a0c32a522adc2681dad8ff45e89::$prefixLengthsPsr4;
47
- $loader->prefixDirsPsr4 = ComposerStaticInitbb699a0c32a522adc2681dad8ff45e89::$prefixDirsPsr4;
48
- $loader->classMap = ComposerStaticInitbb699a0c32a522adc2681dad8ff45e89::$classMap;
49
 
50
  }, null, ClassLoader::class);
51
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit3b7fe4ae71dbfe51c3123dd8619deb69
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 = ComposerStaticInit3b7fe4ae71dbfe51c3123dd8619deb69::$prefixLengthsPsr4;
47
+ $loader->prefixDirsPsr4 = ComposerStaticInit3b7fe4ae71dbfe51c3123dd8619deb69::$prefixDirsPsr4;
48
+ $loader->classMap = ComposerStaticInit3b7fe4ae71dbfe51c3123dd8619deb69::$classMap;
49
 
50
  }, null, ClassLoader::class);
51
  }
vendor/composer/installed.php CHANGED
@@ -1,31 +1,31 @@
1
  <?php return array(
2
  'root' => array(
3
- 'name' => 'facebookincubator/facebook-for-woocommerce',
4
- 'pretty_version' => 'dev-release/2.6.22',
5
- 'version' => 'dev-release/2.6.22',
6
- 'reference' => '9ae1b2600fc65390b7a298df2ad1b195bfa9dd4e',
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.22',
24
- 'version' => 'dev-release/2.6.22',
25
- 'reference' => '9ae1b2600fc65390b7a298df2ad1b195bfa9dd4e',
26
  'type' => 'wordpress-plugin',
27
  'install_path' => __DIR__ . '/../../',
28
  'aliases' => array(),
 
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
- '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
  ),
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
  '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
  ),