PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.7
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.7
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
← All changes | classes/models/FrmEmailSummary.php +20 -82 6.266.7 View file →
@@ -2,9 +2,8 @@
2 2 /**
3 3 * Summary email base class
4 4 *
5 5 * @since 6.7
6 - *
7 6 * @package Formidable
8 7 */
9 8
10 9 if ( ! defined( 'ABSPATH' ) ) {
@@ -13,17 +12,8 @@
13 12
14 13 abstract class FrmEmailSummary {
15 14
16 15 /**
17 - * Name of the file with the HTML content, without the file extension.
18 - *
19 - * @since 6.15
20 - *
21 - * @var string
22 - */
23 - protected $template = 'base';
24 -
25 - /**
26 16 * Is HTML email?
27 17 *
28 18 * @var bool
29 19 */
@@ -38,15 +28,11 @@
38 28
39 29 /**
40 30 * Gets inner content.
41 31 *
42 - * @since 6.15 Method isn't abstract anymore, returning an empty string by default.
43 - *
44 - * @return false|string
32 + * @return string
45 33 */
46 - protected function get_inner_content() {
47 - return '';
48 - }
34 + abstract protected function get_inner_content();
49 35
50 36 /**
51 37 * Constructor.
52 38 */
@@ -68,9 +54,8 @@
68 54 */
69 55 protected function get_recipients() {
70 56 $recipients = FrmAppHelper::get_settings()->summary_emails_recipients;
71 57 $recipients = str_replace( '[admin_email]', get_bloginfo( 'admin_email' ), $recipients );
72 - FrmEmailSummaryHelper::maybe_remove_recipients_from_api( $recipients );
73 58 return $recipients;
74 59 }
75 60
76 61 /**
@@ -80,9 +65,9 @@
80 65 */
81 66 protected function get_headers() {
82 67 return array(
83 68 'Content-Type: ' . ( $this->is_html ? 'text/html; charset=UTF-8' : 'text/plain' ),
84 - 'From: ' . get_bloginfo( 'name' ) . ' <' . FrmEmailHelper::get_default_from_email() . '>',
69 + 'From: ' . get_bloginfo( 'name' ) . ' <' . get_bloginfo( 'admin_email' ) . '>',
85 70 );
86 71 }
87 72
88 73 /**
@@ -87,21 +72,25 @@
87 72
88 73 /**
89 74 * Gets email content.
90 75 *
91 - * @since 6.8 This can return `false` to skip sending email.
92 - *
93 - * @return false|string
76 + * @return string
94 77 */
95 78 protected function get_content() {
96 79 $args = $this->get_content_args();
97 80
98 - if ( false === $args ) {
99 - return false;
100 - }
81 + /**
82 + * Filters the summary email content args.
83 + *
84 + * @since 6.7
85 + *
86 + * @param array $args Content args.
87 + * @param array $filter_args Contains `email_obj`: summary email object.
88 + */
89 + $args = apply_filters( 'frm_summary_email_content_args', $args, array( 'email_obj' => $this ) );
101 90
102 91 ob_start();
103 - include $this->get_include_file( $this->template );
92 + include $this->get_include_file( 'base' );
104 93 $content = ob_get_clean();
105 94
106 95 $content = str_replace( '%%INNER_CONTENT%%', $this->get_inner_content(), $content );
107 96
@@ -111,36 +100,22 @@
111 100 /**
112 101 * Gets include file path from the given file name.
113 102 *
114 103 * @param string $file_name File name.
115 - *
116 104 * @return string
117 105 */
118 106 protected function get_include_file( $file_name ) {
119 107 $suffix = $this->is_html ? '' : '-plain';
120 - return $this->get_include_folder() . $file_name . $suffix . '.php';
108 + return FrmAppHelper::plugin_path() . '/classes/views/summary-emails/' . $file_name . $suffix . '.php';
121 109 }
122 110
123 111 /**
124 - * Gets the full path to the folder containing the email templates.
125 - *
126 - * @since 6.15
127 - *
128 - * @return string
129 - */
130 - protected function get_include_folder() {
131 - return FrmAppHelper::plugin_path() . '/classes/views/summary-emails/';
132 - }
133 -
134 - /**
135 112 * Gets content args.
136 113 *
137 - * @since 6.8 This can return `false` to skip sending email.
138 - *
139 - * @return array|false
114 + * @return array
140 115 */
141 116 protected function get_content_args() {
142 - $args = array(
117 + return array(
143 118 'subject' => $this->get_subject(),
144 119 'site_url' => home_url( '/' ),
145 120 'site_url_display' => home_url( '/' ),
146 121 'unsubscribe_url' => site_url() . '/wp-admin/admin.php?page=formidable-settings&t=misc_settings',
@@ -145,59 +120,22 @@
145 120 'site_url_display' => home_url( '/' ),
146 121 'unsubscribe_url' => site_url() . '/wp-admin/admin.php?page=formidable-settings&t=misc_settings',
147 122 'support_url' => FrmEmailSummaryHelper::get_frm_url( 'new-topic', 'contact_support' ),
148 123 );
149 -
150 - /**
151 - * Filters the summary email content args.
152 - *
153 - * @since 6.7
154 - *
155 - * @param array $args Content args.
156 - * @param array $filter_args Contains `email_obj`: summary email object.
157 - */
158 - return apply_filters( 'frm_summary_email_content_args', $args, array( 'email_obj' => $this ) );
159 124 }
160 125
161 126 /**
162 - * Check if the email should be sent.
163 - *
164 - * @since 6.15
165 - *
166 - * @return bool
167 - */
168 - protected function should_send() {
169 - return true;
170 - }
171 -
172 - /**
173 127 * Sends email.
174 128 *
175 129 * @return bool
176 130 */
177 131 public function send() {
178 - if ( ! $this->should_send() ) {
179 - return false;
180 - }
181 -
182 132 $recipients = $this->get_recipients();
133 + $content = $this->get_content();
134 + $subject = $this->get_subject();
135 + $headers = $this->get_headers();
183 136
184 - if ( ! $recipients ) {
185 - // Return true to not try to send this email on the next day.
186 - return true;
187 - }
188 -
189 - $content = $this->get_content();
190 -
191 - if ( false === $content ) {
192 - return true;
193 - }
194 -
195 - $subject = $this->get_subject();
196 - $headers = $this->get_headers();
197 -
198 137 $sent = wp_mail( $recipients, $subject, $content, $headers );
199 -
200 138 if ( ! $sent ) {
201 139 $headers = implode( "\r\n", $headers );
202 140 $sent = mail( $recipients, $subject, $content, $headers );
203 141 }