File "class-mailchimp-woocommerce-single-coupon.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/mailchimp-for-woocommerce_bk/includes/processes/class-mailchimp-woocommerce-single-coupon.php
File size: 2.93 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Created by Vextras.
*
* Name: Ryan Hungate
* Email: ryan@vextras.com
* Date: 10/6/17
* Time: 11:14 AM
*/
class MailChimp_WooCommerce_SingleCoupon extends Mailchimp_Woocommerce_Job
{
public $coupon_data;
public $id;
/**
* MailChimp_WooCommerce_Coupon_Sync constructor.
* @param $id
*/
public function __construct($id = null)
{
$this->setId($id);
}
/**
* @param null $id
* @return MailChimp_WooCommerce_SingleCoupon
*/
public function setId($id)
{
if (!empty($id)) {
$this->id = $id instanceof WP_Post ? $id->ID : $id;
}
return $this;
}
/**
* @return false|void
* @throws MailChimp_WooCommerce_Error
* @throws MailChimp_WooCommerce_RateLimitError
* @throws MailChimp_WooCommerce_ServerError
*/
public function handle()
{
try {
if (!mailchimp_is_configured()) {
mailchimp_debug(get_called_class(), 'Mailchimp is not configured properly');
return false;
}
if (empty($this->id)) {
mailchimp_error('promo_code_submit.failure', "could not process coupon {$this->id}");
return;
}
$api = mailchimp_get_api();
$store_id = mailchimp_get_store_id();
$transformer = new MailChimp_WooCommerce_Transform_Coupons();
$code = $transformer->transform($this->id);
$api->addPromoRule($store_id, $code->getAttachedPromoRule());
$api->addPromoCodeForRule($store_id, $code->getAttachedPromoRule(), $code);
mailchimp_log('promo_code_submit.success', "#{$this->id} :: code: {$code->getCode()}");
} catch (MailChimp_WooCommerce_RateLimitError $e) {
sleep(3);
$promo_code = isset($code) ? "code {$code->getCode()}" : "id {$this->id}";
mailchimp_error('promo_code_submit.error', mailchimp_error_trace($e, "RateLimited :: #{$promo_code}"));
$this->applyRateLimitedScenario();
throw $e;
} catch (MailChimp_WooCommerce_ServerError $e) {
$promo_code = isset($code) ? "code {$code->getCode()}" : "id {$this->id}";
mailchimp_error('promo_code_submit.error', mailchimp_error_trace($e, "error updating promo rule #{$this->id} :: {$promo_code}"));
throw $e;
} catch (MailChimp_WooCommerce_Error $e) {
$promo_code = isset($code) ? "code {$code->getCode()}" : "id {$this->id}";
mailchimp_error('promo_code_submit.error', mailchimp_error_trace($e, "error updating promo rule #{$this->id} :: {$promo_code}"));
throw $e;
} catch (Exception $e) {
$promo_code = isset($code) ? "code {$code->getCode()}" : "id {$this->id}";
mailchimp_error('promo_code_submit.exception', mailchimp_error_trace($e, "error updating promo rule :: {$promo_code}"));
throw $e;
}
return;
}
}