Version Description
Download this release
Release Info
Developer | |
Plugin | Official Facebook Pixel |
Version | 2.2.0 |
Comparing to | |
See all releases |
Code changes from version 2.1.0 to 2.2.0
- changelog.txt +9 -3
- composer.json +1 -1
- composer.lock +195 -117
- core/FacebookPluginConfig.php +2 -2
- core/FacebookServerSideEvent.php +3 -2
- core/FacebookWordpressSettingsPage.php +4 -4
- core/ServerEventFactory.php +24 -0
- facebook-for-wordpress.php +1 -1
- integration/FacebookWordpressCalderaForm.php +8 -4
- integration/FacebookWordpressEasyDigitalDownloads.php +137 -31
- integration/FacebookWordpressFormidableForm.php +46 -10
- integration/FacebookWordpressGravityForms.php +53 -4
- integration/FacebookWordpressMailchimpForWp.php +29 -0
- integration/FacebookWordpressNinjaForms.php +61 -7
- integration/FacebookWordpressWPForms.php +55 -2
- integration/FacebookWordpressWooCommerce.php +23 -9
- languages/official-facebook-pixel-ar_AR.po +1 -1
- languages/official-facebook-pixel-cs_CZ.po +1 -1
- languages/official-facebook-pixel-da_DK.po +1 -1
- languages/official-facebook-pixel-de_DE.po +1 -1
- languages/official-facebook-pixel-en_GB.po +1 -1
- languages/official-facebook-pixel-es_ES.po +1 -1
- languages/official-facebook-pixel-es_LA.po +1 -1
- languages/official-facebook-pixel-fi_FI.po +1 -1
- languages/official-facebook-pixel-fr_CA.po +1 -1
- languages/official-facebook-pixel-fr_FR.po +1 -1
- languages/official-facebook-pixel-he_IL.po +1 -1
- languages/official-facebook-pixel-it_IT.po +1 -1
- languages/official-facebook-pixel-ja_JP.po +1 -1
- languages/official-facebook-pixel-ko_KR.po +1 -1
- languages/official-facebook-pixel-nb_NO.po +1 -1
- languages/official-facebook-pixel-nl_NL.po +1 -1
- languages/official-facebook-pixel-pl_PL.po +1 -1
- languages/official-facebook-pixel-pt_BR.po +1 -1
- languages/official-facebook-pixel-pt_PT.po +1 -1
- languages/official-facebook-pixel-ru_RU.po +1 -1
- languages/official-facebook-pixel-sv_SE.po +1 -1
- languages/official-facebook-pixel-th_TH.po +1 -1
- languages/official-facebook-pixel-tr_TR.po +1 -1
- languages/official-facebook-pixel-vi_VN.po +1 -1
- languages/official-facebook-pixel-zh_CN.po +1 -1
- languages/official-facebook-pixel-zh_TW.po +1 -1
- readme.txt +12 -6
- vendor/autoload.php +1 -1
- vendor/composer/autoload_real.php +4 -4
- vendor/composer/autoload_static.php +4 -4
- vendor/composer/installed.json +6 -6
- vendor/facebook/php-business-sdk/CHANGELOG.md +9 -1
- vendor/facebook/php-business-sdk/examples/AdAccountAdCreativesPost2CreateAdCreativeLinkAd.php +48 -0
- vendor/facebook/php-business-sdk/examples/AdAccountAdCreativesPost2CreateCarouselCallToActionAppInstall.php +48 -0
- vendor/facebook/php-business-sdk/examples/AdAccountAdCreativesPost2CreateLinkAdCallToActionAppInstall.php +48 -0
- vendor/facebook/php-business-sdk/examples/AdAccountAdCreativesPost2CreateLinkAdImageCrop.php +48 -0
- vendor/facebook/php-business-sdk/examples/AdAccountAdCreativesPost2CreateMAIDPA.php +49 -0
- vendor/facebook/php-business-sdk/examples/AdAccountAdCreativesPost2CreateVideoLeadAd.php +47 -0
- vendor/facebook/php-business-sdk/examples/AdAccountAdCreativesPost2CreateVideoPageLikeAd.php +48 -0
- vendor/facebook/php-business-sdk/examples/AdAccountAdCreativesPostCreateAdCreativeCustomizationCanvasDV.php +48 -0
- vendor/facebook/php-business-sdk/examples/AdAccountAdCreativesPostCreateAdCreativeCustomizationCanvasImage.php +48 -0
- vendor/facebook/php-business-sdk/examples/AdAccountAdCreativesPostCreateAdCreativeCustomizationCanvasVideo.php +48 -0
- vendor/facebook/php-business-sdk/examples/AdAccountCampaignsPostConversions.php +1 -1
- vendor/facebook/php-business-sdk/examples/AdAccountCampaignsPostEventResponses.php +1 -1
- vendor/facebook/php-business-sdk/examples/AdAccountCampaignsPostLeadGen.php +1 -1
- vendor/facebook/php-business-sdk/examples/AdAccountCampaignsPostLinkClicks.php +1 -1
- vendor/facebook/php-business-sdk/examples/AdAccountCampaignsPostLocalAwareness.php +1 -1
- vendor/facebook/php-business-sdk/examples/AdAccountCampaignsPostMAIA.php +1 -1
- vendor/facebook/php-business-sdk/examples/AdAccountCampaignsPostMAIDPA.php +1 -1
- vendor/facebook/php-business-sdk/examples/AdAccountCampaignsPostOfferClaims.php +1 -1
- vendor/facebook/php-business-sdk/examples/AdAccountCampaignsPostPageLikes.php +1 -1
- vendor/facebook/php-business-sdk/examples/AdAccountCampaignsPostPostEngagement.php +1 -1
- vendor/facebook/php-business-sdk/examples/AdAccountCampaignsPostStoreCampaign.php +1 -1
- vendor/facebook/php-business-sdk/examples/AdAccountCampaignsPostVideoViews.php +1 -1
- vendor/facebook/php-business-sdk/src/FacebookAds/ApiConfig.php +2 -2
- vendor/facebook/php-business-sdk/src/FacebookAds/Http/Exception/RequestException.php +4 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Http/SimpleRequest.php +74 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/AdAccount.php +6 -12
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/AdCreative.php +0 -24
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/{CustomAudiencePrefillState.php → AdCreativeAdDisclaimer.php} +4 -4
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/AdPlacePageSet.php +0 -24
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/AdReportRun.php +0 -48
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/AdSet.php +4 -2
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Album.php +49 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Application.php +0 -42
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Business.php +71 -16
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/{VideoGameShow.php → BusinessAgreement.php} +13 -12
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/BusinessOwnedObjectOnBehalfOfRequest.php +0 -23
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Campaign.php +5 -5
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/{RequestHistory.php → CatalogItemAppLinks.php} +4 -6
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Comment.php +23 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/CommerceMerchantSettings.php +332 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/CommerceMerchantSettingsSetupStatus.php +57 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/CommerceOrder.php +397 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/{BusinessPixelTOS.php → CommerceOrderTransactionDetail.php} +9 -16
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/CommercePayout.php +57 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/CustomAudience.php +0 -23
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountActivityFields.php +3 -7
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountCreationRequestFields.php +0 -2
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAssetFeedSpecFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCampaignActivityFields.php +2 -2
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{CustomAudiencePrefillStateFields.php → AdCreativeAdDisclaimerFields.php} +7 -7
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeVideoDataFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCustomizationRuleSpecFields.php +4 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdFields.php +0 -2
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdSetFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdgroupActivityFields.php +4 -4
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdgroupPlacementSpecificReviewFeedbackFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdsInsightsFields.php +10 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AutomotiveModelFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{BusinessPixelTOSFields.php → BusinessAgreementFields.php} +3 -3
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CampaignFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{InstagramCommentFields.php → CatalogItemAppLinksFields.php} +17 -15
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogItemAppealStatusFields.php +1 -1
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CommerceMerchantSettingsFields.php +87 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{RequestHistoryFields.php → CommerceMerchantSettingsSetupStatusFields.php} +11 -15
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CommerceOrderFields.php +69 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CommerceOrderTransactionDetailFields.php +63 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{VideoGameShowFields.php → CommercePayoutFields.php} +11 -11
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/DestinationFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FlightFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/HomeListingFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/HotelFields.php +2 -2
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/HotelRoomFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/IGUserFields.php +4 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/MessengerProfileFields.php +0 -2
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OpenGraphObjectFields.php +0 -87
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PageFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PagePostFields.php +18 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PostFields.php +18 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ProductCatalogFields.php +4 -2
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ProductFeedUploadDiagnosticsReportFields.php +49 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ProductItemFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VehicleFields.php +2 -2
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VehicleOfferFields.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Group.php +0 -54
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/InstagramComment.php +0 -177
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/LifeEvent.php +0 -23
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/OfflineConversionDataSet.php +0 -24
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/OpenGraphContext.php +0 -69
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/OpenGraphObject.php +0 -139
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Page.php +157 -139
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/PartnerStudy.php +0 -23
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Post.php +7 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/ProductCatalog.php +24 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/ProductFeedUploadDiagnosticsReport.php +57 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/PublisherBlockList.php +0 -24
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/RTBDynamicPost.php +0 -23
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/AdsPixelSettings.php +201 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Content.php +85 -1
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Event.php +86 -6
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/UserData.php +30 -5
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Util.php +81 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/StoreCatalogSettings.php +23 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/URL.php +1 -1
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/User.php +0 -145
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountContentTypeValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountTargetingUnifiedObjectiveValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountTargetingUnifiedWhitelistedTypesValues.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdActivityEventTypeValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAssetFeedSpecCallToActionTypesValues.php +5 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCreativeCallToActionTypeValues.php +5 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCreativeLinkDataCallToActionTypeValues.php +5 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdNetworkAnalyticsSyncQueryResultBreakdownsValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdPreviewAdFormatValues.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdSetMultiOptimizationGoalWeightValues.php +44 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdVideoContainerTypeValues.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdVideoValidationAdPlacementsValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdsInsightsActionAttributionWindowsValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/BusinessAgreementRequestStatusValues.php +45 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/BusinessAssetGroupPageTasksValues.php +0 -4
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/BusinessImageValidationAdPlacementsValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/BusinessPagePermittedTasksValues.php +0 -4
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/BusinessRoleRequestRoleValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/BusinessUserRoleValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/CPASParentCatalogSettingsAttributionWindowsValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/CampaignObjectiveValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/{RequestHistoryHttpMethodValues.php → CampaignSpecialAdCategoriesValues.php} +6 -5
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/{VideoGameShowActionValues.php → CommerceMerchantSettingsMerchantStatusValues.php} +4 -4
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/CommerceOrderFiltersValues.php +46 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/CommerceOrderReasonCodeValues.php +50 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/CommerceOrderStateValues.php +44 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/CustomAudienceContentTypeValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/CustomConversionCustomEventTypeValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/GroupGroupTypeValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/GroupPurposeValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageCallToActionAndroidDestinationTypeValues.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageCallToActionIphoneDestinationTypeValues.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageCallToActionTypeValues.php +4 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageCallToActionWebDestinationTypeValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/PagePermittedTasksValues.php +0 -4
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageSubscribedFieldsValues.php +4 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageTasksValues.php +0 -4
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/ProductCatalogVerticalValues.php +2 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/ProductFeedFeedTypeValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/ProfileTypeValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/StreamingReactionReactionTypeValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/Values/SystemUserRoleValues.php +1 -0
- vendor/facebook/php-business-sdk/src/FacebookAds/Object/WhatsAppBusinessAccount.php +23 -0
- vendor/facebook/php-business-sdk/test/FacebookAdsTest/Http/Exception/RequestExceptionTest.php +14 -0
- vendor/facebook/php-business-sdk/test/FacebookAdsTest/Object/ServerSide/ContentTest.php +78 -0
- vendor/facebook/php-business-sdk/test/FacebookAdsTest/Object/ServerSide/ServerSideEventTest.php +86 -0
- vendor/facebook/php-business-sdk/test/FacebookAdsTest/Object/ServerSide/ServerSideUtilTest.php +102 -0
- vendor/facebook/php-business-sdk/test/phpunit.xml +1 -1
changelog.txt
CHANGED
@@ -1,17 +1,23 @@
|
|
1 |
*** Facebook for WordPress Changelog ***
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
2020-06-18 version 2.1.0
|
3 |
-
* Support for WooCommerce through the
|
4 |
|
5 |
2020-04-23 version 2.0.2
|
6 |
* Support for WordPress 5.4
|
7 |
* Fixing an Illegal string offset error with WP Forms
|
8 |
-
* Fixing the event source url for
|
9 |
|
10 |
2020-03-23 version 2.0.1
|
11 |
* Fixing an Undefined index error
|
12 |
|
13 |
2020-03-09 version 2.0.0
|
14 |
-
* Added support for
|
15 |
|
16 |
2019-12-02 version 1.8.0
|
17 |
* Support for WordPress 5.3
|
1 |
*** Facebook for WordPress Changelog ***
|
2 |
+
2020-08-14 version 2.2.0
|
3 |
+
* Support for WordPress 5.5
|
4 |
+
* Improved Conversions API event quality
|
5 |
+
* Sending AddToCart and ViewContent events from Easy Digitial Downloads
|
6 |
+
* New filter added before the Conversions API event is sent
|
7 |
+
|
8 |
2020-06-18 version 2.1.0
|
9 |
+
* Support for WooCommerce through the Conversions API
|
10 |
|
11 |
2020-04-23 version 2.0.2
|
12 |
* Support for WordPress 5.4
|
13 |
* Fixing an Illegal string offset error with WP Forms
|
14 |
+
* Fixing the event source url for Conversions API events
|
15 |
|
16 |
2020-03-23 version 2.0.1
|
17 |
* Fixing an Undefined index error
|
18 |
|
19 |
2020-03-09 version 2.0.0
|
20 |
+
* Added support for Conversions API
|
21 |
|
22 |
2019-12-02 version 1.8.0
|
23 |
* Support for WordPress 5.3
|
composer.json
CHANGED
@@ -9,7 +9,7 @@
|
|
9 |
},
|
10 |
"license": "GPL",
|
11 |
"require": {
|
12 |
-
"facebook/php-business-sdk": "
|
13 |
"techcrunch/wp-async-task": "dev-master"
|
14 |
},
|
15 |
"autoload": {
|
9 |
},
|
10 |
"license": "GPL",
|
11 |
"require": {
|
12 |
+
"facebook/php-business-sdk": "7.0.3",
|
13 |
"techcrunch/wp-async-task": "dev-master"
|
14 |
},
|
15 |
"autoload": {
|
composer.lock
CHANGED
@@ -4,20 +4,20 @@
|
|
4 |
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
5 |
"This file is @generated automatically"
|
6 |
],
|
7 |
-
"content-hash": "
|
8 |
"packages": [
|
9 |
{
|
10 |
"name": "facebook/php-business-sdk",
|
11 |
-
"version": "
|
12 |
"source": {
|
13 |
"type": "git",
|
14 |
"url": "https://github.com/facebook/facebook-php-business-sdk.git",
|
15 |
-
"reference": "
|
16 |
},
|
17 |
"dist": {
|
18 |
"type": "zip",
|
19 |
-
"url": "https://api.github.com/repos/facebook/facebook-php-business-sdk/zipball/
|
20 |
-
"reference": "
|
21 |
"shasum": ""
|
22 |
},
|
23 |
"require-dev": {
|
@@ -41,7 +41,7 @@
|
|
41 |
"page",
|
42 |
"sdk"
|
43 |
],
|
44 |
-
"time": "2020-
|
45 |
},
|
46 |
{
|
47 |
"name": "techcrunch/wp-async-task",
|
@@ -183,20 +183,20 @@
|
|
183 |
},
|
184 |
{
|
185 |
"name": "doctrine/instantiator",
|
186 |
-
"version": "1.3.
|
187 |
"source": {
|
188 |
"type": "git",
|
189 |
"url": "https://github.com/doctrine/instantiator.git",
|
190 |
-
"reference": "
|
191 |
},
|
192 |
"dist": {
|
193 |
"type": "zip",
|
194 |
-
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/
|
195 |
-
"reference": "
|
196 |
"shasum": ""
|
197 |
},
|
198 |
"require": {
|
199 |
-
"php": "^7.1"
|
200 |
},
|
201 |
"require-dev": {
|
202 |
"doctrine/coding-standard": "^6.0",
|
@@ -235,24 +235,24 @@
|
|
235 |
"constructor",
|
236 |
"instantiate"
|
237 |
],
|
238 |
-
"time": "
|
239 |
},
|
240 |
{
|
241 |
"name": "hamcrest/hamcrest-php",
|
242 |
-
"version": "v2.0.
|
243 |
"source": {
|
244 |
"type": "git",
|
245 |
"url": "https://github.com/hamcrest/hamcrest-php.git",
|
246 |
-
"reference": "
|
247 |
},
|
248 |
"dist": {
|
249 |
"type": "zip",
|
250 |
-
"url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/
|
251 |
-
"reference": "
|
252 |
"shasum": ""
|
253 |
},
|
254 |
"require": {
|
255 |
-
"php": "^5.3|^7.0"
|
256 |
},
|
257 |
"replace": {
|
258 |
"cordoval/hamcrest-php": "*",
|
@@ -260,14 +260,13 @@
|
|
260 |
"kodova/hamcrest-php": "*"
|
261 |
},
|
262 |
"require-dev": {
|
263 |
-
"phpunit/php-file-iterator": "1.
|
264 |
-
"phpunit/phpunit": "
|
265 |
-
"satooshi/php-coveralls": "^1.0"
|
266 |
},
|
267 |
"type": "library",
|
268 |
"extra": {
|
269 |
"branch-alias": {
|
270 |
-
"dev-master": "2.
|
271 |
}
|
272 |
},
|
273 |
"autoload": {
|
@@ -277,13 +276,13 @@
|
|
277 |
},
|
278 |
"notification-url": "https://packagist.org/downloads/",
|
279 |
"license": [
|
280 |
-
"BSD"
|
281 |
],
|
282 |
"description": "This is the PHP port of Hamcrest Matchers",
|
283 |
"keywords": [
|
284 |
"test"
|
285 |
],
|
286 |
-
"time": "
|
287 |
},
|
288 |
{
|
289 |
"name": "mehr-als-nix/parallel",
|
@@ -323,25 +322,25 @@
|
|
323 |
},
|
324 |
{
|
325 |
"name": "mockery/mockery",
|
326 |
-
"version": "1.3.
|
327 |
"source": {
|
328 |
"type": "git",
|
329 |
"url": "https://github.com/mockery/mockery.git",
|
330 |
-
"reference": "
|
331 |
},
|
332 |
"dist": {
|
333 |
"type": "zip",
|
334 |
-
"url": "https://api.github.com/repos/mockery/mockery/zipball/
|
335 |
-
"reference": "
|
336 |
"shasum": ""
|
337 |
},
|
338 |
"require": {
|
339 |
-
"hamcrest/hamcrest-php": "
|
340 |
"lib-pcre": ">=7.0",
|
341 |
"php": ">=5.6.0"
|
342 |
},
|
343 |
"require-dev": {
|
344 |
-
"phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0"
|
345 |
},
|
346 |
"type": "library",
|
347 |
"extra": {
|
@@ -384,24 +383,24 @@
|
|
384 |
"test double",
|
385 |
"testing"
|
386 |
],
|
387 |
-
"time": "
|
388 |
},
|
389 |
{
|
390 |
"name": "myclabs/deep-copy",
|
391 |
-
"version": "1.
|
392 |
"source": {
|
393 |
"type": "git",
|
394 |
"url": "https://github.com/myclabs/DeepCopy.git",
|
395 |
-
"reference": "
|
396 |
},
|
397 |
"dist": {
|
398 |
"type": "zip",
|
399 |
-
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/
|
400 |
-
"reference": "
|
401 |
"shasum": ""
|
402 |
},
|
403 |
"require": {
|
404 |
-
"php": "^7.1"
|
405 |
},
|
406 |
"replace": {
|
407 |
"myclabs/deep-copy": "self.version"
|
@@ -432,7 +431,7 @@
|
|
432 |
"object",
|
433 |
"object graph"
|
434 |
],
|
435 |
-
"time": "2020-
|
436 |
},
|
437 |
{
|
438 |
"name": "phar-io/manifest",
|
@@ -635,28 +634,25 @@
|
|
635 |
},
|
636 |
{
|
637 |
"name": "phpdocumentor/reflection-common",
|
638 |
-
"version": "2.
|
639 |
"source": {
|
640 |
"type": "git",
|
641 |
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
|
642 |
-
"reference": "
|
643 |
},
|
644 |
"dist": {
|
645 |
"type": "zip",
|
646 |
-
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/
|
647 |
-
"reference": "
|
648 |
"shasum": ""
|
649 |
},
|
650 |
"require": {
|
651 |
-
"php": "
|
652 |
-
},
|
653 |
-
"require-dev": {
|
654 |
-
"phpunit/phpunit": "~6"
|
655 |
},
|
656 |
"type": "library",
|
657 |
"extra": {
|
658 |
"branch-alias": {
|
659 |
-
"dev-
|
660 |
}
|
661 |
},
|
662 |
"autoload": {
|
@@ -683,32 +679,31 @@
|
|
683 |
"reflection",
|
684 |
"static analysis"
|
685 |
],
|
686 |
-
"time": "
|
687 |
},
|
688 |
{
|
689 |
"name": "phpdocumentor/reflection-docblock",
|
690 |
-
"version": "5.
|
691 |
"source": {
|
692 |
"type": "git",
|
693 |
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
694 |
-
"reference": "
|
695 |
},
|
696 |
"dist": {
|
697 |
"type": "zip",
|
698 |
-
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/
|
699 |
-
"reference": "
|
700 |
"shasum": ""
|
701 |
},
|
702 |
"require": {
|
703 |
-
"ext-filter": "
|
704 |
-
"php": "^7.2",
|
705 |
-
"phpdocumentor/reflection-common": "^2.
|
706 |
-
"phpdocumentor/type-resolver": "^1.
|
707 |
-
"webmozart/assert": "^1"
|
708 |
},
|
709 |
"require-dev": {
|
710 |
-
"
|
711 |
-
"mockery/mockery": "^1"
|
712 |
},
|
713 |
"type": "library",
|
714 |
"extra": {
|
@@ -736,34 +731,33 @@
|
|
736 |
}
|
737 |
],
|
738 |
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
|
739 |
-
"time": "2020-
|
740 |
},
|
741 |
{
|
742 |
"name": "phpdocumentor/type-resolver",
|
743 |
-
"version": "1.
|
744 |
"source": {
|
745 |
"type": "git",
|
746 |
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
747 |
-
"reference": "
|
748 |
},
|
749 |
"dist": {
|
750 |
"type": "zip",
|
751 |
-
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/
|
752 |
-
"reference": "
|
753 |
"shasum": ""
|
754 |
},
|
755 |
"require": {
|
756 |
-
"php": "^7.2",
|
757 |
"phpdocumentor/reflection-common": "^2.0"
|
758 |
},
|
759 |
"require-dev": {
|
760 |
-
"ext-tokenizer": "
|
761 |
-
"mockery/mockery": "~1"
|
762 |
},
|
763 |
"type": "library",
|
764 |
"extra": {
|
765 |
"branch-alias": {
|
766 |
-
"dev-
|
767 |
}
|
768 |
},
|
769 |
"autoload": {
|
@@ -782,7 +776,7 @@
|
|
782 |
}
|
783 |
],
|
784 |
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
|
785 |
-
"time": "2020-
|
786 |
},
|
787 |
{
|
788 |
"name": "phpspec/prophecy",
|
@@ -1850,22 +1844,23 @@
|
|
1850 |
},
|
1851 |
{
|
1852 |
"name": "symfony/console",
|
1853 |
-
"version": "v4.4.
|
1854 |
"source": {
|
1855 |
"type": "git",
|
1856 |
"url": "https://github.com/symfony/console.git",
|
1857 |
-
"reference": "
|
1858 |
},
|
1859 |
"dist": {
|
1860 |
"type": "zip",
|
1861 |
-
"url": "https://api.github.com/repos/symfony/console/zipball/
|
1862 |
-
"reference": "
|
1863 |
"shasum": ""
|
1864 |
},
|
1865 |
"require": {
|
1866 |
-
"php": "
|
1867 |
"symfony/polyfill-mbstring": "~1.0",
|
1868 |
"symfony/polyfill-php73": "^1.8",
|
|
|
1869 |
"symfony/service-contracts": "^1.1|^2"
|
1870 |
},
|
1871 |
"conflict": {
|
@@ -1922,20 +1917,20 @@
|
|
1922 |
],
|
1923 |
"description": "Symfony Console Component",
|
1924 |
"homepage": "https://symfony.com",
|
1925 |
-
"time": "2020-
|
1926 |
},
|
1927 |
{
|
1928 |
"name": "symfony/polyfill-ctype",
|
1929 |
-
"version": "v1.
|
1930 |
"source": {
|
1931 |
"type": "git",
|
1932 |
"url": "https://github.com/symfony/polyfill-ctype.git",
|
1933 |
-
"reference": "
|
1934 |
},
|
1935 |
"dist": {
|
1936 |
"type": "zip",
|
1937 |
-
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/
|
1938 |
-
"reference": "
|
1939 |
"shasum": ""
|
1940 |
},
|
1941 |
"require": {
|
@@ -1947,7 +1942,11 @@
|
|
1947 |
"type": "library",
|
1948 |
"extra": {
|
1949 |
"branch-alias": {
|
1950 |
-
"dev-master": "1.
|
|
|
|
|
|
|
|
|
1951 |
}
|
1952 |
},
|
1953 |
"autoload": {
|
@@ -1980,20 +1979,20 @@
|
|
1980 |
"polyfill",
|
1981 |
"portable"
|
1982 |
],
|
1983 |
-
"time": "2020-
|
1984 |
},
|
1985 |
{
|
1986 |
"name": "symfony/polyfill-mbstring",
|
1987 |
-
"version": "v1.
|
1988 |
"source": {
|
1989 |
"type": "git",
|
1990 |
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
1991 |
-
"reference": "
|
1992 |
},
|
1993 |
"dist": {
|
1994 |
"type": "zip",
|
1995 |
-
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/
|
1996 |
-
"reference": "
|
1997 |
"shasum": ""
|
1998 |
},
|
1999 |
"require": {
|
@@ -2005,7 +2004,11 @@
|
|
2005 |
"type": "library",
|
2006 |
"extra": {
|
2007 |
"branch-alias": {
|
2008 |
-
"dev-master": "1.
|
|
|
|
|
|
|
|
|
2009 |
}
|
2010 |
},
|
2011 |
"autoload": {
|
@@ -2039,20 +2042,20 @@
|
|
2039 |
"portable",
|
2040 |
"shim"
|
2041 |
],
|
2042 |
-
"time": "2020-
|
2043 |
},
|
2044 |
{
|
2045 |
"name": "symfony/polyfill-php73",
|
2046 |
-
"version": "v1.
|
2047 |
"source": {
|
2048 |
"type": "git",
|
2049 |
"url": "https://github.com/symfony/polyfill-php73.git",
|
2050 |
-
"reference": "
|
2051 |
},
|
2052 |
"dist": {
|
2053 |
"type": "zip",
|
2054 |
-
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/
|
2055 |
-
"reference": "
|
2056 |
"shasum": ""
|
2057 |
},
|
2058 |
"require": {
|
@@ -2061,7 +2064,11 @@
|
|
2061 |
"type": "library",
|
2062 |
"extra": {
|
2063 |
"branch-alias": {
|
2064 |
-
"dev-master": "1.
|
|
|
|
|
|
|
|
|
2065 |
}
|
2066 |
},
|
2067 |
"autoload": {
|
@@ -2097,24 +2104,90 @@
|
|
2097 |
"portable",
|
2098 |
"shim"
|
2099 |
],
|
2100 |
-
"time": "2020-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2101 |
},
|
2102 |
{
|
2103 |
"name": "symfony/service-contracts",
|
2104 |
-
"version": "v2.
|
2105 |
"source": {
|
2106 |
"type": "git",
|
2107 |
"url": "https://github.com/symfony/service-contracts.git",
|
2108 |
-
"reference": "
|
2109 |
},
|
2110 |
"dist": {
|
2111 |
"type": "zip",
|
2112 |
-
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/
|
2113 |
-
"reference": "
|
2114 |
"shasum": ""
|
2115 |
},
|
2116 |
"require": {
|
2117 |
-
"php": "
|
2118 |
"psr/container": "^1.0"
|
2119 |
},
|
2120 |
"suggest": {
|
@@ -2123,7 +2196,11 @@
|
|
2123 |
"type": "library",
|
2124 |
"extra": {
|
2125 |
"branch-alias": {
|
2126 |
-
"dev-master": "2.
|
|
|
|
|
|
|
|
|
2127 |
}
|
2128 |
},
|
2129 |
"autoload": {
|
@@ -2155,24 +2232,24 @@
|
|
2155 |
"interoperability",
|
2156 |
"standards"
|
2157 |
],
|
2158 |
-
"time": "
|
2159 |
},
|
2160 |
{
|
2161 |
"name": "symfony/yaml",
|
2162 |
-
"version": "v4.4.
|
2163 |
"source": {
|
2164 |
"type": "git",
|
2165 |
"url": "https://github.com/symfony/yaml.git",
|
2166 |
-
"reference": "
|
2167 |
},
|
2168 |
"dist": {
|
2169 |
"type": "zip",
|
2170 |
-
"url": "https://api.github.com/repos/symfony/yaml/zipball/
|
2171 |
-
"reference": "
|
2172 |
"shasum": ""
|
2173 |
},
|
2174 |
"require": {
|
2175 |
-
"php": "
|
2176 |
"symfony/polyfill-ctype": "~1.8"
|
2177 |
},
|
2178 |
"conflict": {
|
@@ -2214,27 +2291,27 @@
|
|
2214 |
],
|
2215 |
"description": "Symfony Yaml Component",
|
2216 |
"homepage": "https://symfony.com",
|
2217 |
-
"time": "2020-
|
2218 |
},
|
2219 |
{
|
2220 |
"name": "theseer/tokenizer",
|
2221 |
-
"version": "1.
|
2222 |
"source": {
|
2223 |
"type": "git",
|
2224 |
"url": "https://github.com/theseer/tokenizer.git",
|
2225 |
-
"reference": "
|
2226 |
},
|
2227 |
"dist": {
|
2228 |
"type": "zip",
|
2229 |
-
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/
|
2230 |
-
"reference": "
|
2231 |
"shasum": ""
|
2232 |
},
|
2233 |
"require": {
|
2234 |
"ext-dom": "*",
|
2235 |
"ext-tokenizer": "*",
|
2236 |
"ext-xmlwriter": "*",
|
2237 |
-
"php": "^7.0"
|
2238 |
},
|
2239 |
"type": "library",
|
2240 |
"autoload": {
|
@@ -2254,28 +2331,29 @@
|
|
2254 |
}
|
2255 |
],
|
2256 |
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
|
2257 |
-
"time": "
|
2258 |
},
|
2259 |
{
|
2260 |
"name": "webmozart/assert",
|
2261 |
-
"version": "1.
|
2262 |
"source": {
|
2263 |
"type": "git",
|
2264 |
"url": "https://github.com/webmozart/assert.git",
|
2265 |
-
"reference": "
|
2266 |
},
|
2267 |
"dist": {
|
2268 |
"type": "zip",
|
2269 |
-
"url": "https://api.github.com/repos/webmozart/assert/zipball/
|
2270 |
-
"reference": "
|
2271 |
"shasum": ""
|
2272 |
},
|
2273 |
"require": {
|
2274 |
-
"php": "^5.3.3 || ^7.0",
|
2275 |
"symfony/polyfill-ctype": "^1.8"
|
2276 |
},
|
2277 |
"conflict": {
|
2278 |
-
"
|
|
|
2279 |
},
|
2280 |
"require-dev": {
|
2281 |
"phpunit/phpunit": "^4.8.36 || ^7.5.13"
|
@@ -2302,7 +2380,7 @@
|
|
2302 |
"check",
|
2303 |
"validate"
|
2304 |
],
|
2305 |
-
"time": "2020-
|
2306 |
}
|
2307 |
],
|
2308 |
"aliases": [],
|
4 |
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
5 |
"This file is @generated automatically"
|
6 |
],
|
7 |
+
"content-hash": "8525d272beb712ed341e2acd76074577",
|
8 |
"packages": [
|
9 |
{
|
10 |
"name": "facebook/php-business-sdk",
|
11 |
+
"version": "7.0.3",
|
12 |
"source": {
|
13 |
"type": "git",
|
14 |
"url": "https://github.com/facebook/facebook-php-business-sdk.git",
|
15 |
+
"reference": "ddbd867b0ee296f83a4d5a1a4aae5c82fa5a5eaa"
|
16 |
},
|
17 |
"dist": {
|
18 |
"type": "zip",
|
19 |
+
"url": "https://api.github.com/repos/facebook/facebook-php-business-sdk/zipball/ddbd867b0ee296f83a4d5a1a4aae5c82fa5a5eaa",
|
20 |
+
"reference": "ddbd867b0ee296f83a4d5a1a4aae5c82fa5a5eaa",
|
21 |
"shasum": ""
|
22 |
},
|
23 |
"require-dev": {
|
41 |
"page",
|
42 |
"sdk"
|
43 |
],
|
44 |
+
"time": "2020-07-20T17:04:42+00:00"
|
45 |
},
|
46 |
{
|
47 |
"name": "techcrunch/wp-async-task",
|
183 |
},
|
184 |
{
|
185 |
"name": "doctrine/instantiator",
|
186 |
+
"version": "1.3.1",
|
187 |
"source": {
|
188 |
"type": "git",
|
189 |
"url": "https://github.com/doctrine/instantiator.git",
|
190 |
+
"reference": "f350df0268e904597e3bd9c4685c53e0e333feea"
|
191 |
},
|
192 |
"dist": {
|
193 |
"type": "zip",
|
194 |
+
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea",
|
195 |
+
"reference": "f350df0268e904597e3bd9c4685c53e0e333feea",
|
196 |
"shasum": ""
|
197 |
},
|
198 |
"require": {
|
199 |
+
"php": "^7.1 || ^8.0"
|
200 |
},
|
201 |
"require-dev": {
|
202 |
"doctrine/coding-standard": "^6.0",
|
235 |
"constructor",
|
236 |
"instantiate"
|
237 |
],
|
238 |
+
"time": "2020-05-29T17:27:14+00:00"
|
239 |
},
|
240 |
{
|
241 |
"name": "hamcrest/hamcrest-php",
|
242 |
+
"version": "v2.0.1",
|
243 |
"source": {
|
244 |
"type": "git",
|
245 |
"url": "https://github.com/hamcrest/hamcrest-php.git",
|
246 |
+
"reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
|
247 |
},
|
248 |
"dist": {
|
249 |
"type": "zip",
|
250 |
+
"url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
|
251 |
+
"reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
|
252 |
"shasum": ""
|
253 |
},
|
254 |
"require": {
|
255 |
+
"php": "^5.3|^7.0|^8.0"
|
256 |
},
|
257 |
"replace": {
|
258 |
"cordoval/hamcrest-php": "*",
|
260 |
"kodova/hamcrest-php": "*"
|
261 |
},
|
262 |
"require-dev": {
|
263 |
+
"phpunit/php-file-iterator": "^1.4 || ^2.0",
|
264 |
+
"phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
|
|
|
265 |
},
|
266 |
"type": "library",
|
267 |
"extra": {
|
268 |
"branch-alias": {
|
269 |
+
"dev-master": "2.1-dev"
|
270 |
}
|
271 |
},
|
272 |
"autoload": {
|
276 |
},
|
277 |
"notification-url": "https://packagist.org/downloads/",
|
278 |
"license": [
|
279 |
+
"BSD-3-Clause"
|
280 |
],
|
281 |
"description": "This is the PHP port of Hamcrest Matchers",
|
282 |
"keywords": [
|
283 |
"test"
|
284 |
],
|
285 |
+
"time": "2020-07-09T08:09:16+00:00"
|
286 |
},
|
287 |
{
|
288 |
"name": "mehr-als-nix/parallel",
|
322 |
},
|
323 |
{
|
324 |
"name": "mockery/mockery",
|
325 |
+
"version": "1.3.2",
|
326 |
"source": {
|
327 |
"type": "git",
|
328 |
"url": "https://github.com/mockery/mockery.git",
|
329 |
+
"reference": "9b6f117dd7d36dc3858d8d8ddf9b3d584fcae283"
|
330 |
},
|
331 |
"dist": {
|
332 |
"type": "zip",
|
333 |
+
"url": "https://api.github.com/repos/mockery/mockery/zipball/9b6f117dd7d36dc3858d8d8ddf9b3d584fcae283",
|
334 |
+
"reference": "9b6f117dd7d36dc3858d8d8ddf9b3d584fcae283",
|
335 |
"shasum": ""
|
336 |
},
|
337 |
"require": {
|
338 |
+
"hamcrest/hamcrest-php": "^2.0.1",
|
339 |
"lib-pcre": ">=7.0",
|
340 |
"php": ">=5.6.0"
|
341 |
},
|
342 |
"require-dev": {
|
343 |
+
"phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0|~9.0"
|
344 |
},
|
345 |
"type": "library",
|
346 |
"extra": {
|
383 |
"test double",
|
384 |
"testing"
|
385 |
],
|
386 |
+
"time": "2020-07-09T08:23:05+00:00"
|
387 |
},
|
388 |
{
|
389 |
"name": "myclabs/deep-copy",
|
390 |
+
"version": "1.10.1",
|
391 |
"source": {
|
392 |
"type": "git",
|
393 |
"url": "https://github.com/myclabs/DeepCopy.git",
|
394 |
+
"reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5"
|
395 |
},
|
396 |
"dist": {
|
397 |
"type": "zip",
|
398 |
+
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/969b211f9a51aa1f6c01d1d2aef56d3bd91598e5",
|
399 |
+
"reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5",
|
400 |
"shasum": ""
|
401 |
},
|
402 |
"require": {
|
403 |
+
"php": "^7.1 || ^8.0"
|
404 |
},
|
405 |
"replace": {
|
406 |
"myclabs/deep-copy": "self.version"
|
431 |
"object",
|
432 |
"object graph"
|
433 |
],
|
434 |
+
"time": "2020-06-29T13:22:24+00:00"
|
435 |
},
|
436 |
{
|
437 |
"name": "phar-io/manifest",
|
634 |
},
|
635 |
{
|
636 |
"name": "phpdocumentor/reflection-common",
|
637 |
+
"version": "2.2.0",
|
638 |
"source": {
|
639 |
"type": "git",
|
640 |
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
|
641 |
+
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
|
642 |
},
|
643 |
"dist": {
|
644 |
"type": "zip",
|
645 |
+
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
|
646 |
+
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
|
647 |
"shasum": ""
|
648 |
},
|
649 |
"require": {
|
650 |
+
"php": "^7.2 || ^8.0"
|
|
|
|
|
|
|
651 |
},
|
652 |
"type": "library",
|
653 |
"extra": {
|
654 |
"branch-alias": {
|
655 |
+
"dev-2.x": "2.x-dev"
|
656 |
}
|
657 |
},
|
658 |
"autoload": {
|
679 |
"reflection",
|
680 |
"static analysis"
|
681 |
],
|
682 |
+
"time": "2020-06-27T09:03:43+00:00"
|
683 |
},
|
684 |
{
|
685 |
"name": "phpdocumentor/reflection-docblock",
|
686 |
+
"version": "5.2.0",
|
687 |
"source": {
|
688 |
"type": "git",
|
689 |
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
690 |
+
"reference": "3170448f5769fe19f456173d833734e0ff1b84df"
|
691 |
},
|
692 |
"dist": {
|
693 |
"type": "zip",
|
694 |
+
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/3170448f5769fe19f456173d833734e0ff1b84df",
|
695 |
+
"reference": "3170448f5769fe19f456173d833734e0ff1b84df",
|
696 |
"shasum": ""
|
697 |
},
|
698 |
"require": {
|
699 |
+
"ext-filter": "*",
|
700 |
+
"php": "^7.2 || ^8.0",
|
701 |
+
"phpdocumentor/reflection-common": "^2.2",
|
702 |
+
"phpdocumentor/type-resolver": "^1.3",
|
703 |
+
"webmozart/assert": "^1.9.1"
|
704 |
},
|
705 |
"require-dev": {
|
706 |
+
"mockery/mockery": "~1.3.2"
|
|
|
707 |
},
|
708 |
"type": "library",
|
709 |
"extra": {
|
731 |
}
|
732 |
],
|
733 |
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
|
734 |
+
"time": "2020-07-20T20:05:34+00:00"
|
735 |
},
|
736 |
{
|
737 |
"name": "phpdocumentor/type-resolver",
|
738 |
+
"version": "1.3.0",
|
739 |
"source": {
|
740 |
"type": "git",
|
741 |
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
742 |
+
"reference": "e878a14a65245fbe78f8080eba03b47c3b705651"
|
743 |
},
|
744 |
"dist": {
|
745 |
"type": "zip",
|
746 |
+
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e878a14a65245fbe78f8080eba03b47c3b705651",
|
747 |
+
"reference": "e878a14a65245fbe78f8080eba03b47c3b705651",
|
748 |
"shasum": ""
|
749 |
},
|
750 |
"require": {
|
751 |
+
"php": "^7.2 || ^8.0",
|
752 |
"phpdocumentor/reflection-common": "^2.0"
|
753 |
},
|
754 |
"require-dev": {
|
755 |
+
"ext-tokenizer": "*"
|
|
|
756 |
},
|
757 |
"type": "library",
|
758 |
"extra": {
|
759 |
"branch-alias": {
|
760 |
+
"dev-1.x": "1.x-dev"
|
761 |
}
|
762 |
},
|
763 |
"autoload": {
|
776 |
}
|
777 |
],
|
778 |
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
|
779 |
+
"time": "2020-06-27T10:12:23+00:00"
|
780 |
},
|
781 |
{
|
782 |
"name": "phpspec/prophecy",
|
1844 |
},
|
1845 |
{
|
1846 |
"name": "symfony/console",
|
1847 |
+
"version": "v4.4.11",
|
1848 |
"source": {
|
1849 |
"type": "git",
|
1850 |
"url": "https://github.com/symfony/console.git",
|
1851 |
+
"reference": "55d07021da933dd0d633ffdab6f45d5b230c7e02"
|
1852 |
},
|
1853 |
"dist": {
|
1854 |
"type": "zip",
|
1855 |
+
"url": "https://api.github.com/repos/symfony/console/zipball/55d07021da933dd0d633ffdab6f45d5b230c7e02",
|
1856 |
+
"reference": "55d07021da933dd0d633ffdab6f45d5b230c7e02",
|
1857 |
"shasum": ""
|
1858 |
},
|
1859 |
"require": {
|
1860 |
+
"php": ">=7.1.3",
|
1861 |
"symfony/polyfill-mbstring": "~1.0",
|
1862 |
"symfony/polyfill-php73": "^1.8",
|
1863 |
+
"symfony/polyfill-php80": "^1.15",
|
1864 |
"symfony/service-contracts": "^1.1|^2"
|
1865 |
},
|
1866 |
"conflict": {
|
1917 |
],
|
1918 |
"description": "Symfony Console Component",
|
1919 |
"homepage": "https://symfony.com",
|
1920 |
+
"time": "2020-07-06T13:18:39+00:00"
|
1921 |
},
|
1922 |
{
|
1923 |
"name": "symfony/polyfill-ctype",
|
1924 |
+
"version": "v1.18.0",
|
1925 |
"source": {
|
1926 |
"type": "git",
|
1927 |
"url": "https://github.com/symfony/polyfill-ctype.git",
|
1928 |
+
"reference": "1c302646f6efc070cd46856e600e5e0684d6b454"
|
1929 |
},
|
1930 |
"dist": {
|
1931 |
"type": "zip",
|
1932 |
+
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1c302646f6efc070cd46856e600e5e0684d6b454",
|
1933 |
+
"reference": "1c302646f6efc070cd46856e600e5e0684d6b454",
|
1934 |
"shasum": ""
|
1935 |
},
|
1936 |
"require": {
|
1942 |
"type": "library",
|
1943 |
"extra": {
|
1944 |
"branch-alias": {
|
1945 |
+
"dev-master": "1.18-dev"
|
1946 |
+
},
|
1947 |
+
"thanks": {
|
1948 |
+
"name": "symfony/polyfill",
|
1949 |
+
"url": "https://github.com/symfony/polyfill"
|
1950 |
}
|
1951 |
},
|
1952 |
"autoload": {
|
1979 |
"polyfill",
|
1980 |
"portable"
|
1981 |
],
|
1982 |
+
"time": "2020-07-14T12:35:20+00:00"
|
1983 |
},
|
1984 |
{
|
1985 |
"name": "symfony/polyfill-mbstring",
|
1986 |
+
"version": "v1.18.0",
|
1987 |
"source": {
|
1988 |
"type": "git",
|
1989 |
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
1990 |
+
"reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a"
|
1991 |
},
|
1992 |
"dist": {
|
1993 |
"type": "zip",
|
1994 |
+
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a6977d63bf9a0ad4c65cd352709e230876f9904a",
|
1995 |
+
"reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a",
|
1996 |
"shasum": ""
|
1997 |
},
|
1998 |
"require": {
|
2004 |
"type": "library",
|
2005 |
"extra": {
|
2006 |
"branch-alias": {
|
2007 |
+
"dev-master": "1.18-dev"
|
2008 |
+
},
|
2009 |
+
"thanks": {
|
2010 |
+
"name": "symfony/polyfill",
|
2011 |
+
"url": "https://github.com/symfony/polyfill"
|
2012 |
}
|
2013 |
},
|
2014 |
"autoload": {
|
2042 |
"portable",
|
2043 |
"shim"
|
2044 |
],
|
2045 |
+
"time": "2020-07-14T12:35:20+00:00"
|
2046 |
},
|
2047 |
{
|
2048 |
"name": "symfony/polyfill-php73",
|
2049 |
+
"version": "v1.18.0",
|
2050 |
"source": {
|
2051 |
"type": "git",
|
2052 |
"url": "https://github.com/symfony/polyfill-php73.git",
|
2053 |
+
"reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca"
|
2054 |
},
|
2055 |
"dist": {
|
2056 |
"type": "zip",
|
2057 |
+
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fffa1a52a023e782cdcc221d781fe1ec8f87fcca",
|
2058 |
+
"reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca",
|
2059 |
"shasum": ""
|
2060 |
},
|
2061 |
"require": {
|
2064 |
"type": "library",
|
2065 |
"extra": {
|
2066 |
"branch-alias": {
|
2067 |
+
"dev-master": "1.18-dev"
|
2068 |
+
},
|
2069 |
+
"thanks": {
|
2070 |
+
"name": "symfony/polyfill",
|
2071 |
+
"url": "https://github.com/symfony/polyfill"
|
2072 |
}
|
2073 |
},
|
2074 |
"autoload": {
|
2104 |
"portable",
|
2105 |
"shim"
|
2106 |
],
|
2107 |
+
"time": "2020-07-14T12:35:20+00:00"
|
2108 |
+
},
|
2109 |
+
{
|
2110 |
+
"name": "symfony/polyfill-php80",
|
2111 |
+
"version": "v1.18.0",
|
2112 |
+
"source": {
|
2113 |
+
"type": "git",
|
2114 |
+
"url": "https://github.com/symfony/polyfill-php80.git",
|
2115 |
+
"reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981"
|
2116 |
+
},
|
2117 |
+
"dist": {
|
2118 |
+
"type": "zip",
|
2119 |
+
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/d87d5766cbf48d72388a9f6b85f280c8ad51f981",
|
2120 |
+
"reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981",
|
2121 |
+
"shasum": ""
|
2122 |
+
},
|
2123 |
+
"require": {
|
2124 |
+
"php": ">=7.0.8"
|
2125 |
+
},
|
2126 |
+
"type": "library",
|
2127 |
+
"extra": {
|
2128 |
+
"branch-alias": {
|
2129 |
+
"dev-master": "1.18-dev"
|
2130 |
+
},
|
2131 |
+
"thanks": {
|
2132 |
+
"name": "symfony/polyfill",
|
2133 |
+
"url": "https://github.com/symfony/polyfill"
|
2134 |
+
}
|
2135 |
+
},
|
2136 |
+
"autoload": {
|
2137 |
+
"psr-4": {
|
2138 |
+
"Symfony\\Polyfill\\Php80\\": ""
|
2139 |
+
},
|
2140 |
+
"files": [
|
2141 |
+
"bootstrap.php"
|
2142 |
+
],
|
2143 |
+
"classmap": [
|
2144 |
+
"Resources/stubs"
|
2145 |
+
]
|
2146 |
+
},
|
2147 |
+
"notification-url": "https://packagist.org/downloads/",
|
2148 |
+
"license": [
|
2149 |
+
"MIT"
|
2150 |
+
],
|
2151 |
+
"authors": [
|
2152 |
+
{
|
2153 |
+
"name": "Ion Bazan",
|
2154 |
+
"email": "ion.bazan@gmail.com"
|
2155 |
+
},
|
2156 |
+
{
|
2157 |
+
"name": "Nicolas Grekas",
|
2158 |
+
"email": "p@tchwork.com"
|
2159 |
+
},
|
2160 |
+
{
|
2161 |
+
"name": "Symfony Community",
|
2162 |
+
"homepage": "https://symfony.com/contributors"
|
2163 |
+
}
|
2164 |
+
],
|
2165 |
+
"description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
|
2166 |
+
"homepage": "https://symfony.com",
|
2167 |
+
"keywords": [
|
2168 |
+
"compatibility",
|
2169 |
+
"polyfill",
|
2170 |
+
"portable",
|
2171 |
+
"shim"
|
2172 |
+
],
|
2173 |
+
"time": "2020-07-14T12:35:20+00:00"
|
2174 |
},
|
2175 |
{
|
2176 |
"name": "symfony/service-contracts",
|
2177 |
+
"version": "v2.1.3",
|
2178 |
"source": {
|
2179 |
"type": "git",
|
2180 |
"url": "https://github.com/symfony/service-contracts.git",
|
2181 |
+
"reference": "58c7475e5457c5492c26cc740cc0ad7464be9442"
|
2182 |
},
|
2183 |
"dist": {
|
2184 |
"type": "zip",
|
2185 |
+
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/58c7475e5457c5492c26cc740cc0ad7464be9442",
|
2186 |
+
"reference": "58c7475e5457c5492c26cc740cc0ad7464be9442",
|
2187 |
"shasum": ""
|
2188 |
},
|
2189 |
"require": {
|
2190 |
+
"php": ">=7.2.5",
|
2191 |
"psr/container": "^1.0"
|
2192 |
},
|
2193 |
"suggest": {
|
2196 |
"type": "library",
|
2197 |
"extra": {
|
2198 |
"branch-alias": {
|
2199 |
+
"dev-master": "2.1-dev"
|
2200 |
+
},
|
2201 |
+
"thanks": {
|
2202 |
+
"name": "symfony/contracts",
|
2203 |
+
"url": "https://github.com/symfony/contracts"
|
2204 |
}
|
2205 |
},
|
2206 |
"autoload": {
|
2232 |
"interoperability",
|
2233 |
"standards"
|
2234 |
],
|
2235 |
+
"time": "2020-07-06T13:23:11+00:00"
|
2236 |
},
|
2237 |
{
|
2238 |
"name": "symfony/yaml",
|
2239 |
+
"version": "v4.4.11",
|
2240 |
"source": {
|
2241 |
"type": "git",
|
2242 |
"url": "https://github.com/symfony/yaml.git",
|
2243 |
+
"reference": "c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a"
|
2244 |
},
|
2245 |
"dist": {
|
2246 |
"type": "zip",
|
2247 |
+
"url": "https://api.github.com/repos/symfony/yaml/zipball/c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a",
|
2248 |
+
"reference": "c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a",
|
2249 |
"shasum": ""
|
2250 |
},
|
2251 |
"require": {
|
2252 |
+
"php": ">=7.1.3",
|
2253 |
"symfony/polyfill-ctype": "~1.8"
|
2254 |
},
|
2255 |
"conflict": {
|
2291 |
],
|
2292 |
"description": "Symfony Yaml Component",
|
2293 |
"homepage": "https://symfony.com",
|
2294 |
+
"time": "2020-05-20T08:37:50+00:00"
|
2295 |
},
|
2296 |
{
|
2297 |
"name": "theseer/tokenizer",
|
2298 |
+
"version": "1.2.0",
|
2299 |
"source": {
|
2300 |
"type": "git",
|
2301 |
"url": "https://github.com/theseer/tokenizer.git",
|
2302 |
+
"reference": "75a63c33a8577608444246075ea0af0d052e452a"
|
2303 |
},
|
2304 |
"dist": {
|
2305 |
"type": "zip",
|
2306 |
+
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a",
|
2307 |
+
"reference": "75a63c33a8577608444246075ea0af0d052e452a",
|
2308 |
"shasum": ""
|
2309 |
},
|
2310 |
"require": {
|
2311 |
"ext-dom": "*",
|
2312 |
"ext-tokenizer": "*",
|
2313 |
"ext-xmlwriter": "*",
|
2314 |
+
"php": "^7.2 || ^8.0"
|
2315 |
},
|
2316 |
"type": "library",
|
2317 |
"autoload": {
|
2331 |
}
|
2332 |
],
|
2333 |
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
|
2334 |
+
"time": "2020-07-12T23:59:07+00:00"
|
2335 |
},
|
2336 |
{
|
2337 |
"name": "webmozart/assert",
|
2338 |
+
"version": "1.9.1",
|
2339 |
"source": {
|
2340 |
"type": "git",
|
2341 |
"url": "https://github.com/webmozart/assert.git",
|
2342 |
+
"reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389"
|
2343 |
},
|
2344 |
"dist": {
|
2345 |
"type": "zip",
|
2346 |
+
"url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",
|
2347 |
+
"reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389",
|
2348 |
"shasum": ""
|
2349 |
},
|
2350 |
"require": {
|
2351 |
+
"php": "^5.3.3 || ^7.0 || ^8.0",
|
2352 |
"symfony/polyfill-ctype": "^1.8"
|
2353 |
},
|
2354 |
"conflict": {
|
2355 |
+
"phpstan/phpstan": "<0.12.20",
|
2356 |
+
"vimeo/psalm": "<3.9.1"
|
2357 |
},
|
2358 |
"require-dev": {
|
2359 |
"phpunit/phpunit": "^4.8.36 || ^7.5.13"
|
2380 |
"check",
|
2381 |
"validate"
|
2382 |
],
|
2383 |
+
"time": "2020-07-08T17:02:28+00:00"
|
2384 |
}
|
2385 |
],
|
2386 |
"aliases": [],
|
core/FacebookPluginConfig.php
CHANGED
@@ -20,7 +20,7 @@ namespace FacebookPixelPlugin\Core;
|
|
20 |
defined('ABSPATH') or die('Direct access not allowed');
|
21 |
|
22 |
class FacebookPluginConfig {
|
23 |
-
const PLUGIN_VERSION = '2.
|
24 |
const SOURCE = 'wordpress';
|
25 |
const TEXT_DOMAIN = 'official-facebook-pixel';
|
26 |
|
@@ -34,7 +34,7 @@ class FacebookPluginConfig {
|
|
34 |
const ADMIN_OPTION_GROUP = 'facebook_option_group';
|
35 |
const ADMIN_PAGE_TITLE = 'Facebook Pixel Settings';
|
36 |
const ADMIN_PRIVACY_URL = 'https://developers.facebook.com/docs/privacy/';
|
37 |
-
const ADMIN_S2S_URL = 'https://developers.facebook.com/docs/marketing-api/
|
38 |
const ADMIN_SECTION_ID = 'facebook_settings_section';
|
39 |
|
40 |
const DEFAULT_PIXEL_ID = null;
|
20 |
defined('ABSPATH') or die('Direct access not allowed');
|
21 |
|
22 |
class FacebookPluginConfig {
|
23 |
+
const PLUGIN_VERSION = '2.2.0';
|
24 |
const SOURCE = 'wordpress';
|
25 |
const TEXT_DOMAIN = 'official-facebook-pixel';
|
26 |
|
34 |
const ADMIN_OPTION_GROUP = 'facebook_option_group';
|
35 |
const ADMIN_PAGE_TITLE = 'Facebook Pixel Settings';
|
36 |
const ADMIN_PRIVACY_URL = 'https://developers.facebook.com/docs/privacy/';
|
37 |
+
const ADMIN_S2S_URL = 'https://developers.facebook.com/docs/marketing-api/conversions-api';
|
38 |
const ADMIN_SECTION_ID = 'facebook_settings_section';
|
39 |
|
40 |
const DEFAULT_PIXEL_ID = null;
|
core/FacebookServerSideEvent.php
CHANGED
@@ -49,6 +49,7 @@ class FacebookServerSideEvent {
|
|
49 |
}
|
50 |
|
51 |
public static function send($events) {
|
|
|
52 |
if (empty($events)) {
|
53 |
return;
|
54 |
}
|
@@ -60,8 +61,8 @@ class FacebookServerSideEvent {
|
|
60 |
$api = Api::init(null, null, $access_token);
|
61 |
|
62 |
$request = (new EventRequest($pixel_id))
|
63 |
-
|
64 |
-
|
65 |
|
66 |
$response = $request->execute();
|
67 |
}
|
49 |
}
|
50 |
|
51 |
public static function send($events) {
|
52 |
+
$events = apply_filters('before_conversions_api_event_sent', $events);
|
53 |
if (empty($events)) {
|
54 |
return;
|
55 |
}
|
61 |
$api = Api::init(null, null, $access_token);
|
62 |
|
63 |
$request = (new EventRequest($pixel_id))
|
64 |
+
->setEvents($events)
|
65 |
+
->setPartnerAgent($agent);
|
66 |
|
67 |
$response = $request->execute();
|
68 |
}
|
core/FacebookWordpressSettingsPage.php
CHANGED
@@ -90,7 +90,7 @@ class FacebookWordpressSettingsPage {
|
|
90 |
FacebookPluginConfig::ADMIN_SECTION_ID);
|
91 |
add_settings_field(
|
92 |
FacebookPluginConfig::USE_S2S_KEY,
|
93 |
-
'Use
|
94 |
array($this, 'useS2SFormField'),
|
95 |
FacebookPluginConfig::ADMIN_MENU_SLUG,
|
96 |
FacebookPluginConfig::ADMIN_SECTION_ID);
|
@@ -210,7 +210,7 @@ class FacebookWordpressSettingsPage {
|
|
210 |
$link = sprintf(
|
211 |
wp_kses(
|
212 |
__(
|
213 |
-
'An access token is required to use the
|
214 |
<a href="%s" target="_blank"> Generate Access Token</a>',
|
215 |
FacebookPluginConfig::TEXT_DOMAIN),
|
216 |
array('a' => array('href' => array(), 'target' => array()))),
|
@@ -238,7 +238,7 @@ class FacebookWordpressSettingsPage {
|
|
238 |
',
|
239 |
esc_html__(
|
240 |
'Also send events directly from your web server to Facebook through the
|
241 |
-
|
242 |
FacebookPluginConfig::TEXT_DOMAIN),
|
243 |
$link);
|
244 |
}
|
@@ -311,7 +311,7 @@ class FacebookWordpressSettingsPage {
|
|
311 |
|
312 |
public function serverSideApiNotEnabledNotice() {
|
313 |
$this->setNotice(
|
314 |
-
__('The Facebook Pixel plugin now includes support for the
|
315 |
API, which lets you send events directly from your page\'s website.
|
316 |
Click <a href="%s">here</a> to configure the plugin.',
|
317 |
FacebookPluginConfig::TEXT_DOMAIN),
|
90 |
FacebookPluginConfig::ADMIN_SECTION_ID);
|
91 |
add_settings_field(
|
92 |
FacebookPluginConfig::USE_S2S_KEY,
|
93 |
+
'Use Conversions API?',
|
94 |
array($this, 'useS2SFormField'),
|
95 |
FacebookPluginConfig::ADMIN_MENU_SLUG,
|
96 |
FacebookPluginConfig::ADMIN_SECTION_ID);
|
210 |
$link = sprintf(
|
211 |
wp_kses(
|
212 |
__(
|
213 |
+
'An access token is required to use the Conversions API.<br>
|
214 |
<a href="%s" target="_blank"> Generate Access Token</a>',
|
215 |
FacebookPluginConfig::TEXT_DOMAIN),
|
216 |
array('a' => array('href' => array(), 'target' => array()))),
|
238 |
',
|
239 |
esc_html__(
|
240 |
'Also send events directly from your web server to Facebook through the
|
241 |
+
Conversions API. This can help you capture more events.',
|
242 |
FacebookPluginConfig::TEXT_DOMAIN),
|
243 |
$link);
|
244 |
}
|
311 |
|
312 |
public function serverSideApiNotEnabledNotice() {
|
313 |
$this->setNotice(
|
314 |
+
__('The Facebook Pixel plugin now includes support for the Conversions
|
315 |
API, which lets you send events directly from your page\'s website.
|
316 |
Click <a href="%s">here</a> to configure the plugin.',
|
317 |
FacebookPluginConfig::TEXT_DOMAIN),
|
core/ServerEventFactory.php
CHANGED
@@ -163,6 +163,26 @@ class ServerEventFactory {
|
|
163 |
if (!empty($data['phone'])) {
|
164 |
$user_data->setPhone($data['phone']);
|
165 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
}
|
167 |
|
168 |
$custom_data = $event->getCustomData();
|
@@ -191,6 +211,10 @@ class ServerEventFactory {
|
|
191 |
if (!empty($data['num_items'])) {
|
192 |
$custom_data->setNumItems($data['num_items']);
|
193 |
}
|
|
|
|
|
|
|
|
|
194 |
} catch (\Exception $e) {
|
195 |
// Need to log
|
196 |
}
|
163 |
if (!empty($data['phone'])) {
|
164 |
$user_data->setPhone($data['phone']);
|
165 |
}
|
166 |
+
|
167 |
+
if(!empty($data['state'])){
|
168 |
+
$user_data->setState($data['state']);
|
169 |
+
}
|
170 |
+
|
171 |
+
if(!empty($data['country'])){
|
172 |
+
$user_data->setCountryCode($data['country']);
|
173 |
+
}
|
174 |
+
|
175 |
+
if(!empty($data['city'])){
|
176 |
+
$user_data->setCity($data['city']);
|
177 |
+
}
|
178 |
+
|
179 |
+
if(!empty($data['zip'])){
|
180 |
+
$user_data->setZipCode($data['zip']);
|
181 |
+
}
|
182 |
+
|
183 |
+
if(!empty($data['gender'])){
|
184 |
+
$user_data->setGender($data['gender']);
|
185 |
+
}
|
186 |
}
|
187 |
|
188 |
$custom_data = $event->getCustomData();
|
211 |
if (!empty($data['num_items'])) {
|
212 |
$custom_data->setNumItems($data['num_items']);
|
213 |
}
|
214 |
+
|
215 |
+
if (!empty($data['content_name'])) {
|
216 |
+
$custom_data->setContentName($data['content_name']);
|
217 |
+
}
|
218 |
} catch (\Exception $e) {
|
219 |
// Need to log
|
220 |
}
|
facebook-for-wordpress.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: <strong><em>***ATTENTION: After upgrade the plugin may be deactivated due to a known issue, to workaround please refresh this page and activate plugin.***</em></strong> The Facebook pixel is an analytics tool that helps you measure the effectiveness of your advertising. You can use the Facebook pixel to understand the actions people are taking on your website and reach audiences you care about.
|
6 |
* Author: Facebook
|
7 |
* Author URI: https://www.facebook.com/
|
8 |
-
* Version: 2.
|
9 |
* Text Domain: official-facebook-pixel
|
10 |
*/
|
11 |
|
5 |
* Description: <strong><em>***ATTENTION: After upgrade the plugin may be deactivated due to a known issue, to workaround please refresh this page and activate plugin.***</em></strong> The Facebook pixel is an analytics tool that helps you measure the effectiveness of your advertising. You can use the Facebook pixel to understand the actions people are taking on your website and reach audiences you care about.
|
6 |
* Author: Facebook
|
7 |
* Author URI: https://www.facebook.com/
|
8 |
+
* Version: 2.2.0
|
9 |
* Text Domain: official-facebook-pixel
|
10 |
*/
|
11 |
|
integration/FacebookWordpressCalderaForm.php
CHANGED
@@ -57,8 +57,8 @@ class FacebookWordpressCalderaForm extends FacebookWordpressIntegrationBase {
|
|
57 |
<!-- Facebook Pixel Event Code -->
|
58 |
%s
|
59 |
<!-- End Facebook Pixel Event Code -->
|
60 |
-
|
61 |
-
|
62 |
|
63 |
$out['html'] .= $code;
|
64 |
return $out;
|
@@ -68,12 +68,12 @@ class FacebookWordpressCalderaForm extends FacebookWordpressIntegrationBase {
|
|
68 |
if (empty($form)) {
|
69 |
return array();
|
70 |
}
|
71 |
-
|
72 |
return array(
|
73 |
'email' => self::getEmail($form),
|
74 |
'first_name' => self::getFirstName($form),
|
75 |
'last_name' => self::getLastName($form),
|
76 |
-
'phone' => self::getPhone($form)
|
|
|
77 |
);
|
78 |
}
|
79 |
|
@@ -89,6 +89,10 @@ class FacebookWordpressCalderaForm extends FacebookWordpressIntegrationBase {
|
|
89 |
return self::getFieldValue($form, 'slug', 'last_name');
|
90 |
}
|
91 |
|
|
|
|
|
|
|
|
|
92 |
private static function getPhone($form) {
|
93 |
// Extract phone number from the better version first, fallback to the basic
|
94 |
// version if it's null
|
57 |
<!-- Facebook Pixel Event Code -->
|
58 |
%s
|
59 |
<!-- End Facebook Pixel Event Code -->
|
60 |
+
",
|
61 |
+
$code);
|
62 |
|
63 |
$out['html'] .= $code;
|
64 |
return $out;
|
68 |
if (empty($form)) {
|
69 |
return array();
|
70 |
}
|
|
|
71 |
return array(
|
72 |
'email' => self::getEmail($form),
|
73 |
'first_name' => self::getFirstName($form),
|
74 |
'last_name' => self::getLastName($form),
|
75 |
+
'phone' => self::getPhone($form),
|
76 |
+
'state' => self::getState($form)
|
77 |
);
|
78 |
}
|
79 |
|
89 |
return self::getFieldValue($form, 'slug', 'last_name');
|
90 |
}
|
91 |
|
92 |
+
private static function getState($form){
|
93 |
+
return self::getFieldValue($form, 'type', 'states');
|
94 |
+
}
|
95 |
+
|
96 |
private static function getPhone($form) {
|
97 |
// Extract phone number from the better version first, fallback to the basic
|
98 |
// version if it's null
|
integration/FacebookWordpressEasyDigitalDownloads.php
CHANGED
@@ -24,6 +24,8 @@ use FacebookPixelPlugin\Core\FacebookPluginUtils;
|
|
24 |
use FacebookPixelPlugin\Core\ServerEventFactory;
|
25 |
use FacebookPixelPlugin\Core\FacebookServerSideEvent;
|
26 |
use FacebookPixelPlugin\Core\PixelRenderer;
|
|
|
|
|
27 |
|
28 |
class FacebookWordpressEasyDigitalDownloads extends FacebookWordpressIntegrationBase {
|
29 |
const PLUGIN_FILE = 'easy-digital-downloads/easy-digital-downloads.php';
|
@@ -40,6 +42,7 @@ jQuery(document).ready(function ($) {
|
|
40 |
var form = _this.parents('form').last();
|
41 |
var value = 0;
|
42 |
var variable_price = _this.data('variable-price');
|
|
|
43 |
if( variable_price == 'yes' ) {
|
44 |
form.find('.edd_price_option_' + download + ':checked', form).each(function(index) {
|
45 |
value = $(this).data('price');
|
@@ -57,17 +60,46 @@ jQuery(document).ready(function ($) {
|
|
57 |
'%s': '%s',
|
58 |
'value': value
|
59 |
};
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
});
|
62 |
});
|
63 |
";
|
64 |
|
65 |
public static function injectPixelCode() {
|
66 |
-
// AddToCart
|
67 |
-
|
68 |
-
'
|
69 |
-
'
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
|
72 |
// InitiateCheckout
|
73 |
self::addPixelFireForHook(array(
|
@@ -82,23 +114,59 @@ jQuery(document).ready(function ($) {
|
|
82 |
10, 2);
|
83 |
|
84 |
// ViewContent
|
85 |
-
|
86 |
-
'
|
87 |
-
'
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
}
|
90 |
|
91 |
-
public static function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
if (FacebookPluginUtils::isAdmin()) {
|
93 |
return;
|
94 |
}
|
95 |
|
96 |
-
$pixel_code = FacebookPixel::getPixelAddToCartCode('param', self::TRACKING_NAME, false);
|
97 |
$listener_code = sprintf(
|
98 |
self::$addToCartJS,
|
99 |
FacebookPixel::FB_INTEGRATION_TRACKING_KEY,
|
100 |
-
self::TRACKING_NAME
|
101 |
-
|
102 |
|
103 |
printf("
|
104 |
<!-- Facebook Pixel Event Code -->
|
@@ -169,25 +237,16 @@ jQuery(document).ready(function ($) {
|
|
169 |
return;
|
170 |
}
|
171 |
|
172 |
-
$
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
} else {
|
178 |
-
$value = get_post_meta($download_id, 'edd_price', true);
|
179 |
-
}
|
180 |
-
if (!$value) {
|
181 |
-
$value = 0;
|
182 |
-
}
|
183 |
-
$param = array(
|
184 |
-
'content_ids' => array($download_id),
|
185 |
-
'content_type' => 'product',
|
186 |
-
'currency' => $currency,
|
187 |
-
'value' => $value,
|
188 |
);
|
189 |
-
$code = FacebookPixel::getPixelViewContentCode($param, self::TRACKING_NAME);
|
190 |
|
|
|
|
|
|
|
191 |
printf("
|
192 |
<!-- Facebook Pixel Event Code -->
|
193 |
%s
|
@@ -230,4 +289,51 @@ jQuery(document).ready(function ($) {
|
|
230 |
|
231 |
return $event_data;
|
232 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
}
|
24 |
use FacebookPixelPlugin\Core\ServerEventFactory;
|
25 |
use FacebookPixelPlugin\Core\FacebookServerSideEvent;
|
26 |
use FacebookPixelPlugin\Core\PixelRenderer;
|
27 |
+
use FacebookPixelPlugin\Core\FacebookWordpressOptions;
|
28 |
+
use FacebookPixelPlugin\Core\EventIdGenerator;
|
29 |
|
30 |
class FacebookWordpressEasyDigitalDownloads extends FacebookWordpressIntegrationBase {
|
31 |
const PLUGIN_FILE = 'easy-digital-downloads/easy-digital-downloads.php';
|
42 |
var form = _this.parents('form').last();
|
43 |
var value = 0;
|
44 |
var variable_price = _this.data('variable-price');
|
45 |
+
var event_id = form.find(\"input[name='facebook_event_id']\").val();
|
46 |
if( variable_price == 'yes' ) {
|
47 |
form.find('.edd_price_option_' + download + ':checked', form).each(function(index) {
|
48 |
value = $(this).data('price');
|
60 |
'%s': '%s',
|
61 |
'value': value
|
62 |
};
|
63 |
+
|
64 |
+
if(event_id){
|
65 |
+
fbq('track', 'AddToCart', param, {'eventID': event_id});
|
66 |
+
}
|
67 |
+
else{
|
68 |
+
fbq('track', 'AddToCart', param);
|
69 |
+
}
|
70 |
});
|
71 |
});
|
72 |
";
|
73 |
|
74 |
public static function injectPixelCode() {
|
75 |
+
// AddToCart JS listener
|
76 |
+
add_action(
|
77 |
+
'edd_after_download_content',
|
78 |
+
array(__CLASS__, 'injectAddToCartListener')
|
79 |
+
);
|
80 |
+
add_action(
|
81 |
+
'edd_downloads_list_after',
|
82 |
+
array(__CLASS__, 'injectAddToCartListener')
|
83 |
+
);
|
84 |
+
|
85 |
+
//Hooks to AddToCart ajax requests
|
86 |
+
add_action(
|
87 |
+
'wp_ajax_edd_add_to_cart',
|
88 |
+
array(__CLASS__, 'injectAddToCartEventAjax'),
|
89 |
+
5
|
90 |
+
);
|
91 |
+
|
92 |
+
add_action(
|
93 |
+
'wp_ajax_nopriv_edd_add_to_cart',
|
94 |
+
array(__CLASS__, 'injectAddToCartEventAjax'),
|
95 |
+
5
|
96 |
+
);
|
97 |
+
|
98 |
+
//Injects a hidden field with event id to send it in AddToCart ajax request
|
99 |
+
add_action(
|
100 |
+
'edd_purchase_link_top',
|
101 |
+
array(__CLASS__, 'injectAddToCartEventId')
|
102 |
+
);
|
103 |
|
104 |
// InitiateCheckout
|
105 |
self::addPixelFireForHook(array(
|
114 |
10, 2);
|
115 |
|
116 |
// ViewContent
|
117 |
+
add_action(
|
118 |
+
'edd_after_download_content',
|
119 |
+
array(__CLASS__, 'injectViewContentEvent'),
|
120 |
+
40, 1
|
121 |
+
);
|
122 |
+
}
|
123 |
+
|
124 |
+
public static function injectAddToCartEventId(){
|
125 |
+
if(FacebookPluginUtils::isAdmin()
|
126 |
+
|| !FacebookWordpressOptions::getUseS2S()){
|
127 |
+
return;
|
128 |
+
}
|
129 |
+
$eventId = EventIdGenerator::guidv4();
|
130 |
+
printf("<input type=\"hidden\" name=\"facebook_event_id\" value=\"%s\">",
|
131 |
+
$eventId);
|
132 |
}
|
133 |
|
134 |
+
public static function injectAddToCartEventAjax(){
|
135 |
+
if( isset($_POST['nonce']) && isset($_POST['download_id'])
|
136 |
+
&& isset($_POST['post_data'])){
|
137 |
+
$download_id = absint( $_POST['download_id'] );
|
138 |
+
//Adding form validations
|
139 |
+
$nonce = sanitize_text_field( $_POST['nonce'] );
|
140 |
+
if( wp_verify_nonce($nonce, 'edd-add-to-cart-'.$download_id) === false ){
|
141 |
+
return;
|
142 |
+
}
|
143 |
+
//Getting form data
|
144 |
+
parse_str( $_POST['post_data'], $post_data );
|
145 |
+
if(isset($post_data['facebook_event_id'])){
|
146 |
+
//Starting CAPI event creation
|
147 |
+
$event_id = $post_data['facebook_event_id'];
|
148 |
+
$server_event = ServerEventFactory::safeCreateEvent(
|
149 |
+
'AddToCart',
|
150 |
+
array(__CLASS__, 'createAddToCartEvent'),
|
151 |
+
array($download_id),
|
152 |
+
self::TRACKING_NAME
|
153 |
+
);
|
154 |
+
$server_event->setEventId($event_id);
|
155 |
+
FacebookServerSideEvent::getInstance()->track($server_event);
|
156 |
+
}
|
157 |
+
}
|
158 |
+
}
|
159 |
+
|
160 |
+
public static function injectAddToCartListener($download_id) {
|
161 |
if (FacebookPluginUtils::isAdmin()) {
|
162 |
return;
|
163 |
}
|
164 |
|
|
|
165 |
$listener_code = sprintf(
|
166 |
self::$addToCartJS,
|
167 |
FacebookPixel::FB_INTEGRATION_TRACKING_KEY,
|
168 |
+
self::TRACKING_NAME
|
169 |
+
);
|
170 |
|
171 |
printf("
|
172 |
<!-- Facebook Pixel Event Code -->
|
237 |
return;
|
238 |
}
|
239 |
|
240 |
+
$server_event = ServerEventFactory::safeCreateEvent(
|
241 |
+
'ViewContent',
|
242 |
+
array(__CLASS__, 'createViewContentEvent'),
|
243 |
+
array($download_id),
|
244 |
+
self::TRACKING_NAME
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
);
|
|
|
246 |
|
247 |
+
FacebookServerSideEvent::getInstance()->track($server_event);
|
248 |
+
|
249 |
+
$code = PixelRenderer::render(array($server_event), self::TRACKING_NAME);
|
250 |
printf("
|
251 |
<!-- Facebook Pixel Event Code -->
|
252 |
%s
|
289 |
|
290 |
return $event_data;
|
291 |
}
|
292 |
+
|
293 |
+
public static function createViewContentEvent($download_id){
|
294 |
+
$event_data = FacebookPluginUtils::getLoggedInUserInfo();
|
295 |
+
$currency = EDDUtils::getCurrency();
|
296 |
+
$download = edd_get_download($download_id);
|
297 |
+
$title = $download ? $download->post_title : '';
|
298 |
+
|
299 |
+
if (get_post_meta($download_id, '_variable_pricing', true)) {
|
300 |
+
$prices = get_post_meta($download_id, 'edd_variable_prices', true);
|
301 |
+
$price = array_shift($prices);
|
302 |
+
$value = $price['amount'];
|
303 |
+
} else {
|
304 |
+
$value = get_post_meta($download_id, 'edd_price', true);
|
305 |
+
}
|
306 |
+
if (!$value) {
|
307 |
+
$value = 0;
|
308 |
+
}
|
309 |
+
$event_data['content_ids'] = [(string)$download_id];
|
310 |
+
$event_data['content_type'] = 'product';
|
311 |
+
$event_data['currency'] = $currency;
|
312 |
+
$event_data['value'] = floatval($value);
|
313 |
+
$event_data['content_name'] = $title;
|
314 |
+
return $event_data;
|
315 |
+
}
|
316 |
+
|
317 |
+
public static function createAddToCartEvent($download_id){
|
318 |
+
$event_data = FacebookPluginUtils::getLoggedInUserInfo();
|
319 |
+
$currency = EDDUtils::getCurrency();
|
320 |
+
$download = edd_get_download($download_id);
|
321 |
+
$title = $download ? $download->post_title : '';
|
322 |
+
if ( get_post_meta($download_id, '_variable_pricing', true) ) {
|
323 |
+
$prices = get_post_meta($download_id, 'edd_variable_prices', true);
|
324 |
+
$price = array_shift($prices);
|
325 |
+
$value = $price['amount'];
|
326 |
+
} else {
|
327 |
+
$value = get_post_meta($download_id, 'edd_price', true);
|
328 |
+
}
|
329 |
+
if (!$value) {
|
330 |
+
$value = 0;
|
331 |
+
}
|
332 |
+
$event_data['content_ids'] = [(string)$download_id];
|
333 |
+
$event_data['content_type'] = 'product';
|
334 |
+
$event_data['currency'] = $currency;
|
335 |
+
$event_data['value'] = $value;
|
336 |
+
$event_data['content_name'] = $title;
|
337 |
+
return $event_data;
|
338 |
+
}
|
339 |
}
|
integration/FacebookWordpressFormidableForm.php
CHANGED
@@ -88,25 +88,21 @@ class FacebookWordpressFormidableForm extends FacebookWordpressIntegrationBase {
|
|
88 |
|
89 |
$field_values = $entry_values->get_field_values();
|
90 |
if (!empty($field_values)) {
|
91 |
-
|
92 |
'email' => self::getEmail($field_values),
|
93 |
'first_name' => self::getFirstName($field_values),
|
94 |
-
'last_name' => self::getLastName($field_values)
|
|
|
95 |
);
|
|
|
|
|
96 |
}
|
97 |
|
98 |
return array();
|
99 |
}
|
100 |
|
101 |
private static function getEmail($field_values) {
|
102 |
-
|
103 |
-
$field = $field_value->get_field();
|
104 |
-
if ($field->type == 'email') {
|
105 |
-
return $field_value->get_saved_value();
|
106 |
-
}
|
107 |
-
}
|
108 |
-
|
109 |
-
return null;
|
110 |
}
|
111 |
|
112 |
private static function getFirstName($field_values) {
|
@@ -117,6 +113,46 @@ class FacebookWordpressFormidableForm extends FacebookWordpressIntegrationBase {
|
|
117 |
return self::getFieldValue($field_values, 'text', 'Last', 'Last');
|
118 |
}
|
119 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
private static function getFieldValue(
|
121 |
$field_values,
|
122 |
$type,
|
88 |
|
89 |
$field_values = $entry_values->get_field_values();
|
90 |
if (!empty($field_values)) {
|
91 |
+
$user_data = array(
|
92 |
'email' => self::getEmail($field_values),
|
93 |
'first_name' => self::getFirstName($field_values),
|
94 |
+
'last_name' => self::getLastName($field_values),
|
95 |
+
'phone' => self::getPhone($field_values)
|
96 |
);
|
97 |
+
$address_data = self::getAddressInformation($field_values);
|
98 |
+
return array_merge($user_data, $address_data);
|
99 |
}
|
100 |
|
101 |
return array();
|
102 |
}
|
103 |
|
104 |
private static function getEmail($field_values) {
|
105 |
+
return self::getFieldValueByType($field_values, 'email');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
}
|
107 |
|
108 |
private static function getFirstName($field_values) {
|
113 |
return self::getFieldValue($field_values, 'text', 'Last', 'Last');
|
114 |
}
|
115 |
|
116 |
+
private static function getPhone($field_values) {
|
117 |
+
return self::getFieldValueByType($field_values, 'phone');
|
118 |
+
}
|
119 |
+
|
120 |
+
private static function getAddressInformation($field_values){
|
121 |
+
$address_saved_value = self::getFieldValueByType($field_values, 'address');
|
122 |
+
$address_data = array();
|
123 |
+
if($address_saved_value){
|
124 |
+
if(array_key_exists('city', $address_saved_value)){
|
125 |
+
$address_data['city'] = $address_saved_value['city'];
|
126 |
+
}
|
127 |
+
if(array_key_exists('state', $address_saved_value)){
|
128 |
+
$address_data['state'] = $address_saved_value['state'];
|
129 |
+
}
|
130 |
+
// Validating ISO code
|
131 |
+
// In current version, country field saves the full name
|
132 |
+
if(
|
133 |
+
array_key_exists('country', $address_saved_value)
|
134 |
+
&& strlen($address_saved_value['country']) == 2
|
135 |
+
){
|
136 |
+
$address_data['country'] = $address_saved_value['country'];
|
137 |
+
}
|
138 |
+
if(array_key_exists('zip', $address_saved_value)){
|
139 |
+
$address_data['zip'] = $address_saved_value['zip'];
|
140 |
+
}
|
141 |
+
}
|
142 |
+
return $address_data;
|
143 |
+
}
|
144 |
+
|
145 |
+
private static function getFieldValueByType($field_values, $type){
|
146 |
+
foreach ($field_values as $field_value) {
|
147 |
+
$field = $field_value->get_field();
|
148 |
+
if ($field->type == $type) {
|
149 |
+
return $field_value->get_saved_value();
|
150 |
+
}
|
151 |
+
}
|
152 |
+
|
153 |
+
return null;
|
154 |
+
}
|
155 |
+
|
156 |
private static function getFieldValue(
|
157 |
$field_values,
|
158 |
$type,
|
integration/FacebookWordpressGravityForms.php
CHANGED
@@ -84,21 +84,70 @@ class FacebookWordpressGravityForms extends FacebookWordpressIntegrationBase {
|
|
84 |
if (empty($form) || empty($entry)) {
|
85 |
return array();
|
86 |
}
|
87 |
-
|
88 |
-
return array(
|
89 |
'email' => self::getEmail($form, $entry),
|
90 |
'first_name' => self::getFirstName($form, $entry),
|
91 |
-
'last_name' => self::getLastName($form, $entry)
|
|
|
92 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
}
|
94 |
|
95 |
private static function getEmail($form, $entry) {
|
|
|
|
|
|
|
|
|
96 |
if (empty($form['fields'])) {
|
97 |
return null;
|
98 |
}
|
99 |
|
100 |
foreach ($form['fields'] as $field) {
|
101 |
-
if ($field->type ==
|
102 |
return $entry[$field->id];
|
103 |
}
|
104 |
}
|
84 |
if (empty($form) || empty($entry)) {
|
85 |
return array();
|
86 |
}
|
87 |
+
$user_data = array(
|
|
|
88 |
'email' => self::getEmail($form, $entry),
|
89 |
'first_name' => self::getFirstName($form, $entry),
|
90 |
+
'last_name' => self::getLastName($form, $entry),
|
91 |
+
'phone' => self::getPhone($form, $entry)
|
92 |
);
|
93 |
+
$address_data = self::getAddressData($form, $entry);
|
94 |
+
return array_merge($user_data, $address_data);
|
95 |
+
}
|
96 |
+
|
97 |
+
private static function getAddressData($form, $entry){
|
98 |
+
if (empty($form['fields'])) {
|
99 |
+
return array();
|
100 |
+
}
|
101 |
+
|
102 |
+
$address_data = array();
|
103 |
+
|
104 |
+
foreach ($form['fields'] as $field) {
|
105 |
+
if ($field->type == 'address') {
|
106 |
+
if($field->inputs){
|
107 |
+
foreach($field->inputs as $input){
|
108 |
+
if(
|
109 |
+
array_key_exists('label', $input)
|
110 |
+
&& $input['label'] != null
|
111 |
+
){
|
112 |
+
if($input['label'] == 'City'){
|
113 |
+
$address_data['city'] = $entry[$input['id']];
|
114 |
+
}
|
115 |
+
else if($input['label'] == 'State / Province'){
|
116 |
+
$address_data['state'] = $entry[$input['id']];
|
117 |
+
}
|
118 |
+
else if($input['label'] == 'ZIP / Postal Code'){
|
119 |
+
$address_data['zip'] = $entry[$input['id']];
|
120 |
+
}
|
121 |
+
else if($input['label'] == 'Country'){
|
122 |
+
if(strlen($entry[$input['id']]) == 2){
|
123 |
+
$address_data['country'] = $entry[$input['id']];
|
124 |
+
}
|
125 |
+
}
|
126 |
+
}
|
127 |
+
}
|
128 |
+
}
|
129 |
+
break;
|
130 |
+
}
|
131 |
+
}
|
132 |
+
|
133 |
+
return $address_data;
|
134 |
+
}
|
135 |
+
|
136 |
+
private static function getPhone($form, $entry) {
|
137 |
+
return self::getFieldByType($form, $entry, 'phone');
|
138 |
}
|
139 |
|
140 |
private static function getEmail($form, $entry) {
|
141 |
+
return self::getFieldByType($form, $entry, 'email');
|
142 |
+
}
|
143 |
+
|
144 |
+
private static function getFieldByType($form, $entry, $type){
|
145 |
if (empty($form['fields'])) {
|
146 |
return null;
|
147 |
}
|
148 |
|
149 |
foreach ($form['fields'] as $field) {
|
150 |
+
if ($field->type == $type) {
|
151 |
return $entry[$field->id];
|
152 |
}
|
153 |
}
|
integration/FacebookWordpressMailchimpForWp.php
CHANGED
@@ -73,6 +73,35 @@ class FacebookWordpressMailchimpForWp extends FacebookWordpressIntegrationBase {
|
|
73 |
$event_data['last_name'] = $_POST['LNAME'];
|
74 |
}
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
return $event_data;
|
77 |
}
|
78 |
}
|
73 |
$event_data['last_name'] = $_POST['LNAME'];
|
74 |
}
|
75 |
|
76 |
+
if(!empty($_POST['PHONE'])){
|
77 |
+
$event_data['phone'] = $_POST['PHONE'];
|
78 |
+
}
|
79 |
+
|
80 |
+
if(!empty($_POST['ADDRESS'])){
|
81 |
+
$address_data = $_POST['ADDRESS'];
|
82 |
+
|
83 |
+
if(!empty($address_data['city'])){
|
84 |
+
$event_data['city'] = $address_data['city'];
|
85 |
+
}
|
86 |
+
|
87 |
+
if(!empty($address_data['state'])){
|
88 |
+
$event_data['state'] = $address_data['state'];
|
89 |
+
}
|
90 |
+
|
91 |
+
if(!empty($address_data['zip'])){
|
92 |
+
$event_data['zip'] = $address_data['zip'];
|
93 |
+
}
|
94 |
+
|
95 |
+
// You can edit the country field in the plugin editor
|
96 |
+
// and do not use ISO code
|
97 |
+
// Validating this case
|
98 |
+
if(
|
99 |
+
!empty($address_data['country'])
|
100 |
+
&& strlen($address_data['country'])==2
|
101 |
+
){
|
102 |
+
$event_data['country'] = $address_data['country'];
|
103 |
+
}
|
104 |
+
}
|
105 |
return $event_data;
|
106 |
}
|
107 |
}
|
integration/FacebookWordpressNinjaForms.php
CHANGED
@@ -85,12 +85,25 @@ class FacebookWordpressNinjaForms extends FacebookWordpressIntegrationBase {
|
|
85 |
return array();
|
86 |
}
|
87 |
|
|
|
88 |
$name = self::getName($form_data);
|
89 |
-
|
90 |
-
'
|
91 |
-
'
|
92 |
-
|
93 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
}
|
95 |
|
96 |
private static function getEmail($form_data) {
|
@@ -98,7 +111,48 @@ class FacebookWordpressNinjaForms extends FacebookWordpressIntegrationBase {
|
|
98 |
}
|
99 |
|
100 |
private static function getName($form_data) {
|
101 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
}
|
103 |
|
104 |
private static function getField($form_data, $key) {
|
@@ -107,7 +161,7 @@ class FacebookWordpressNinjaForms extends FacebookWordpressIntegrationBase {
|
|
107 |
}
|
108 |
|
109 |
foreach ($form_data['fields'] as $field) {
|
110 |
-
if ($field['key']
|
111 |
return $field['value'];
|
112 |
}
|
113 |
}
|
85 |
return array();
|
86 |
}
|
87 |
|
88 |
+
$event_data = array();
|
89 |
$name = self::getName($form_data);
|
90 |
+
if( $name ){
|
91 |
+
$event_data['first_name'] = $name[0];
|
92 |
+
$event_data['last_name'] = $name[1];
|
93 |
+
}
|
94 |
+
else{
|
95 |
+
$event_data['first_name'] = self::getFirstName($form_data);
|
96 |
+
$event_data['last_name'] = self::getLastName($form_data);
|
97 |
+
}
|
98 |
+
$event_data['email'] = self::getEmail($form_data);
|
99 |
+
$event_data['phone'] = self::getPhone($form_data);
|
100 |
+
$event_data['city'] = self::getCity($form_data);
|
101 |
+
$event_data['zip'] = self::getZipCode($form_data);
|
102 |
+
$event_data['state'] = self::getState($form_data);
|
103 |
+
$event_data['country'] = self::getCountry($form_data);
|
104 |
+
$event_data['gender'] = self::getGender($form_data);
|
105 |
+
|
106 |
+
return $event_data;
|
107 |
}
|
108 |
|
109 |
private static function getEmail($form_data) {
|
111 |
}
|
112 |
|
113 |
private static function getName($form_data) {
|
114 |
+
$name = self::getField($form_data, 'name');
|
115 |
+
if($name){
|
116 |
+
return ServerEventFactory::splitName($name);
|
117 |
+
}
|
118 |
+
return null;
|
119 |
+
}
|
120 |
+
|
121 |
+
private static function getFirstName($form_data){
|
122 |
+
return self::getField($form_data, 'firstname');
|
123 |
+
}
|
124 |
+
|
125 |
+
private static function getLastName($form_data){
|
126 |
+
return self::getField($form_data, 'lastname');
|
127 |
+
}
|
128 |
+
|
129 |
+
private static function getPhone($form_data) {
|
130 |
+
return self::getField($form_data, 'phone');
|
131 |
+
}
|
132 |
+
|
133 |
+
private static function getCity($form_data) {
|
134 |
+
return self::getField($form_data, 'city');
|
135 |
+
}
|
136 |
+
|
137 |
+
private static function getZipCode($form_data) {
|
138 |
+
return self::getField($form_data, 'zip');
|
139 |
+
}
|
140 |
+
|
141 |
+
private static function getState($form_data) {
|
142 |
+
return self::getField($form_data, 'liststate');
|
143 |
+
}
|
144 |
+
|
145 |
+
private static function getCountry($form_data) {
|
146 |
+
return self::getField($form_data, 'listcountry');
|
147 |
+
}
|
148 |
+
|
149 |
+
private static function getGender($form_data) {
|
150 |
+
return self::getField($form_data, 'gender');
|
151 |
+
}
|
152 |
+
|
153 |
+
private static function hasPrefix($string, $prefix){
|
154 |
+
$len = strlen($prefix);
|
155 |
+
return substr($string, 0, $len) === $prefix;
|
156 |
}
|
157 |
|
158 |
private static function getField($form_data, $key) {
|
161 |
}
|
162 |
|
163 |
foreach ($form_data['fields'] as $field) {
|
164 |
+
if ( self::hasPrefix( $field['key'], $key) ) {
|
165 |
return $field['value'];
|
166 |
}
|
167 |
}
|
integration/FacebookWordpressWPForms.php
CHANGED
@@ -85,17 +85,59 @@ class FacebookWordpressWPForms extends FacebookWordpressIntegrationBase {
|
|
85 |
|
86 |
$name = self::getName($entry, $form_data);
|
87 |
|
88 |
-
|
89 |
'email' => self::getEmail($entry, $form_data),
|
90 |
'first_name' => !empty($name) ? $name[0] : null,
|
91 |
-
'last_name' => !empty($name) ? $name[1] : null
|
|
|
92 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
}
|
94 |
|
95 |
private static function getEmail($entry, $form_data) {
|
96 |
return self::getField($entry, $form_data, 'email');
|
97 |
}
|
98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|