PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.9.1
GiveWP – Donation Plugin and Fundraising Platform v2.9.1
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 / Revenue / Repositories / Revenue.php
give / src / Revenue / Repositories Last commit date
Revenue.php 5 years ago
Revenue.php
113 lines
1 <?php
2 namespace Give\Revenue\Repositories;
3
4 use InvalidArgumentException;
5
6 /**
7 * Class Revenue
8 * @package Give\Revenue\Repositories
9 *
10 * Use this class to get data from "give_revenue" table.
11 *
12 * @since 2.9.0
13 */
14 class Revenue {
15 /**
16 * Insert revenue.
17 *
18 * @since 2.9.0
19 *
20 * @param array $revenueData
21 *
22 * @return bool|int
23 */
24 public function insert( $revenueData ) {
25 global $wpdb;
26
27 // Validate revenue data
28 $this->validateNewRevenueData( $revenueData );
29
30 /**
31 * Filter revenue data before inserting to revenue table.
32 *
33 * @since 2.9.0
34 */
35 $revenueData = apply_filters( 'give_revenue_insert_data', $revenueData );
36
37 return $wpdb->insert(
38 $wpdb->give_revenue,
39 $revenueData,
40 $this->getPlaceholderForPrepareQuery( $revenueData )
41 );
42 }
43
44 /**
45 * Validate new revenue data.
46 *
47 * @since 2.9.0
48 *
49 * @param array $array
50 */
51 protected function validateNewRevenueData( $array ) {
52 $required = [ 'donation_id', 'form_id', 'amount' ];
53
54 $array = array_filter( $array ); // Remove empty values.
55
56 if ( array_diff( $required, array_keys( $array ) ) ) {
57 throw new InvalidArgumentException(
58 sprintf(
59 'To insert revenue, please provide valid %1$s.',
60 implode( ', ', $required )
61 )
62 );
63 }
64
65 foreach ( $required as $columnName ) {
66 if ( empty( $array[ $columnName ] ) ) {
67 throw new InvalidArgumentException( 'Empty value is not allowed to create revenue.' );
68 }
69 }
70 }
71
72 /**
73 * Get placeholder for prepare query.
74 *
75 * @param array $data
76 *
77 * @return string[] Array of value format type
78 */
79 private function getPlaceholderForPrepareQuery( $data ) {
80 $format = [];
81
82 foreach ( $data as $value ) {
83 $format[] = is_numeric( $value ) ? '%d' : '%s';
84 }
85
86 return $format;
87 }
88
89 /**
90 * Return whether or not donation id exist in give_revenue table.
91 *
92 * @sicne 2.9.0
93 *
94 * @param int $donationId
95 *
96 * @return bool
97 */
98 public function isDonationExist( $donationId ) {
99 global $wpdb;
100
101 return (bool) $wpdb->get_var(
102 $wpdb->prepare(
103 "
104 SELECT donation_id
105 FROM {$wpdb->give_revenue}
106 WHERE donation_id = %d
107 ",
108 $donationId
109 )
110 );
111 }
112 }
113