PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
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