2.6.0: Update Traits from PHP SDK - #127
Open
n7studios wants to merge 15 commits into
Open
Conversation
n7studios
requested review from
a team,
ciccio-kit and
noelherrick
and removed request for
a team
August 12, 2026 14:29
5 tasks
n7studios
commented
Aug 12, 2026
| * | ||
| * @return int HTTP status code of the last API response (0 if none). | ||
| */ | ||
| public function get_last_response_code() { |
Contributor
Author
There was a problem hiding this comment.
This mirrors how the PHP SDK works, when a developer wants to fetch the last response code for a request.
n7studios
commented
Aug 12, 2026
| } | ||
|
|
||
| // Treat any 4xx or 5xx status as an error. | ||
| if ( $http_response_code >= 400 ) { |
Contributor
Author
There was a problem hiding this comment.
This mirrors the PHP SDK, where a 4xx or 5xx status code returns an error
n7studios
commented
Aug 12, 2026
| // Build array of arguments depending on the resource type. | ||
| switch ( $resource_type ) { | ||
| case 'forms': | ||
| $args = array( |
Contributor
Author
There was a problem hiding this comment.
These arguments are modified to work with the new API Traits, which come from the PHP SDK Traits, which provide more parameters.
n7studios
commented
Aug 12, 2026
| namespace Helper\WPUnit; | ||
|
|
||
| /** | ||
| * Wraps `ConvertKit_API_V4` and converts every array response to a nested `stdClass` |
Contributor
Author
There was a problem hiding this comment.
There's always been a difference between the WordPress Libraries and PHP SDK:
- WordPress Libraries return an array of data on success
- PHP SDK returns a nested stdClass object on success
Rather than rewrite all of the tests in TestsTrait, this proxy converts array responses to stdClass objects so they can be run through the TestsTrait.
n7studios
marked this pull request as ready for review
August 13, 2026 01:48
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Restructures the Kit WordPress Libraries as a WordPress mirror of the PHP SDK. API surface, tests, and version numbers now track the SDK; only genuinely WordPress-specific methods and tests stay unique to this repo.
Based on ConvertKitSDK-PHP #155:
ConvertKit_API_Traits, adjusted for PHP 7.x (nullable shorthand, positional args, etc.).TestsTraitverbatim.APITest.phpnow uses the trait and provides two shims (assertApiError,assertLastResponseStatusCode) that translate SDK-style thrown exceptions intoWP_Errorassertions. WP-only tests remain inAPITest.php/ResourceTest.php/APINoDataTest.php.2.6.0to match the SDK release.Future SDK updates port over in two steps: copy the changed API methods into
ConvertKit_API_Traits(with PHP 7.x tweaks), then copy the SDK'sTestsTrait.phpinto this repo.Testing
Existing tests pass. This is a large PR which is difficult to review, so I've added comments to cover the main items, and tests are also performed on each Kit WordPress Plugin against this branch to confirm no breaking changes:
Checklist