PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.5
GiveWP – Donation Plugin and Fundraising Platform v4.16.5
4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 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 / Donations / resources / hooks / useResendReceipt.tsx
give / src / Donations / resources / hooks Last commit date
index.ts 1 year ago useDonationAmounts.ts 1 year ago useDonationRefund.ts 1 year ago useResendReceipt.tsx 1 year ago
useResendReceipt.tsx
58 lines
1 import { useState } from 'react';
2 import { __ } from '@wordpress/i18n';
3 import { useDispatch } from '@wordpress/data';
4
5 /**
6 * @since 4.6.0
7 */
8 export default function useResendReceipt() {
9 const [loading, setLoading] = useState<boolean>(false);
10 const [message, setMessage] = useState<string | null>(__('Resend Receipt', 'give'));
11 const [hasResolved, setHasResolved] = useState<boolean>(false);
12
13 const urlParams = new URLSearchParams(window.location.search);
14 const donationId = urlParams.get('id');
15 const dispatch = useDispatch('givewp/admin-details-page-notifications');
16
17 const handleResendReceipt = async () => {
18 if (!donationId) {
19 setMessage(__('Donation ID not found.', 'give'));
20 setHasResolved(true);
21 return;
22 }
23
24 setLoading(true);
25 setMessage(__('Resending', 'give'));
26 setHasResolved(false);
27
28 try {
29 const response = await fetch('/wp-json/give-api/v2/admin/donations/resendEmailReceipt', {
30 method: 'POST',
31 headers: {
32 'Content-Type': 'application/json',
33 'X-WP-Nonce': (window as any).wpApiSettings?.nonce || '',
34 },
35 body: JSON.stringify({ ids: donationId }),
36 });
37
38 if (!response.ok) {
39 throw new Error(await response.text());
40 }
41 } catch (error: any) {
42 dispatch.addSnackbarNotice({
43 id: 'resend-receipt-error',
44 content: __('Failed to resend receipt', 'give'),
45 });
46 } finally {
47 setLoading(false);
48 setHasResolved(true);
49 dispatch.addSnackbarNotice({
50 id: 'resend-receipt',
51 content: __('Receipt has been resent successfully', 'give'),
52 });
53 }
54 };
55
56 return { loading, message, hasResolved, handleResendReceipt };
57 }
58