File "class-mailchimp-woocommerce-api.php"
Full Path: /home/vantageo/public_html/cache/.wp-cli/wp-content/plugins/mailchimp-for-woocommerce_bk/includes/api/class-mailchimp-woocommerce-api.php
File size: 2.22 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Created by Vextras.
*
* Name: Ryan Hungate
* Email: ryan@vextras.com
* Date: 7/13/16
* Time: 2:32 PM
*/
class MailChimp_WooCommerce_Api {
protected static $filterable_actions = array(
'paginate-resource',
);
/**
* @param int $default_page
* @param int $default_per
* @return array
*/
public static function filter( $default_page = null, $default_per = null ) {
if ( isset( $_GET['mailchimp-woocommerce'] ) && isset( $_GET['mailchimp-woocommerce']['action'] ) ) {
if ( in_array( $_GET['mailchimp-woocommerce']['action'], static::$filterable_actions ) ) {
if ( empty( $default_page ) ) {
$page = isset( $_GET['page'] ) ? (int) $_GET['page'] : null;
}
if ( empty( $default_per ) ) {
$per = isset( $_GET['per'] ) ? (int) $_GET['per'] : null;
}
}
}
if ( empty( $page ) ) {
$page = 1;
}
if ( empty( $per ) ) {
$per = 5;
}
return array( $page, $per );
}
/**
* @param null $page
* @param null $per
* @return object|stdClass
*/
public function paginateProducts( $page = null, $per = null ) {
return $this->paginate( 'products', $page, $per );
}
/**
* @param null $page
* @param null $per
* @return object|stdClass
*/
public function paginateOrders( $page = null, $per = null ) {
return $this->paginate( 'orders', $page, $per );
}
/**
* @param $resource
* @param int $page
* @param int $per
*
* @return object|stdClass
*/
public function paginate( $resource, $page = 1, $per = 5 ) {
if ( ( $sync = $this->engine( $resource ) ) ) {
return $sync->compile( $page, $per );
}
return (object) array(
'endpoint' => $resource,
'page' => $page,
'count' => 0,
'stuffed' => false,
'items' => array(),
);
}
/**
* @param $resource
* @return bool|MailChimp_WooCommerce_Transform_Orders|MailChimp_WooCommerce_Transform_Products|MailChimp_WooCommerce_Transform_Coupons
*/
public function engine( $resource ) {
switch ( $resource ) {
case 'products':
return new MailChimp_WooCommerce_Transform_Products();
case 'orders':
return new MailChimp_WooCommerce_Transform_Orders();
case 'coupons':
return new MailChimp_WooCommerce_Transform_Coupons();
default:
return false;
}
}
}