Cli.php
2 weeks ago
Import.php
2 weeks ago
MailChimp.php
2 months ago
MailChimpDataMapper.php
2 months ago
index.php
3 years ago
MailChimpDataMapper.php
65 lines
| 1 | <?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing |
| 2 | |
| 3 | namespace MailPoet\Subscribers\ImportExport\Import; |
| 4 | |
| 5 | if (!defined('ABSPATH')) exit; |
| 6 | |
| 7 | |
| 8 | class MailChimpDataMapper { |
| 9 | public function getMembersHeader(): array { |
| 10 | return [ |
| 11 | 'email_address', |
| 12 | 'status', |
| 13 | 'first_name', |
| 14 | 'last_name', |
| 15 | 'address', |
| 16 | 'phone', |
| 17 | 'birthday', |
| 18 | 'ip_signup', |
| 19 | 'timestamp_signup', |
| 20 | 'ip_opt', |
| 21 | 'timestamp_opt', |
| 22 | 'member_rating', |
| 23 | 'last_changed', |
| 24 | 'language', |
| 25 | 'vip', |
| 26 | 'email_client', |
| 27 | 'latitude', |
| 28 | 'longitude', |
| 29 | 'gmtoff', |
| 30 | 'dstoff', |
| 31 | 'country_code', |
| 32 | 'timezone', |
| 33 | 'source', |
| 34 | ]; |
| 35 | } |
| 36 | |
| 37 | public function mapMember(array $member): array { |
| 38 | return [ |
| 39 | $member['email_address'], |
| 40 | $member['status'], |
| 41 | $member['merge_fields']['FNAME'] ?? '', |
| 42 | $member['merge_fields']['LNAME'] ?? '', |
| 43 | is_array($member['merge_fields']['ADDRESS']) ? implode(' ', array_map(static fn($v): string => is_scalar($v) ? (string)$v : '', $member['merge_fields']['ADDRESS'])) : $member['merge_fields']['ADDRESS'], |
| 44 | $member['merge_fields']['PHONE'] ?? '', |
| 45 | $member['merge_fields']['BIRTHDAY'] ?? '', |
| 46 | $member['ip_signup'], |
| 47 | $member['timestamp_signup'], |
| 48 | $member['ip_opt'], |
| 49 | $member['timestamp_opt'], |
| 50 | $member['member_rating'], |
| 51 | $member['last_changed'], |
| 52 | $member['language'], |
| 53 | $member['vip'], |
| 54 | $member['email_client'], |
| 55 | $member['location']['latitude'] ?? '', |
| 56 | $member['location']['longitude'] ?? '', |
| 57 | $member['location']['gmtoff'] ?? '', |
| 58 | $member['location']['dstoff'] ?? '', |
| 59 | $member['location']['country_code'] ?? '', |
| 60 | $member['location']['timezone'] ?? '', |
| 61 | $member['source'], |
| 62 | ]; |
| 63 | } |
| 64 | } |
| 65 |