Facebook for WooCommerce - Version 1.9.13

Version Description

  • 2019-06-18 =
  • Fix security issues
  • Add more contributors to the plugin
Download this release

Release Info

Developer facebook4woocommerce
Plugin Icon Facebook for WooCommerce
Version 1.9.13
Comparing to
See all releases

Code changes from version 1.9.12 to 1.9.13

assets/js/facebook-settings.js CHANGED
@@ -79,26 +79,37 @@ function get_ems_id_box() {
79
* Ajax helper function.
80
* Takes optional payload for POST and optional callback.
81
*/
82
- function ajax(action, payload = null, callback = null, failcallback = null) {
83
- var data = {
84
- 'action': action,
85
- };
86
- if (payload){
87
- for (var attrname in payload) { data[attrname] = payload[attrname]; }
88
- }
89
-
90
- // Since Wordpress 2.8 ajaxurl is always defined in admin header and
91
- // points to admin-ajax.php
92
- jQuery.post(ajaxurl, data, function(response) {
93
- if(callback) {
94
- callback(response);
95
- }
96
- }).fail(function(errorResponse){
97
- if(failcallback) {
98
- failcallback(errorResponse);
99
}
100
});
101
- }
102
103
var settings = {'facebook_for_woocommerce' : 1};
104
var pixel_settings = {'facebook_for_woocommerce' : 1};
79
* Ajax helper function.
80
* Takes optional payload for POST and optional callback.
81
*/
82
+ var ajax = (function() {
83
+ var wpnonce = null;
84
+ jQuery(function() {
85
+ var wpnonceElem = document.querySelector('div#fbsetup input#_wpnonce');
86
+ if (wpnonceElem) {
87
+ wpnonce = wpnonceElem.getAttribute('value');
88
+ wpnonceElem.parentNode.removeChild(wpnonceElem);
89
}
90
});
91
+ return function _ajax(action, payload = null, callback = null, failcallback = null) {
92
+ var data = {
93
+ 'action': action,
94
+ '_wpnonce': wpnonce
95
+ };
96
+ if (payload) {
97
+ for (var attrname in payload) { data[attrname] = payload[attrname]; }
98
+ }
99
+
100
+ // Since Wordpress 2.8 ajaxurl is always defined in admin header and
101
+ // points to admin-ajax.php
102
+ jQuery.post(ajaxurl, data, function(response) {
103
+ if(callback) {
104
+ callback(response);
105
+ }
106
+ }).fail(function(errorResponse){
107
+ if(failcallback) {
108
+ failcallback(errorResponse);
109
+ }
110
+ });
111
+ };
112
+ })();
113
114
var settings = {'facebook_for_woocommerce' : 1};
115
var pixel_settings = {'facebook_for_woocommerce' : 1};
changelog.txt CHANGED
@@ -1,5 +1,9 @@
1
*** Facebook for WooCommerce Changelog ***
2
- 2019-02-26 - Version 1.9.12
3
* Remove dead code which causes exception (Issue 975)
4
5
2019-02-26 - Version 1.9.11
1
*** Facebook for WooCommerce Changelog ***
2
+ 2019-06-18 - Version 1.9.13
3
+ * Fix security issue
4
+ * Add more contributors to the plugin
5
+
6
+ 2019-05-02 - Version 1.9.12
7
* Remove dead code which causes exception (Issue 975)
8
9
2019-02-26 - Version 1.9.11
facebook-commerce-pixel-event.php CHANGED
@@ -44,7 +44,7 @@ document,'script','https://connect.facebook.net/en_US/fbevents.js');
44
}
45
46
// Initialize PixelID in storage - this will only need to happen when the
47
- // use is an admin
48
$pixel_id = self::get_pixel_id();
49
if (!WC_Facebookcommerce_Utils::is_valid_id($pixel_id) &&
50
class_exists('WC_Facebookcommerce_WarmConfig')) {
@@ -56,6 +56,16 @@ document,'script','https://connect.facebook.net/en_US/fbevents.js');
56
self::set_pixel_id($fb_warm_pixel_id);
57
}
58
}
59
}
60
61
/**
@@ -226,6 +236,27 @@ src=\"https://www.facebook.com/tr?id=%s&ev=PageView&noscript=1\"/>
226
update_option(self::SETTINGS_KEY, $fb_options);
227
}
228
229
public static function get_basecode() {
230
return self::$default_pixel_basecode;
231
}
44
}
45
46
// Initialize PixelID in storage - this will only need to happen when the
47
+ // user is an admin
48
$pixel_id = self::get_pixel_id();
49
if (!WC_Facebookcommerce_Utils::is_valid_id($pixel_id) &&
50
class_exists('WC_Facebookcommerce_WarmConfig')) {
56
self::set_pixel_id($fb_warm_pixel_id);
57
}
58
}
59
+
60
+ $is_advanced_matching_enabled = self::get_use_pii_key();
61
+ if ($is_advanced_matching_enabled == null &&
62
+ class_exists('WC_Facebookcommerce_WarmConfig')) {
63
+ $fb_warm_is_advanced_matching_enabled =
64
+ WC_Facebookcommerce_WarmConfig::$fb_warm_is_advanced_matching_enabled;
65
+ if (is_bool($fb_warm_is_advanced_matching_enabled)) {
66
+ self::set_use_pii_key($fb_warm_is_advanced_matching_enabled ? 1 : 0);
67
+ }
68
+ }
69
}
70
71
/**
236
update_option(self::SETTINGS_KEY, $fb_options);
237
}
238
239
+ public static function get_use_pii_key() {
240
+ $fb_options = self::get_options();
241
+ if (!$fb_options) {
242
+ return null;
243
+ }
244
+ return isset($fb_options[self::USE_PII_KEY]) ?
245
+ $fb_options[self::USE_PII_KEY] : null;
246
+ }
247
+
248
+ public static function set_use_pii_key($use_pii) {
249
+ $fb_options = self::get_options();
250
+
251
+ if (isset($fb_options[self::USE_PII_KEY])
252
+ && $fb_options[self::USE_PII_KEY] == $use_pii) {
253
+ return;
254
+ }
255
+
256
+ $fb_options[self::USE_PII_KEY] = $use_pii;
257
+ update_option(self::SETTINGS_KEY, $fb_options);
258
+ }
259
+
260
public static function get_basecode() {
261
return self::$default_pixel_basecode;
262
}
facebook-commerce.php CHANGED
@@ -1685,8 +1685,8 @@ class WC_Facebookcommerce_Integration extends WC_Integration {
1685
$this->display_warning_message('We\'ve detected that your
1686
Facebook Product Catalog is no longer valid. This may happen if it was
1687
deleted, or this may be a transient error.
1688
- If this error persists please delete your settings via
1689
- "Re-configure Facebook Settings > Advanced Settings > Delete Settings"
1690
and try setup again');
1691
wp_die();
1692
return;
@@ -1821,8 +1821,8 @@ class WC_Facebookcommerce_Integration extends WC_Integration {
1821
$this->display_warning_message('We\'ve detected that your
1822
Facebook Product Catalog is no longer valid. This may happen if it was
1823
deleted, or this may be a transient error.
1824
- If this error persists please delete your settings via
1825
- "Re-configure Facebook Settings > Advanced Settings > Delete Settings"
1826
and try setup again');
1827
$this->fb_wp_die();
1828
return false;
@@ -2109,6 +2109,7 @@ class WC_Facebookcommerce_Integration extends WC_Integration {
2109
<hr/>
2110
2111
<div id="fbsetup">
2112
<div class="wrapper">
2113
<header>
2114
<div class="help-center">
@@ -2529,8 +2530,12 @@ class WC_Facebookcommerce_Integration extends WC_Integration {
2529
}
2530
2531
function ajax_update_fb_option() {
2532
WC_Facebookcommerce_Utils::check_woo_ajax_permissions('update fb options', true);
2533
- if (isset($_POST) && stripos($_POST['option'], 'fb_') === 0) {
2534
update_option(sanitize_text_field($_POST['option']), sanitize_text_field($_POST['option_value']));
2535
}
2536
wp_die();
1685
$this->display_warning_message('We\'ve detected that your
1686
Facebook Product Catalog is no longer valid. This may happen if it was
1687
deleted, or this may be a transient error.
1688
+ If this error persists please remove your settings via
1689
+ "Advanced Options > Advanced Settings > Remove"
1690
and try setup again');
1691
wp_die();
1692
return;
1821
$this->display_warning_message('We\'ve detected that your
1822
Facebook Product Catalog is no longer valid. This may happen if it was
1823
deleted, or this may be a transient error.
1824
+ If this error persists please remove your settings via
1825
+ "Advanced Options > Advanced Settings > Remove"
1826
and try setup again');
1827
$this->fb_wp_die();
1828
return false;
2109
<hr/>
2110
2111
<div id="fbsetup">
2112
+ <form><?php wp_nonce_field('wp_ajax_ajax_update_fb_option'); ?></form>
2113
<div class="wrapper">
2114
<header>
2115
<div class="help-center">
2530
}
2531
2532
function ajax_update_fb_option() {
2533
+ WC_Facebookcommerce_Utils::check_ajax_referer();
2534
WC_Facebookcommerce_Utils::check_woo_ajax_permissions('update fb options', true);
2535
+ $wpnonce = $_POST['_wpnonce'];
2536
+ if (isset($_POST) &&
2537
+ stripos($_POST['option'], 'fb_') === 0 &&
2538
+ wp_verify_nonce($wpnonce, 'wp_ajax_ajax_update_fb_option')) {
2539
update_option(sanitize_text_field($_POST['option']), sanitize_text_field($_POST['option_value']));
2540
}
2541
wp_die();
facebook-config-warmer.php CHANGED
@@ -15,6 +15,7 @@ if (!class_exists('WC_Facebookcommerce_WarmConfig')) :
15
16
class WC_Facebookcommerce_WarmConfig {
17
static $fb_warm_pixel_id = null;
18
}
19
20
endif;
15
16
class WC_Facebookcommerce_WarmConfig {
17
static $fb_warm_pixel_id = null;
18
+ static $fb_warm_is_advanced_matching_enabled = null;
19
}
20
21
endif;
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: 1.9.12
14
* Woo: 2127297:0ea4fe4c2d7ca6338f8a322fb3e4e187
15
* Text Domain: facebook-for-woocommerce
16
* WC requires at least: 3.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: 1.9.13
14
* Woo: 2127297:0ea4fe4c2d7ca6338f8a322fb3e4e187
15
* Text Domain: facebook-for-woocommerce
16
* WC requires at least: 3.0.0
includes/fbutils.php CHANGED
@@ -21,7 +21,7 @@ if (!class_exists('WC_Facebookcommerce_Utils')) :
21
class WC_Facebookcommerce_Utils {
22
23
const FB_RETAILER_ID_PREFIX = 'wc_post_id_';
24
- const PLUGIN_VERSION = '1.9.12'; // Change it in `facebook-for-*.php` also
25
26
const FB_VARIANT_IMAGE = 'fb_image';
27
const FB_VARIANT_SIZE = 'size';
@@ -480,6 +480,20 @@ if (!class_exists('WC_Facebookcommerce_Utils')) :
480
get_option('fb_info_banner_last_best_tip', ''));
481
return $cached_best_tip;
482
}
483
}
484
485
endif;
21
class WC_Facebookcommerce_Utils {
22
23
const FB_RETAILER_ID_PREFIX = 'wc_post_id_';
24
+ const PLUGIN_VERSION = '1.9.13'; // Change it in `facebook-for-*.php` also
25
26
const FB_VARIANT_IMAGE = 'fb_image';
27
const FB_VARIANT_SIZE = 'size';
480
get_option('fb_info_banner_last_best_tip', ''));
481
return $cached_best_tip;
482
}
483
+
484
+ public static function check_ajax_referer() {
485
+ $http_referer = null;
486
+ if (!empty($_SERVER['HTTP_REFERER'])) {
487
+ $http_referer = wp_unslash($_SERVER['HTTP_REFERER']);
488
+ }
489
+ $wp_site = get_site_url();
490
+ $http_referer_url = parse_url($http_referer);
491
+ $wp_site_url = parse_url($wp_site_url);
492
+ if (!empty($http_referer_url) && !empty($wp_site_url) && $http_referer_url['host'] === $wp_site_url['host']) {
493
+ return;
494
+ }
495
+ wp_die('FBE: bad requests!');
496
+ }
497
}
498
499
endif;
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
=== Facebook for WooCommerce ===
2
- Contributors: facebook
3
Tags: facebook, shop, catalog, advertise, pixel, product
4
Requires at least: 4.4
5
Tested up to: 4.9.8
6
- Stable tag: 1.9.5
7
Requires PHP: 5.6
8
MySQL: 5.6 or greater
9
License: GPLv2 or later
@@ -38,6 +38,10 @@ When opening a bug on GitHub, please give us as many details as possible.
38
* Current version of Facebook-for-WooCommerce, WooCommerce, Wordpress, PHP
39
40
== Changelog ==
41
= 1.9.12 - 2019-05-2 =
42
* Remove dead code which causes exception (Issue 975)
43
@@ -54,7 +58,3 @@ When opening a bug on GitHub, please give us as many details as possible.
54
= 1.9.10 - 2019-02-11 =
55
* Add facebook support link, this will help merchants to reach out to facebook customer service.
56
* Make plugin wordpress compatible by removing woocommerce updater and removing woo_include
57
-
58
- = 1.9.9 - 2018-12-30 =
59
- * Fix issue with missing file in v1.9.8
60
- * Remove misleading content relating to Instagram which is not launched yet.
1
=== Facebook for WooCommerce ===
2
+ Contributors: facebook, automattic, woothemes
3
Tags: facebook, shop, catalog, advertise, pixel, product
4
Requires at least: 4.4
5
Tested up to: 4.9.8
6
+ Stable tag: 1.9.13
7
Requires PHP: 5.6
8
MySQL: 5.6 or greater
9
License: GPLv2 or later
38
* Current version of Facebook-for-WooCommerce, WooCommerce, Wordpress, PHP
39
40
== Changelog ==
41
+ = 1.9.13 - 2019-06-18 =
42
+ * Fix security issues
43
+ * Add more contributors to the plugin
44
+
45
= 1.9.12 - 2019-05-2 =
46
* Remove dead code which causes exception (Issue 975)
47
58
= 1.9.10 - 2019-02-11 =
59
* Add facebook support link, this will help merchants to reach out to facebook customer service.
60
* Make plugin wordpress compatible by removing woocommerce updater and removing woo_include