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 / Stripe / ApplicationFee.php
give / src / PaymentGateways / Stripe Last commit date
Admin 3 years ago Controllers 2 years ago DataTransferObjects 3 years ago Exceptions 4 years ago Models 3 years ago Repositories 4 years ago Traits 4 years ago ApplicationFee.php 4 years ago DonationFormElements.php 4 years ago DonationFormSettingPage.php 4 years ago
ApplicationFee.php
113 lines
1 <?php
2
3 namespace Give\PaymentGateways\Stripe;
4
5 use Give\PaymentGateways\Stripe\Models\AccountDetail as AccountDetailModel;
6 use Give_License;
7
8 /**
9 * Class ApplicationFee
10 * @package Give\PaymentGateways\Stripe
11 *
12 * @see https://github.com/impress-org/givewp/issues/5555#issuecomment-759596226
13 *
14 * @since 2.10.2
15 */
16 class ApplicationFee
17 {
18 /**
19 * Slug of the Stripe add-on on GiveWP.com
20 */
21 const PluginSlug = 'give-stripe';
22
23 /**
24 * Name of the Stripe add-on on GiveWP.com
25 */
26 const PluginName = 'Give - Stripe Gateway';
27
28 /**
29 * @var AccountDetailModel
30 */
31 private $accountDetail;
32
33 /**
34 * ApplicationFee constructor.
35 *
36 * @param AccountDetailModel $accountDetail
37 */
38 public function __construct(AccountDetailModel $accountDetail)
39 {
40 $this->accountDetail = $accountDetail;
41 }
42
43 /**
44 * Returns true or false based on whether the Stripe fee should be applied or not
45 *
46 * @since 2.10.2
47 * @return bool
48 */
49 public static function canAddFee()
50 {
51 /* @var self $gate */
52 $gate = give(static::class);
53
54 return $gate->doesCountrySupportApplicationFee()
55 && ! ($gate->isStripeProAddonActive() || $gate->isStripeProAddonInstalled(
56 get_plugins()
57 ) || $gate->hasLicense());
58 }
59
60 /**
61 * Returns true or false based on whether the Stripe Pro add-on is activated
62 *
63 * @since 2.10.2
64 *
65 * @return bool
66 */
67 public function isStripeProAddonActive()
68 {
69 return defined('GIVE_STRIPE_VERSION');
70 }
71
72 /**
73 * Returns true or false based on whether the plugin is installed (but not necessarily active)
74 *
75 * @param array $plugins Array of arrays of plugin data, keyed by plugin file name. See get_plugin_data().
76 *
77 * @return bool
78 */
79 public function isStripeProAddonInstalled(array $plugins)
80 {
81 return (bool)array_filter(
82 $plugins,
83 static function ($plugin) {
84 return static::PluginName === $plugin['Name'];
85 }
86 );
87 }
88
89 /**
90 * Returns true or false based on whether a license has been provided for the Stripe add-on
91 *
92 * @since 2.10.2
93 *
94 * @return bool
95 */
96 public function hasLicense()
97 {
98 return (bool)Give_License::get_license_by_plugin_dirname(static::PluginSlug);
99 }
100
101 /**
102 * Return whether or not country support application fee.
103 *
104 * @since 2.10.2
105 *
106 * @return bool
107 */
108 public function doesCountrySupportApplicationFee()
109 {
110 return 'BR' !== $this->accountDetail->accountCountry;
111 }
112 }
113