%PDF- %PDF-
| Direktori : /home/opti/public_html/stlc/wp-content/plugins/omnisend/includes/Internal/ |
| Current File : /home/opti/public_html/stlc/wp-content/plugins/omnisend/includes/Internal/class-contactfactory.php |
<?php
/**
* Omnisend Client
*
* @package OmnisendClient
*/
namespace Omnisend\Internal;
use Omnisend\SDK\V1\Contact;
class ContactFactory {
/**
* Create a Contact object from an array of contact data.
*
* @param array $contact_data
* @return Contact
*/
public static function create_contact( array $contact_data ): Contact {
$contact = new Contact();
if ( isset( $contact_data['contactID'] ) ) {
$contact->set_id( $contact_data['contactID'] );
}
if ( isset( $contact_data['firstName'] ) ) {
$contact->set_first_name( $contact_data['firstName'] );
}
if ( isset( $contact_data['email'] ) ) {
$contact->set_email( $contact_data['email'] );
}
if ( isset( $contact_data['lastName'] ) ) {
$contact->set_last_name( $contact_data['lastName'] );
}
if ( isset( $contact_data['country'] ) ) {
$contact->set_country( $contact_data['country'] );
}
if ( isset( $contact_data['address'] ) ) {
$contact->set_address( $contact_data['address'] );
}
if ( isset( $contact_data['city'] ) ) {
$contact->set_city( $contact_data['city'] );
}
if ( isset( $contact_data['state'] ) ) {
$contact->set_state( $contact_data['state'] );
}
if ( isset( $contact_data['postalCode'] ) ) {
$contact->set_postal_code( $contact_data['postalCode'] );
}
if ( isset( $contact_data['phone'] ) ) {
$contact->set_phone( $contact_data['phone'][0] );
}
if ( isset( $contact_data['birthdate'] ) ) {
$contact->set_birthday( $contact_data['birthdate'] );
}
if ( isset( $contact_data['gender'] ) ) {
$contact->set_gender( $contact_data['gender'] );
}
if ( isset( $contact_data['tags'] ) ) {
foreach ( $contact_data['tags'] as $tag ) {
$contact->add_tag( $tag );
}
}
if ( isset( $contact_data['customProperties'] ) ) {
foreach ( $contact_data['customProperties'] as $key => $value ) {
$contact->add_custom_property( $key, $value, false );
}
}
if ( isset( $contact_data['identifiers'] ) ) {
foreach ( $contact_data['identifiers'] as $single_consent ) {
if ( isset( $single_consent['channels']['sms']['status'] ) ) {
if ( $single_consent['channels']['sms']['status'] == 'subscribed' ) {
$contact->set_phone_subscriber();
} elseif ( $single_consent['channels']['sms']['status'] == 'unsubscribed' ) {
$contact->set_phone_unsubscriber();
}
}
if ( isset( $single_consent['channels']['email']['status'] ) ) {
if ( $single_consent['channels']['email']['status'] == 'subscribed' ) {
$contact->set_email_subscriber();
} elseif ( $single_consent['channels']['email']['status'] == 'unsubscribed' ) {
$contact->set_email_unsubscriber();
}
}
}
}
return $contact;
}
}