3 final class PhortuneSubscriptionCart
4 extends PhortuneCartImplementation
{
6 private $subscriptionPHID;
9 public function setSubscriptionPHID($subscription_phid) {
10 $this->subscriptionPHID
= $subscription_phid;
14 public function getSubscriptionPHID() {
15 return $this->subscriptionPHID
;
18 public function setSubscription(PhortuneSubscription
$subscription) {
19 $this->subscription
= $subscription;
23 public function getSubscription() {
24 return $this->subscription
;
27 public function getName(PhortuneCart
$cart) {
28 return $this->getSubscription()->getCartName($cart);
31 public function willCreateCart(
32 PhabricatorUser
$viewer,
35 $subscription = $this->getSubscription();
37 throw new PhutilInvalidStateException('setSubscription');
40 $cart->setMetadataValue('subscriptionPHID', $subscription->getPHID());
43 public function loadImplementationsForCarts(
44 PhabricatorUser
$viewer,
48 foreach ($carts as $cart) {
49 $phids[] = $cart->getMetadataValue('subscriptionPHID');
52 $subscriptions = id(new PhortuneSubscriptionQuery())
56 $subscriptions = mpull($subscriptions, null, 'getPHID');
59 foreach ($carts as $key => $cart) {
60 $subscription_phid = $cart->getMetadataValue('subscriptionPHID');
61 $subscription = idx($subscriptions, $subscription_phid);
66 $object = id(new PhortuneSubscriptionCart())
67 ->setSubscriptionPHID($subscription_phid)
68 ->setSubscription($subscription);
70 $objects[$key] = $object;
76 public function getCancelURI(PhortuneCart
$cart) {
77 return $this->getSubscription()->getURI();
80 public function getDoneURI(PhortuneCart
$cart) {
81 return $this->getSubscription()->getURI();
84 public function getDoneActionName(PhortuneCart
$cart) {
85 return pht('Return to Subscription');