PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.8.1
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.8.1
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 +21 -64 6.30 → 6.8.1 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 */
@@ -80,9 +66,9 @@
80 66 */
81 67 protected function get_headers() {
82 68 return array(
83 69 'Content-Type: ' . ( $this->is_html ? 'text/html; charset=UTF-8' : 'text/plain' ),
84 - 'From: ' . get_bloginfo( 'name' ) . ' <' . FrmEmailHelper::get_default_from_email() . '>',
70 + 'From: ' . get_bloginfo( 'name' ) . ' <' . get_bloginfo( 'admin_email' ) . '>',
85 71 );
86 72 }
87 73
88 74 /**
@@ -89,22 +75,33 @@
89 75 * Gets email content.
90 76 *
91 77 * @since 6.8 This can return `false` to skip sending email.
92 78 *
93 - * @return false|string
79 + * @return string|false
94 80 */
95 81 protected function get_content() {
96 82 $args = $this->get_content_args();
97 -
98 83 if ( false === $args ) {
99 84 return false;
100 85 }
101 86
87 + /**
88 + * Filters the summary email content args.
89 + *
90 + * @since 6.7
91 + *
92 + * @param array $args Content args.
93 + * @param array $filter_args Contains `email_obj`: summary email object.
94 + */
95 + $args = apply_filters( 'frm_summary_email_content_args', $args, array( 'email_obj' => $this ) );
96 +
102 97 ob_start();
103 - include $this->get_include_file( $this->template );
98 + include $this->get_include_file( 'base' );
104 99 $content = ob_get_clean();
105 100
106 - return str_replace( '%%INNER_CONTENT%%', $this->get_inner_content(), $content );
101 + $content = str_replace( '%%INNER_CONTENT%%', $this->get_inner_content(), $content );
102 +
103 + return $content;
107 104 }
108 105
109 106 /**
110 107 * Gets include file path from the given file name.
@@ -109,28 +106,16 @@
109 106 /**
110 107 * Gets include file path from the given file name.
111 108 *
112 109 * @param string $file_name File name.
113 - *
114 110 * @return string
115 111 */
116 112 protected function get_include_file( $file_name ) {
117 113 $suffix = $this->is_html ? '' : '-plain';
118 - return $this->get_include_folder() . $file_name . $suffix . '.php';
114 + return FrmAppHelper::plugin_path() . '/classes/views/summary-emails/' . $file_name . $suffix . '.php';
119 115 }
120 116
121 117 /**
122 - * Gets the full path to the folder containing the email templates.
123 - *
124 - * @since 6.15
125 - *
126 - * @return string
127 - */
128 - protected function get_include_folder() {
129 - return FrmAppHelper::plugin_path() . '/classes/views/summary-emails/';
130 - }
131 -
132 - /**
133 118 * Gets content args.
134 119 *
135 120 * @since 6.8 This can return `false` to skip sending email.
136 121 *
@@ -136,9 +121,9 @@
136 121 *
137 122 * @return array|false
138 123 */
139 124 protected function get_content_args() {
140 - $args = array(
125 + return array(
141 126 'subject' => $this->get_subject(),
142 127 'site_url' => home_url( '/' ),
143 128 'site_url_display' => home_url( '/' ),
144 129 'unsubscribe_url' => site_url() . '/wp-admin/admin.php?page=formidable-settings&t=misc_settings',
@@ -143,43 +128,17 @@
143 128 'site_url_display' => home_url( '/' ),
144 129 'unsubscribe_url' => site_url() . '/wp-admin/admin.php?page=formidable-settings&t=misc_settings',
145 130 'support_url' => FrmEmailSummaryHelper::get_frm_url( 'new-topic', 'contact_support' ),
146 131 );
147 -
148 - /**
149 - * Filters the summary email content args.
150 - *
151 - * @since 6.7
152 - *
153 - * @param array $args Content args.
154 - * @param array $filter_args Contains `email_obj`: summary email object.
155 - */
156 - return apply_filters( 'frm_summary_email_content_args', $args, array( 'email_obj' => $this ) );
157 132 }
158 133
159 134 /**
160 - * Check if the email should be sent.
161 - *
162 - * @since 6.15
163 - *
164 - * @return bool
165 - */
166 - protected function should_send() {
167 - return true;
168 - }
169 -
170 - /**
171 135 * Sends email.
172 136 *
173 137 * @return bool
174 138 */
175 139 public function send() {
176 - if ( ! $this->should_send() ) {
177 - return false;
178 - }
179 -
180 140 $recipients = $this->get_recipients();
181 -
182 141 if ( ! $recipients ) {
183 142 // Return true to not try to send this email on the next day.
184 143 return true;
185 144 }
@@ -184,17 +143,15 @@
184 143 return true;
185 144 }
186 145
187 146 $content = $this->get_content();
188 -
189 147 if ( false === $content ) {
190 148 return true;
191 149 }
192 -
193 150 $subject = $this->get_subject();
194 151 $headers = $this->get_headers();
195 - $sent = wp_mail( $recipients, $subject, $content, $headers );
196 152
153 + $sent = wp_mail( $recipients, $subject, $content, $headers );
197 154 if ( ! $sent ) {
198 155 $headers = implode( "\r\n", $headers );
199 156 $sent = mail( $recipients, $subject, $content, $headers );
200 157 }