PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.2.3
Presto Player v4.2.3
4.5.0 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 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 months ago BlockFinder.php 2 years ago DynamicData.php 2 years ago HasOneRelationship.php 2 years ago Integration.php 2 years ago Utility.php 3 months ago
DynamicData.php
74 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 $current_user = wp_get_current_user();
14
15 return apply_filters(
16 'presto-player/dynamic-data',
17 array(
18 '{user.user_login}' => $current_user->user_login ?? '',
19 '{user.user_nicename}' => $current_user->user_nicename ?? '',
20 '{user.user_email}' => $current_user->user_email ?? '',
21 '{user.user_url}' => $current_user->user_url ?? '',
22 '{user.user_registered}' => $current_user->user_registered ?? '',
23 '{user.display_name}' => $current_user->display_name ?? '',
24 '{site.url}' => get_home_url(),
25 '{site.name}' => get_bloginfo(),
26 '{ip_address}' => self::getIP(),
27 )
28 );
29 }
30
31 /**
32 * Replace dynamic data with actual data.
33 *
34 * @param array $items Array of items with ['text'].
35 * @return array
36 */
37 public static function replaceItems( $items, $key ) {
38 foreach ( $items as $k => $item ) {
39 $items[ $k ][ $key ] = self::replaceText( $item[ $key ] );
40 }
41
42 return $items;
43 }
44
45 /**
46 * Replace value in string with dynamic data.
47 *
48 * @param string $text String with dynamic data.
49 * @return string
50 */
51 public static function replaceText( $text ) {
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 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 ) {
62 if ( array_key_exists( $key, $_SERVER ) === true ) {
63 foreach ( explode( ',', $_SERVER[ $key ] ) as $ip ) {
64 $ip = trim( $ip ); // just to be safe
65
66 if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE ) !== false ) {
67 return $ip;
68 }
69 }
70 }
71 }
72 }
73 }
74