<?php /** * Created by Vextras. * * Name: Ryan Hungate * Email: ryan@vextras.com * Date: 3/8/16 * Time: 3:13 PM */ class MailChimp_WooCommerce_Store { protected $id = null; protected $is_syncing = false; protected $list_id = null; protected $name = null; protected $domain = null; protected $email_address = null; protected $currency_code = null; protected $money_format = null; protected $primary_locale = null; protected $timezone = null; protected $phone = null; protected $address = null; protected $platform = null; protected $connected_site = null; /** * @return array */ public function getValidation() { return array( 'id' => 'required|string', 'list_id' => 'required|string', 'name' => 'required|string', 'domain' => 'string', 'email_address' => 'email', 'currency_code' => 'required|currency_code', 'primary_locale' => 'locale_basic', 'timezone' => 'timezone', 'phone' => 'string', ); } /** * @return null */ public function getId() { return $this->id; } /** * @param null $id * @return MailChimp_WooCommerce_Store */ public function setId( $id ) { $this->id = $id; return $this; } /** * @param $bool * @return $this */ public function flagSyncing( $bool ) { $this->is_syncing = $bool; return $this; } /** * @return bool */ public function isSyncing() { return $this->is_syncing; } /** * @return null */ public function getListId() { return $this->list_id; } /** * @param null $list_id * @return MailChimp_WooCommerce_Store */ public function setListId( $list_id ) { $this->list_id = $list_id; return $this; } /** * @return null */ public function getName() { return $this->name; } /** * @param null $name * @return MailChimp_WooCommerce_Store; */ public function setName( $name ) { $this->name = $name; return $this; } /** * @return null */ public function getDomain() { return $this->domain; } /** * @param null $domain * @return MailChimp_WooCommerce_Store; */ public function setDomain( $domain ) { $this->domain = $domain; return $this; } /** * @return null */ public function getEmailAddress() { return $this->email_address; } /** * @param null $email_address * @return MailChimp_WooCommerce_Store; */ public function setEmailAddress( $email_address ) { $this->email_address = $email_address; return $this; } /** * @return null */ public function getCurrencyCode() { return $this->currency_code; } /** * @param $code * * @return $this */ public function setCurrencyCode( $code ) { if ( ! isset( $code ) ) { $code = get_woocommerce_currency(); } $this->currency_code = $code; return $this; } /** * @return null */ public function getMoneyFormat() { return $this->money_format; } /** * @param $code * * @return $this */ public function setMoneyFormat( $code ) { if ( ! isset( $code ) ) { $code = get_woocommerce_currency(); } $this->money_format = html_entity_decode( get_woocommerce_currency_symbol( $code ) ); return $this; } /** * @return null */ public function getPrimaryLocale() { return $this->primary_locale; } /** * @param null $primary_locale * @return MailChimp_WooCommerce_Store; */ public function setPrimaryLocale( $primary_locale ) { $this->primary_locale = $primary_locale; return $this; } /** * @return null */ public function getTimezone() { return $this->timezone; } /** * @param null $timezone * @return MailChimp_WooCommerce_Store; */ public function setTimezone( $timezone ) { $this->timezone = $timezone; return $this; } /** * @return null */ public function getPhone() { return $this->phone; } /** * @param null $phone * @return MailChimp_WooCommerce_Store; */ public function setPhone( $phone ) { $this->phone = $phone; return $this; } /** * @param $platform * @return $this */ public function setPlatform( $platform ) { $this->platform = $platform; return $this; } /** * @return string */ public function getPlatform() { return $this->platform; } /** * @return MailChimp_WooCommerce_Address */ public function getAddress() { if ( empty( $this->address ) ) { $this->address = new MailChimp_WooCommerce_Address(); } return $this->address; } /** * @param MailChimp_WooCommerce_Address $address * * @return $this */ public function setAddress( MailChimp_WooCommerce_Address $address ) { $this->address = $address; return $this; } /** * @return null|string */ public function getConnectedSiteForeignID() { return $this->getConnectedSiteParam( 'site_foreign_id' ); } /** * @return null|string */ public function getConnectedSiteScriptUrl() { if ( ( $script = $this->getConnectedSiteParam( 'site_script' ) ) ) { return $script['url']; } return false; } /** * @return null|string */ public function getConnectedSiteScriptFragment() { if ( ( $script = $this->getConnectedSiteParam( 'site_script' ) ) ) { return $script['fragment']; } return false; } /** * @param $key * @param null $default * @return null */ public function getConnectedSiteParam( $key, $default = null ) { if ( empty( $this->connected_site ) ) { return $default; } return array_key_exists( $key, $this->connected_site ) ? $this->connected_site[ $key ] : null; } /** * @return array */ public function toArray() { return mailchimp_array_remove_empty( array( 'id' => $this->getId(), 'is_syncing' => $this->isSyncing(), 'platform' => $this->getPlatform(), 'list_id' => $this->getListId(), 'name' => $this->getName(), 'domain' => $this->getDomain(), 'email_address' => $this->getEmailAddress(), 'currency_code' => $this->getCurrencyCode(), 'money_format' => $this->getMoneyFormat(), 'primary_locale' => $this->getPrimaryLocale(), 'timezone' => $this->getTimezone(), 'phone' => $this->getPhone(), 'address' => $this->getAddress()->toArray(), ) ); } /** * @param array $data * @return MailChimp_WooCommerce_Store */ public function fromArray( array $data ) { $singles = array( 'id', 'list_id', 'name', 'domain', 'is_syncing', 'email_address', 'currency_code', 'money_format', 'primary_locale', 'timezone', 'phone', 'platform', ); foreach ( $singles as $key ) { if ( array_key_exists( $key, $data ) ) { $this->$key = $data[ $key ]; } } if ( array_key_exists( 'address', $data ) ) { $address = new MailChimp_WooCommerce_Address(); $this->address = $address->fromArray( $data['address'] ); } if ( array_key_exists( 'connected_site', $data ) ) { $this->connected_site = $data['connected_site']; } return $this; } }