From 0095dc6dab256daebb313338f5c56c1b25155961 Mon Sep 17 00:00:00 2001 From: Miguel Peixe Date: Fri, 30 Aug 2024 13:34:17 -0300 Subject: [PATCH 1/5] fix(sync): use `newspack_esp_sync_contact` filter for the `network_registration_site`field --- includes/class-esp-metadata-sync.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/includes/class-esp-metadata-sync.php b/includes/class-esp-metadata-sync.php index b1794c8c..5a90b4b9 100644 --- a/includes/class-esp-metadata-sync.php +++ b/includes/class-esp-metadata-sync.php @@ -23,7 +23,7 @@ class Esp_Metadata_Sync { public static function init() { \add_filter( 'newspack_ras_metadata_keys', [ __CLASS__, 'add_custom_metadata_fields' ] ); \add_filter( 'newspack_register_reader_metadata', [ __CLASS__, 'handle_custom_metadata_fields' ], 10, 2 ); - \add_filter( 'newspack_data_events_reader_registered_metadata', [ __CLASS__, 'handle_custom_metadata_fields' ], 10, 2 ); + \add_filter( 'newspack_esp_sync_contact', [ __CLASS__, 'handle_esp_sync_contact' ], 10, 2 ); \add_action( 'init', [ __CLASS__, 'register_listeners' ] ); } @@ -55,6 +55,18 @@ public static function add_custom_metadata_fields( $metadata_fields ) { return $metadata_fields; } + /** + * Add handling for custom metadata fields when syncing to ESP. + * + * @param array $contact The contact metadata data. + * + * @return array The updated contact data. + */ + public static function handle_esp_sync_contact( $contact ) { + $contact['metadata']['network_registration_site'] = self::get_registration_site_meta( $user_id ); + return $metadata; + } + /** * Add handling for custom metadata fields. Only fire for newly created users. * From b1396349b962fc6c703abbda30d1e8f33d04e8d7 Mon Sep 17 00:00:00 2001 From: Miguel Peixe Date: Fri, 30 Aug 2024 13:53:38 -0300 Subject: [PATCH 2/5] fix: get user id --- includes/class-esp-metadata-sync.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/includes/class-esp-metadata-sync.php b/includes/class-esp-metadata-sync.php index 5a90b4b9..a2949984 100644 --- a/includes/class-esp-metadata-sync.php +++ b/includes/class-esp-metadata-sync.php @@ -63,7 +63,8 @@ public static function add_custom_metadata_fields( $metadata_fields ) { * @return array The updated contact data. */ public static function handle_esp_sync_contact( $contact ) { - $contact['metadata']['network_registration_site'] = self::get_registration_site_meta( $user_id ); + $user = get_user_by( 'email', $contact['email'] ); + $contact['metadata']['network_registration_site'] = self::get_registration_site_meta( $user->ID ); return $metadata; } From e1cee95c6d67452d4a877f74ba2427da43f08728 Mon Sep 17 00:00:00 2001 From: Miguel Peixe Date: Fri, 30 Aug 2024 13:54:05 -0300 Subject: [PATCH 3/5] fix: handle user not found --- includes/class-esp-metadata-sync.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/includes/class-esp-metadata-sync.php b/includes/class-esp-metadata-sync.php index a2949984..84effa6c 100644 --- a/includes/class-esp-metadata-sync.php +++ b/includes/class-esp-metadata-sync.php @@ -64,6 +64,9 @@ public static function add_custom_metadata_fields( $metadata_fields ) { */ public static function handle_esp_sync_contact( $contact ) { $user = get_user_by( 'email', $contact['email'] ); + if ( ! $user ) { + return $contact; + } $contact['metadata']['network_registration_site'] = self::get_registration_site_meta( $user->ID ); return $metadata; } From a726aca4181810f1b61df7e72057638b5741781e Mon Sep 17 00:00:00 2001 From: Miguel Peixe Date: Fri, 30 Aug 2024 16:00:49 -0300 Subject: [PATCH 4/5] Update includes/class-esp-metadata-sync.php Co-authored-by: leogermani --- includes/class-esp-metadata-sync.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/class-esp-metadata-sync.php b/includes/class-esp-metadata-sync.php index 84effa6c..b4bce73c 100644 --- a/includes/class-esp-metadata-sync.php +++ b/includes/class-esp-metadata-sync.php @@ -68,7 +68,7 @@ public static function handle_esp_sync_contact( $contact ) { return $contact; } $contact['metadata']['network_registration_site'] = self::get_registration_site_meta( $user->ID ); - return $metadata; + return $contact; } /** From 0c0f39677e026b66ae90e652f03360ee065f5e5b Mon Sep 17 00:00:00 2001 From: Leo Germani Date: Mon, 2 Sep 2024 12:11:03 -0300 Subject: [PATCH 5/5] fix: remove unnecessary hook --- includes/class-esp-metadata-sync.php | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/includes/class-esp-metadata-sync.php b/includes/class-esp-metadata-sync.php index b4bce73c..ae31149b 100644 --- a/includes/class-esp-metadata-sync.php +++ b/includes/class-esp-metadata-sync.php @@ -22,7 +22,6 @@ class Esp_Metadata_Sync { */ public static function init() { \add_filter( 'newspack_ras_metadata_keys', [ __CLASS__, 'add_custom_metadata_fields' ] ); - \add_filter( 'newspack_register_reader_metadata', [ __CLASS__, 'handle_custom_metadata_fields' ], 10, 2 ); \add_filter( 'newspack_esp_sync_contact', [ __CLASS__, 'handle_esp_sync_contact' ], 10, 2 ); \add_action( 'init', [ __CLASS__, 'register_listeners' ] ); } @@ -71,22 +70,6 @@ public static function handle_esp_sync_contact( $contact ) { return $contact; } - /** - * Add handling for custom metadata fields. Only fire for newly created users. - * - * @param array $metadata The contact metadata data. - * @param int|false $user_id Created user ID, or false if the user already exists. - * - * @return array The updated contact data. - */ - public static function handle_custom_metadata_fields( $metadata, $user_id ) { - if ( $user_id ) { - $metadata['network_registration_site'] = self::get_registration_site_meta( $user_id ); - } - - return $metadata; - } - /** * Get the registration site URL for a user. *