PluginProbe ʕ •ᴥ•ʔ
Email Encoder – Protect Email Addresses and Phone Numbers / 2.5.0
Email Encoder – Protect Email Addresses and Phone Numbers v2.5.0
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 / DisplayEmailImage.php
email-encoder-bundle / src / Front Last commit date
Shortcodes 1 month ago DisplayEmailImage.php 3 months ago Front.php 2 months ago FrontBuffering.php 3 months ago FrontCore.php 3 months ago FrontEnqueue.php 3 months ago FrontTemplateTags.php 3 months ago
DisplayEmailImage.php
57 lines
1 <?php
2
3 namespace OnlineOptimisation\EmailEncoderBundle\Front;
4
5 if ( ! defined( 'ABSPATH' ) ) exit;
6
7 use OnlineOptimisation\EmailEncoderBundle\Traits\PluginHelper;
8
9 class DisplayEmailImage
10 {
11 use PluginHelper;
12
13
14 public function boot(): void
15 {
16 add_action( 'wp', [ $this, 'display_email_image' ], 999 );
17 }
18
19
20 public function display_email_image(): void
21 {
22 if ( ! isset( $_GET['eeb_mail'] ) ) {
23 return;
24 }
25
26 $email = sanitize_email( base64_decode( $_GET['eeb_mail'] ) );
27
28 if ( ! is_email( $email ) || ! isset( $_GET['eeb_hash'] ) ) {
29 return;
30 }
31
32 $hash = (string) $_GET['eeb_hash'];
33 $secret = $this->settings()->get_email_image_secret();
34
35 if ( ! function_exists( 'imagefontwidth' ) ) {
36 wp_die( esc_html__( 'GD Library Not Enabled. Please enable it first.', 'email-encoder-bundle' ) );
37 }
38
39 if ( $this->validate()->encoding->generate_email_signature( $email, $secret ) !== $hash ) {
40 wp_die( esc_html__( 'Your signture is invalid.', 'email-encoder-bundle' ) );
41 }
42
43 $image = $this->validate()->encoding->email_to_image( $email );
44
45 if ( empty( $image ) ) {
46 wp_die( esc_html__( 'Your email could not be converted.', 'email-encoder-bundle' ) );
47 }
48
49 header( 'Content-type: image/png' );
50 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $image is binary PNG image data generated by email_to_image(); escaping would corrupt the image.
51 echo $image;
52
53 exit;
54 }
55
56 }
57