diff --git a/includes/cli/backfillers/class-reader-registered.php b/includes/cli/backfillers/class-reader-registered.php index cbd5928b..8a84133a 100644 --- a/includes/cli/backfillers/class-reader-registered.php +++ b/includes/cli/backfillers/class-reader-registered.php @@ -53,6 +53,22 @@ public function get_events() { $events = []; + // Disregard `current_page_url` metadata when checking for duplicates of reader registrations. + // This metadata is unavailable for backfilled events, so it's not possible to check for duplicates with it. + add_filter( + 'newspack_network_event_log_get_args', + function( $args ) { + if ( $args['action_name'] === 'reader_registered' && isset( $args['data'] ) ) { + $data = json_decode( $args['data'], true ); + if ( isset( $data['metadata']['current_page_url'] ) ) { + unset( $data['metadata']['current_page_url'] ); + } + $args['data'] = wp_json_encode( $data ); + } + return $args; + } + ); + foreach ( $users as $user ) { $registration_method = get_user_meta( $user->ID, \Newspack\Reader_Activation::REGISTRATION_METHOD, true ); $user_data = [ diff --git a/includes/hub/stores/class-event-log.php b/includes/hub/stores/class-event-log.php index 08d4ae0b..f669d0d7 100644 --- a/includes/hub/stores/class-event-log.php +++ b/includes/hub/stores/class-event-log.php @@ -39,6 +39,7 @@ public static function get( $args, $per_page = 10, $page = 1, $order = 'DESC' ) $query = $wpdb->prepare( "SELECT * FROM $table_name WHERE 1=1 [args] $order_string LIMIT %d OFFSET %d", $per_page, $offset ); //phpcs:ignore + $args = apply_filters( 'newspack_network_event_log_get_args', $args ); $query = str_replace( '[args]', self::build_where_clause( $args ), $query ); $db = $wpdb->get_results( $query ); //phpcs:ignore