fix(my-account): handle email change esp sync errors#3792
Conversation
fb5f8c9 to
94c733c
Compare
94c733c to
ad90c7e
Compare
| Logger::error( 'Error syncing email change: ' . $update->get_error_message() ); | ||
| return false; | ||
| // If the update failed, retry in 24 hours. | ||
| \wp_schedule_single_event( time() + DAY_IN_SECONDS, self::SYNC_ESP_EMAIL_CHANGE_CRON_HOOK, [ $user_id, $new_email, $old_email ] ); |
There was a problem hiding this comment.
I didn't set a limit to the number of retries here. Since we are handling the case of existing email address within the various provider upsert methods, any other types of errors should be resolvable I think. But let me know if we prefer to set a limit here instead!
miguelpeixe
left a comment
There was a problem hiding this comment.
In the ESP_Sync class we have sync() and schedule_sync() methods. This strategy and the sync_email_change() method are creating a duplicated strategy for managing contact synchronization.
I worry that this creates risks in the long term, which we recently worked on mitigating by centralizing how syncs behave.
Is it possible to leverage the existing methods from the ESP_Sync class for this?
Unfortunately, the I can probably modify these methods to trigger for constant contact for only this very specific case, but I think its cleaner to handle this logic separately instead and keep the sync methods clean. Happy to go the other route if we prefer though! |
|
Hmm, good point. Is it unsupported solely because of a missing "master list"? If that's the case, we'd benefit more from allowing a sync to go through on CC without a master list. Perhaps return If there are other reasons or that's not a move we'd like to make now, we could also move the |
|
I think there's no reason to not support Constant Contact fully in RAS, meaning also adding an option to select a "master list" for it |
ad90c7e to
75c7665
Compare
|
Hey @chickenn00dle, good job getting this PR merged! 🎉 Now, the Please check if this PR needs to be included in the "Upcoming Changes" and "Release Notes" doc. If it doesn't, simply remove the label. If it does, please add an entry to our shared document, with screenshots and testing instructions if applicable, then remove the label. Thank you! ❤️ |
# [6.1.0-alpha.1](v6.0.1...v6.1.0-alpha.1) (2025-03-06) ### Bug Fixes * **modal-checkout:** password setup ([8fbfabd](8fbfabd)) * **my-account:** handle email change esp sync errors ([#3792](#3792)) ([3d9f294](3d9f294)) * **my-account:** send change email to old and new emails ([#3786](#3786)) ([710d53d](710d53d)) * **premium-newsletters:** show premium lists in post-checkout signup ([#3788](#3788)) ([ccb1526](ccb1526)) * spacer block handling with registration block ([e9b7beb](e9b7beb)) ### Features * **correction-blocks:** Correction box & Loop item + Template ([#3787](#3787)) ([c215dc2](c215dc2)) * **correction-blocks:** update corrections template ([#3793](#3793)) ([c7aea33](c7aea33)) * **my-account:** add email change cancellation option ([#3778](#3778)) ([600ad61](600ad61)) * **my-account:** sync admin email change with ESP/stripe ([#3799](#3799)) ([7179ffd](7179ffd)) * **my-account:** sync email change with esp ([#3780](#3780)) ([983c087](983c087)) * **my-account:** sync email change with stripe ([#3789](#3789)) ([4f45795](4f45795))
|
🎉 This PR is included in version 6.1.0-alpha.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
# [6.1.0](v6.0.5...v6.1.0) (2025-03-18) ### Bug Fixes * **modal-checkout:** endpoint to refresh newsletter lists via REST ([#3841](#3841)) ([2b294e0](2b294e0)) * **modal-checkout:** password setup ([8fbfabd](8fbfabd)) * **my-account:** handle email change esp sync errors ([#3792](#3792)) ([3d9f294](3d9f294)) * **my-account:** send change email to old and new emails ([#3786](#3786)) ([710d53d](710d53d)) * **premium-newsletters:** show premium lists in post-checkout signup ([#3788](#3788)) ([ccb1526](ccb1526)) * spacer block handling with registration block ([e9b7beb](e9b7beb)) ### Features * **correction-blocks:** Correction box & Loop item + Template ([#3787](#3787)) ([c215dc2](c215dc2)) * **correction-blocks:** update corrections template ([#3793](#3793)) ([c7aea33](c7aea33)) * enable email change for newspack users ([#3824](#3824)) ([9c152a8](9c152a8)) * **my-account:** add email change cancellation option ([#3778](#3778)) ([600ad61](600ad61)) * **my-account:** sync admin email change with ESP/stripe ([#3799](#3799)) ([7179ffd](7179ffd)) * **my-account:** sync email change with esp ([#3780](#3780)) ([983c087](983c087)) * **my-account:** sync email change with stripe ([#3789](#3789)) ([4f45795](4f45795)) * **woo-member-commenting:** optional module for member commenting ([#3783](#3783)) ([90746c8](90746c8)) ### Reverts * Revert "refactor(corrections): remove corrections feature flag (#3797)" (#3825) ([afd01f2](afd01f2)), closes [#3797](#3797) [#3825](#3825)
|
🎉 This PR is included in version 6.1.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
All Submissions:
Changes proposed in this Pull Request:
Closes https://app.asana.com/0/1208993180326452/1209215513701719
This and the partner newsletters PR account for errors when attempting to sync an email change with ESPs.
We account for two types of issues:
How to test the changes in this Pull Request:
Be sure to also checkout Automattic/newspack-newsletters#1769 before testing.
NEWSPACK_EMAIL_CHANGE_ENABLEDconstant is defined and true in wp-config.newspack_esp_sync_email_changecron job has been scheduled (wp cron event list)wp cron event run newspack_esp_sync_email_change)Other information: