PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.10.4
GiveWP – Donation Plugin and Fundraising Platform v2.10.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
Models 5 years ago Repositories 5 years ago ApplicationFee.php 5 years ago DonationFormElements.php 5 years ago
ApplicationFee.php
103 lines
1 <?php
2
3 namespace Give\PaymentGateways\Stripe;
4
5 use Give_License;
6 use Give\PaymentGateways\Stripe\Models\AccountDetail as AccountDetailModel;
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 * Slug of the Stripe add-on on GiveWP.com
19 */
20 const PluginSlug = 'give-stripe';
21
22 /**
23 * Name of the Stripe add-on on GiveWP.com
24 */
25 const PluginName = 'Give - Stripe Gateway';
26
27 /**
28 * @var AccountDetailModel
29 */
30 private $accountDetail;
31
32 /**
33 * ApplicationFee constructor.
34 *
35 * @param AccountDetailModel $accountDetail
36 */
37 public function __construct( AccountDetailModel $accountDetail ) {
38 $this->accountDetail = $accountDetail;
39 }
40
41 /**
42 * Returns true or false based on whether the Stripe fee should be applied or not
43 *
44 * @since 2.10.2
45 * @return bool
46 */
47 public static function canAddFee() {
48 /* @var self $gate */
49 $gate = give( static::class );
50 return $gate->doesCountrySupportApplicationFee()
51 && ! ( $gate->isStripeProAddonActive() || $gate->isStripeProAddonInstalled( get_plugins() ) || $gate->hasLicense() );
52 }
53
54 /**
55 * Returns true or false based on whether the Stripe Pro add-on is activated
56 *
57 * @since 2.10.2
58 *
59 * @return bool
60 */
61 public function isStripeProAddonActive() {
62 return defined( 'GIVE_STRIPE_VERSION' );
63 }
64
65 /**
66 * Returns true or false based on whether the plugin is installed (but not necessarily active)
67 *
68 * @param array $plugins Array of arrays of plugin data, keyed by plugin file name. See get_plugin_data().
69 *
70 * @return bool
71 */
72 public function isStripeProAddonInstalled( array $plugins ) {
73 return (bool) array_filter(
74 $plugins,
75 static function ( $plugin ) {
76 return static::PluginName === $plugin['Name'];
77 }
78 );
79 }
80
81 /**
82 * Returns true or false based on whether a license has been provided for the Stripe add-on
83 *
84 * @since 2.10.2
85 *
86 * @return bool
87 */
88 public function hasLicense() {
89 return (bool) Give_License::get_license_by_plugin_dirname( static::PluginSlug );
90 }
91
92 /**
93 * Return whether or not country support application fee.
94 *
95 * @since 2.10.2
96 *
97 * @return bool
98 */
99 public function doesCountrySupportApplicationFee() {
100 return 'BR' !== $this->accountDetail->accountCountry;
101 }
102 }
103