PluginProbe ʕ •ᴥ•ʔ
FAPI Member / trunk
FAPI Member vtrunk
2.2.33 2.2.32 trunk 1.9.47 2.1.18 2.2.24 2.2.25 2.2.26 2.2.28 2.2.29 2.2.30 2.2.31
fapi-member / src / Email / EmailShortCodesReplacer.php
fapi-member / src / Email Last commit date
EmailShortCodesReplacer.php 3 years ago
EmailShortCodesReplacer.php
118 lines
1 <?php
2
3 namespace FapiMember\Email;
4
5 use function str_replace;
6
7 final class EmailShortCodesReplacer {
8
9
10 /**
11 * @param string $text
12 * @param array<mixed> $props
13 * @return string
14 */
15 public static function replace( $text, $props ) {
16 $map = array(
17 '%%SEKCE%%' => self::getSectionValue( $props ),
18 '%%UROVEN%%' => self::getLevelValue( $props ),
19 '%%DNI%%' => self::getDaysValue( $props ),
20 '%%CLENSTVI_DO%%' => self::getExpirationDateValue( $props ),
21 '%%PRIHLASENI_ODKAZ%%' => $props['login_link_url'],
22 '%%PRIHLASOVACI_JMENO%%' => isset( $props['login'] ) ? $props['login'] : '',
23 '%%HESLO%%' => isset( $props['password'] ) ? $props['password'] : '',
24 );
25
26 foreach ( $map as $key => $value ) {
27 $text = str_replace( $key, $value, $text );
28 }
29
30 return $text;
31 }
32
33 /**
34 * @param array<mixed>
35 * @return string
36 */
37 private static function getSectionValue( array $props ) {
38 if ( ( isset( $props['membership_level_added_is_section'] ) && $props['membership_level_added_is_section'] === false )
39 || ( isset( $props['membership_prolonged_is_section'] ) && $props['membership_prolonged_is_section'] === false )
40 ) {
41 return '';
42 }
43
44 if ( isset( $props['membership_prolonged_level_name'] ) ) {
45 return $props['membership_prolonged_level_name'];
46 }
47
48 if ( isset( $props['membership_level_added_level_name'] ) ) {
49 return $props['membership_level_added_level_name'];
50 }
51
52 return '';
53 }
54
55 /**
56 * @param array<mixed> $props
57 * @return string
58 */
59 private static function getLevelValue( array $props ) {
60 if ( ( isset( $props['membership_level_added_is_section'] ) && $props['membership_level_added_is_section'] === true )
61 || ( isset( $props['membership_prolonged_is_section'] ) && $props['membership_prolonged_is_section'] === true )
62 ) {
63 return '';
64 }
65
66 if ( isset( $props['membership_prolonged_level_name'] ) ) {
67 return $props['membership_prolonged_level_name'];
68 }
69
70 if ( isset( $props['membership_level_added_level_name'] ) ) {
71 return $props['membership_level_added_level_name'];
72 }
73
74 return '';
75 }
76
77 /**
78 * @param array<mixed> $props
79 * @return int|string
80 */
81 private static function getDaysValue( array $props ) {
82 if ( isset( $props['membership_prolonged_days'] ) ) {
83 return $props['membership_prolonged_days'];
84 }
85
86 if ( isset( $props['membership_level_added_days'] ) ) {
87 return $props['membership_level_added_days'];
88 }
89
90 if ( isset( $props['membership_prolonged_to_unlimited'] ) || isset( $props['membership_level_added_unlimited'] ) ) {
91 return 'neomezeně';
92 }
93
94 return '';
95 }
96
97 /**
98 * @param array<mixed> $props
99 * @return string
100 */
101 private static function getExpirationDateValue( array $props ) {
102 if ( isset( $props['membership_prolonged_until'] ) ) {
103 return $props['membership_prolonged_until']->format( 'j. n. Y' );
104 }
105
106 if ( isset( $props['membership_level_added_until'] ) ) {
107 return $props['membership_level_added_until']->format( 'j. n. Y' );
108 }
109
110 if ( isset( $props['membership_prolonged_to_unlimited'] ) || isset( $props['membership_level_added_unlimited'] ) ) {
111 return 'neomezené';
112 }
113
114 return '';
115 }
116
117 }
118