From 7af74e0176c36054f7311f46db146240f969c8c3 Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Mon, 20 Jul 2026 12:27:09 +0800 Subject: [PATCH 1/2] Filter Subscribers: Add support for new params --- src/ConvertKit_API_Traits.php | 36 +++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/src/ConvertKit_API_Traits.php b/src/ConvertKit_API_Traits.php index b629c56..460ae08 100644 --- a/src/ConvertKit_API_Traits.php +++ b/src/ConvertKit_API_Traits.php @@ -1607,11 +1607,19 @@ public function filter_subscribers( } if (array_key_exists('count_greater_than', $condition) && $condition['count_greater_than'] !== null) { - $option['count_greater_than'] = $condition['count_greater_than']; + $option['count_greater_than'] = (int) $condition['count_greater_than']; + } + + if (array_key_exists('count_greater_than_or_equal', $condition) && $condition['count_greater_than_or_equal'] !== null) { + $option['count_greater_than'] = (int) $condition['count_greater_than_or_equal']; } if (array_key_exists('count_less_than', $condition) && $condition['count_less_than'] !== null) { - $option['count_less_than'] = $condition['count_less_than']; + $option['count_less_than'] = (int) $condition['count_less_than']; + } + + if (array_key_exists('count_less_than_or_equal', $condition) && $condition['count_less_than_or_equal'] !== null) { + $option['count_less_than_or_equal'] = (int) $condition['count_less_than_or_equal']; } if (array_key_exists('after', $condition) && $condition['after'] instanceof \DateTime) { @@ -1626,6 +1634,30 @@ public function filter_subscribers( $option['states'] = (array) $condition['states']; } + if (array_key_exists('subscriber_custom_field_id', $condition) && $condition['subscriber_custom_field_id'] !== null) { + $option['subscriber_custom_field_id'] = (int) $condition['subscriber_custom_field_id']; + } + + if (array_key_exists('value', $condition) && $condition['value'] !== null) { + $option['value'] = $condition['value']; + } + + if (array_key_exists('comparison', $condition) && $condition['comparison'] !== null) { + $option['comparison'] = $condition['comparison']; + } + + if (array_key_exists('latitude', $condition) && $condition['latitude'] !== null) { + $option['latitude'] = (float) $condition['latitude']; + } + + if (array_key_exists('longitude', $condition) && $condition['longitude'] !== null) { + $option['longitude'] = (float) $condition['longitude']; + } + + if (array_key_exists('radius', $condition) && $condition['radius'] !== null) { + $option['radius'] = $condition['radius']; + } + if (array_key_exists('any', $condition) && !empty($condition['any'])) { $option['any'] = (array) $condition['any']; } From 4f0028cb4a9bc6f2493927758e2f3327dbfc180f Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Mon, 20 Jul 2026 12:43:45 +0800 Subject: [PATCH 2/2] PHPStan compat --- src/ConvertKit_API_Traits.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ConvertKit_API_Traits.php b/src/ConvertKit_API_Traits.php index 460ae08..4c8766f 100644 --- a/src/ConvertKit_API_Traits.php +++ b/src/ConvertKit_API_Traits.php @@ -1606,19 +1606,19 @@ public function filter_subscribers( $option['type'] = $condition['type']; } - if (array_key_exists('count_greater_than', $condition) && $condition['count_greater_than'] !== null) { + if (array_key_exists('count_greater_than', $condition) && is_numeric($condition['count_greater_than'])) { $option['count_greater_than'] = (int) $condition['count_greater_than']; } - if (array_key_exists('count_greater_than_or_equal', $condition) && $condition['count_greater_than_or_equal'] !== null) { - $option['count_greater_than'] = (int) $condition['count_greater_than_or_equal']; + if (array_key_exists('count_greater_than_or_equal', $condition) && is_numeric($condition['count_greater_than_or_equal'])) { + $option['count_greater_than_or_equal'] = (int) $condition['count_greater_than_or_equal']; } - if (array_key_exists('count_less_than', $condition) && $condition['count_less_than'] !== null) { + if (array_key_exists('count_less_than', $condition) && is_numeric($condition['count_less_than'])) { $option['count_less_than'] = (int) $condition['count_less_than']; } - if (array_key_exists('count_less_than_or_equal', $condition) && $condition['count_less_than_or_equal'] !== null) { + if (array_key_exists('count_less_than_or_equal', $condition) && is_numeric($condition['count_less_than_or_equal'])) { $option['count_less_than_or_equal'] = (int) $condition['count_less_than_or_equal']; } @@ -1634,7 +1634,7 @@ public function filter_subscribers( $option['states'] = (array) $condition['states']; } - if (array_key_exists('subscriber_custom_field_id', $condition) && $condition['subscriber_custom_field_id'] !== null) { + if (array_key_exists('subscriber_custom_field_id', $condition) && is_numeric($condition['subscriber_custom_field_id'])) { $option['subscriber_custom_field_id'] = (int) $condition['subscriber_custom_field_id']; } @@ -1646,11 +1646,11 @@ public function filter_subscribers( $option['comparison'] = $condition['comparison']; } - if (array_key_exists('latitude', $condition) && $condition['latitude'] !== null) { + if (array_key_exists('latitude', $condition) && is_numeric($condition['latitude'])) { $option['latitude'] = (float) $condition['latitude']; } - if (array_key_exists('longitude', $condition) && $condition['longitude'] !== null) { + if (array_key_exists('longitude', $condition) && is_numeric($condition['longitude'])) { $option['longitude'] = (float) $condition['longitude']; }