PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.7
GiveWP – Donation Plugin and Fundraising Platform v2.19.7
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 / DonationForms / Repositories / DonationFormsRepository.php
give / src / DonationForms / Repositories Last commit date
DonationFormsRepository.php 4 years ago
DonationFormsRepository.php
124 lines
1 <?php
2
3 namespace Give\DonationForms\Repositories;
4
5 use Give\Framework\Database\DB;
6 use WP_REST_Request;
7
8 /**
9 * @since 2.19.0
10 */
11 class DonationFormsRepository
12 {
13 /**
14 * @param WP_REST_Request $request
15 *
16 * @return array
17 */
18 public function getFormsForRequest(WP_REST_Request $request)
19 {
20 $page = $request->get_param('page');
21 $perPage = $request->get_param('perPage');
22 $search = $request->get_param('search');
23 $status = $request->get_param('status');
24
25 $query = DB::table('posts')
26 ->select(
27 ['ID', 'id'],
28 ['post_date', 'createdAt'],
29 ['post_date_gmt', 'createdAtGmt'],
30 ['post_status', 'status'],
31 ['post_title', 'title']
32 )
33 ->attachMeta('give_formmeta', 'id', 'form_id',
34 ['_give_form_earnings', 'revenue'],
35 ['_give_donation_levels', 'donationLevels'],
36 ['_give_set_price', 'setPrice'],
37 ['_give_goal_option', 'goalEnabled']
38 )
39 ->where('post_type', 'give_forms')
40 ->limit($perPage)
41 ->orderBy('id', 'DESC')
42 ->offset(($page - 1) * $perPage);
43
44 // Status
45 if ($status === 'any') {
46 $query->whereIn('post_status', ['publish', 'draft', 'pending']);
47 } else {
48 $query->where('post_status', $status);
49 }
50
51 // Search
52 if ($search) {
53 if (ctype_digit($search)) {
54 $query->where('ID', $search);
55 } else {
56 $searchTerms = array_map('trim', explode(' ', $search));
57 foreach ($searchTerms as $term)
58 {
59 if ($term)
60 {
61 $query->whereLike('post_title', $term);
62 }
63 }
64 }
65 }
66
67 return $query->getAll();
68 }
69
70 /**
71 * @param WP_REST_Request $request
72 *
73 * @return int
74 */
75 public function getTotalFormsCountForRequest(WP_REST_Request $request)
76 {
77 $search = $request->get_param('search');
78 $status = $request->get_param('status');
79 $perPage = $request->get_param('perPage');
80
81 $query = DB::table('posts')
82 ->selectRaw('SELECT COUNT(ID) AS count')
83 ->where('post_type', 'give_forms');
84
85 if ($status === 'any') {
86 $query->whereIn('post_status', ['publish', 'draft', 'pending']);
87 } else {
88 $query->where('post_status', $status);
89 }
90
91 if ($search) {
92 if (ctype_digit($search)) {
93 $query->where('ID', $search);
94 } else {
95 $query->whereLike('post_title', $search);
96 }
97 }
98
99 $query->limit($perPage);
100
101 $total = $query->get();
102
103 return $total->count;
104 }
105
106 /**
107 * @param int $formId
108 *
109 * @return int
110 */
111 public function getFormDonationsCount($formId)
112 {
113 $donations = DB::table('posts')
114 ->selectRaw('SELECT COUNT(ID) as count')
115 ->leftJoin('give_donationmeta', 'ID', 'donation_id')
116 ->where('meta_key', '_give_payment_form_id')
117 ->where('meta_value', $formId)
118 ->get();
119
120
121 return $donations->count;
122 }
123 }
124