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