Repository navigation
Remove the FBE plugin version heartbeat - #4058
Open
jczhuoMeta wants to merge 1 commit into
Open
jczhuoMeta wants to merge 1 commit into
jczhuoMeta wants to merge 1 commit into
Conversation
Contributor
📦 Latest Plugin BuildBuilt at: 2026-11-05T10:26:01Z Download: Click here to download the plugin To download: Click the link above → Scroll to bottom → Download "facebook-for-woocommerce" artifact |
jczhuoMeta
marked this pull request as draft
September 22, 2026 18:18
jczhuoMeta
force-pushed
the
cleanup/remove-deprecated-version-metadata
branch
from
September 30, 2026 17:58
d56d10e to
2738f3e
Compare
jczhuoMeta
force-pushed
the
cleanup/remove-deprecated-version-metadata
branch
from
September 30, 2026 20:03
35a7f53 to
e5071c2
Compare
Open
10 tasks done
jczhuoMeta
force-pushed
the
cleanup/remove-deprecated-version-metadata
branch
from
October 13, 2026 19:37
e5071c2 to
7629cbe
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #4058 +/- ##
=======================================
Coverage ? 11.14%
Complexity ? 6118
=======================================
Files ? 233
Lines ? 20730
Branches ? 0
=======================================
Hits ? 2310
Misses ? 18420
Partials ? 0
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
jczhuoMeta
marked this pull request as ready for review
October 13, 2026 22:29
|
@jczhuoMeta has imported this pull request. If you are a Meta employee, you can view this in D125258319. |
The daily heartbeat wrote version_id, is_multisite and is_woo_all_products_opted_out to the FBE business configuration. Meta reads the plugin version from the Commerce Partner Integration, which the plugin already updates with extension_version on finalize-install, on repair, and in the daily configuration push, so the FBE write is removed along with its request/response classes and tests. Stores keep the orphaned latest-version option row, so it joins DEPRECATED_OPTIONS and is cleared on disconnect like the other retired options. What remains of the class only holds the hourly plugin configuration telemetry, the plugin_updates flow of commerce_seller_logs. It moves to Utilities\PluginConfigTelemetry so the name says what it does, and reads the master-sync opt-out option through PluginRender instead of a duplicate constant. Telemetry behavior is unchanged: same hook, throttle, payload, option and transient names. A new unit test covers the telemetry, including the language feed stats transient that LanguageOverrideFeed writes through the moved constant.
vahidkay-meta
force-pushed
the
cleanup/remove-deprecated-version-metadata
branch
from
November 5, 2026 10:25
7629cbe to
14911b2
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The daily FBE heartbeat (
Update::send_new_version_to_facebook_server()) writesversion_id,is_multisiteandis_woo_all_products_opted_outto the FBE business configuration. Meta reads the plugin version from the Commerce Partner Integration (CPI), so this removes the FBE write entirely.The plugin already sends the version to the CPI as
extension_version:POST /{commerce_partner_integration_id}fromConnection::refresh_installation_data()finalize-installcommerce_partner_integrations_repairRemoved
Update::send_new_version_to_facebook_server()and itsHeartbeat::DAILYhookUpdate::LATEST_VERSION_SENTAPI::update_plugin_version_configuration()API\FBE\Configuration\Update\RequestandAPI\FBE\Configuration\Update\ResponseRenamed, behavior unchanged
ExternalVersionUpdate\Updateis only the hourly plugin configuration telemetry: theplugin_updatesflow logged tocommerce_seller_logsevery 3 hours.Utilities\PluginConfigTelemetry, so the name describes what it does.PluginRender::MASTER_SYNC_OPT_OUT_TIMEinstead of a duplicate constant.Unchanged: the FBE configuration read (
API\FBE\Configuration\Request) used by the legacy management URL.Stored data: stores keep the orphaned
facebook_for_woocommerce_latest_version_sent_to_serverrow. It joinsDEPRECATED_OPTIONS, so disconnecting clears it, and the version-gated cleanup removes it later with the other retired options. The e2e reset test's copy of that list is updated to match.Compatibility
The following public symbols are removed without a deprecation cycle, as in #4001. No first-party caller remains.
API::update_plugin_version_configuration()Update::LATEST_VERSION_SENTExternalVersionUpdate\Updatemoves toUtilities\PluginConfigTelemetry. ItsTRANSIENT_LANGUAGE_FEED_STATS*andCOLLECTIONPAGE_COMPAT_OPTIONconstants move with it. ItsMASTER_SYNC_OPT_OUT_TIMEis dropped in favor ofPluginRender::MASTER_SYNC_OPT_OUT_TIME.Connected stores with no stored CPI ID stop reporting a plugin version to the integration, because the daily CPI push needs one. They still report
seller_platform_app_versionin the hourly telemetry.Dependency
None remaining. Meta's server-side readers now take the plugin version from the CPI first, and that change is deployed. The FBE
version_idfallback only serves older plugin versions, which keep writing it.This PR is independent of #4070. Both add to
tests/e2e/plugin-level-tests.spec.jsin different places, and they merge cleanly ontomainin either order.Internal tracking: T292702666
Type of change
Checklist
Changelog entry
Remove the daily plugin version update to the FBE business configuration; the version is reported through the Commerce Partner Integration.
Test Plan
Automated
PluginConfigTelemetryTestcovers the hourly hook, the 3-hour throttle, theplugin_updatespayload, and the language feed stats transient thatLanguageOverrideFeedwrites through the moved constant.phpcs.xml.dist) on changed production files: no new warnings. The existingedit_productcapability warning infacebook-commerce.phpis on an untouched line.php -l,node --checkon the e2e spec,git diff --check: passed.ExternalVersionUpdate.Manual verification
On a connected store with a CPI ID, with debug logging enabled:
wp transient delete _wc_facebook_for_woocommerce_refresh_installation_data, thenwp eval 'do_action( "facebook_for_woocommerce_daily_heartbeat" );'. Confirm thatPOST /{commerce_partner_integration_id}carriesextension_versionand that noPOST /fbe_businessrequest is made.wp transient delete _wc_facebook_for_woocommerce_send_plugin_config_flag, thenwp eval 'do_action( "facebook_for_woocommerce_hourly_heartbeat" );'. Confirm that onePOST /commerce_seller_logsrequest carries theplugin_updatesflow with the same fields as before.facebook_for_woocommerce_latest_version_sent_to_serveris deleted.QA results
Local WordPress store (WordPress 7.1.2, WooCommerce 11.1.2, PHP 8.2.30), 2026-10-13. The PHP debug log had no new warnings or fatal errors during any of the checks below, including heartbeats run through WP-Cron.
Utilities\PluginConfigTelemetryloads, andExternalVersionUpdate\Updateno longer exists.POST /{commerce_partner_integration_id}returned 200 withextension_version, and noPOST /fbe_businessrequest was made.POST /commerce_seller_logsreturned 200 with theplugin_updatesflow.facebook_for_woocommerce_latest_version_sent_to_server(it held3.7.6).Screenshots
Not applicable; this change has no user-interface impact.