File "class-mailchimp-product.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/mailchimp-for-woocommerce_bk/includes/api/assets/class-mailchimp-product.php
File size: 5.09 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Created by Vextras.
*
* Name: Ryan Hungate
* Email: ryan@vextras.com
* Date: 3/8/16
* Time: 2:17 PM
*/
class MailChimp_WooCommerce_Product {
protected $id;
protected $title;
protected $handle = null;
protected $url = null;
protected $description = null;
protected $type = null;
protected $vendor = null;
protected $image_url = null;
protected $variants = array();
protected $published_at_foreign = null;
/**
* @return array
*/
public function getValidation() {
return array(
'id' => 'required|string',
'title' => 'required|string',
'handle' => 'string',
'url' => 'url',
'description' => 'string',
'type' => 'string',
'vendor' => 'string',
'image_url' => 'url',
'variants' => 'required|array',
'published_at_foreign' => 'date',
);
}
/**
* @return mixed
*/
public function getId() {
return $this->id;
}
/**
* @param mixed $id
* @return MailChimp_WooCommerce_Product
*/
public function setId( $id ) {
$this->id = $id;
return $this;
}
/**
* @return mixed
*/
public function getTitle() {
return $this->title;
}
/**
* @param mixed $title
* @return MailChimp_WooCommerce_Product
*/
public function setTitle( $title ) {
$this->title = strip_tags( $title );
return $this;
}
/**
* @return null
*/
public function getHandle() {
return $this->handle;
}
/**
* @param null $handle
* @return MailChimp_WooCommerce_Product
*/
public function setHandle( $handle ) {
$this->handle = $handle;
return $this;
}
/**
* @return null
*/
public function getUrl() {
return $this->url;
}
/**
* @param null $url
* @return MailChimp_WooCommerce_Product
*/
public function setUrl( $url ) {
$this->url = $url;
return $this;
}
/**
* @return null
*/
public function getDescription() {
return $this->description;
}
/**
* @param null $description
* @return MailChimp_WooCommerce_Product
*/
public function setDescription( $description ) {
$this->description = $description;
return $this;
}
/**
* @return null
*/
public function getType() {
return $this->type;
}
/**
* @param null $type
* @return MailChimp_WooCommerce_Product
*/
public function setType( $type ) {
$this->type = $type;
return $this;
}
/**
* @return null
*/
public function getVendor() {
return $this->vendor;
}
/**
* @param null $vendor
* @return MailChimp_WooCommerce_Product
*/
public function setVendor( $vendor ) {
$this->vendor = $vendor;
return $this;
}
/**
* @return null
*/
public function getImageUrl() {
return $this->image_url;
}
/**
* @param null $image_url
* @return MailChimp_WooCommerce_Product
*/
public function setImageUrl( $image_url ) {
$this->image_url = $image_url;
return $this;
}
/**
* @return array
*/
public function getVariations() {
return $this->variants;
}
/**
* @param MailChimp_WooCommerce_ProductVariation $variation
* @return MailChimp_WooCommerce_Product
*/
public function addVariant( MailChimp_WooCommerce_ProductVariation $variation ) {
$this->variants[] = $variation;
return $this;
}
/**
* @return string
*/
public function getPublishedAtForeign() {
return $this->published_at_foreign;
}
/**
* @param DateTime $time
* @return MailChimp_WooCommerce_Product
*/
public function setPublishedAtForeign( DateTime $time ) {
$this->published_at_foreign = $time->format( 'Y-m-d H:i:s' );
return $this;
}
/**
* @return array
*/
public function toArray() {
return mailchimp_array_remove_empty(
array(
'id' => (string) $this->getId(),
'title' => $this->getTitle(),
'handle' => (string) $this->getHandle(),
'url' => (string) $this->getUrl(),
'description' => (string) $this->getDescription(),
'type' => (string) $this->getType(),
'vendor' => (string) $this->getVendor(),
'image_url' => (string) $this->getImageUrl(),
'variants' => array_map(
function ( $item ) {
return $item->toArray();
},
$this->getVariations()
),
'published_at_foreign' => (string) $this->getPublishedAtForeign(),
)
);
}
/**
* @param array $data
* @return MailChimp_WooCommerce_Product
*/
public function fromArray( array $data ) {
$singles = array(
'id',
'title',
'handle',
'url',
'description',
'type',
'vendor',
'image_url',
'published_at_foreign',
);
foreach ( $singles as $key ) {
if ( array_key_exists( $key, $data ) ) {
$this->$key = $data[ $key ];
}
}
if ( array_key_exists( 'variants', $data ) && is_array( $data['variants'] ) ) {
$this->variants = array();
foreach ( $data['variants'] as $variant ) {
$variation = new MailChimp_WooCommerce_ProductVariation();
$this->variants[] = $variation->fromArray( $variant );
}
}
return $this;
}
}