PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.3
4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 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.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Support / Interval.php
surecart / app / src / Support Last commit date
Blocks 1 year ago Contracts 1 year ago Errors 1 year ago Scripts 1 year ago Arrays.php 3 years ago ColorService.php 3 years ago Currency.php 1 year ago Encryption.php 3 years ago Interval.php 1 year ago Server.php 2 years ago TimeDate.php 1 year ago Translations.php 3 years ago URL.php 2 years ago UtilityService.php 3 years ago UtilityServiceProvider.php 3 years ago kses.json 1 year ago
Interval.php
101 lines
1 <?php
2
3 namespace SureCart\Support;
4
5 /**
6 * Handles interval translations
7 */
8 class Interval {
9 /**
10 * Translate the interval.
11 *
12 * @param int $amount The interval amount.
13 * @param string $interval The interval type (e.g., "day", "week").
14 * @param string $prefix (optional) The prefix to use before the interval. Default: "every".
15 * @param string $fallback (optional) The fallback text for non-standard intervals. Default: "once".
16 * @param bool $showSingle (optional) Whether to use singular forms for amounts (e.g., "1 day" instead of "1 days"). Default: false.
17 * @return string The translated interval string.
18 */
19 public static function translate(
20 int $amount,
21 string $interval,
22 string $prefix = 'every',
23 string $fallback = 'once',
24 bool $showSingle = false
25 ) {
26 switch ( $interval ) {
27 case 'day':
28 $text = sprintf(
29 $showSingle ? _n( '%d day', '%d days', $amount, 'surecart' ) : _n( 'day', '%d days', $amount, 'surecart' ),
30 $amount
31 );
32 return "$prefix $text";
33 case 'week':
34 $text = sprintf(
35 $showSingle ? _n( '%d week', '%d weeks', $amount, 'surecart' ) : _n( 'week', '%d weeks', $amount, 'surecart' ),
36 $amount
37 );
38 return "$prefix $text";
39 case 'month':
40 $text = sprintf(
41 $showSingle ? _n( '%d month', '%d months', $amount, 'surecart' ) : _n( 'month', '%d months', $amount, 'surecart' ),
42 $amount
43 );
44 return "$prefix $text";
45 case 'year':
46 $text = sprintf(
47 $showSingle ? _n( '%d year', '%d years', $amount, 'surecart' ) : _n( 'year', '%d years', $amount, 'surecart' ),
48 $amount
49 );
50 return "$prefix $text";
51 default:
52 return $fallback;
53 }
54 }
55
56 /**
57 * Translate abbreviated interval.
58 *
59 * @param int $amount The interval amount.
60 * @param string $interval The interval type (e.g., "day", "week").
61 * @param string $fallback (optional) The fallback text for non-standard intervals. Default: "once".
62 * @param bool $showSingle (optional) Whether to use singular forms for amounts (e.g., "1 day" instead of "1 days"). Default: false.
63 * @return string The translated and abbreviated interval string.
64 */
65 function translateAbbreviatedInterval(
66 int $amount,
67 string $interval,
68 string $fallback = 'once',
69 bool $showSingle = false
70 ) {
71 switch ( $interval ) {
72 case 'day':
73 $text = sprintf(
74 $showSingle ? _n( '%d d', '%d d', $amount, 'surecart' ) : _n( 'd', '%d d', $amount, 'surecart' ),
75 $amount
76 );
77 return " / $text";
78 case 'week':
79 $text = sprintf(
80 $showSingle ? _n( '%d wk', '%d wks', $amount, 'surecart' ) : _n( 'wk', '%d wks', $amount, 'surecart' ),
81 $amount
82 );
83 return " / $text";
84 case 'month':
85 $text = sprintf(
86 $showSingle ? _n( '%d mo', '%d mos', $amount, 'surecart' ) : _n( 'mo', '%d mos', $amount, 'surecart' ),
87 $amount
88 );
89 return " / $text";
90 case 'year':
91 $text = sprintf(
92 $showSingle ? _n( '%d yr', '%d yrs', $amount, 'surecart' ) : _n( 'yr', '%d yrs', $amount, 'surecart' ),
93 $amount
94 );
95 return " / $text";
96 default:
97 return $fallback;
98 }
99 }
100 }
101