PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.14.6
GiveWP – Donation Plugin and Fundraising Platform v4.14.6
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 / Subscriptions / resources / hooks / useSubscriptionSync.tsx
give / src / Subscriptions / resources / hooks Last commit date
index.ts 9 months ago useDonationsBySubscription.ts 9 months ago useSubscriptionAmounts.ts 9 months ago useSubscriptionCancel.ts 9 months ago useSubscriptionSync.tsx 9 months ago
useSubscriptionSync.tsx
78 lines
1 import { useState } from "react";
2 import { getSubscriptionOptionsWindowData } from "../utils";
3
4 export interface SubscriptionSyncResponse {
5 details: SyncDetails;
6 missingTransactions: SyncTransaction[];
7 presentTransactions: SyncTransaction[];
8 notice: string;
9 }
10
11 export interface SyncDetails {
12 currentStatus: string;
13 gatewayStatus: string;
14 currentPeriod: string;
15 gatewayPeriod: string;
16 currentCreatedAt: string;
17 gatewayCreatedAt: string;
18 }
19
20 export interface SyncTransaction {
21 id: number;
22 gatewayTransactionId: string;
23 amount: string;
24 createdAt: string;
25 status: string;
26 type: 'renewal' | 'subscription';
27 }
28
29 /**
30 * @since 4.8.0
31 */
32 export default function useSubscriptionSync() {
33 const { syncSubscriptionNonce } = getSubscriptionOptionsWindowData();
34
35 const [isLoading, setIsLoading] = useState(false);
36 const [hasResolved, setHasResolved] = useState(false);
37 const [syncResult, setSyncResult] = useState<SubscriptionSyncResponse | null>(null);
38
39 const syncSubscription = async (subscription: any) => {
40 setIsLoading(true);
41 setHasResolved(false);
42
43 try {
44 const response = await fetch('/wp-admin/admin-ajax.php', {
45 method: 'POST',
46 headers: {
47 'Content-Type': 'application/x-www-form-urlencoded',
48 },
49 body: new URLSearchParams({
50 action: 'give_recurring_sync_subscription_details',
51 subscription_id: String(subscription?.id),
52 'give-form-id': String(subscription?.donationFormId),
53 security: syncSubscriptionNonce,
54 }),
55 });
56
57 const json = await response.json();
58
59 setSyncResult(json?.data);
60 setHasResolved(true);
61 return json?.data;
62 } catch (error) {
63 console.error('Sync failed:', error);
64 setHasResolved(false);
65 throw error;
66 } finally {
67 setIsLoading(false);
68 }
69 };
70
71 return {
72 syncSubscription,
73 isLoading,
74 hasResolved,
75 syncResult: syncResult,
76 };
77 }
78