PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.31.0
GiveWP – Donation Plugin and Fundraising Platform v2.31.0
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 / TestData / Addons / CurrencySwitcher / CurrencySwitcher.php
give / src / TestData / Addons / CurrencySwitcher Last commit date
CurrencySwitcher.php 4 years ago ServiceProvider.php 4 years ago
CurrencySwitcher.php
81 lines
1 <?php
2
3 namespace Give\TestData\Addons\CurrencySwitcher;
4
5 use Exception;
6 use Give\TestData\Framework\MetaRepository;
7
8 class CurrencySwitcher
9 {
10
11 /**
12 * @param $currency
13 *
14 * @return float
15 */
16 public function getCurrencyExchangeRate($currency)
17 {
18 $rates = give_get_option('cs_exchange_rates', []);
19
20 if (array_key_exists($currency, $rates)) {
21 return $rates[$currency]['exchange_rate'];
22 }
23
24 return 0.0;
25 }
26
27 /**
28 * @param int $donationID
29 * @param array $donation
30 */
31 public function addDonationCurrencyMeta($donationID, $donation)
32 {
33 // Bail out if donation currency is equal to default currency
34 if ($donation['payment_currency'] === give_get_currency()) {
35 return;
36 }
37
38 global $wpdb;
39
40 // Start DB transaction
41 $wpdb->query('START TRANSACTION');
42
43 try {
44 $exchangeRate = $this->getCurrencyExchangeRate($donation['payment_currency']);
45 $baseAmount = round($donation['payment_total'] / $exchangeRate, 6);
46
47 // Update donation meta
48 $metaRepository = new MetaRepository('give_donationmeta', 'donation_id');
49 $metaRepository->persist(
50 $donationID,
51 [
52 '_give_cs_base_currency' => give_get_currency(),
53 '_give_cs_exchange_rate' => $exchangeRate,
54 '_give_cs_enabled' => 'enabled',
55 '_give_cs_base_amount' => $baseAmount,
56 ]
57 );
58
59 $wpdb->query('COMMIT');
60 } catch (Exception $e) {
61 $wpdb->query('ROLLBACK');
62 }
63 }
64
65 /**
66 * @param array $donation
67 * @param array $params
68 *
69 * @return array
70 */
71 public function setDonationCurrency($donation, $params)
72 {
73 if (isset($params['donation_currency'])) {
74 $donation['payment_currency'] = $params['donation_currency'];
75 }
76
77 return $donation;
78 }
79
80 }
81