PluginProbe
BlockSpare – Gutenberg Blocks, AI Content Generator & Site Builder for News, Magazine & Blogs / 5.0.1
BlockSpare – Gutenberg Blocks, AI Content Generator & Site Builder for News, Magazine & Blogs v5.0.1
5.0.1 4.1.0 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.1.0 1.1.1 1.1.2 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 2.1.2 2.5.0 2.5.3 All 39 releases
← All changes | freemius/includes/entities/class-fs-payment.php +66 -7 1.2.2 → 5.0.1 View file →
@@ -79,13 +79,24 @@
79 79 * @var int Payment source.
80 80 */
81 81 public $source = 0;
82 82
83 + /**
84 + * Presentment payment information for customer-facing currency display.
85 + *
86 + * @var object|null
87 + */
88 + public $presentment;
89 +
83 90 #endregion Properties
84 91
85 92 const CURRENCY_USD = 'usd';
86 93 const CURRENCY_GBP = 'gbp';
87 94 const CURRENCY_EUR = 'eur';
95 + const CURRENCY_ILS = 'ils';
96 + const CURRENCY_CAD = 'cad';
97 + const CURRENCY_AUD = 'aud';
98 + const CURRENCY_PLN = 'pln';
88 99
89 100 /**
90 101 * @param object|bool $payment
91 102 */
@@ -119,8 +130,46 @@
119 130 return ( 0 != $this->source );
120 131 }
121 132
122 133 /**
134 + * @return bool
135 + */
136 + private function has_presentment()
137 + {
138 + return is_object( $this->presentment );
139 + }
140 +
141 + /**
142 + * @return float
143 + */
144 + private function get_display_gross()
145 + {
146 + return $this->has_presentment() ?
147 + (float) $this->presentment->gross :
148 + (float) $this->gross;
149 + }
150 +
151 + /**
152 + * @return float
153 + */
154 + private function get_display_vat()
155 + {
156 + return $this->has_presentment() ?
157 + (float) $this->presentment->vat :
158 + (float) $this->vat;
159 + }
160 +
161 + /**
162 + * @return string
163 + */
164 + private function get_display_currency()
165 + {
166 + return $this->has_presentment() ?
167 + $this->presentment->currency :
168 + $this->currency;
169 + }
170 +
171 + /**
123 172 * Returns the gross in this format:
124 173 * `{symbol}{amount | 2 decimal digits} {currency | uppercase}`
125 174 *
126 175 * Examples: £9.99 GBP, -£9.99 GBP.
@@ -131,13 +180,15 @@
131 180 * @return string
132 181 */
133 182 function formatted_gross()
134 183 {
184 + $price = $this->get_display_gross() + $this->get_display_vat();
185 +
135 186 return (
136 - ( $this->gross < 0 ? '-' : '' ) .
187 + ( $price < 0 ? '-' : '' ) .
137 188 $this->get_symbol() .
138 - number_format( abs( $this->gross ), 2, '.', ',' ) . ' ' .
139 - strtoupper( $this->currency )
189 + number_format( abs( $price ), 2, '.', ',' ) . ' ' .
190 + strtoupper( $this->get_display_currency() )
140 191 );
141 192 }
142 193
143 194 /**
@@ -157,12 +208,20 @@
157 208 if ( ! isset( self::$CURRENCY_2_SYMBOL ) ) {
158 209 // Lazy load.
159 210 self::$CURRENCY_2_SYMBOL = array(
160 211 self::CURRENCY_USD => '$',
161 - self::CURRENCY_GBP => '£',
162 - self::CURRENCY_EUR => '€',
212 + self::CURRENCY_GBP => '&pound;',
213 + self::CURRENCY_EUR => '&euro;',
214 + self::CURRENCY_ILS => '₪',
215 + self::CURRENCY_CAD => '$',
216 + self::CURRENCY_AUD => '$',
217 + self::CURRENCY_PLN => 'zł',
163 218 );
164 219 }
165 220
166 - return self::$CURRENCY_2_SYMBOL[ $this->currency ];
221 + $currency = $this->get_display_currency();
222 +
223 + return isset( self::$CURRENCY_2_SYMBOL[ $currency ] )
224 + ? self::$CURRENCY_2_SYMBOL[ $currency ]
225 + : strtoupper( $currency ) . ' ';
167 226 }
168 - }
227 + }