PluginProbe
Tiered Pricing Table for WooCommerce / 8.0.2
Tiered Pricing Table for WooCommerce v8.0.2
8.0.2 7.1.7 7.1.5 7.1.4 7.1.1 6.5.0 6.4.0 6.1.0 trunk 1.0 1.1 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2 2.2.3 2.3.0 2.3.1 2.3.2 2.3.3 All 91 releases
← All changes | freemius/includes/entities/class-fs-payment.php +66 -7 2.3.0 → 8.0.2 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 + }