PluginProbe ʕ •ᴥ•ʔ
Presto Player / 1.10.2
Presto Player v1.10.2
4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 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.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / inc / Support / DynamicData.php
presto-player / inc / Support Last commit date
Block.php 3 years ago BlockFinder.php 5 years ago DynamicData.php 4 years ago HasOneRelationship.php 5 years ago Integration.php 5 years ago Utility.php 4 years ago
DynamicData.php
75 lines
1 <?php
2
3 namespace PrestoPlayer\Support;
4
5 class DynamicData
6 {
7 /**
8 * Get values to replace.
9 *
10 * @return array
11 */
12 public static function getValues()
13 {
14 $current_user = wp_get_current_user();
15
16 return apply_filters('presto-player/dynamic-data', [
17 '{user.user_login}' => $current_user->user_login ?? '',
18 '{user.user_nicename}' => $current_user->user_nicename ?? '',
19 '{user.user_email}' => $current_user->user_email ?? '',
20 '{user.user_url}' => $current_user->user_url ?? '',
21 '{user.user_registered}' => $current_user->user_registered ?? '',
22 '{user.display_name}' => $current_user->display_name ?? '',
23 '{site.url}' => get_home_url(),
24 '{site.name}' => get_bloginfo(),
25 '{ip_address}' => self::getIP()
26 ]);
27 }
28
29 /**
30 * Replace dynamic data with actual data.
31 *
32 * @param array $items Array of items with ['text'].
33 * @return array
34 */
35 public static function replaceItems($items, $key)
36 {
37 foreach ($items as $k => $item) {
38 $items[$k][$key] = self::replaceText($item[$key]);
39 }
40
41 return $items;
42 }
43
44 /**
45 * Replace value in string with dynamic data.
46 *
47 * @param string $text String with dynamic data.
48 * @return string
49 */
50 public static function replaceText($text)
51 {
52 return wp_kses_post(strtr($text, self::getValues()));
53 }
54
55 /**
56 * Get the person's IP.
57 *
58 * @return string
59 */
60 public static function getIP()
61 {
62 foreach (array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) {
63 if (array_key_exists($key, $_SERVER) === true) {
64 foreach (explode(',', $_SERVER[$key]) as $ip) {
65 $ip = trim($ip); // just to be safe
66
67 if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) {
68 return $ip;
69 }
70 }
71 }
72 }
73 }
74 }
75