PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.6
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.6
4.7.2 4.7.1 4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Abilities / Abilities / GetSubscription.php
surecart / app / src / Abilities / Abilities Last commit date
AbstractAbility.php 2 weeks ago ArchiveProduct.php 4 months ago CancelSubscription.php 4 months ago CreateCoupon.php 4 months ago CreateCustomer.php 4 months ago CreateFulfillment.php 4 months ago CreateInvoice.php 2 months ago CreatePrice.php 2 months ago CreateProduct.php 4 months ago CreatePromotion.php 4 months ago CreateRefund.php 2 months ago DeleteCoupon.php 4 months ago DeleteCustomer.php 4 months ago DeleteFulfillment.php 4 months ago DeletePromotion.php 4 months ago DuplicateProduct.php 4 months ago FilterCustomers.php 2 months ago FilterOrders.php 2 months ago FilterSubscriptions.php 2 months ago GetAbandonedCheckout.php 3 months ago GetCoupon.php 4 months ago GetCustomer.php 4 months ago GetCustomersFilterSchema.php 2 months ago GetFulfillment.php 4 months ago GetFulfillmentItem.php 4 months ago GetLicense.php 4 months ago GetOrder.php 4 months ago GetOrderStatistics.php 4 months ago GetOrdersFilterSchema.php 2 months ago GetProduct.php 4 months ago GetPromotion.php 4 months ago GetRefund.php 4 months ago GetStoreDashboard.php 4 months ago GetStoreInfo.php 4 months ago GetSubscription.php 4 months ago GetSubscriptionsFilterSchema.php 2 months ago ListAbandonedCheckouts.php 3 months ago ListCoupons.php 4 months ago ListCustomers.php 4 months ago ListFulfillments.php 4 months ago ListLicenses.php 4 months ago ListOrders.php 4 months ago ListPrices.php 4 months ago ListProducts.php 4 months ago ListPromotions.php 4 months ago ListRefunds.php 4 months ago ListSubscriptions.php 4 months ago UpdateCoupon.php 4 months ago UpdateCustomer.php 4 months ago UpdateFulfillment.php 4 months ago UpdateInvoice.php 4 months ago UpdatePrice.php 4 months ago UpdateProduct.php 4 months ago UpdatePromotion.php 4 months ago UpdateSubscriptionRenewalDate.php 4 months ago
GetSubscription.php
108 lines
1 <?php
2
3 namespace SureCart\Abilities\Abilities;
4
5 use SureCart\Models\Subscription;
6
7 /**
8 * Get a single subscription with details.
9 */
10 class GetSubscription extends AbstractAbility {
11
12 /**
13 * {@inheritDoc}
14 */
15 public function get_name(): string {
16 return 'surecart/get-subscription';
17 }
18
19 /**
20 * {@inheritDoc}
21 */
22 public function get_label(): string {
23 return __( 'Get Subscription', 'surecart' );
24 }
25
26 /**
27 * {@inheritDoc}
28 */
29 public function get_description(): string {
30 return __( 'Retrieve a single SureCart subscription by its ID, including the associated price, product, and billing details. Returns the full subscription object with related data expanded.', 'surecart' );
31 }
32
33 /**
34 * {@inheritDoc}
35 */
36 public function get_annotations(): array {
37 return array(
38 'readonly' => true,
39 'destructive' => false,
40 'idempotent' => true,
41 );
42 }
43
44 /**
45 * {@inheritDoc}
46 */
47 public function get_instructions(): string {
48 return 'Use this when you need full details about a specific subscription including its current status, billing period, and associated product/price.';
49 }
50
51 /**
52 * {@inheritDoc}
53 */
54 public function check_permission(): bool {
55 return current_user_can( 'read_sc_subscriptions' );
56 }
57
58 /**
59 * {@inheritDoc}
60 */
61 public function get_input_schema(): array {
62 return array(
63 'type' => 'object',
64 'properties' => array(
65 'id' => array(
66 'type' => 'string',
67 'description' => __( 'The subscription ID.', 'surecart' ),
68 ),
69 ),
70 'required' => array( 'id' ),
71 );
72 }
73
74 /**
75 * {@inheritDoc}
76 */
77 public function get_output_schema(): array {
78 return array(
79 'type' => 'object',
80 'properties' => array(
81 'success' => array( 'type' => 'boolean' ),
82 'subscription' => array( 'type' => 'object' ),
83 ),
84 );
85 }
86
87 /**
88 * {@inheritDoc}
89 */
90 public function execute( array $input ) {
91 $id = sanitize_text_field( $input['id'] ?? '' );
92 if ( empty( $id ) ) {
93 return $this->error( 'missing_id', __( 'A subscription ID is required.', 'surecart' ) );
94 }
95
96 $subscription = Subscription::with( array( 'price', 'price.product' ) )->find( $id );
97 if ( is_wp_error( $subscription ) ) {
98 return $subscription;
99 }
100
101 return $this->success(
102 array(
103 'subscription' => $this->model_to_array( $subscription ),
104 )
105 );
106 }
107 }
108