SubscriptionActivate.php in Commerce Recurring Framework 8
File
src/Plugin/AdvancedQueue/JobType/SubscriptionActivate.php
View source
<?php
namespace Drupal\commerce_recurring\Plugin\AdvancedQueue\JobType;
use Drupal\advancedqueue\Job;
use Drupal\advancedqueue\JobResult;
class SubscriptionActivate extends RecurringJobTypeBase {
public function process(Job $job) {
$subscription_id = $job
->getPayload()['subscription_id'];
$subscription_storage = $this->entityTypeManager
->getStorage('commerce_subscription');
$subscription = $subscription_storage
->load($subscription_id);
if (!$subscription) {
return JobResult::failure('Subscription not found.');
}
if (!in_array($subscription
->getState()
->getId(), [
'pending',
'trial',
], TRUE)) {
return JobResult::failure(sprintf('Unsupported subscription status. Supported statuses: ("trial", "pending"), Actual: "%s").', $subscription
->getState()
->getId()));
}
$subscription
->getState()
->applyTransitionById('activate');
$subscription
->save();
$this->recurringOrderManager
->startRecurring($subscription);
return JobResult::success();
}
}