From 6c029d875249890a5150f0c7001f0c95ed064273 Mon Sep 17 00:00:00 2001 From: Mark Walker Date: Thu, 16 Feb 2023 10:47:32 +0700 Subject: [PATCH] Remove inefficient subscriber paging API has an email address filter so no need to loop across all pages of subscribers, can find ID if it exists in a single call. --- src/ConvertKit_API.php | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/src/ConvertKit_API.php b/src/ConvertKit_API.php index c49a29e..4818ff4 100644 --- a/src/ConvertKit_API.php +++ b/src/ConvertKit_API.php @@ -348,7 +348,7 @@ public function get_subscriber_id( $email_address ) { $options = array( 'api_secret' => $this->api_secret, - 'status' => 'all', + 'email_address' => $email_address, ); $this->create_log(sprintf("GET subscriber id from all subscribers: %s, %s, %s", $request, json_encode($options), $email_address)); @@ -366,27 +366,7 @@ public function get_subscriber_id( $email_address ) { return $subscriber_id; } - $total_pages = $subscribers->total_pages; - - $this->create_log(sprintf("Total number of pages is %s", $total_pages)); - - for ( $i = 2; $i <= $total_pages; $i++ ) { - $options['page'] = $i; - $this->create_log(sprintf("Go to page %s", $i)); - $subscribers = $this->make_request( $request, 'GET', $options ); - - if( !$subscribers ) { - return false; - } - - $subscriber_id = $this::check_if_subscriber_in_array($email_address, $subscribers->subscribers); - - if($subscriber_id) { - return $subscriber_id; - } - } - - $this->create_log("Subscriber not found anywhere"); + $this->create_log("Subscriber not found"); return false;