PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.1.0
GiveWP – Donation Plugin and Fundraising Platform v3.1.0
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 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.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / FormBuilder / EmailPreview / Actions / BuildEmailPreview.php
give / src / FormBuilder / EmailPreview / Actions Last commit date
ApplyPreviewTemplateTags.php 2 years ago BuildEmailPreview.php 2 years ago GetEmailNotificationByType.php 2 years ago
BuildEmailPreview.php
78 lines
1 <?php
2
3 namespace Give\FormBuilder\EmailPreview\Actions;
4
5 /**
6 * Build email preview.
7 *
8 * @since 3.0.0
9 */
10 class BuildEmailPreview
11 {
12 /**
13 * @var ApplyPreviewTemplateTags
14 */
15 protected $applyPreviewTemplateTagsAction;
16
17 /**
18 * @param ApplyPreviewTemplateTags $applyPreviewTemplateTagsAction
19 */
20 public function __construct(ApplyPreviewTemplateTags $applyPreviewTemplateTagsAction)
21 {
22 $this->applyPreviewTemplateTagsAction = $applyPreviewTemplateTagsAction;
23 }
24
25 /**
26 * @param string $emailHeader
27 * @return string
28 */
29 public function __invoke($request)
30 {
31 $formId = $request->get_param('form_id');
32 $emailType = $request->get_param('email_type');
33
34 /**
35 * The $emailNotification object is maintained for filter backward compatibility.
36 */
37 try {
38 /** @var \Give_Email_Notification $emailNotification */
39 $emailNotification = give(GetEmailNotificationByType::class)->__invoke($emailType);
40 } catch (\Exception $e) {
41 return new \WP_REST_Response($e->getMessage(), 400);
42 }
43
44 $emailHeader = apply_filters("give_{$emailType}_get_email_header", $request->get_param('email_heading'), $emailNotification, $formId);
45 $emailMessage = apply_filters("give_{$emailType}_get_email_message", $request->get_param('email_message'), $emailNotification, $formId);
46 $emailTemplate = apply_filters("give_{$emailType}_get_email_template", $request->get_param('email_template'), $emailNotification, $formId);
47 $contentType = apply_filters("give_{$emailType}_get_email_content_type", $request->get_param('email_content_type'), $emailNotification, $formId);
48
49 Give()->emails->__set('html', 'text/html' === $contentType);
50 Give()->emails->__set('content_type', $contentType);
51 Give()->emails->__set('heading', $this->applyPreviewTemplateTags($emailHeader));
52 Give()->emails->__set('template', 'text/html' === $contentType ? $emailTemplate : 'none');
53
54 if('text/plain' === $contentType) {
55 $emailMessage = wpautop($emailMessage);
56 }
57
58 add_filter('give_preview_email_receipt_header', '__return_false'); // Disable hard-coded preview switcher.
59 do_action( "give_{$emailType}_email_preview", $emailNotification );
60
61 return apply_filters( "give_{$emailType}_email_preview_message",
62 Give()->emails->build_email($this->applyPreviewTemplateTags($emailMessage)),
63 $email_preview_data = apply_filters( "give_{$emailType}_email_preview_data", array() ),
64 $emailNotification
65 );
66 }
67
68 /**
69 * @param $emailHeader
70 *
71 * @return string
72 */
73 protected function applyPreviewTemplateTags($emailHeader): string
74 {
75 return $this->applyPreviewTemplateTagsAction->__invoke($emailHeader);
76 }
77 }
78