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 +24 -83 6.276.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,24 +72,30 @@
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 - return str_replace( '%%INNER_CONTENT%%', $this->get_inner_content(), $content );
95 + $content = str_replace( '%%INNER_CONTENT%%', $this->get_inner_content(), $content );
96 +
97 + return $content;
107 98 }
108 99
109 100 /**
110 101 * Gets include file path from the given file name.
@@ -109,36 +100,22 @@
109 100 /**
110 101 * Gets include file path from the given file name.
111 102 *
112 103 * @param string $file_name File name.
113 - *
114 104 * @return string
115 105 */
116 106 protected function get_include_file( $file_name ) {
117 107 $suffix = $this->is_html ? '' : '-plain';
118 - return $this->get_include_folder() . $file_name . $suffix . '.php';
108 + return FrmAppHelper::plugin_path() . '/classes/views/summary-emails/' . $file_name . $suffix . '.php';
119 109 }
120 110
121 111 /**
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 112 * Gets content args.
134 113 *
135 - * @since 6.8 This can return `false` to skip sending email.
136 - *
137 - * @return array|false
114 + * @return array
138 115 */
139 116 protected function get_content_args() {
140 - $args = array(
117 + return array(
141 118 'subject' => $this->get_subject(),
142 119 'site_url' => home_url( '/' ),
143 120 'site_url_display' => home_url( '/' ),
144 121 'unsubscribe_url' => site_url() . '/wp-admin/admin.php?page=formidable-settings&t=misc_settings',
@@ -143,58 +120,22 @@
143 120 'site_url_display' => home_url( '/' ),
144 121 'unsubscribe_url' => site_url() . '/wp-admin/admin.php?page=formidable-settings&t=misc_settings',
145 122 'support_url' => FrmEmailSummaryHelper::get_frm_url( 'new-topic', 'contact_support' ),
146 123 );
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 124 }
158 125
159 126 /**
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 127 * Sends email.
172 128 *
173 129 * @return bool
174 130 */
175 131 public function send() {
176 - if ( ! $this->should_send() ) {
177 - return false;
178 - }
179 -
180 132 $recipients = $this->get_recipients();
133 + $content = $this->get_content();
134 + $subject = $this->get_subject();
135 + $headers = $this->get_headers();
181 136
182 - if ( ! $recipients ) {
183 - // Return true to not try to send this email on the next day.
184 - return true;
185 - }
186 -
187 - $content = $this->get_content();
188 -
189 - if ( false === $content ) {
190 - return true;
191 - }
192 -
193 - $subject = $this->get_subject();
194 - $headers = $this->get_headers();
195 - $sent = wp_mail( $recipients, $subject, $content, $headers );
196 -
137 + $sent = wp_mail( $recipients, $subject, $content, $headers );
197 138 if ( ! $sent ) {
198 139 $headers = implode( "\r\n", $headers );
199 140 $sent = mail( $recipients, $subject, $content, $headers );
200 141 }