diff --git a/woolist-phplist/includes/class-woolist-api.php b/woolist-phplist/includes/class-woolist-api.php index 3cfe483..050091b 100644 --- a/woolist-phplist/includes/class-woolist-api.php +++ b/woolist-phplist/includes/class-woolist-api.php @@ -179,8 +179,10 @@ class WooList_API { $subscriber_id = null; $existing = $this->subscriber_get_by_email( $email ); - if ( ! is_wp_error( $existing ) && ! empty( $existing['id'] ) ) { - $subscriber_id = (int) $existing['id']; + // phpList wraps subscriber data inside a "data" key: {"status":"success","data":{"id":…}} + $existing_id = $existing['data']['id'] ?? $existing['id'] ?? null; + if ( ! is_wp_error( $existing ) && ! empty( $existing_id ) ) { + $subscriber_id = (int) $existing_id; WooList_Logger::debug( 'Found existing subscriber id=' . $subscriber_id . ' email=' . $email ); } else { // Step 2: create a new subscriber. @@ -192,7 +194,9 @@ class WooList_API { return [ 'success' => false, 'subscriber_id' => null ]; } - $subscriber_id = isset( $added['id'] ) ? (int) $added['id'] : null; + // phpList wraps the new subscriber inside a "data" key. + $subscriber_id = isset( $added['data']['id'] ) ? (int) $added['data']['id'] + : ( isset( $added['id'] ) ? (int) $added['id'] : null ); if ( $subscriber_id ) { WooList_Logger::info( 'Created new subscriber id=' . $subscriber_id . ' email=' . $email );