文件操作 - useResendReceipt.tsx
返回文件管理
返回主菜单
删除本文件
文件: /home/www/public/wp-content/plugins/give/src/Donations/resources/hooks/useResendReceipt.tsx
编辑文件内容
import { useState } from 'react'; import { __ } from '@wordpress/i18n'; import { useDispatch } from '@wordpress/data'; /** * @since 4.6.0 */ export default function useResendReceipt() { const [loading, setLoading] = useState<boolean>(false); const [message, setMessage] = useState<string | null>(__('Resend Receipt', 'give')); const [hasResolved, setHasResolved] = useState<boolean>(false); const urlParams = new URLSearchParams(window.location.search); const donationId = urlParams.get('id'); const dispatch = useDispatch('givewp/admin-details-page-notifications'); const handleResendReceipt = async () => { if (!donationId) { setMessage(__('Donation ID not found.', 'give')); setHasResolved(true); return; } setLoading(true); setMessage(__('Resending', 'give')); setHasResolved(false); try { const response = await fetch('/wp-json/give-api/v2/admin/donations/resendEmailReceipt', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-WP-Nonce': (window as any).wpApiSettings?.nonce || '', }, body: JSON.stringify({ ids: donationId }), }); if (!response.ok) { throw new Error(await response.text()); } } catch (error: any) { dispatch.addSnackbarNotice({ id: 'resend-receipt-error', content: __('Failed to resend receipt', 'give'), }); } finally { setLoading(false); setHasResolved(true); dispatch.addSnackbarNotice({ id: 'resend-receipt', content: __('Receipt has been resent successfully', 'give'), }); } }; return { loading, message, hasResolved, handleResendReceipt }; }
修改文件时间
将文件时间修改为当前时间的前一年
删除文件