PluginProbe ʕ •ᴥ•ʔ
Email Encoder – Protect Email Addresses and Phone Numbers / 2.4.5
Email Encoder – Protect Email Addresses and Phone Numbers v2.4.5
2.5.0 2.4.8 trunk 0.10 0.11 0.12 0.20 0.21 0.22 0.30 0.31 0.32 0.40 0.41 0.42 0.50 0.60 0.70 0.71 0.80 1.0.0 1.0.1 1.0.2 1.1.0 1.2.0 1.2.1 1.3.0 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.5 1.5.2 1.51 1.53 2.0.0 2.0.1 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.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7
email-encoder-bundle / src / Front / Shortcodes / ProtectContentShortcode.php
email-encoder-bundle / src / Front / Shortcodes Last commit date
ContentShortcode.php 3 months ago EmailEncoderFormShortcode.php 4 months ago EmailShortcode.php 3 months ago MailtoShortcode.php 3 months ago ProtectContentShortcode.php 3 months ago ProtectEmailsShortcode.php 4 months ago Shortcodes.php 3 months ago
ProtectContentShortcode.php
74 lines
1 <?php
2
3 namespace OnlineOptimisation\EmailEncoderBundle\Front\Shortcodes;
4
5 use OnlineOptimisation\EmailEncoderBundle\Traits\PluginHelper;
6
7 class ProtectContentShortcode
8 {
9 use PluginHelper;
10
11 protected string $tag = 'eeb_protect_content';
12
13 public function tag(): string
14 {
15 return $this->tag;
16 }
17
18
19 /**
20 * @param array< string, string > $atts
21 * @param string $content
22 * @return string
23 */
24 public function handle( array $atts = [], string $content = '' ): string
25 {
26
27 $original_content = $content;
28 $allowed_attr_html = $this->getSafeHtmlAttr();
29 $show_encoded_check = (bool) $this->getSetting( 'show_encoded_check', true );
30
31 if ( ! isset( $atts['protection_text'] ) ) {
32 $protection_text = (string) $this->getSetting( 'protection_text', true );
33 } else {
34 $protection_text = wp_kses_post( $atts['protection_text'] );
35 }
36
37 if ( isset( $atts['method'] ) ) {
38 $method = sanitize_title( $atts['method'] );
39 } else {
40 $method = 'rot13';
41 }
42
43 $content = wp_kses( html_entity_decode( $content ), $allowed_attr_html );
44
45 if ( isset( $atts['do_shortcode'] ) && $atts['do_shortcode'] === 'yes' ) {
46 $content = do_shortcode( $content );
47 }
48
49 switch ( $method ) {
50 case 'enc_ascii':
51 case 'rot13':
52 $content = $this->encodeAscii( $content, $protection_text );
53 break;
54 case 'enc_escape':
55 case 'escape':
56 $content = $this->encodeEscape( $content, $protection_text );
57 break;
58 case 'enc_html':
59 case 'encode':
60 default:
61 $content = antispambot( $content );
62 break;
63 }
64
65 // mark link as successfullly encoded (for admin users)
66 if ( current_user_can( $this->getAdminCap( 'frontend-display-security-check' ) ) && $show_encoded_check ) {
67 $content .= $this->getEncodedEmailIcon();
68 }
69
70 return apply_filters( 'eeb/frontend/shortcode/eeb_protect_content', $content, $atts, $original_content );
71 }
72
73 }
74