PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.14.2
GiveWP – Donation Plugin and Fundraising Platform v4.14.2
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 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.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / API / REST / V3 / Routes / Subscriptions / Actions / GetSubscriptionItemSchema.php
give / src / API / REST / V3 / Routes / Subscriptions / Actions Last commit date
GetSubscriptionCollectionParams.php 9 months ago GetSubscriptionItemSchema.php 8 months ago GetSubscriptionSharedParamsForGetMethods.php 9 months ago
GetSubscriptionItemSchema.php
209 lines
1 <?php
2
3 namespace Give\API\REST\V3\Routes\Subscriptions\Actions;
4
5 use Give\Subscriptions\ValueObjects\SubscriptionPeriod;
6 use Give\Subscriptions\ValueObjects\SubscriptionStatus;
7
8 /**
9 * @since 4.8.0
10 */
11 class GetSubscriptionItemSchema
12 {
13 /**
14 * @since 4.10.0 added campaignId
15 * @since 4.8.0
16 */
17 public function __invoke(): array
18 {
19 return [
20 '$schema' => 'http://json-schema.org/draft-04/schema#',
21 'title' => 'givewp/subscription',
22 'description' => esc_html__('Subscription routes for CRUD operations', 'give'),
23 'type' => 'object',
24 'properties' => [
25 'id' => [
26 'type' => 'integer',
27 'description' => esc_html__('Subscription ID', 'give'),
28 ],
29 'mode' => [
30 'type' => 'string',
31 'description' => esc_html__('Subscription mode (live or test)', 'give'),
32 'default' => 'live',
33 'enum' => ['live', 'test'],
34 ],
35 'campaignId' => [
36 'type' => 'integer',
37 'description' => esc_html__('Campaign ID', 'give'),
38 'nullable' => true,
39 ],
40 'donationFormId' => [
41 'type' => 'integer',
42 'description' => esc_html__('Donation form ID', 'give'),
43 'required' => true,
44 ],
45 'donorId' => [
46 'type' => 'integer',
47 'description' => esc_html__('Donor ID. Returns 0 for anonymous donors when data is redacted.', 'give'),
48 'required' => true,
49 ],
50 'firstName' => [
51 'type' => 'string',
52 'description' => esc_html__('Donor first name. Returns "anonymous" for anonymous donors when data is redacted.', 'give'),
53 'format' => 'text-field',
54 ],
55 'lastName' => [
56 'type' => 'string',
57 'description' => esc_html__('Donor last name. Returns "anonymous" for anonymous donors when data is redacted.', 'give'),
58 'format' => 'text-field',
59 ],
60 'amount' => [
61 'type' => 'object',
62 'properties' => [
63 'value' => [
64 'type' => 'number',
65 'description' => esc_html__('Amount in decimal format', 'give'),
66 ],
67 'valueInMinorUnits' => [
68 'type' => 'integer',
69 'description' => esc_html__('Amount in minor units (cents)', 'give'),
70 ],
71 'currency' => [
72 'type' => 'string',
73 'format' => 'text-field',
74 'description' => esc_html__('Currency code (e.g., USD, EUR)', 'give'),
75 ],
76 ],
77 'description' => esc_html__('Subscription amount', 'give'),
78 'required' => true,
79 ],
80 'feeAmountRecovered' => [
81 'type' => ['object', 'null'],
82 'properties' => [
83 'value' => [
84 'type' => 'number',
85 'description' => esc_html__('Fee amount in decimal format', 'give'),
86 ],
87 'valueInMinorUnits' => [
88 'type' => 'integer',
89 'description' => esc_html__('Fee amount in minor units (cents)', 'give'),
90 ],
91 'currency' => [
92 'type' => 'string',
93 'format' => 'text-field',
94 'description' => esc_html__('Currency code (e.g., USD, EUR)', 'give'),
95 ],
96 ],
97 'description' => esc_html__('Fee amount recovered', 'give'),
98 ],
99 'status' => [
100 'type' => 'string',
101 'description' => esc_html__('Subscription status', 'give'),
102 'enum' => ['any', ...array_values(SubscriptionStatus::toArray())],
103 'required' => true,
104 ],
105 'period' => [
106 'type' => 'string',
107 'description' => esc_html__('Subscription billing period', 'give'),
108 'enum' => array_values(SubscriptionPeriod::toArray()),
109 'required' => true,
110 ],
111 'frequency' => [
112 'type' => 'integer',
113 'description' => esc_html__('Billing frequency', 'give'),
114 'required' => true,
115 ],
116 'installments' => [
117 'type' => 'integer',
118 'description' => esc_html__('Number of installments (0 for unlimited)', 'give'),
119 'default' => 0,
120 ],
121 'transactionId' => [
122 'type' => ['string', 'null'],
123 'description' => esc_html__('Transaction ID. Returns empty string when sensitive data is excluded.', 'give'),
124 'format' => 'text-field',
125 ],
126 'gatewaySubscriptionId' => [
127 'type' => ['string', 'null'],
128 'description' => esc_html__('Gateway subscription ID. Returns empty string when sensitive data is excluded.', 'give'),
129 'format' => 'text-field',
130 ],
131 'gatewayId' => [
132 'type' => 'string',
133 'description' => esc_html__('Payment gateway ID', 'give'),
134 'format' => 'text-field',
135 'required' => true,
136 ],
137 'gateway' => [
138 'type' => ['object', 'null'],
139 'properties' => [
140 'id' => [
141 'type' => 'string',
142 'description' => esc_html__('Gateway ID', 'give'),
143 ],
144 'name' => [
145 'type' => 'string',
146 'description' => esc_html__('Gateway name', 'give'),
147 ],
148 'label' => [
149 'type' => 'string',
150 'description' => esc_html__('Payment method label', 'give'),
151 ],
152 'subscriptionUrl' => [
153 'type' => 'string',
154 'format' => 'uri',
155 'description' => esc_html__('Gateway dashboard subscription URL', 'give'),
156 ],
157 'canSync' => [
158 'type' => 'boolean',
159 'description' => esc_html__('Whether the gateway supports transaction synchronization', 'give'),
160 ],
161 ],
162 'description' => esc_html__('Payment gateway details. Returns null when gateway is not available or not registered.', 'give'),
163 'readonly' => true,
164 ],
165 'createdAt' => [
166 'type' => ['string', 'null'],
167 'description' => sprintf(
168 /* translators: %s: WordPress documentation URL */
169 esc_html__('Subscription creation date in ISO 8601 format. Follows WordPress REST API date format standards. See %s for more information.', 'give'),
170 '<a href="https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#format" target="_blank">WordPress REST API Date and Time</a>'
171 ),
172 'format' => 'date-time',
173 'example' => '2025-09-02T20:27:02',
174 ],
175 'renewsAt' => [
176 'type' => ['string', 'null'],
177 'description' => sprintf(
178 /* translators: %s: WordPress documentation URL */
179 esc_html__('Next renewal date in ISO 8601 format. Follows WordPress REST API date format standards. See %s for more information.', 'give'),
180 '<a href="https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#format" target="_blank">WordPress REST API Date and Time</a>'
181 ),
182 'format' => 'date-time',
183 'example' => '2025-09-02T20:27:02',
184 ],
185 'projectedAnnualRevenue' => [
186 'type' => 'object',
187 'properties' => [
188 'value' => [
189 'type' => 'number',
190 'description' => esc_html__('Projected annual revenue in decimal format', 'give'),
191 ],
192 'valueInMinorUnits' => [
193 'type' => 'integer',
194 'description' => esc_html__('Projected annual revenue in minor units (cents)', 'give'),
195 ],
196 'currency' => [
197 'type' => 'string',
198 'format' => 'text-field',
199 'description' => esc_html__('Currency code (e.g., USD, EUR)', 'give'),
200 ],
201 ],
202 'description' => esc_html__('Projected annual revenue for this subscription', 'give'),
203 'readonly' => true,
204 ],
205 ],
206 ];
207 }
208 }
209