PluginProbe ʕ •ᴥ•ʔ
Auto Post Cleaner / 3.13.1
Auto Post Cleaner v3.13.1
3.12.0 3.13.1 3.2.4 3.2.5 3.3.0 3.3.10 3.3.11 3.3.8 3.4.2 3.5.3 3.6.0 3.7.0 3.7.1 3.7.2 3.7.3 3.7.5 3.7.6 3.8.0 3.9.0 3.9.4 3.9.6 3.9.7 trunk 3.0.0 3.1.0 3.10.1 3.10.2 3.11.4
delete-old-posts-programmatically / freemius / includes / entities / class-fs-payment.php
delete-old-posts-programmatically / freemius / includes / entities Last commit date
class-fs-affiliate-terms.php 3 years ago class-fs-affiliate.php 5 years ago class-fs-billing.php 5 years ago class-fs-entity.php 5 years ago class-fs-payment.php 5 months ago class-fs-plugin-info.php 5 years ago class-fs-plugin-license.php 2 years ago class-fs-plugin-plan.php 8 months ago class-fs-plugin-tag.php 11 months ago class-fs-plugin.php 3 years ago class-fs-pricing.php 5 years ago class-fs-scope-entity.php 5 years ago class-fs-site.php 5 months ago class-fs-subscription.php 5 years ago class-fs-user.php 1 year ago index.php 5 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 }