Нема описа

ContentPreprocessor.php 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace MailPoet\WooCommerce\TransactionalEmails;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\Newsletter\Editor\LayoutHelper;
  5. use MailPoet\WooCommerce\TransactionalEmails;
  6. class ContentPreprocessor {
  7. public const WC_HEADING_PLACEHOLDER = '[mailpoet_woocommerce_heading_placeholder]';
  8. public const WC_CONTENT_PLACEHOLDER = '[mailpoet_woocommerce_content_placeholder]';
  9. public const WC_HEADING_BEFORE = '
  10. <table width="100%" border="0" cellpadding="0" cellspacing="0" style="border-spacing:0;mso-table-lspace:0;mso-table-rspace:0">
  11. <tr>
  12. <td class="mailpoet_text" valign="top" style="padding-top:20px;padding-bottom:20px;word-break:break-word;word-wrap:break-word;">';
  13. public const WC_HEADING_AFTER = '
  14. </td>
  15. </tr>
  16. </table>';
  17. /** @var TransactionalEmails */
  18. private $transactionalEmails;
  19. public function __construct(
  20. TransactionalEmails $transactionalEmails
  21. ) {
  22. $this->transactionalEmails = $transactionalEmails;
  23. }
  24. public function preprocessContent() {
  25. return $this->renderPlaceholderBlock(self::WC_CONTENT_PLACEHOLDER);
  26. }
  27. public function preprocessHeader() {
  28. $wcEmailSettings = $this->transactionalEmails->getWCEmailSettings();
  29. $content = self::WC_HEADING_BEFORE . '<h1 style="color:' . $wcEmailSettings['base_text_color'] . ';">' . self::WC_HEADING_PLACEHOLDER . '</h1>' . self::WC_HEADING_AFTER;
  30. return $this->renderTextBlock($content, ['backgroundColor' => $wcEmailSettings['base_color']]);
  31. }
  32. private function renderTextBlock(string $text, array $styles = []): array {
  33. return [
  34. LayoutHelper::row([
  35. LayoutHelper::col([[
  36. 'type' => 'text',
  37. 'text' => $text,
  38. ]]),
  39. ], $styles),
  40. ];
  41. }
  42. private function renderPlaceholderBlock(string $placeholder): array {
  43. return [
  44. LayoutHelper::row([
  45. LayoutHelper::col([[
  46. 'type' => 'placeholder',
  47. 'placeholder' => $placeholder,
  48. ]]),
  49. ]),
  50. ];
  51. }
  52. }