Files
old-new-wiaas/backend/wp-content/plugins/mailchimp-for-woocommerce/includes/api/class-mailchimp-woocommerce-api.php
2018-06-14 16:49:28 +02:00

102 lines
2.6 KiB
PHP

<?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();
break;
case 'orders' :
return new MailChimp_WooCommerce_Transform_Orders();
break;
case 'coupons':
return new MailChimp_WooCommerce_Transform_Coupons();
default:
return false;
}
}
}