PluginProbe ʕ •ᴥ•ʔ
Photo Gallery by FooGallery : Responsive Image Gallery, Masonry Gallery & Carousel / trunk
Photo Gallery by FooGallery : Responsive Image Gallery, Masonry Gallery & Carousel vtrunk
trunk 1.10.3 2.0.24 2.1.34 2.2.44 2.3.3 2.4.32 3.0.6 3.1.11 3.1.12 3.1.13 3.1.20 3.1.25 3.1.26 3.1.26.1 3.1.26.2
foogallery / freemius / includes / entities / class-fs-payment.php
foogallery / freemius / includes / entities Last commit date
class-fs-affiliate-terms.php 3 years ago class-fs-affiliate.php 3 years ago class-fs-billing.php 3 years ago class-fs-entity.php 3 years ago class-fs-payment.php 7 months ago class-fs-plugin-info.php 3 years ago class-fs-plugin-license.php 7 months ago class-fs-plugin-plan.php 7 months ago class-fs-plugin-tag.php 7 months ago class-fs-plugin.php 3 years ago class-fs-pricing.php 3 years ago class-fs-scope-entity.php 3 years ago class-fs-site.php 7 months ago class-fs-subscription.php 3 years ago class-fs-user.php 7 months ago index.php 3 years ago
class-fs-payment.php
169 lines
1 <?php
2 /**
3 * @package Freemius
4 * @copyright Copyright (c) 2016, Freemius, Inc.
5 * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6 * @since 1.0.0
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit;
11 }
12
13 class FS_Payment extends FS_Entity {
14
15 #region Properties
16
17 /**
18 * @var number
19 */
20 public $plugin_id;
21 /**
22 * @var number
23 */
24 public $user_id;
25 /**
26 * @var number
27 */
28 public $install_id;
29 /**
30 * @var number
31 */
32 public $subscription_id;
33 /**
34 * @var number
35 */
36 public $plan_id;
37 /**
38 * @var number
39 */
40 public $license_id;
41 /**
42 * @var float
43 */
44 public $gross;
45 /**
46 * @author Leo Fajardo (@leorw)
47 * @since 2.3.0
48 *
49 * @var string One of the following: `usd`, `gbp`, `eur`.
50 */
51 public $currency;
52 /**
53 * @var number
54 */
55 public $bound_payment_id;
56 /**
57 * @var string
58 */
59 public $external_id;
60 /**
61 * @var string
62 */
63 public $gateway;
64 /**
65 * @var string ISO 3166-1 alpha-2 - two-letter country code.
66 *
67 * @link http://www.wikiwand.com/en/ISO_3166-1_alpha-2
68 */
69 public $country_code;
70 /**
71 * @var string
72 */
73 public $vat_id;
74 /**
75 * @var float Actual Tax / VAT in $$$
76 */
77 public $vat;
78 /**
79 * @var int Payment source.
80 */
81 public $source = 0;
82
83 #endregion Properties
84
85 const CURRENCY_USD = 'usd';
86 const CURRENCY_GBP = 'gbp';
87 const CURRENCY_EUR = 'eur';
88
89 /**
90 * @param object|bool $payment
91 */
92 function __construct( $payment = false ) {
93 parent::__construct( $payment );
94 }
95
96 static function get_type() {
97 return 'payment';
98 }
99
100 /**
101 * @author Vova Feldman (@svovaf)
102 * @since 1.0.0
103 *
104 * @return bool
105 */
106 function is_refund() {
107 return ( parent::is_valid_id( $this->bound_payment_id ) && 0 > $this->gross );
108 }
109
110 /**
111 * Checks if the payment was migrated from another platform.
112 *
113 * @author Vova Feldman (@svovaf)
114 * @since 2.0.2
115 *
116 * @return bool
117 */
118 function is_migrated() {
119 return ( 0 != $this->source );
120 }
121
122 /**
123 * Returns the gross in this format:
124 * `{symbol}{amount | 2 decimal digits} {currency | uppercase}`
125 *
126 * Examples: £9.99 GBP, -£9.99 GBP.
127 *
128 * @author Leo Fajardo (@leorw)
129 * @since 2.3.0
130 *
131 * @return string
132 */
133 function formatted_gross()
134 {
135 $price = $this->gross + $this->vat;
136 return (
137 ( $price < 0 ? '-' : '' ) .
138 $this->get_symbol() .
139 number_format( abs( $price ), 2, '.', ',' ) . ' ' .
140 strtoupper( $this->currency )
141 );
142 }
143
144 /**
145 * A map between supported currencies with their symbols.
146 *
147 * @var array<string,string>
148 */
149 static $CURRENCY_2_SYMBOL;
150
151 /**
152 * @author Leo Fajardo (@leorw)
153 * @since 2.3.0
154 *
155 * @return string
156 */
157 private function get_symbol() {
158 if ( ! isset( self::$CURRENCY_2_SYMBOL ) ) {
159 // Lazy load.
160 self::$CURRENCY_2_SYMBOL = array(
161 self::CURRENCY_USD => '$',
162 self::CURRENCY_GBP => '&pound;',
163 self::CURRENCY_EUR => '&euro;',
164 );
165 }
166
167 return self::$CURRENCY_2_SYMBOL[ $this->currency ];
168 }
169 }