PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.19.4
GiveWP – Donation Plugin and Fundraising Platform v3.19.4
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 / PaymentGateways / PayPalCommerce / Repositories / Settings.php
give / src / PaymentGateways / PayPalCommerce / Repositories Last commit date
Traits 2 years ago MerchantDetails.php 2 years ago PayPalAuth.php 2 years ago PayPalOrder.php 2 years ago Settings.php 2 years ago Webhooks.php 2 years ago
Settings.php
204 lines
1 <?php
2
3 namespace Give\PaymentGateways\PayPalCommerce\Repositories;
4
5 use Give\PaymentGateways\PayPalCommerce\Repositories\Traits\HasMode;
6 use Give\PaymentGateways\PayPalCommerce\Utils;
7
8 class Settings
9 {
10 use HasMode;
11
12 /**
13 * wp_options key for the account country
14 *
15 * @since 2.9.0
16 */
17 const COUNTRY_KEY = 'paypal_commerce_account_country';
18
19 /**
20 * wp_options key for the seller access token
21 *
22 * @since 2.9.0
23 */
24 const ACCESS_TOKEN_KEY = 'temp_give_paypal_commerce_seller_access_token';
25
26 /**
27 * wp_options key for the partner link details
28 *
29 * @since 2.9.0
30 */
31 const PARTNER_LINK_DETAIL_KEY = 'temp_give_paypal_commerce_partner_link';
32
33 /**
34 * give_settings key for the collect bulling details
35 *
36 * @since 2.11.1
37 */
38 const COLLECT_BILLING_DETAILS_KEY = 'paypal_commerce_collect_billing_details';
39
40 /**
41 * give_settings key for the collect bulling details
42 *
43 * @since 2.16.2
44 */
45 const TRANSACTION_TYPE = 'paypal_commerce_transaction_type';
46
47 /**
48 * Returns the country for the account
49 *
50 * @since 2.9.0
51 */
52 public function getAccountCountry(): string
53 {
54 return get_option(self::COUNTRY_KEY, give_get_country()) ?? '';
55 }
56
57 /**
58 * Returns the PayPal merchant seller access token.
59 *
60 * @since 2.9.0
61 *
62 * @return array|null
63 */
64 public function getAccessToken()
65 {
66 return get_option(self::ACCESS_TOKEN_KEY, null);
67 }
68
69 /**
70 * Returns the account access token
71 *
72 * @since 3.0.0 Set transaction type to "standard" if the country is not supported.
73 * @since 2.9.0
74 */
75 public function getTransactionType(): string
76 {
77 return Utils::isDonationTransactionTypeSupported($this->getAccountCountry())
78 ? give_get_option(self::TRANSACTION_TYPE, 'donation')
79 : 'standard';
80 }
81
82 /**
83 * Updates the country account
84 *
85 * @param string $country
86 *
87 * @return bool
88 */
89 public function updateAccountCountry($country)
90 {
91 return update_option(self::COUNTRY_KEY, $country);
92 }
93
94 /**
95 * Updates the PayPal merchant seller access token.
96 *
97 * @param $token
98 *
99 * @return bool
100 */
101 public function updateAccessToken($token)
102 {
103 return update_option(self::ACCESS_TOKEN_KEY, $token);
104 }
105
106 /**
107 * Deletes the PayPal seller access token.
108 *
109 * @since 2.9.0
110 *
111 * @return bool
112 */
113 public function deleteAccessToken()
114 {
115 return delete_option(self::ACCESS_TOKEN_KEY);
116 }
117
118 /**
119 * Returns the partner link details
120 *
121 * @since 2.9.0
122 *
123 * @return string|null
124 */
125 public function getPartnerLinkDetails()
126 {
127 return get_option(self::PARTNER_LINK_DETAIL_KEY, null);
128 }
129
130 /**
131 * Updates the partner link details
132 *
133 * @param $linkDetails
134 *
135 * @return bool
136 */
137 public function updatePartnerLinkDetails($linkDetails)
138 {
139 return update_option(self::PARTNER_LINK_DETAIL_KEY, $linkDetails);
140 }
141
142 /**
143 * Deletes the partner link details
144 *
145 * @return bool
146 */
147 public function deletePartnerLinkDetails()
148 {
149 return delete_option(self::PARTNER_LINK_DETAIL_KEY);
150 }
151
152 /**
153 * Updates the partner link details
154 *
155 * @since 2.25.0
156 */
157 public function updateSellerAccessToken(array $sellerAccessToken): bool
158 {
159 return update_option($this->getSellerAccessTokenOptionName(), $sellerAccessToken);
160 }
161
162 /**
163 * Updates the partner link details
164 *
165 * @since 2.25.0
166 */
167 public function deleteSellerAccessToken(): bool
168 {
169 return delete_option($this->getSellerAccessTokenOptionName());
170 }
171
172 /**
173 * Deletes the partner link details
174 *
175 * @since 2.11.1
176 * @return bool
177 */
178 public function canCollectBillingInformation()
179 {
180 return give_is_setting_enabled(give_get_option(self::COLLECT_BILLING_DETAILS_KEY));
181 }
182
183 /**
184 * @since 2.16.2
185 */
186 public function isTransactionTypeDonation()
187 {
188 return 'donation' === $this->getTransactionType();
189 }
190
191 /**
192 * This function returns the seller access token option name
193 *
194 * @since 2.25.0
195 */
196 private function getSellerAccessTokenOptionName(): string
197 {
198 return sprintf(
199 'give_paypal_commerce_%s_seller_access_token',
200 $this->getMode()
201 );
202 }
203 }
204