HEX
Server: Apache/2
System: Linux server-80-13-140-150.da.direct 5.14.0-362.24.1.el9_3.0.1.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Apr 4 22:31:43 UTC 2024 x86_64
User: cpt (1004)
PHP: 8.1.24
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/cpt/public_html/wp-content/plugins/mailpoet/lib/Newsletter/Editor/TitleListTransformer.php
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing

namespace MailPoet\Newsletter\Editor;

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


use MailPoet\WP\Functions as WPFunctions;

class TitleListTransformer {

  private $args;

  public function __construct(
    $args
  ) {
    $this->args = $args;
  }

  public function transform($posts) {
    $results = array_map(function($post) {
      return $this->getPostTitle($post);
    }, $posts);

    return [
      $this->wrap([
        'type' => 'text',
        'text' => '<ul>' . implode('', $results) . '</ul>',
      ])];
  }

  private function wrap($block) {
    return LayoutHelper::row([
      LayoutHelper::col([$block]),
    ]);
  }

  private function getPostTitle($post) {
    if ($this->isWcProduct($post)) {
      $title = $post->get_name();
      $postId = $post->get_id();
    } else {
      $title = $post->post_title; // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
      $postId = $post->ID;
    }

    $alignment = $this->args['titleAlignment'];
    $alignment = (in_array($alignment, ['left', 'right', 'center'])) ? $alignment : 'left';

    if ($this->args['titleIsLink']) {
      $title = '<a data-post-id="' . $postId . '" href="' . WPFunctions::get()->getPermalink($postId) . '">' . $title . '</a>';
    }

    return '<li style="text-align: ' . $alignment . ';">' . $title . '</li>';
  }

  private function isWcProduct($post) {
    return class_exists('\WC_Product') && $post instanceof \WC_Product;
  }
}