Files
piratepoet/doc/api_methods/GetSubscriber.md
Jan Lysý 083bad3051 Add subscriber tags to documentation
[MAILPOET-4716]
2022-10-13 11:12:10 +02:00

137 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[back to list](../Readme.md)
# Get Subscriber
## `array getSubscriber(string $subscriber_email)`
This method throws an `\Exception` in the event a subscriber with a given email address doesnt exist.
## Arguments
| Argument | Type | Description |
| ----------------- | ------ | --------------------- |
| $subscriber_email | string | a valid email address |
## A subscriber data structure
### Subscriber
| Property | Type | Limits | Description |
| ------------------------ | ------------ | --------- | ------------------------------------------------------------------------------------------------------------------------------ |
| id | string | 11 chars | Id of the subscriber |
| wp_user_id | string\|null | 20 chars | Id of a WordPress user associated with the subscriber |
| is_woocommerce_user | string | - | A flag telling whether the user is also a WooCommerce customer. Possible values are: `1`, `0` |
| first_name | string | 255 chars | Fist name of the subscriber. |
| last_name | string | 255 chars | Last name of the subscriber. |
| email | string | 150 chars | Email address of the subscriber. |
| status | string | - | Status of the subscriber. Possible values are: `unconfirmed`, `subscribed`, `unsubscribed`, `bounced`, `inactive` |
| subscribed_ip | string\|null | 45 chars | An IP address used for subscription. |
| confirmed_ip | string\|null | 45 chars | An IP address used for confirmation. |
| confirmed_at | string\|null | - | UTC time of subscription confirmation in 'Y-m-d H:i:s' format |
| created_at | string\|null | - | UTC time of creation in 'Y-m-d H:i:s' format |
| updated_at | string | - | UTC time of last update in 'Y-m-d H:i:s' format |
| deleted_at | string\|null | - | This property in not null in case that list is in trash and contains UTC time in 'Y-m-d H:i:s' format. |
| unconfirmed_data | string\|null | 65K chars | May contain serialized subscriber data in case when there are pending changes waiting for a confirmation from a subscriber |
| source | string\|null | - | Possible values: `form`,`imported`,`administrator`,`api`,`wordpress_user`,`woocommerce_user`,`woocommerce_checkout`,`unknown`) |
| count_confirmations | string | 11 chars | Counter for confirmation emails |
| subscriptions | array | - | List of subcriber subscriptions |
| tags | array | - | List of subcriber tags |
| cf\_{custom_field['id']} | string | 65K chars | A custom subscriber field value (see [Get Subscriber Fields](GetSubscriberFields.md) |
### Subscriber's subscription
| Property | Type | Limits | Description |
| ------------- | ------ | -------- | ------------------------------------------------------------------------------------ |
| id | string | 11 chars | Id of relation |
| subscriber_id | string | 11 chars | Id of subscriber |
| segment_id | string | 11 chars | Id of a list |
| status | string | - | Status of a subscription for the list. Possible values: `subscribed`, `unsubscribed` |
| created_at | string | - | UTC time of creation in 'Y-m-d H:i:s' format |
| updated_at | string | - | UTC time of last update in 'Y-m-d H:i:s' format |
### Subscriber's tag
| Property | Type | Limits | Description |
| ------------- | ------ | -------- | ----------------------------------------------- |
| id | string | 11 chars | Id of relation |
| subscriber_id | string | 11 chars | Id of subscriber |
| tag_id | string | 11 chars | Id of a list |
| name | string | - | Name of a tag |
| created_at | string | - | UTC time of creation in 'Y-m-d H:i:s' format |
| updated_at | string | - | UTC time of last update in 'Y-m-d H:i:s' format |
### Response Example
```php
<?php
[
'id' => '10',
'wp_user_id' => '72',
'is_woocommerce_user' => '1',
'first_name' => 'John',
'last_name' => 'Doe',
'email' => 'email@example.com',
'status' => 'subscribed',
'subscribed_ip' => '127.0.0.1',
'confirmed_ip' => NULL,
'confirmed_at' => NULL,
'created_at' => '2019-05-07 07:24:37',
'updated_at' => '2019-05-14 08:43:08',
'deleted_at' => NULL,
'unconfirmed_data' => NULL,
'source' => 'woocommerce_user',
'count_confirmations' => '0',
'subscriptions' => [
0 => [
'id' => '3',
'subscriber_id' => '10',
'segment_id' => '1',
'status' => 'subscribed',
'created_at' => '2019-05-07 07:24:37',
'updated_at' => '2019-05-07 07:24:37',
],
1 => [
'id' => '13',
'subscriber_id' => '10',
'segment_id' => '2',
'status' => 'unsubscribed',
'created_at' => '2019-05-14 08:43:08',
'updated_at' => '2019-05-14 08:43:08',
],
],
'tags' => [
0 => [
'id' => '2',
'subscriber_id' => '10',
'tag_id' => '1',
'name' => 'Alpha',
'created_at' => '2019-05-17 05:24:37',
'updated_at' => '2019-05-17 05:24:37',
],
1 => [
'id' => '4',
'subscriber_id' => '10',
'tag_id' => '5',
'name' => 'Beta',
'created_at' => '2020-03-07 15:21:37',
'updated_at' => '2020-03-07 15:21:37',
],
],
'cf_1' => 'US',
'cf_2' => 'New York',
];
```
## Error handling
All expected errors from the API are exceptions of class `\MailPoet\API\MP\v1\APIException`.
Code of the exception is populated to distinguish between different errors.
An exception of base class `\Exception` can be thrown when something unexpected happens.
Codes description:
| Code | Description |
| ---- | -------------------------------------------- |
| 4 | Asking for a subscriber that does not exist. |