[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.223.171.83: ~ $
<?php

namespace MailPoet\WP;

if (!defined('ABSPATH')) exit;


use MailPoet\WP\Functions as WPFunctions;

class Emoji {
  /** @var WPFunctions */
  private $wp;

  public function __construct(
    WPFunctions $wp = null
  ) {
    if ($wp === null) {
      $wp = new WPFunctions();
    }
    $this->wp = $wp;
  }

  public function encodeEmojisInBody($newsletterRenderedBody) {
    if (is_array($newsletterRenderedBody)) {
      return array_map([$this, 'encodeRenderedBodyForUTF8Column'], $newsletterRenderedBody);
    }
    return $this->encodeRenderedBodyForUTF8Column($newsletterRenderedBody);
  }

  public function decodeEmojisInBody($newsletterRenderedBody) {
    if (is_array($newsletterRenderedBody)) {
      return array_map([$this, 'decodeEntities'], $newsletterRenderedBody);
    }
    return $this->decodeEntities($newsletterRenderedBody);
  }

  public function sanitizeEmojisInFormBody(array $body): array {
    $bodyJson = json_encode($body, JSON_UNESCAPED_UNICODE);
    $fixedJson = $this->encodeForUTF8Column(MP_FORMS_TABLE, 'body', $bodyJson);
    return json_decode($fixedJson, true);
  }

  private function encodeRenderedBodyForUTF8Column($value) {
    return $this->encodeForUTF8Column(
      MP_SENDING_QUEUES_TABLE,
      'newsletter_rendered_body',
      $value
    );
  }

  public function encodeForUTF8Column($table, $field, $value) {
    global $wpdb;
    $charset = $wpdb->get_col_charset($table, $field);
    if ($charset === 'utf8') {
      $value = $this->wp->wpEncodeEmoji($value);
    }
    return $value;
  }

  public function decodeEntities($content) {
    // Based on WPFunctions::get()->wpStaticizeEmoji()

    // Loosely match the Emoji Unicode range.
    $regex = '/(&#x[2-3][0-9a-f]{3};|&#x1f[1-6][0-9a-f]{2};)/';

    $matches = [];
    if (preg_match_all($regex, $content, $matches)) {
      if (!empty($matches[1])) {
        foreach ($matches[1] as $emoji) {
          $entity = html_entity_decode($emoji, ENT_COMPAT, 'UTF-8');
          $content = str_replace($emoji, $entity, $content);
        }
      }
    }

    return $content;
  }
}

Filemanager

Name Type Size Permission Actions
AutocompletePostListLoader.php File 2.93 KB 0644
DateTime.php File 2.08 KB 0644
Emoji.php File 2.04 KB 0644
Functions.php File 19.04 KB 0644
Notice.php File 2.62 KB 0644
Posts.php File 858 B 0644
Readme.php File 1.09 KB 0644
index.php File 0 B 0644