PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.14.2
GiveWP – Donation Plugin and Fundraising Platform v4.14.2
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 / Campaigns / resources / utils.ts
give / src / Campaigns / resources Last commit date
admin 7 months ago editor 1 year ago hooks 1 year ago store 1 year ago views 1 year ago types.ts 1 year ago utils.ts 7 months ago
utils.ts
113 lines
1 import { useEntityRecord } from '@wordpress/core-data';
2 import { Campaign } from '@givewp/campaigns/admin/components/types';
3 import type { GiveCampaignOptions } from '@givewp/campaigns/types';
4 import apiFetch from '@wordpress/api-fetch';
5
6 declare const window: {
7 GiveCampaignOptions: GiveCampaignOptions;
8 } & Window;
9
10 /**
11 * @since 4.13.1 Return "record" instead of "campaign"
12 * @since 4.0.0
13 */
14 export function useCampaignEntityRecord(campaignId?: number) {
15 const urlParams = new URLSearchParams(window.location.search);
16
17 const {
18 record: campaign,
19 hasResolved,
20 isResolving,
21 save,
22 edit,
23 }: {
24 record: Campaign;
25 hasResolved: boolean;
26 isResolving: boolean;
27 save: () => any;
28 edit: (data: Campaign | Partial<Campaign>) => void;
29 } = useEntityRecord('givewp', 'campaign', campaignId ?? urlParams.get('id'));
30
31 return { record: campaign, hasResolved, isResolving, save, edit };
32 }
33
34 /**
35 * @since 4.0.0
36 */
37 export function getCampaignOptionsWindowData(): GiveCampaignOptions {
38 return window.GiveCampaignOptions;
39 }
40
41 export function handleTooltipDismiss(id: string) {
42 return apiFetch({
43 url: window.GiveCampaignOptions.adminUrl + '/admin-ajax.php?action=' + id,
44 method: 'POST',
45 })
46 }
47
48 /**
49 * @since 4.0.0
50 */
51 export function amountFormatter(currency: Intl.NumberFormatOptions['currency'], options?: Intl.NumberFormatOptions): Intl.NumberFormat {
52 return new Intl.NumberFormat(navigator.language, {
53 style: 'currency',
54 currency: currency,
55 ...options
56 });
57 }
58
59 /**
60 * @since 4.0.0
61 */
62 export async function updateUserNoticeOptions(metaKey: string) {
63 try {
64 const currentUser = await apiFetch({ path: '/wp/v2/users/me' });
65 // @ts-ignore
66 const currentUserId = currentUser?.id;
67
68 return await wp.data.dispatch('core').saveEntityRecord('root', 'user', {
69 id: currentUserId,
70 meta: {
71 [metaKey]: true
72 }
73 });
74 } catch (error) {
75 console.error('Error updating user meta:', error);
76 }
77 }
78
79 /**
80 * @since 4.0.0
81 */
82 export async function createCampaignPage(campaignId: number) {
83 try {
84 const response = await apiFetch({
85 path: `/givewp/v3/campaigns/${campaignId}/page`,
86 method: 'POST'
87 });
88
89 return response as {
90 id: number,
91 };
92 } catch (error) {
93 console.error('Error creating Campaign page:', error);
94 }
95 }
96
97 /**
98 * @since 4.13.1
99 */
100 export async function updateCampaignStatus(campaignId: number, status: 'archived' | 'active') {
101 try {
102 const response = await apiFetch({
103 path: `/givewp/v3/campaigns/${campaignId}`,
104 method: 'PUT',
105 data: { status }
106 });
107
108 return response as Campaign;
109 } catch (error) {
110 console.error('Error updating campaign status:', error);
111 }
112 }
113