PluginProbe
Advanced Ads – Ad Manager & AdSense / 2.0.21
Advanced Ads – Ad Manager & AdSense v2.0.21
2.0.26 2.0.25 2.0.24 2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 All 348 releases
advanced-ads / includes / utilities / class-sanitize.php
class-sanitize.php
83 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Utilities Sanitize.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.50.0
8 */
9
10 namespace AdvancedAds\Utilities;
11
12 defined( 'ABSPATH' ) || exit;
13
14 /**
15 * Utilities Sanitize.
16 */
17 class Sanitize {
18 /**
19 * Sanitize the frontend prefix to result in valid HTML classes.
20 * See https://www.w3.org/TR/selectors-3/#grammar for valid tokens.
21 *
22 * @param string $prefix The HTML class to sanitize.
23 * @param string $fallback The fallback if the class is invalid.
24 *
25 * @return string
26 */
27 public static function frontend_prefix( $prefix, $fallback = '' ): string {
28 $prefix = sanitize_html_class( $prefix );
29 $nonascii = '[^\0-\177]';
30 $unicode = '\\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?';
31 $escape = sprintf( '%s|\\[^\n\r\f0-9a-f]', $unicode );
32 $nmstart = sprintf( '[_a-z]|%s|%s', $nonascii, $escape );
33 $nmchar = sprintf( '[_a-z0-9-]|%s|%s', $nonascii, $escape );
34
35 if ( ! preg_match( sprintf( '/-?(?:%s)(?:%s)*/i', $nmstart, $nmchar ), $prefix, $matches ) ) {
36 return $fallback;
37 }
38
39 return $matches[0];
40 }
41
42 /**
43 * Sanitize email list
44 *
45 * @param string $emails List of addresses to sanitize.
46 *
47 * @return string
48 */
49 public static function email_addresses( $emails ): string {
50 // Early bail!!
51 if ( ! is_string( $emails ) || empty( $emails ) ) {
52 return '';
53 }
54
55 $emails = stripslashes( $emails );
56 $emails = explode( ',', $emails );
57 $emails = array_map( 'sanitize_email', $emails );
58 $emails = array_filter( $emails );
59
60 return implode( ',', $emails );
61 }
62
63 /**
64 * Sanitize Google Analytics UID
65 *
66 * @param string $ids Google Analytics UID.
67 *
68 * @return string
69 */
70 public static function analytics_uid( $ids ): string {
71 $ids = explode( ',', $ids );
72 $ids = array_map(
73 function ( $ga_id ) {
74 return trim( $ga_id, ' /][)(#' );
75 },
76 $ids
77 );
78 $ids = array_filter( $ids );
79
80 return implode( ', ', $ids );
81 }
82 }
83