Headline
CVE-2023-3122: Changeset 2923988 for gd-mail-queue – WordPress Plugin Repository
The GD Mail Queue plugin for WordPress is vulnerable to Stored Cross-Site Scripting via email contents in versions up to, and including, 3.9.3 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
gd-mail-queue/trunk/admin/scss/plugin.scss
r2375699
r2923988
9
9
10
10
&.liner {
11
border-bottom: 1px solid #ddd;
11
border-bottom: 1px solid #DDD;
12
12
padding-bottom: 5px;
13
13
margin-bottom: 7px;
…
…
21
21
border-radius: 2px;
22
22
margin-left: 5px;
23
color: #ffffff;
23
color: #FFF;
24
24
display: inline-block;
25
25
padding: 0 6px 2px;
…
…
39
39
40
40
&.gdmaq-engine {
41
background: #0a63a5;
41
background: #0A63A5;
42
42
}
43
43
44
44
&.gdmaq-service {
45
background: #8e0676;
45
background: #8E0676;
46
46
}
47
47
}
…
…
89
89
.gdmaq-result-ok {
90
90
background-color: #E8FFEA;
91
border: 1px solid #00CC00;
91
border: 1px solid #0C0;
92
92
}
93
93
94
94
.gdmaq-result-error {
95
95
background-color: #FFEBE8;
96
border: 1px solid #CC0000;
96
border: 1px solid #C00;
97
97
}
98
98
…
…
145
145
margin: 0 5px 5px 0;
146
146
padding: 0 6px 1px;
147
color: #ffffff;
147
color: #FFF;
148
148
display: inline-block;
149
background: #0073aa;
149
background: #0073AA;
150
150
line-height: 1.5;
151
151
…
…
153
153
&.gdmaq-tag-toqueue,
154
154
&.gdmaq-tag-plain {
155
background: #10ad3a;
155
background: #10AD3A;
156
156
}
157
157
158
158
&.gdmaq-tag-fail,
159
159
&.gdmaq-tag-html {
160
background: #dc3232;
160
background: #DC3232;
161
161
}
162
162
163
163
&.gdmaq-tag-engine {
164
background: #8e0676;
164
background: #8E0676;
165
165
}
166
166
}
…
…
171
171
172
172
.gdmaq-log-row-fail {
173
background: #ffeeee !important;
173
background: #FEE !important;
174
174
}
175
175
176
176
.gdmaq-log-row-queue {
177
background: #eef7ff !important;
177
background: #EEF7FF !important;
178
178
}
179
179
gd-mail-queue/trunk/core/admin/ajax.php
r2347977
r2923988
141
141
die(\_\_("HTML for this email not found.", "gd-mail-queue"));
142
142
} else {
143
if (gdmaq\_settings()->get('preview\_html\_disable\_links', 'log')) {
143
$html = wp\_kses($html, gdmaq\_allowed\_tags\_iframe\_display());
144
145
if (gdmaq\_settings()->get('preview\_html\_disable\_links', 'log')) {
144
146
$html = preg\_replace('/(<a.+href=\["|\\'\])(.+?)(\["|\\'\])/i', '$1#$3', $html);
145
147
}
gd-mail-queue/trunk/core/admin/options.php
r2516163
r2923988
18
18
}
19
19
20
public function settings($panel) {
20
public function settings($panel) : array {
21
21
$list = array();
22
22
…
…
39
39
)),
40
40
'htmlfy' => array('name' => \_\_("Turn Plain text emails into HTML", "gd-mail-queue"), 'settings' => array(
41
new d4pSettingElement('settings', 'htmlfy', \_\_("HTMLfy", "gd-mail-queue"), \_\_("Emails that are only plain text, will be turned into the HTML emails, where all plain text content is wrapped in the email ready HTML.", "gd-mail-queue"), d4pSettingType::BOOLEAN, gdmaq\_settings()->get('htmlfy', 'settings'))
41
new d4pSettingElement('settings', 'htmlfy', \_\_("HTMLfy", "gd-mail-queue"), \_\_("Emails that are only plain text, will be turned into the HTML emails, where all plain text content is wrapped in the email ready HTML.", "gd-mail-queue"), d4pSettingType::BOOLEAN, gdmaq\_settings()->get('htmlfy', 'settings')),
42
new d4pSettingElement('htmlfy', 'preprocess', \_\_("HTML tags handling", "gd-mail-queue"), \_\_("The goal of this process is to take plain text email content and turn it into HTML. Plain text should not contain HTML tags, but if it does, it may contain malicious SCRIPT tags, and it is important to process it, before use.", "gd-mail-queue"), d4pSettingType::SELECT, gdmaq\_settings()->get('preprocess', 'htmlfy'), 'array', $this->get\_htmlfy\_preprocess())
42
43
)),
43
44
'engine' => array('name' => \_\_("Mail sending Engine", "gd-mail-queue"), 'settings' => array(
…
…
181
182
),
182
183
'htmlfy' => array(
183
'template' => array('name' => \_\_("HTML Template", "gd-mail-queue"), 'settings' => array(
184
'htmlfy\_what' => array('name' => \_\_("HTML Template", "gd-mail-queue"), 'settings' => array(
184
185
new d4pSettingElement('htmlfy', 'replace', \_\_("What to use", "gd-mail-queue"), \_\_("Select what you want to use to turn plain text into HTML email.", "gd-mail-queue"), d4pSettingType::SELECT, gdmaq\_settings()->get('replace', 'htmlfy'), 'array', $this->get\_htmlfy\_replace())
185
186
)),
186
'template\_template' => array('name' => \_\_("Built-in HTML Templates", "gd-mail-queue"), 'settings' => array(
187
'htmlfy\_template' => array('name' => \_\_("Built-in HTML Templates", "gd-mail-queue"), 'settings' => array(
187
188
new d4pSettingElement('htmlfy', 'template', \_\_("Template", "gd-mail-queue"), \_\_("Plugin includes some default templates that are email valid and tested with various email clients.", "gd-mail-queue"), d4pSettingType::SELECT, gdmaq\_settings()->get('template', 'htmlfy'), 'array', $this->get\_htmlfy\_templates())
188
189
))
…
…
211
212
}
212
213
213
private function get\_phpmailer\_mode() {
214
private function get\_phpmailer\_mode() : array {
214
215
return array(
215
216
'mail' => \_\_("PHP Mail Function", "gd-mail-queue"),
…
…
218
219
}
219
220
220
private function get\_phpmailer\_encryption() {
221
private function get\_phpmailer\_encryption() : array {
221
222
return array(
222
223
'' => \_\_("None", "gd-mail-queue"),
…
…
226
227
}
227
228
228
private function get\_queue\_methods() {
229
private function get\_queue\_methods() : array {
229
230
return array(
230
231
'all' => \_\_("All emails will be added to queue", "gd-mail-queue"),
…
…
235
236
}
236
237
237
private function get\_htmlfy\_replace() {
238
private function get\_htmlfy\_preprocess() : array {
239
return array(
240
'kses\_post' => \_\_("Allow post editor set of HTML tags", "gd-mail-queue"),
241
'kses\_basic' => \_\_("Allow basic HTML tags", "gd-mail-queue"),
242
'kses\_expanded' => \_\_("Allow expanded set of HTML tags", "gd-mail-queue"),
243
'strip\_tags' => \_\_("Strip all HTML tags", "gd-mail-queue")
244
);
245
}
246
247
private function get\_htmlfy\_replace() : array {
238
248
$list = array(
239
249
'template' => \_\_("Built-in HTML Templates", "gd-mail-queue")
…
…
247
257
}
248
258
249
private function get\_htmlfy\_plain\_text\_detection() {
259
private function get\_htmlfy\_plain\_text\_detection() : array {
250
260
return array(
251
261
'tags' => \_\_("Check for common HTML tags and Content Type", "gd-mail-queue"),
…
…
254
264
}
255
265
256
private function get\_htmlfy\_additional\_templates() {
266
private function get\_htmlfy\_additional\_templates() : array {
257
267
return gdmaq()->get\_additional\_templates\_list();
258
268
}
259
269
260
private function get\_htmlfy\_templates() {
270
private function get\_htmlfy\_templates() : array {
261
271
return array(
262
272
'clean-basic' => \_\_("Clean template with content and footer area", "gd-mail-queue"),
…
…
265
275
}
266
276
267
private function get\_htmlfy\_preheader() {
277
private function get\_htmlfy\_preheader() : array {
268
278
return array(
269
279
'none' => \_\_("None", "gd-mail-queue"),
…
…
273
283
}
274
284
275
public function get\_queue\_method() {
285
public function get\_queue\_method() : array {
276
286
return array(
277
287
'classic' => \_\_("Classic", "gd-mail-queue")
…
…
279
289
}
280
290
281
private function get\_shared\_template\_tags() {
291
private function get\_shared\_template\_tags() : array {
282
292
return gdmaq\_admin()->get\_shared\_template\_tags();
283
293
}
284
294
285
public function get\_cleanup\_scope() {
295
public function get\_cleanup\_scope() : array {
286
296
return array(
287
297
'sent' => \_\_("All successfully sent emails", "gd-mail-queue"),
…
…
290
300
}
291
301
292
private function render\_toggle\_table($title, $elements) {
302
private function render\_toggle\_table($title, $elements) : string {
293
303
$render = '<div class="d4p-section-toggle d4p-free-height">';
294
304
$render.= '<div class="d4p-toggle-title"><i class="fa fa-fw fa-caret-down"></i> '.$title.'</div>';
…
…
306
316
}
307
317
308
private function render\_ports() {
318
private function render\_ports() : string {
309
319
$list = array(
310
320
array(\_x("Standard", "Connection type for the SMTP ports common list.", "gd-mail-queue"), '25, 2525, 587'),
gd-mail-queue/trunk/core/build.php
r2776206
r2923988
1
<?php $build = 115;
1
<?php $build = 120;
gd-mail-queue/trunk/core/functions.php
r2516163
r2923988
14
14
}
15
15
16
function gdmaq\_default\_from() {
16
function gdmaq\_default\_from() : array {
17
17
$sitename = strtolower( $\_SERVER\['SERVER\_NAME'\] );
18
18
…
…
26
26
}
27
27
28
function gdmaq\_flat\_email\_from\_array($in) {
28
function gdmaq\_flat\_email\_from\_array($in) : array {
29
29
$out = array();
30
30
…
…
36
36
}
37
37
38
function gdmaq\_normalize\_email($in) {
38
function gdmaq\_normalize\_email($in) : array {
39
39
$con = array('email' => '', 'name' => '');
40
40
…
…
49
49
}
50
50
51
function gdmaq\_mail\_to\_queue($args = array()) {
51
function gdmaq\_mail\_to\_queue($args = array()) : int {
52
52
$defaults = array(
53
53
'to' => array(),
…
…
64
64
$args = wp\_parse\_args($args, $defaults);
65
65
66
if (!is\_array($args\['to'\]) && is\_string($args\['to'\])) {
66
if ( is\_string($args\['to'\]) ) {
67
67
$args\['to'\] = explode(',', $args\['to'\]);
68
68
}
…
…
100
100
}
101
101
102
if (apply\_filters('gdmaq\_mail\_to\_queue\_content\_processing', true)) {
103
$args\['subject'\] = wp\_kses($args\['subject'\], 'strip');
104
$args\['plain'\] = gdmaq\_process\_plain\_content\_for\_html($args\['plain'\]);
105
}
106
107
if (!empty($args\['html'\]) && apply\_filters('gdmaq\_mail\_to\_queue\_html\_processing', false)) {
108
$args\['html'\] = gdmaq\_kses\_max\_allowed($args\['html'\]);
109
}
110
102
111
$item = $args;
103
112
$item\['extras'\] = json\_encode($item\['extras'\]);
…
…
128
137
129
138
gdmaq\_settings()->save('statistics');
139
140
return $added;
130
141
}
142
143
function gdmaq\_allowed\_tags\_iframe\_display() : array {
144
return array\_merge(d4p\_kses\_wide\_list\_of\_tags(), d4p\_kses\_expanded\_list\_of\_tags());
145
}
146
147
function gdmaq\_process\_plain\_content\_for\_html($text, $preprocess = null) : string {
148
$preprocess = $preprocess ?? gdmaq\_settings()->get('preprocess', 'htmlfy');
149
150
$context = 'strip';
151
152
switch ($preprocess) {
153
case 'kses\_post':
154
$context = 'post';
155
break;
156
case 'kses\_basic':
157
$context = 'user\_description';
158
break;
159
case 'kses\_expanded':
160
$context = apply\_filters( 'gdmaq\_plain\_text\_preprocess\_html', d4p\_kses\_expanded\_list\_of\_tags() );
161
break;
162
}
163
164
return wp\_kses($text, $context);
165
}
166
167
function gdmaq\_kses\_max\_allowed($text) : string {
168
return wp\_kses($text, gdmaq\_allowed\_tags\_iframe\_display());
169
}
gd-mail-queue/trunk/core/grids/log.php
r2516163
r2923988
203
203
204
204
protected function column\_email($item) {
205
$render = '<div class="gdmaq-subject">'.$item->subject.'</div>';
205
$render = '<div class="gdmaq-subject">'.esc\_html($item->subject).'</div>';
206
206
207
207
if ($item->type != 'mail' && isset(gdmaq\_mailer()->detection()->supported\_types\[$item->type\])) {
…
…
323
323
$per\_page = $this->rows\_per\_page();
324
324
325
$last = isset($\_GET\['filter-period'\]) && !empty($\_GET\['filter-period'\]) ? d4p\_sanitize\_slug($\_GET\['filter-period'\]) : 0;
326
$status = isset($\_GET\['filter-status'\]) && !empty($\_GET\['filter-status'\]) ? d4p\_sanitize\_slug($\_GET\['filter-status'\]) : '';
327
$search = isset($\_GET\['s'\]) && $\_GET\['s'\] != '' ? d4p\_sanitize\_basic($\_GET\['s'\]) : '';
328
$type = isset($\_GET\['filter-type'\]) && !empty($\_GET\['filter-type'\]) ? d4p\_sanitize\_slug($\_GET\['filter-type'\]) : '';
325
$last = !empty($\_GET\['filter-period'\]) ? d4p\_sanitize\_slug($\_GET\['filter-period'\]) : 0;
326
$status = !empty($\_GET\['filter-status'\]) ? d4p\_sanitize\_slug($\_GET\['filter-status'\]) : '';
327
$search = !empty($\_GET\['s'\]) ? d4p\_sanitize\_basic(urldecode($\_GET\['s'\])) : '';
328
$type = !empty($\_GET\['filter-type'\]) ? d4p\_sanitize\_slug($\_GET\['filter-type'\]) : '';
329
329
330
330
$select = "l.\*, COUNT(\*) AS emails";
gd-mail-queue/trunk/core/objects/core.db.php
r2347977
r2923988
28
28
29
29
public function add\_mail\_to\_queue($args = array()) {
30
if (!isset($args\['blog\_id'\]) || empty($args\['blog\_id'\]) || $args\['blog\_id'\] === false || $args\['blog\_id'\] == 0) {
30
if ( empty($args\['blog\_id'\]) || $args\['blog\_id'\] == 0) {
31
31
$args\['blog\_id'\] = get\_current\_blog\_id();
32
32
}
…
…
80
80
$entry = shortcode\_atts($defaults, $entry);
81
81
82
$entry\['subject'\] = wp\_kses($entry\['subject'\], 'post');
83
$entry\['plain'\] = wp\_kses($entry\['plain'\], 'post');
84
82
85
if (strlen($entry\['message'\]) > 254) {
83
86
$entry\['message'\] = substr($entry\['message'\], 0, 254);
gd-mail-queue/trunk/core/objects/core.htmlfy.php
r2347977
r2923988
7
7
public $template;
8
8
public $additional;
9
public $preprocess;
9
10
public $header;
10
11
public $footer;
…
…
18
19
19
20
public function \_\_construct() {
20
foreach (array('replace', 'template', 'additional', 'header', 'footer', 'preheader', 'preheader\_limit', 'embed\_local\_images') as $key) {
21
foreach (array('replace', 'template', 'additional', 'preprocess', 'header', 'footer', 'preheader', 'preheader\_limit', 'embed\_local\_images') as $key) {
21
22
$this->$key = gdmaq\_settings()->get($key, 'htmlfy');
22
23
}
…
…
61
62
'is\_html' => false,
62
63
'preheader' => true,
63
64
'preprocess' => $this->preprocess,
64
65
'replace' => $this->replace,
65
66
'template' => $this->template,
…
…
79
80
$template = $this->\_get\_template($args);
80
81
81
$html\_content = $args\['is\_html'\] ? $content : $this->\_process\_text\_to\_html($content);
82
$html\_content = $args\['is\_html'\] ? $content : $this->\_process\_text\_to\_html($content, $args\['preprocess'\]);
82
83
$preheader = $args\['preheader'\] === true ? $this->\_generate\_preheader($subject, $content) : ($args\['preheader'\] === false ? '' : $args\['preheader'\]);
83
84
…
…
145
146
}
146
147
147
private function \_convert\_textlinks($body) {
148
return preg\_replace('#<(https?://\[^\*\]+)>#', '$1', $body);
149
}
148
private function \_convert\_text\_links($body) {
149
return preg\_replace('#<(https?://\[^\*\]+)>#', '$1', $body);
150
}
150
151
151
private function \_process\_text\_to\_html($body) {
152
$body = $this->\_convert\_textlinks($body);
153
$body = nl2br($body);
154
$body = make\_clickable($body);
152
private function \_convert\_line\_breaks($body) : string {
153
return nl2br($body);
154
}
155
155
156
return $body;
157
}
156
private function \_process\_text\_to\_html($body, $preprocess) : string {
157
$body = $this->\_convert\_text\_links($body);
158
$body = $this->\_convert\_line\_breaks($body);
159
160
$body = gdmaq\_process\_plain\_content\_for\_html($body, $preprocess);
161
162
return make\_clickable($body);
163
}
158
164
159
165
private function \_generate\_preheader($subject, $body) {
gd-mail-queue/trunk/core/settings.php
r2327878
r2923988
75
75
),
76
76
'htmlfy' => array(
77
'replace' => 'template', // template, custom
77
'preprocess' => 'kses\_post',
78
'replace' => 'template',
78
79
'template' => 'clean-basic',
79
80
'additional' => '',
gd-mail-queue/trunk/core/version.php
r2776206
r2923988
7
7
public $code = 'gd-mail-queue';
8
8
9
public $version = '3.9.3';
10
public $build = 115;
9
public $version = '4.0';
10
public $build = 120;
11
11
public $edition = 'free';
12
12
public $status = 'stable';
13
public $updated = '2022.08.26';
13
public $updated = '2023.06.09';
14
14
public $url = 'https://plugins.dev4press.com/gd-mail-queue/';
15
15
public $author\_name = 'Milan Petrovic';
…
…
17
17
public $released = '2019.05.02';
18
18
19
public $php = '7.0';
19
public $php = '7.3';
20
20
public $mysql = '5.1';
21
public $wordpress = '4.9';
22
public $classicpress = '1.0';
21
public $wordpress = '5.2';
22
public $classicpress = '1.2';
23
23
24
24
public $install = false;
gd-mail-queue/trunk/d4plib/admin/d4p.grid.php
r2516163
r2923988
84
84
return $default;
85
85
}
86
break;
87
case 'order':
86
case 'order':
88
87
$value = strtoupper($value);
89
88
…
…
93
92
return $default;
94
93
}
95
break;
96
94
}
97
95
}
gd-mail-queue/trunk/d4plib/admin/d4p.settings.php
r2516163
r2923988
174
174
foreach ($this->groups as $group => $obj) {
175
175
if (isset($obj\['type'\]) && $obj\['type'\] == 'separator') {
176
$args = isset($obj\['args'\]) ? $obj\['args'\] : array();
176
$args = $obj\['args'\] ?? array();
177
177
178
178
$classes = array('d4p-group-separator', 'd4p-group-'.$group);
…
…
186
186
echo '</div>';
187
187
} else {
188
$args = isset($obj\['args'\]) ? $obj\['args'\] : array();
188
$args = $obj\['args'\] ?? array();
189
189
190
190
$classes = array('d4p-group', 'd4p-group-'.$group);
…
…
202
202
203
203
if ($kb != '') {
204
$type = isset($obj\['kb'\]\['type'\]) ? $obj\['kb'\]\['type'\] : 'article';
204
$type = $obj\['kb'\]\['type'\] ?? 'article';
205
205
$kb = str\_replace('%type%', $type, $kb);
206
206
…
…
736
736
echo '</ol>';
737
737
738
$label = isset($element->args\['label\_button\_add'\]) ? $element->args\['label\_button\_add'\] : \_\_("Add New Value", "d4plib");
738
$label = $element->args\['label\_button\_add'\] ?? \_\_( "Add New Value", "d4plib" );
739
739
740
740
echo '<a role="button" class="button-primary" href="#">'.$label.'</a>';
…
…
764
764
foreach ($this->settings as $setting) {
765
765
if ($setting->type != '\_') {
766
$post = isset($request\[$this->base\]\[$setting->type\]) ? $request\[$this->base\]\[$setting->type\] : array();
766
$post = $request\[ $this->base \]\[ $setting->type \] ?? array();
767
767
768
768
$list\[$setting->type\]\[$setting->name\] = $this->process\_single($setting, $post);
…
…
775
775
public function slug\_slashes($key) {
776
776
$key = strtolower($key);
777
$key = preg\_replace('/\[^a-z0-9.\\/\_\\-\]/', '', $key);
778
779
return $key;
777
778
return preg\_replace('/\[^a-z0-9.\\/\_\\-\]/', '', $key);
780
779
}
781
780
…
…
853
852
case 'text\_html':
854
853
case 'text\_rich':
855
$tags = isset($args\['allowed\_html'\]) ? $args\['allowed\_html'\] : null;
854
$tags = $args\['allowed\_html'\] ?? null;
856
855
857
856
$value = d4p\_sanitize\_html($post\[$key\], $tags);
gd-mail-queue/trunk/d4plib/changelog.txt
r2639078
r2923988
1
1
\=== Dev4Press Library ===
2
2
\== Changelog ==
3
4
\= Version 2.8.15 - 2023.02.18 =
5
\* Fixed: some issues with PHP 8.x
3
6
4
7
\= Version 2.8.14 - 2021.07.22 =
gd-mail-queue/trunk/d4plib/classes/d4p.four.php
r2516163
r2923988
175
175
$url = add\_query\_arg('utm\_source', $this->data\['url'\], $url);
176
176
$url = add\_query\_arg('utm\_medium', 'web-'.$this->data\['name'\], $url);
177
$url = add\_query\_arg('utm\_campaign', $campaign.'-panel', $url);
178
179
return $url;
177
178
return add\_query\_arg('utm\_campaign', $campaign . '-panel', $url);
180
179
}
181
180
gd-mail-queue/trunk/d4plib/classes/d4p.geoip.php
r2516163
r2923988
116
116
117
117
public function \_\_get($name) {
118
if (isset($this->\_data->$name)) {
119
return $this->\_data->$name;
120
} else {
121
return '';
122
}
118
return $this->\_data->$name ?? '';
123
119
}
124
120
…
…
248
244
if (!class\_exists('d4p\_geojsio\_geoip')) {
249
245
class d4p\_geojsio\_geoip {
250
private $\_ips = array();
251
private $\_expire = 14;
246
private $\_ips;
247
private $\_expire;
252
248
253
249
private $\_data = array();
…
…
283
279
284
280
public function get($ip) {
285
return isset($this->\_data\[$ip\]) ? $this->\_data\[$ip\] : 'invalid';
281
return $this->\_data\[ $ip \] ?? 'invalid';
286
282
}
287
283
…
…
320
316
} else {
321
317
$code = array(
322
'error\_code' => isset($raw\['response'\]\['code'\]) ? $raw\['response'\]\['code'\] : 'error',
323
'error\_message' => isset($raw\['response'\]\['message'\]) ? $raw\['response'\]\['message'\] : 'Unspecified Error');
318
'error\_code' => $raw\['response'\]\['code'\] ?? 'error',
319
'error\_message' => $raw\['response'\]\['message'\] ?? 'Unspecified Error'
320
);
324
321
}
325
322
gd-mail-queue/trunk/d4plib/classes/d4p.ip.php
r2516163
r2923988
247
247
if (is\_null($ip)) {
248
248
if (isset($\_SERVER\['HTTP\_CF\_CONNECTING\_IP'\])) {
249
if (isset($\_SERVER\['HTTP\_X\_REAL\_IP'\])) {
250
$ip = $\_SERVER\['HTTP\_X\_REAL\_IP'\];
251
} else {
252
$ip = $\_SERVER\['REMOTE\_ADDR'\];
253
}
249
$ip = $\_SERVER\['HTTP\_X\_REAL\_IP'\] ?? $\_SERVER\['REMOTE\_ADDR'\];
254
250
} else {
255
251
return false;
gd-mail-queue/trunk/d4plib/core/d4p.scope.php
r2516163
r2923988
30
30
if (!class\_exists('d4p\_core\_scope')) {
31
31
abstract class d4p\_core\_scope {
32
private $scope = 'blog';
32
private $scope;
33
33
34
private $multisite = false;
34
private $multisite;
35
35
36
36
private $admin = false;
…
…
41
41
private $frontend = false;
42
42
43
private $blog\_id = 0;
43
private $blog\_id;
44
44
45
45
function \_\_construct() {
gd-mail-queue/trunk/d4plib/core/d4p.wpdb.php
r2516163
r2923988
114
114
$ids = array\_map('absint', $ids);
115
115
$ids = array\_unique($ids);
116
$ids = array\_filter($ids);
117
118
return $ids;
116
117
return array\_filter($ids);
119
118
}
120
119
gd-mail-queue/trunk/d4plib/d4p.access.php
r2516163
r2923988
86
86
if (!function\_exists('d4p\_current\_url\_request')) {
87
87
function d4p\_current\_url\_request() {
88
$pathinfo = isset($\_SERVER\['PATH\_INFO'\]) ? $\_SERVER\['PATH\_INFO'\] : '';
89
list($pathinfo) = explode('?', $pathinfo);
90
$pathinfo = str\_replace('%', '%25', $pathinfo);
88
$path\_info = $\_SERVER\['PATH\_INFO'\] ?? '';
89
list( $path\_info ) = explode( '?', $path\_info );
90
$path\_info = str\_replace( '%', '%25', $path\_info );
91
91
92
$request = explode('?', $\_SERVER\['REQUEST\_URI'\]);
93
$req\_uri = $request\[0\];
94
$req\_query = isset($request\[1\]) ? $request\[1\] : false;
95
$home\_path = trim(parse\_url(home\_url(), PHP\_URL\_PATH), '/');
96
$home\_path\_regex = sprintf('|^%s|i', preg\_quote($home\_path, '|'));
92
$request = explode( '?', $\_SERVER\['REQUEST\_URI'\] );
93
$req\_uri = $request\[0\];
94
$req\_query = $request\[1\] ?? false;
95
$home\_path = parse\_url( home\_url(), PHP\_URL\_PATH );
96
$home\_path = $home\_path ? trim( $home\_path, '/' ) : '';
97
$home\_path\_regex = sprintf( '|^%s|i', preg\_quote( $home\_path, '|' ) );
97
98
98
$req\_uri = str\_replace($pathinfo, '', $req\_uri);
99
$req\_uri = trim($req\_uri, '/');
100
$req\_uri = preg\_replace($home\_path\_regex, '', $req\_uri);
101
$req\_uri = trim($req\_uri, '/');
99
$req\_uri = str\_replace( $path\_info, '', $req\_uri );
100
$req\_uri = ltrim( $req\_uri, '/' );
101
$req\_uri = preg\_replace( $home\_path\_regex, '', $req\_uri );
102
$req\_uri = ltrim( $req\_uri, '/' );
102
103
103
$url\_request = $req\_uri;
104
$url\_request = $req\_uri;
104
105
105
if ($req\_query !== false) {
106
$url\_request.= '?'.$req\_query;
107
}
106
if ( $req\_query !== false ) {
107
$url\_request .= '?' . $req\_query;
108
}
108
109
109
return $url\_request;
110
return $url\_request;
110
111
}
111
112
}
gd-mail-queue/trunk/d4plib/d4p.core.php
r2639078
r2923988
29
29
30
30
if (!defined('D4P\_VERSION')) {
31
define('D4P\_VERSION', '2.8.14');
32
define('D4P\_BUILD', '2914');
31
define('D4P\_VERSION', '2.8.15');
32
define('D4P\_BUILD', '2815');
33
33
}
34
34
gd-mail-queue/trunk/d4plib/d4p.sanitize.php
r2516163
r2923988
49
49
function d4p\_sanitize\_key\_expanded($key) {
50
50
$key = strtolower($key);
51
$key = preg\_replace('/\[^a-z0-9.\_\\-\]/', '', $key);
52
53
return $key;
51
52
return preg\_replace('/\[^a-z0-9.\_\\-\]/', '', $key);
54
53
}
55
54
}
…
…
122
121
$ids = array\_map('trim', $ids);
123
122
$ids = array\_map($map, $ids);
124
$ids = array\_filter($ids);
125
126
return $ids;
123
124
return array\_filter($ids);
127
125
}
128
126
}
…
…
131
129
function d4p\_kses\_wide\_list\_of\_tags() {
132
130
return array\_merge(d4p\_kses\_expanded\_list\_of\_tags(), array(
131
'html' => array(
132
'class' => true,
133
'lang' => true
134
),
133
135
'head' => array(),
134
136
'title' => array(),
135
'html' => array(
136
'lang' => true
137
),
138
137
'link' => array(
139
138
'rel' => true,
…
…
172
171
'target' => true
173
172
),
173
'br' => array(
174
'class' => true,
175
'style' => true
176
),
174
177
'abbr' => array(
175
178
'class' => true,
…
…
281
284
'border' => true,
282
285
'class' => true,
283
'style' => true
286
'style' => true,
287
'width' => true
284
288
),
285
289
'tbody' => array(
…
…
293
297
'valign' => true,
294
298
'class' => true,
295
'style' => true
299
'style' => true,
300
'colspan' => true,
301
'rowspan' => true
296
302
),
297
303
'tfoot' => array(
…
…
305
311
'valign' => true,
306
312
'class' => true,
307
'style' => true
313
'style' => true,
314
'colspan' => true,
315
'rowspan' => true
308
316
),
309
317
'thead' => array(
gd-mail-queue/trunk/d4plib/d4p.wp.php
r2516163
r2923988
178
178
179
179
$content = apply\_filters('the\_content', $content);
180
$content = str\_replace('\]\]>', '\]\]>', $content);
181
182
return $content;
180
181
return str\_replace('\]\]>', '\]\]>', $content);
183
182
}
184
183
}
…
…
529
528
$image = wp\_get\_attachment\_image\_src($attachment\_id, $size, $icon);
530
529
531
return isset($image\['0'\]) ? $image\['0'\] : false;
530
return $image\['0'\] ?? false;
532
531
}
533
532
}
gd-mail-queue/trunk/d4plib/plugin/d4p.customizer.php
r2516163
r2923988
89
89
90
90
public function enqueue() {
91
wp\_enqueue\_style('d4p-customizer', $this->\_file('css', 'customizer', true), array(), D4P\_VERSION);
92
wp\_enqueue\_script('d4p-customizer', $this->\_file('js', 'customizer', true), array('jquery','customize-preview'), D4P\_VERSION, true);
91
wp\_enqueue\_style('d4p-customizer', $this->\_file('css', 'customizer'), array(), D4P\_VERSION);
92
wp\_enqueue\_script('d4p-customizer', $this->\_file('js', 'customizer'), array('jquery','customize-preview'), D4P\_VERSION, true);
93
93
}
94
94
…
…
111
111
$atts = $setting->manager->get\_control($setting->id)->input\_attrs;
112
112
113
$min = isset($atts\['min'\]) ? $atts\['min'\] : $input;
114
$max = isset($atts\['max'\]) ? $atts\['max'\] : $input;
115
$step = isset($atts\['step'\]) ? $atts\['step'\] : 1;
113
$min = $atts\['min'\] ?? $input;
114
$max = $atts\['max'\] ?? $input;
115
$step = $atts\['step'\] ?? 1;
116
116
117
117
$number = $step != 1 ? floor($input / $step) \* $step : $input;
gd-mail-queue/trunk/d4plib/plugin/d4p.settings.php
r2516163
r2923988
92
92
93
93
public function group($group) {
94
if (isset($this->settings\[$group\])) {
95
return $this->settings\[$group\];
96
} else {
97
return null;
98
}
94
return $this->settings\[ $group \] ?? null;
99
95
}
100
96
gd-mail-queue/trunk/d4plib/plugin/d4p.shortcodes.php
r2516163
r2923988
85
85
86
86
protected function \_args($code) {
87
return isset($this->shortcodes\[$code\]\['args'\]) ? $this->shortcodes\[$code\]\['args'\] : array();
87
return $this->shortcodes\[ $code \]\['args'\] ?? array();
88
88
}
89
89
gd-mail-queue/trunk/d4plib/readme.txt
r2639078
r2923988
1
1
\=== Dev4Press Library ===
2
Version: v2.8.14
3
Build: 2914
2
Version: v2.8.15
3
Build: 2815
4
4
Author: Milan Petrovic
5
5
Email: [email protected]
gd-mail-queue/trunk/d4plib/resources/js/admin.js
r2347977
r2923988
34
34
e.preventDefault();
35
35
36
var checkall = $(this).attr("href").substr(1) === "checkall";
36
var checkall = $(this).attr("href").substring(1) === "checkall";
37
37
38
38
$(this).parent().parent().find("input\[type=checkbox\]").prop("checked", checkall);
gd-mail-queue/trunk/d4plib/resources/js/admin.min.js
r2347977
r2923988
1
var d4plib\_admin;!function(r,n,e,t){(d4plib\_admin={scroll\_offset:40,active\_element:null,init:function(){r(".d4p-nav-button > a").click(function(e){e.preventDefault(),r(this).next().slideToggle("fast")}),setTimeout(function(){r(".d4p-wrap .updated").slideUp("slow")},4e3),r(n).bind("load resize orientationchange",function(){e.body.clientWidth<800?d4plib\_admin.scroll\_offset=60:d4plib\_admin.scroll\_offset=40,e.body.clientWidth<640?r(".d4p-panel-scroller").removeClass("d4p-scroll-active"):r(".d4p-panel-scroller").addClass("d4p-scroll-active")}),r(".d4p-check-uncheck a").click(function(e){e.preventDefault();var t="checkall"===r(this).attr("href").substr(1);r(this).parent().parent().find("input\[type=checkbox\]").prop("checked",t)})},settings:function(){"undefined"!=typeof d4plib\_media\_image&&null!==d4plib\_media\_image&&d4plib\_media\_image.init(),r.numeric&&(r(".d4p-setting-number input, .d4p-field-number").numeric(),r(".d4p-setting-integer input, .d4p-field-integer").numeric({decimalPlaces:0,negative:!1})),r(".d4p-color-picker").wpColorPicker(),r(e).on("click",".d4p-group h3 i.fa.fa-caret-down, .d4p-group h3 i.fa.fa-caret-up",function(){var e=r(this).hasClass("fa-caret-down"),t=r(this).parent().next();e?(r(this).removeClass("fa-caret-down").addClass("fa-caret-up"),t.slideDown(300)):(r(this).removeClass("fa-caret-up").addClass("fa-caret-down"),t.slideUp(300))}),r(e).on("click",".d4p-section-toggle .d4p-toggle-title",function(){var e=r(this).find("i.fa"),t=e.hasClass("fa-caret-down"),a=r(this).next();t?(e.removeClass("fa-caret-down").addClass("fa-caret-up"),a.slideDown(300)):(e.removeClass("fa-caret-up").addClass("fa-caret-down"),a.slideUp(300))}),r(e).on("click",".d4p-setting-expandable\_pairs .button-secondary",function(e){e.preventDefault();var t=r(this).parent();t.fadeOut(200,function(){t.remove()})}),r(".d4p-setting-expandable\_pairs a.button-primary").click(function(e){e.preventDefault();var t=r(this).closest(".d4p-setting-expandable\_pairs"),a=r(".d4p-next-id",t),n=a.val(),i=r(".pair-element-0",t).clone();r("input",i).each(function(){var e=r(this).attr("id").replace("\_0\_","\_"+n+"\_"),t=r(this).attr("name").replace("\[0\]","\["+n+"\]");r(this).attr("id",e).attr("name",t)}),i.attr("class","pair-element-"+n).fadeIn(),r(this).before(i),n++,a.val(n)}),r(e).on("click",".d4p-setting-expandable\_text .button-secondary",function(e){d4plib\_admin.handlers.expendable\_text\_remove(this,e)}),r(e).on("click",".d4p-setting-expandable\_raw .button-secondary",function(e){d4plib\_admin.handlers.expendable\_text\_remove(this,e)}),r(e).on("click",".d4p-setting-expandable\_regex .button-secondary",function(e){d4plib\_admin.handlers.expendable\_text\_remove(this,e)}),r(".d4p-setting-expandable\_text a.button-primary").click(function(e){d4plib\_admin.handlers.expendable\_text\_add(this,e,".d4p-setting-expandable\_text")}),r(".d4p-setting-expandable\_raw a.button-primary").click(function(e){d4plib\_admin.handlers.expendable\_text\_add(this,e,".d4p-setting-expandable\_raw")}),r(".d4p-setting-expandable\_regex a.button-primary").click(function(e){d4plib\_admin.handlers.expendable\_text\_add(this,e,".d4p-setting-expandable\_regex")})},scroller:function(){var e=r(".d4p-panel-scroller"),t=r(n);if(0<e.length){var a=e.offset();t.scroll(function(){t.scrollTop()>a.top&&e.hasClass("d4p-scroll-active")?e.stop().animate({marginTop:t.scrollTop()-a.top+d4plib\_admin.scroll\_offset}):e.stop().animate({marginTop:0})})}},handlers:{expendable\_text\_remove:function(e,t){t.preventDefault();var a=r(e).parent();a.fadeOut(200,function(){a.remove()})},expendable\_text\_add:function(e,t,a){t.preventDefault();var n=r(e).closest(a),i=r(".d4p-next-id",n),d=i.val(),l=r(".exp-text-element-0",n).clone();r("input",l).each(function(){var e=r(this).attr("id").replace("\_0\_","\_"+d+"\_"),t=r(this).attr("name").replace("\[0\]","\["+d+"\]");r(this).attr("id",e).attr("name",t)}),l.attr("class","exp-text-element exp-text-element-"+d).fadeIn(),r("ol",n).append(l),d++,i.val(d)}}}).init(),d4plib\_admin.settings(),d4plib\_admin.scroller()}(jQuery,window,document);
1
var d4plib\_admin;!function(i,n,e){(d4plib\_admin={scroll\_offset:40,active\_element:null,init:function(){i(".d4p-nav-button > a").click(function(e){e.preventDefault(),i(this).next().slideToggle("fast")}),setTimeout(function(){i(".d4p-wrap .updated").slideUp("slow")},4e3),i(n).bind("load resize orientationchange",function(){e.body.clientWidth<800?d4plib\_admin.scroll\_offset=60:d4plib\_admin.scroll\_offset=40,e.body.clientWidth<640?i(".d4p-panel-scroller").removeClass("d4p-scroll-active"):i(".d4p-panel-scroller").addClass("d4p-scroll-active")}),i(".d4p-check-uncheck a").click(function(e){e.preventDefault();e="checkall"===i(this).attr("href").substring(1);i(this).parent().parent().find("input\[type=checkbox\]").prop("checked",e)})},settings:function(){"undefined"!=typeof d4plib\_media\_image&&null!==d4plib\_media\_image&&d4plib\_media\_image.init(),i.numeric&&(i(".d4p-setting-number input, .d4p-field-number").numeric(),i(".d4p-setting-integer input, .d4p-field-integer").numeric({decimalPlaces:0,negative:!1})),i(".d4p-color-picker").wpColorPicker(),i(e).on("click",".d4p-group h3 i.fa.fa-caret-down, .d4p-group h3 i.fa.fa-caret-up",function(){var e=i(this).hasClass("fa-caret-down"),t=i(this).parent().next();e?(i(this).removeClass("fa-caret-down").addClass("fa-caret-up"),t.slideDown(300)):(i(this).removeClass("fa-caret-up").addClass("fa-caret-down"),t.slideUp(300))}),i(e).on("click",".d4p-section-toggle .d4p-toggle-title",function(){var e=i(this).find("i.fa"),t=e.hasClass("fa-caret-down"),a=i(this).next();t?(e.removeClass("fa-caret-down").addClass("fa-caret-up"),a.slideDown(300)):(e.removeClass("fa-caret-up").addClass("fa-caret-down"),a.slideUp(300))}),i(e).on("click",".d4p-setting-expandable\_pairs .button-secondary",function(e){e.preventDefault();var t=i(this).parent();t.fadeOut(200,function(){t.remove()})}),i(".d4p-setting-expandable\_pairs a.button-primary").click(function(e){e.preventDefault();var e=i(this).closest(".d4p-setting-expandable\_pairs"),t=i(".d4p-next-id",e),a=t.val(),e=i(".pair-element-0",e).clone();i("input",e).each(function(){var e=i(this).attr("id").replace("\_0\_","\_"+a+"\_"),t=i(this).attr("name").replace("\[0\]","\["+a+"\]");i(this).attr("id",e).attr("name",t)}),e.attr("class","pair-element-"+a).fadeIn(),i(this).before(e),a++,t.val(a)}),i(e).on("click",".d4p-setting-expandable\_text .button-secondary",function(e){d4plib\_admin.handlers.expendable\_text\_remove(this,e)}),i(e).on("click",".d4p-setting-expandable\_raw .button-secondary",function(e){d4plib\_admin.handlers.expendable\_text\_remove(this,e)}),i(e).on("click",".d4p-setting-expandable\_regex .button-secondary",function(e){d4plib\_admin.handlers.expendable\_text\_remove(this,e)}),i(".d4p-setting-expandable\_text a.button-primary").click(function(e){d4plib\_admin.handlers.expendable\_text\_add(this,e,".d4p-setting-expandable\_text")}),i(".d4p-setting-expandable\_raw a.button-primary").click(function(e){d4plib\_admin.handlers.expendable\_text\_add(this,e,".d4p-setting-expandable\_raw")}),i(".d4p-setting-expandable\_regex a.button-primary").click(function(e){d4plib\_admin.handlers.expendable\_text\_add(this,e,".d4p-setting-expandable\_regex")})},scroller:function(){var e,t=i(".d4p-panel-scroller"),a=i(n);0<t.length&&(e=t.offset(),a.scroll(function(){a.scrollTop()>e.top&&t.hasClass("d4p-scroll-active")?t.stop().animate({marginTop:a.scrollTop()-e.top+d4plib\_admin.scroll\_offset}):t.stop().animate({marginTop:0})}))},handlers:{expendable\_text\_remove:function(e,t){t.preventDefault();var a=i(e).parent();a.fadeOut(200,function(){a.remove()})},expendable\_text\_add:function(e,t,a){t.preventDefault();var t=i(e).closest(a),e=i(".d4p-next-id",t),n=e.val(),a=i(".exp-text-element-0",t).clone();i("input",a).each(function(){var e=i(this).attr("id").replace("\_0\_","\_"+n+"\_"),t=i(this).attr("name").replace("\[0\]","\["+n+"\]");i(this).attr("id",e).attr("name",t)}),a.attr("class","exp-text-element exp-text-element-"+n).fadeIn(),i("ol",t).append(a),n++,e.val(n)}}}).init(),d4plib\_admin.settings(),d4plib\_admin.scroller()}(jQuery,window,document);
gd-mail-queue/trunk/d4plib/resources/js/meta.js
r2079713
r2923988
8
8
e.preventDefault();
9
9
10
var tab = $(this).attr("href").substr(1),
10
var tab = $(this).attr("href").substring(1),
11
11
wrap = $(this).closest(".d4plib-metabox-wrapper");
12
12
…
…
26
26
e.preventDefault();
27
27
28
var checkall = $(this).attr("href").substr(1) === "checkall";
28
var checkall = $(this).attr("href").substring(1) === "checkall";
29
29
30
30
$(this).parent().parent().find("input\[type=checkbox\]").prop("checked", checkall);
gd-mail-queue/trunk/d4plib/resources/js/meta.min.js
r2079713
r2923988
1
var d4plib\_metabox;!function(i,a,t,e){(d4plib\_metabox={init:function(){i(".d4plib-metabox-wrapper .wp-tab-bar a").click(function(a){a.preventDefault();var t=i(this).attr("href").substr(1),e=i(this).closest(".d4plib-metabox-wrapper");i(this).closest("ul").find("li").removeClass("wp-tab-active"),i(this).parent().addClass("wp-tab-active"),e.find(".wp-tab-panel").removeClass("tabs-panel-active").addClass("tabs-panel-inactive"),e.find("#"+t).removeClass("tabs-panel-inactive").addClass("tabs-panel-active")}),i(".d4plib-metabox-check-uncheck a").click(function(a){a.preventDefault();var t="checkall"===i(this).attr("href").substr(1);i(this).parent().parent().find("input\[type=checkbox\]").prop("checked",t)})}}).init()}(jQuery,window,document);
1
var d4plib\_metabox;!function(e){(d4plib\_metabox={init:function(){e(".d4plib-metabox-wrapper .wp-tab-bar a").click(function(t){t.preventDefault();var t=e(this).attr("href").substring(1),a=e(this).closest(".d4plib-metabox-wrapper");e(this).closest("ul").find("li").removeClass("wp-tab-active"),e(this).parent().addClass("wp-tab-active"),a.find(".wp-tab-panel").removeClass("tabs-panel-active").addClass("tabs-panel-inactive"),a.find("#"+t).removeClass("tabs-panel-inactive").addClass("tabs-panel-active")}),e(".d4plib-metabox-check-uncheck a").click(function(t){t.preventDefault();t="checkall"===e(this).attr("href").substring(1);e(this).parent().parent().find("input\[type=checkbox\]").prop("checked",t)})}}).init()}(jQuery,(window,document));
gd-mail-queue/trunk/d4plib/resources/js/widgets.js
r2106296
r2923988
8
8
e.preventDefault();
9
9
10
var checkall = $(this).attr("href").substr(1) === "checkall";
10
var checkall = $(this).attr("href").substring(1) === "checkall";
11
11
12
12
$(this).parent().parent().find("input\[type=checkbox\]").prop("checked", checkall);
…
…
18
18
var tabs = $(this).parent(),
19
19
content = tabs.next(),
20
tab = $(this).attr("href").substr(1),
20
tab = $(this).attr("href").substring(1),
21
21
tab\_name = typeof $(this).data("tabname") !== 'undefined' ? $(this).data("tabname") : tab;
22
22
gd-mail-queue/trunk/d4plib/resources/js/widgets.min.js
r2106296
r2923988
1
var d4plib\_widgets;!function(n,t,i,e){(d4plib\_widgets={init:function(){n(i).on("click",".d4p-check-uncheck a",function(t){t.preventDefault();var i="checkall"===n(this).attr("href").substr(1);n(this).parent().parent().find("input\[type=checkbox\]").prop("checked",i)}),n(i).on("click",".d4plib-widget-tab",function(t){t.preventDefault();var i=n(this).parent(),e=i.next(),a=n(this).attr("href").substr(1),c=void 0!==n(this).data("tabname")?n(this).data("tabname"):a;n(".d4plib-widget-active-tab",i).val(c),n(".d4plib-widget-tab",i).removeClass("d4plib-tab-active").attr("aria-selected","false"),n(".d4plib-tabname-"+a,i).addClass("d4plib-tab-active").attr("aria-selected","true"),n(".d4plib-tab-content",e).removeClass("d4plib-content-active").attr("aria-hidden","true"),n(".d4plib-tabname-"+a,e).addClass("d4plib-content-active").attr("aria-hidden","false")}),n(i).on("keydown",".d4plib-widget-tab\[role='tab'\]",function(t){13===t.which?n(this).click():39===t.which?n(this).next().focus().click():37===t.which&&n(this).prev().focus().click()}),n(i).on("change",".d4plib-widget-save",function(t){n(this).closest("form").find(".widget-control-actions input.button").click()}),n(i).on("change",".d4plib-div-switch",function(){var t=n(this).val(),i=n(this).data().hasOwnProperty("prefix")?n(this).data("prefix"):"",e=""===i?".d4p-div-block":".d4p-div-block-"+i,a=n(this).closest(".widget-content");n(e,a).hide(),n(e+"-"+t,a).show()}),n(i).on("change",".d4plib-block-switch",function(t){var i=n(this).data("block"),e=n(this).val(),a=n(this).closest("table");n(".cellblock-"+i,a).hide(),n(".cellblockname-"+e,a).show()}),n(i).ajaxStop(function(){d4plib\_widgets.settings()})},settings:function(){n(".d4p-color-picker:not(.wp-color-picker)").on("focus",function(){n(this).wpColorPicker()})}}).init(),d4plib\_widgets.settings()}(jQuery,window,document);
1
var d4plib\_widgets;!function(c,t){(d4plib\_widgets={init:function(){c(t).on("click",".d4p-check-uncheck a",function(t){t.preventDefault();t="checkall"===c(this).attr("href").substring(1);c(this).parent().parent().find("input\[type=checkbox\]").prop("checked",t)}),c(t).on("click",".d4plib-widget-tab",function(t){t.preventDefault();var t=c(this).parent(),i=t.next(),e=c(this).attr("href").substring(1),a=void 0!==c(this).data("tabname")?c(this).data("tabname"):e;c(".d4plib-widget-active-tab",t).val(a),c(".d4plib-widget-tab",t).removeClass("d4plib-tab-active").attr("aria-selected","false"),c(".d4plib-tabname-"+e,t).addClass("d4plib-tab-active").attr("aria-selected","true"),c(".d4plib-tab-content",i).removeClass("d4plib-content-active").attr("aria-hidden","true"),c(".d4plib-tabname-"+e,i).addClass("d4plib-content-active").attr("aria-hidden","false")}),c(t).on("keydown",".d4plib-widget-tab\[role='tab'\]",function(t){13===t.which?c(this).click():39===t.which?c(this).next().focus().click():37===t.which&&c(this).prev().focus().click()}),c(t).on("change",".d4plib-widget-save",function(t){c(this).closest("form").find(".widget-control-actions input.button").click()}),c(t).on("change",".d4plib-div-switch",function(){var t=c(this).val(),i=c(this).data().hasOwnProperty("prefix")?c(this).data("prefix"):"",i=""===i?".d4p-div-block":".d4p-div-block-"+i,e=c(this).closest(".widget-content");c(i,e).hide(),c(i+"-"+t,e).show()}),c(t).on("change",".d4plib-block-switch",function(t){var i=c(this).data("block"),e=c(this).val(),a=c(this).closest("table");c(".cellblock-"+i,a).hide(),c(".cellblockname-"+e,a).show()}),c(t).ajaxStop(function(){d4plib\_widgets.settings()})},settings:function(){c(".d4p-color-picker:not(.wp-color-picker)").on("focus",function(){c(this).wpColorPicker()})}}).init(),d4plib\_widgets.settings()}(jQuery,(window,document));
gd-mail-queue/trunk/forms/about/changelog.php
r2776206
r2923988
1
1
<?php if (!defined('ABSPATH')) { exit; } ?>
2
2
<div class="d4p-group d4p-group-changelog">
3
<h3><?php \_e("Version", "gd-mail-queue"); ?> 3</h3>
3
<h3><?php esc\_html\_e("Version", "gd-mail-queue"); ?> 4</h3>
4
<div class="d4p-group-inner">
5
<h4>Version: 4.0 / june 9 2023</h4>
6
<ul>
7
<li><strong>new</strong> plugin tested with WordPress up to 6.2</li>
8
<li><strong>new</strong> system requirements: plugin requires PHP 7.3</li>
9
<li><strong>new</strong> system requirements: plugin requires WordPress 5.2</li>
10
<li><strong>new</strong> option to control HTMLfy pre-processing of plain text</li>
11
<li><strong>new</strong> run KSES filter when adding email into queue</li>
12
<li><strong>new</strong> run KSES filter when saving email into the log</li>
13
<li><strong>new</strong> logged email preview with proper data escaping</li>
14
<li><strong>new</strong> filters to control pre-processing of emails going to queue</li>
15
<li><strong>new</strong> process logged email preview with KSES before displaying</li>
16
<li><strong>new</strong> filter for HTMLfy pre-processing control for KSES</li>
17
<li><strong>edit</strong> many more additional content escaping for display</li>
18
<li><strong>edit</strong> various small updates to improve PHP code standards</li>
19
<li><strong>edit</strong> d4pLib 2.8.15</li>
20
<li><strong>fix</strong> unauthenticated stored cross-site scripting vulnerability</li>
21
</ul>
22
</div>
23
</div>
24
25
<div class="d4p-group d4p-group-changelog">
26
<h3><?php esc\_html\_e("Version", "gd-mail-queue"); ?> 3</h3>
4
27
<div class="d4p-group-inner">
5
28
<h4>Version: 3.9.3 / august 26 2022</h4>
…
…
188
211
189
212
<div class="d4p-group d4p-group-changelog">
190
<h3><?php \_e("Version", "gd-mail-queue"); ?> 2</h3>
213
<h3><?php esc\_html\_e("Version", "gd-mail-queue"); ?> 2</h3>
191
214
<div class="d4p-group-inner">
192
215
<h4>Version: 2.1.2 / may 30 2019</h4>
…
…
245
268
246
269
<div class="d4p-group d4p-group-changelog">
247
<h3><?php \_e("Version", "gd-mail-queue"); ?> 1</h3>
270
<h3><?php esc\_html\_e("Version", "gd-mail-queue"); ?> 1</h3>
248
271
<div class="d4p-group-inner">
249
272
<h4>Version: 1.0 / may 2 2019</h4>
gd-mail-queue/trunk/forms/about/header.php
r2079713
r2923988
4
4
5
5
$\_classes = array(
6
'd4p-wrap',
7
'wpv-'.GDMAQ\_WPV,
8
'd4p-page-'.gdmaq\_admin()->page,
9
'd4p-panel',
10
'd4p-panel-'.$\_panel);
6
'd4p-wrap',
7
'wpv-'.GDMAQ\_WPV,
8
'd4p-page-'.gdmaq\_admin()->page,
9
'd4p-panel',
10
'd4p-panel-'.$\_panel);
11
11
12
12
$\_tabs = array(
13
'whatsnew' => \_\_("What’s New", "gd-mail-queue"),
14
'info' => \_\_("Info", "gd-mail-queue"),
15
'changelog' => \_\_("Changelog", "gd-mail-queue"),
16
'dev4press' => \_\_("Dev4Press", "gd-mail-queue")
13
'whatsnew' => \_\_("What’s New", "gd-mail-queue"),
14
'info' => \_\_("Info", "gd-mail-queue"),
15
'changelog' => \_\_("Changelog", "gd-mail-queue"),
16
'dev4press' => \_\_("Dev4Press", "gd-mail-queue")
17
17
);
18
18
19
19
?>
20
20
21
<div class="<?php echo join(' ', $\_classes); ?>">
21
<div class="<?php echo esc\_attr(join(' ', $\_classes)); ?>">
22
22
<h1><?php printf(\_\_("Welcome to GD Mail Queue %s", "gd-mail-queue"), gdmaq\_settings()->info\_version); ?></h1>
23
23
<p class="d4p-about-text">
24
<?php \_e("Configure various security related HTTP headers, including Content Security Policy, Referrer Policy and more. All headers can be added to .HTACCESS file.", "gd-mail-queue"); ?>
24
<?php esc\_html\_e("Configure various security related HTTP headers, including Content Security Policy, Referrer Policy and more. All headers can be added to .HTACCESS file.", "gd-mail-queue"); ?>
25
25
</p>
26
26
<div class="d4p-about-badge" style="background-color: #773355;">
27
27
<i class="d4p-icon d4p-plugin-icon-gd-mail-queue"></i>
28
<?php printf(\_\_("Version %s", "gd-mail-queue"), gdmaq\_settings()->info\_version); ?>
28
<?php printf(\_\_("Version %s", "gd-mail-queue"), gdmaq\_settings()->info\_version); ?>
29
29
</div>
30
30
31
31
<h2 class="nav-tab-wrapper wp-clearfix">
32
<?php
32
<?php
33
33
34
foreach ($\_tabs as $\_tab => $\_label) {
35
echo '<a href="admin.php?page=gd-mail-queue-about&panel='.$\_tab.'" class="nav-tab'.($\_tab == $\_panel ? ' nav-tab-active' : '').'">'.$\_label.'</a>';
36
}
34
foreach ($\_tabs as $\_tab => $\_label) {
35
echo '<a href="admin.php?page=gd-mail-queue-about&panel='.$\_tab.'" class="nav-tab'.($\_tab == $\_panel ? ' nav-tab-active' : '').'">'.$\_label.'</a>';
36
}
37
37
38
?>
38
?>
39
39
</h2>
40
40
gd-mail-queue/trunk/forms/about/info.php
r2081206
r2923988
3
3
<div class="d4p-group-inner">
4
4
<ul>
5
<li><?php \_e("Version", "gd-mail-queue"); ?>: <span><?php echo gdmaq\_settings()->info\_version; ?></span></li>
6
<li><?php \_e("Status", "gd-mail-queue"); ?>: <span><?php echo ucfirst(gdmaq\_settings()->info\_status); ?></span></li>
7
<li><?php \_e("Edition", "gd-mail-queue"); ?>: <span><?php echo ucfirst(gdmaq\_settings()->info\_edition); ?></span></li>
8
<li><?php \_e("Build", "gd-mail-queue"); ?>: <span><?php echo gdmaq\_settings()->info\_build; ?></span></li>
9
<li><?php \_e("Date", "gd-mail-queue"); ?>: <span><?php echo gdmaq\_settings()->info\_updated; ?></span></li>
5
<li><?php esc\_html\_e("Version", "gd-mail-queue"); ?>: <span><?php echo esc\_html( gdmaq\_settings()->info\_version ); ?></span></li>
6
<li><?php esc\_html\_e("Status", "gd-mail-queue"); ?>: <span><?php echo esc\_html( ucfirst(gdmaq\_settings()->info\_status)); ?></span></li>
7
<li><?php esc\_html\_e("Edition", "gd-mail-queue"); ?>: <span><?php echo esc\_html( ucfirst(gdmaq\_settings()->info\_edition)); ?></span></li>
8
<li><?php esc\_html\_e("Build", "gd-mail-queue"); ?>: <span><?php echo esc\_html( gdmaq\_settings()->info\_build); ?></span></li>
9
<li><?php esc\_html\_e("Date", "gd-mail-queue"); ?>: <span><?php echo esc\_html( gdmaq\_settings()->info\_updated); ?></span></li>
10
10
</ul>
11
11
<hr style="margin: 1em 0 .7em; border-top: 1px solid #eee"/>
12
12
<ul>
13
<li><?php \_e("First released", "gd-mail-queue"); ?>: <span><?php echo gdmaq\_settings()->info\_released; ?></span></li>
13
<li><?php esc\_html\_e("First released", "gd-mail-queue"); ?>: <span><?php echo esc\_html( gdmaq\_settings()->info\_released); ?></span></li>
14
14
</ul>
15
15
</div>
…
…
17
17
18
18
<div class="d4p-group d4p-group-import d4p-group-about">
19
<h3><?php \_e("System Requirements", "gd-mail-queue"); ?></h3>
19
<h3><?php esc\_html\_e("System Requirements", "gd-mail-queue"); ?></h3>
20
20
<div class="d4p-group-inner">
21
21
<ul>
22
<li><?php \_e("WordPress", "gd-mail-queue"); ?>: <span><?php echo gdmaq\_settings()->info\_wordpress; ?></span></li>
23
<li><?php \_e("PHP", "gd-mail-queue"); ?>: <span><?php echo gdmaq\_settings()->info\_php; ?></span></li>
24
<li><?php \_e("MySQL", "gd-mail-queue"); ?>: <span><?php echo gdmaq\_settings()->info\_mysql; ?></span></li>
22
<li><?php esc\_html\_e("WordPress", "gd-mail-queue"); ?>: <span><?php echo esc\_html( gdmaq\_settings()->info\_wordpress); ?></span></li>
23
<li><?php esc\_html\_e("PHP", "gd-mail-queue"); ?>: <span><?php echo esc\_html( gdmaq\_settings()->info\_php); ?></span></li>
24
<li><?php esc\_html\_e("MySQL", "gd-mail-queue"); ?>: <span><?php echo esc\_html( gdmaq\_settings()->info\_mysql); ?></span></li>
25
25
</ul>
26
26
</div>
…
…
28
28
29
29
<div class="d4p-group d4p-group-import d4p-group-about">
30
<h3><?php \_e("Knowledge Base and Support Forums", "gd-mail-queue"); ?></h3>
30
<h3><?php esc\_html\_e("Knowledge Base and Support Forums", "gd-mail-queue"); ?></h3>
31
31
<div class="d4p-group-inner">
32
32
<ul>
…
…
39
39
40
40
<div class="d4p-group d4p-group-import d4p-group-about">
41
<h3><?php \_e("Important Links", "gd-mail-queue"); ?></h3>
41
<h3><?php esc\_html\_e("Important Links", "gd-mail-queue"); ?></h3>
42
42
<div class="d4p-group-inner">
43
43
<ul>
44
<li><?php \_e("On WordPress.org", "gd-mail-queue"); ?>: <span><a href="https://wordpress.org/plugins/gd-mail-queue/" target="\_blank">wordpress.org/plugins/gd-mail-queue</a></span></li>
45
<li><?php \_e("On Dev4Press", "gd-mail-queue"); ?>: <span><a href="https://plugins.dev4press.com/gd-mail-queue/" target="\_blank">plugins.dev4press.com/gd-mail-queue</a></span></li>
44
<li><?php esc\_html\_e("On WordPress.org", "gd-mail-queue"); ?>: <span><a href="https://wordpress.org/plugins/gd-mail-queue/" target="\_blank">wordpress.org/plugins/gd-mail-queue</a></span></li>
45
<li><?php esc\_html\_e("On Dev4Press", "gd-mail-queue"); ?>: <span><a href="https://plugins.dev4press.com/gd-mail-queue/" target="\_blank">plugins.dev4press.com/gd-mail-queue</a></span></li>
46
46
</ul>
47
47
</div>
gd-mail-queue/trunk/forms/about/minor.php
r2776206
r2923988
1
1
<div class="d4p-about-minor">
2
<h3><?php \_e("Maintenance and Security Releases", "gd-mail-queue"); ?></h3>
2
<h3><?php esc\_html\_e("Maintenance and Security Releases", "gd-mail-queue"); ?></h3>
3
3
<p>
4
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.9.3</span></strong> −
5
Few improvements and fixes.
6
</p>
7
<p>
8
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.9.2</span></strong> −
9
WordPress 6.0 compatibility tested.
10
</p>
11
<p>
12
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.9.1</span></strong> −
4
<strong><?php esc\_html\_e("Version", "gd-mail-queue"); ?> <span>4.0</span></strong> −
13
5
Various improvements and fixes.
14
</p>
15
<p>
16
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.9</span></strong> −
17
Various improvements and fixes.
18
</p>
19
<p>
20
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.8</span></strong> −
21
Expanded email detection. Few updates and fixes.
22
</p>
23
<p>
24
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.7</span></strong> −
25
Support for WordPress 5.5. Few updates and fixes.
26
</p>
27
<p>
28
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.6</span></strong> −
29
Latest errors dashboard widget. Few updates and fixes.
30
</p>
31
<p>
32
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.5.1</span></strong> −
33
Few updates and fixes.
34
</p>
35
<p>
36
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.5</span></strong> −
37
Major updates to the queue processing. Many core updates and improvements.
38
</p>
39
<p>
40
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.4.2</span></strong> −
41
Few updates and improvements.
42
</p>
43
<p>
44
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.4.1</span></strong> −
45
Few updates and improvements.
46
</p>
47
<p>
48
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.4</span></strong> −
49
Colour coded emails log and action to retry failed emails. Various improvements and bug fixes.
50
</p>
51
<p>
52
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.3</span></strong> −
53
Many new options and settings, various improvements and bug fixes.
54
</p>
55
<p>
56
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.2</span></strong> −
57
Few improvements to detection, email building and plugin information.
58
</p>
59
<p>
60
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.1</span></strong> −
61
New email core class. Various updates and fixes.
62
</p>
63
<p>
64
<strong><?php \_e("Version", "gd-mail-queue"); ?> <span>3.0.1</span></strong> −
65
Few updates and improvements.
66
6
</p>
67
7
<p>
gd-mail-queue/trunk/forms/dashboard/errors.php
r2327878
r2923988
14
14
?>
15
15
<div class="d4p-group d4p-group-dashboard-card d4p-double-card d4p-group-dashboard-queue">
16
<h3><?php \_e("Logged Email Sending Errors", "gd-mail-queue"); ?></h3>
16
<h3><?php esc\_html\_e("Logged Email Sending Errors", "gd-mail-queue"); ?></h3>
17
17
<div class="d4p-group-stats">
18
18
<ul class="d4p-items-list">
19
19
<li>
20
<strong><i class="fa fa-warning fa-fw"></i> <?php echo $label; ?></strong>
21
<span><?php echo $total\_errors; ?></span>
20
<strong><i class="fa fa-warning fa-fw"></i> <?php echo esc\_html( $label); ?></strong>
21
<span><?php echo esc\_html($total\_errors); ?></span>
22
22
</li>
23
23
</ul><div class="d4p-clearfix"></div>
24
24
</div>
25
25
<div class="d4p-group-inner">
26
<h4><?php \_e("Latest logged errors", "gd-mail-queue"); ?></h4>
26
<h4><?php esc\_html\_e("Latest logged errors", "gd-mail-queue"); ?></h4>
27
27
<ul class="d4p-items-list">
28
28
<?php foreach ($latest\_errors as $error) { ?>
29
29
<li>
30
30
<strong><i class="fa fa-times fa-fw"></i> <?php echo gdmaq()->get\_engine\_label($error->engine); ?></strong> -
31
<?php echo empty(trim($error->message)) ? \_\_("Unspecified error", "gd-mail-queue") : ucfirst($error->message); ?>
32
<span><?php echo $error->logged ?></span>
31
<?php echo empty(trim($error->message)) ? esc\_html\_\_("Unspecified error", "gd-mail-queue") : ucfirst($error->message); ?>
32
<span><?php echo esc\_html($error->logged); ?></span>
33
33
</li>
34
34
<?php } ?>
…
…
36
36
</div>
37
37
<div class="d4p-group-footer">
38
<a href="admin.php?page=gd-mail-queue-log&filter-status=fail" class="button-primary"><?php \_e("Errors in Log", "gd-mail-queue"); ?></a>
38
<a href="admin.php?page=gd-mail-queue-log&filter-status=fail" class="button-primary"><?php esc\_html\_e("Errors in Log", "gd-mail-queue"); ?></a>
39
39
40
<a href="admin.php?page=gd-mail-queue-front&gdmaq\_handler=getback&dashboard-action=clear-board&\_nonce=<?php echo wp\_create\_nonce("gdmaq-clear-board"); ?>" class="button-secondary gdmaq-button-control"><?php \_e("Clear the board", "gd-mail-queue"); ?></a>
40
<a href="admin.php?page=gd-mail-queue-front&gdmaq\_handler=getback&dashboard-action=clear-board&\_nonce=<?php echo wp\_create\_nonce("gdmaq-clear-board"); ?>" class="button-secondary gdmaq-button-control"><?php esc\_html\_e("Clear the board", "gd-mail-queue"); ?></a>
41
41
</div>
42
42
</div>
gd-mail-queue/trunk/forms/dashboard/last.php
r2106296
r2923988
1
1
<?php if (!defined('ABSPATH')) { exit; } ?>
2
2
<div class="d4p-group d4p-group-dashboard-card d4p-group-dashboard-queue">
3
<h3><?php \_e("Last Queue Information", "gd-mail-queue"); ?></h3>
3
<h3><?php esc\_html\_e("Last Queue Information", "gd-mail-queue"); ?></h3>
4
4
<div class="d4p-group-stats">
5
5
<ul class="d4p-items-list">
6
6
<li class="liner">
7
<strong><i class="fa fa-clock-o fa-fw"></i> <?php \_e("Queue Started", "gd-mail-queue"); ?></strong>
8
<span><?php $val = gdmaq\_settings()->get\_statistics('last\_queue\_started'); echo $val == 0 ? \_\_("Never", "gd-mail-queue") : date('Y-m-d H:i:s', gdmaq()->datetime->timestamp\_gmt\_to\_local($val)); ?></span>
7
<strong><i class="fa fa-clock-o fa-fw"></i> <?php esc\_html\_e("Queue Started", "gd-mail-queue"); ?></strong>
8
<span><?php $val = gdmaq\_settings()->get\_statistics('last\_queue\_started'); echo $val == 0 ? esc\_html\_\_("Never", "gd-mail-queue") : date('Y-m-d H:i:s', gdmaq()->datetime->timestamp\_gmt\_to\_local($val)); ?></span>
9
9
</li>
10
10
<li>
11
<strong><i class="fa fa-arrows-h fa-fw"></i> <?php \_e("Queue Run Time", "gd-mail-queue"); ?></strong>
11
<strong><i class="fa fa-arrows-h fa-fw"></i> <?php esc\_html\_e("Queue Run Time", "gd-mail-queue"); ?></strong>
12
12
<span><?php $val = ceil(gdmaq\_settings()->get\_statistics('last\_queue\_time')); echo sprintf(\_n("%s second", "%s seconds", $val, "gd-mail-queue"), $val); ?></span>
13
13
</li>
…
…
17
17
<ul class="d4p-items-list" style="margin-top: 0">
18
18
<li>
19
<strong><i class="fa fa-envelope-o fa-fw"></i> <?php \_e("Emails Sent", "gd-mail-queue"); ?></strong>
20
<span><?php echo gdmaq\_settings()->get\_statistics('last\_queue\_sent'); ?></span>
19
<strong><i class="fa fa-envelope-o fa-fw"></i> <?php esc\_html\_e("Emails Sent", "gd-mail-queue"); ?></strong>
20
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('last\_queue\_sent')); ?></span>
21
21
</li>
22
22
<li>
23
<strong><i class="fa fa-envelope fa-fw"></i> <?php \_e("Emails Failed", "gd-mail-queue"); ?></strong>
24
<span><?php echo gdmaq\_settings()->get\_statistics('last\_queue\_failed'); ?></span>
23
<strong><i class="fa fa-envelope fa-fw"></i> <?php esc\_html\_e("Emails Failed", "gd-mail-queue"); ?></strong>
24
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('last\_queue\_failed')); ?></span>
25
25
</li>
26
26
<li>
27
<strong><i class="fa fa-paperclip fa-fw"></i> <?php \_e("Attachments Sent", "gd-mail-queue"); ?></strong>
28
<span><?php echo gdmaq\_settings()->get\_statistics('last\_queue\_attachments'); ?></span>
27
<strong><i class="fa fa-paperclip fa-fw"></i> <?php esc\_html\_e("Attachments Sent", "gd-mail-queue"); ?></strong>
28
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('last\_queue\_attachments')); ?></span>
29
29
</li>
30
30
</ul><div class="d4p-clearfix"></div>
gd-mail-queue/trunk/forms/dashboard/log.php
r2106296
r2923988
12
12
?>
13
13
<div class="d4p-group d4p-group-dashboard-card d4p-group-dashboard-queue">
14
<h3><?php \_e("Mail Log Core", "gd-mail-queue"); ?></h3>
14
<h3><?php esc\_html\_e("Mail Log Core", "gd-mail-queue"); ?></h3>
15
15
<div class="d4p-group-stats">
16
16
<ul class="d4p-items-list">
17
17
<li>
18
<strong><i class="fa fa-flag fa-fw"></i> <?php \_e("Log Status", "gd-mail-queue"); ?></strong>
19
<span class="gdmaq-label gdmaq-<?php echo $status; ?>"><?php echo $status\_labels\[$status\]; ?></span>
18
<strong><i class="fa fa-flag fa-fw"></i> <?php esc\_html\_e("Log Status", "gd-mail-queue"); ?></strong>
19
<span class="gdmaq-label gdmaq-<?php echo esc\_attr($status); ?>"><?php echo esc\_html($status\_labels\[$status\]); ?></span>
20
20
</li>
21
21
</ul><div class="d4p-clearfix"></div>
22
22
</div>
23
23
<div class="d4p-group-inner">
24
<h4><?php \_e("Overall Log Statistics", "gd-mail-queue"); ?></h4>
24
<h4><?php esc\_html\_e("Overall Log Statistics", "gd-mail-queue"); ?></h4>
25
25
<ul class="d4p-items-list">
26
26
<li>
27
<strong><i class="fa fa-envelope fa-fw"></i> <?php \_e("Total Log Entries", "gd-mail-queue"); ?></strong>
28
<span><?php echo gdmaq\_db()->email\_log\_count(); ?></span>
27
<strong><i class="fa fa-envelope fa-fw"></i> <?php esc\_html\_e("Total Log Entries", "gd-mail-queue"); ?></strong>
28
<span><?php echo esc\_html(gdmaq\_db()->email\_log\_count()); ?></span>
29
29
</li>
30
30
<li>
31
<strong><i class="fa fa-envelope-o fa-fw"></i> <?php \_e("Unique Email Addresses", "gd-mail-queue"); ?></strong>
32
<span><?php echo gdmaq\_db()->email\_emails\_count(); ?></span>
31
<strong><i class="fa fa-envelope-o fa-fw"></i> <?php esc\_html\_e("Unique Email Addresses", "gd-mail-queue"); ?></strong>
32
<span><?php echo esc\_html(gdmaq\_db()->email\_emails\_count()); ?></span>
33
33
</li>
34
34
</ul><div class="d4p-clearfix"></div>
35
35
</div>
36
36
<div class="d4p-group-footer">
37
<a href="admin.php?page=gd-mail-queue-log" class="button-primary"><?php \_e("Log", "gd-mail-queue"); ?></a>
38
<a href="admin.php?page=gd-mail-queue-settings&panel=log" class="button-primary"><?php \_e("Log Settings", "gd-mail-queue"); ?></a>
37
<a href="admin.php?page=gd-mail-queue-log" class="button-primary"><?php esc\_html\_e("Log", "gd-mail-queue"); ?></a>
38
<a href="admin.php?page=gd-mail-queue-settings&panel=log" class="button-primary"><?php esc\_html\_e("Log Settings", "gd-mail-queue"); ?></a>
39
39
</div>
40
40
</div>
gd-mail-queue/trunk/forms/dashboard/mailer.php
r2108031
r2923988
12
12
?>
13
13
<div class="d4p-group d4p-group-dashboard-card d4p-group-dashboard-queue">
14
<h3><?php \_e("Mailer Core", "gd-mail-queue"); ?></h3>
14
<h3><?php esc\_html\_e("Mailer Core", "gd-mail-queue"); ?></h3>
15
15
<div class="d4p-group-stats">
16
16
<ul class="d4p-items-list">
17
17
<li>
18
<strong><i class="fa fa-flag fa-fw"></i> <?php \_e("Intercept Status", "gd-mail-queue"); ?></strong>
19
<span class="gdmaq-label gdmaq-<?php echo $status; ?>"><?php echo $status\_labels\[$status\]; ?></span>
18
<strong><i class="fa fa-flag fa-fw"></i> <?php esc\_html\_e("Intercept Status", "gd-mail-queue"); ?></strong>
19
<span class="gdmaq-label gdmaq-<?php echo esc\_attr($status); ?>"><?php echo esc\_html($status\_labels\[$status\]); ?></span>
20
20
</li>
21
21
</ul><div class="d4p-clearfix"></div>
22
22
</div>
23
23
<div class="d4p-group-inner">
24
<h4><?php \_e("Overall Mailer Statistics", "gd-mail-queue"); ?></h4>
24
<h4><?php esc\_html\_e("Overall Mailer Statistics", "gd-mail-queue"); ?></h4>
25
25
<ul class="d4p-items-list">
26
26
<li>
27
<strong><i class="fa fa-reply-all fa-fw"></i> <?php \_e("Emails to Queue Calls", "gd-mail-queue"); ?></strong>
28
<span><?php echo gdmaq\_settings()->get\_statistics('mail\_to\_queue\_calls'); ?></span>
27
<strong><i class="fa fa-reply-all fa-fw"></i> <?php esc\_html\_e("Emails to Queue Calls", "gd-mail-queue"); ?></strong>
28
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('mail\_to\_queue\_calls')); ?></span>
29
29
</li>
30
30
<li>
31
<strong><i class="fa fa-envelope-o fa-fw"></i> <?php \_e("Emails added to Queue", "gd-mail-queue"); ?></strong>
32
<span><?php echo gdmaq\_settings()->get\_statistics('mails\_added\_to\_queue'); ?></span>
31
<strong><i class="fa fa-envelope-o fa-fw"></i> <?php esc\_html\_e("Emails added to Queue", "gd-mail-queue"); ?></strong>
32
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('mails\_added\_to\_queue')); ?></span>
33
33
</li>
34
34
<li>
35
<strong><i class="fa fa-exchange fa-fw"></i> <?php \_e("Intercepted Emails", "gd-mail-queue"); ?></strong>
36
<span><?php echo gdmaq\_settings()->get\_statistics('intercepted\_mails'); ?></span>
35
<strong><i class="fa fa-exchange fa-fw"></i> <?php esc\_html\_e("Intercepted Emails", "gd-mail-queue"); ?></strong>
36
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('intercepted\_mails')); ?></span>
37
37
</li>
38
38
<li>
39
<strong><i class="fa fa-code fa-fw"></i> <?php \_e("HTMLfied Emails", "gd-mail-queue"); ?></strong>
40
<span><?php echo gdmaq\_settings()->get\_statistics('total\_htmlfy\_mails'); ?></span>
39
<strong><i class="fa fa-code fa-fw"></i> <?php esc\_html\_e("HTMLfied Emails", "gd-mail-queue"); ?></strong>
40
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('total\_htmlfy\_mails')); ?></span>
41
41
</li>
42
42
</ul><div class="d4p-clearfix"></div>
43
43
</div>
44
44
<div class="d4p-group-footer">
45
<a href="admin.php?page=gd-mail-queue-settings&panel=basic" class="button-primary"><?php \_e("Mailer Settings", "gd-mail-queue"); ?></a>
46
<a href="admin.php?page=gd-mail-queue-settings&panel=htmlfy" class="button-primary"><?php \_e("HTML Template", "gd-mail-queue"); ?></a>
45
<a href="admin.php?page=gd-mail-queue-settings&panel=basic" class="button-primary"><?php esc\_html\_e("Mailer Settings", "gd-mail-queue"); ?></a>
46
<a href="admin.php?page=gd-mail-queue-settings&panel=htmlfy" class="button-primary"><?php esc\_html\_e("HTML Template", "gd-mail-queue"); ?></a>
47
47
</div>
48
48
</div>
gd-mail-queue/trunk/forms/dashboard/queue.php
r2320777
r2923988
24
24
?>
25
25
<div class="d4p-group d4p-group-dashboard-card d4p-group-dashboard-queue">
26
<h3><?php \_e("Queue Core", "gd-mail-queue"); ?></h3>
26
<h3><?php esc\_html\_e("Queue Core", "gd-mail-queue"); ?></h3>
27
27
<div class="d4p-group-stats">
28
28
<ul class="d4p-items-list">
29
29
<li>
30
<strong><i class="fa fa-flag fa-fw"></i> <?php \_e("Queue Status", "gd-mail-queue"); ?></strong>
30
<strong><i class="fa fa-flag fa-fw"></i> <?php esc\_html\_e("Queue Status", "gd-mail-queue"); ?></strong>
31
31
<span class="gdmaq-label gdmaq-<?php echo $status; ?>"><?php echo $status\_labels\[$status\]; ?></span>
32
32
</li>
…
…
34
34
</div>
35
35
<div class="d4p-group-inner">
36
<h4><?php \_e("Last Queue Information", "gd-mail-queue"); ?></h4>
36
<h4><?php esc\_html\_e("Last Queue Information", "gd-mail-queue"); ?></h4>
37
37
<ul class="d4p-items-list">
38
38
<li>
39
<strong><i class="fa fa-clock-o fa-fw"></i> <?php \_e("Next Queue Run", "gd-mail-queue"); ?></strong>
40
<span><?php echo $next; ?></span>
39
<strong><i class="fa fa-clock-o fa-fw"></i> <?php esc\_html\_e("Next Queue Run", "gd-mail-queue"); ?></strong>
40
<span><?php echo esc\_html($next); ?></span>
41
41
</li>
42
42
<li>
43
<strong><i class="fa fa-arrow-circle-right fa-fw"></i> <?php \_e("Queue will run in", "gd-mail-queue"); ?></strong>
44
<span><?php echo $run\_in; ?> (<?php echo sprintf(\_x("%s interval", "Queue Interval", "gd-mail-queue"), $interval); ?>)</span>
43
<strong><i class="fa fa-arrow-circle-right fa-fw"></i> <?php esc\_html\_e("Queue will run in", "gd-mail-queue"); ?></strong>
44
<span><?php echo esc\_html($run\_in); ?> (<?php echo sprintf(\_x("%s interval", "Queue Interval", "gd-mail-queue"), $interval); ?>)</span>
45
45
</li>
46
46
<li>
47
<strong><i class="fa fa-envelope-o fa-fw"></i> <?php \_e("Emails in Queue", "gd-mail-queue"); ?></strong>
48
<span><?php echo gdmaq\_queue()->counts('queue'); ?></span>
47
<strong><i class="fa fa-envelope-o fa-fw"></i> <?php esc\_html\_e("Emails in Queue", "gd-mail-queue"); ?></strong>
48
<span><?php echo esc\_html(gdmaq\_queue()->counts('queue')); ?></span>
49
49
</li>
50
50
<li>
51
<strong><i class="fa fa-envelope fa-fw"></i> <?php \_e("Locked in Queue", "gd-mail-queue"); ?></strong>
52
<span><?php echo gdmaq\_queue()->counts('waiting'); ?></span>
51
<strong><i class="fa fa-envelope fa-fw"></i> <?php esc\_html\_e("Locked in Queue", "gd-mail-queue"); ?></strong>
52
<span><?php echo esc\_html(gdmaq\_queue()->counts('waiting')); ?></span>
53
53
</li>
54
54
</ul>
55
55
</div>
56
56
<div class="d4p-group-footer">
57
<a href="admin.php?page=gd-mail-queue-settings&panel=queue" class="button-primary"><?php \_e("Queue Settings", "gd-mail-queue"); ?></a>
57
<a href="admin.php?page=gd-mail-queue-settings&panel=queue" class="button-primary"><?php esc\_html\_e("Queue Settings", "gd-mail-queue"); ?></a>
58
58
</div>
59
59
</div>
gd-mail-queue/trunk/forms/dashboard/stats.php
r2106296
r2923988
1
1
<?php if (!defined('ABSPATH')) { exit; } ?>
2
2
<div class="d4p-group d4p-group-dashboard-card d4p-group-dashboard-queue">
3
<h3><?php \_e("Overall Queue Statistics", "gd-mail-queue"); ?></h3>
3
<h3><?php esc\_html\_e("Overall Queue Statistics", "gd-mail-queue"); ?></h3>
4
4
<div class="d4p-group-stats">
5
5
<ul class="d4p-items-list">
6
6
<li class="liner">
7
<strong><i class="fa fa-reply fa-fw"></i> <?php \_e("Queue Calls", "gd-mail-queue"); ?></strong>
8
<span><?php echo gdmaq\_settings()->get\_statistics('total\_queue\_calls'); ?></span>
7
<strong><i class="fa fa-reply fa-fw"></i> <?php esc\_html\_e("Queue Calls", "gd-mail-queue"); ?></strong>
8
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('total\_queue\_calls')); ?></span>
9
9
</li>
10
10
<li>
11
<strong><i class="fa fa-arrows-h fa-fw"></i> <?php \_e("Queue Run Time", "gd-mail-queue"); ?></strong>
11
<strong><i class="fa fa-arrows-h fa-fw"></i> <?php esc\_html\_e("Queue Run Time", "gd-mail-queue"); ?></strong>
12
12
<span><?php $val = ceil(gdmaq\_settings()->get\_statistics('total\_queue\_time')); echo sprintf(\_n("%s second", "%s seconds", $val, "gd-mail-queue"), $val); ?></span>
13
13
</li>
…
…
17
17
<ul class="d4p-items-list" style="margin-top: 0">
18
18
<li>
19
<strong><i class="fa fa-envelope-o fa-fw"></i> <?php \_e("Emails Sent", "gd-mail-queue"); ?></strong>
20
<span><?php echo gdmaq\_settings()->get\_statistics('total\_queue\_sent'); ?></span>
19
<strong><i class="fa fa-envelope-o fa-fw"></i> <?php esc\_html\_e("Emails Sent", "gd-mail-queue"); ?></strong>
20
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('total\_queue\_sent')); ?></span>
21
21
</li>
22
22
<li>
23
<strong><i class="fa fa-envelope fa-fw"></i> <?php \_e("Emails Failed", "gd-mail-queue"); ?></strong>
24
<span><?php echo gdmaq\_settings()->get\_statistics('total\_queue\_failed'); ?></span>
23
<strong><i class="fa fa-envelope fa-fw"></i> <?php esc\_html\_e("Emails Failed", "gd-mail-queue"); ?></strong>
24
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('total\_queue\_failed')); ?></span>
25
25
</li>
26
26
<li>
27
<strong><i class="fa fa-paperclip fa-fw"></i> <?php \_e("Attachments Sent", "gd-mail-queue"); ?></strong>
28
<span><?php echo gdmaq\_settings()->get\_statistics('total\_queue\_attachments'); ?></span>
27
<strong><i class="fa fa-paperclip fa-fw"></i> <?php esc\_html\_e("Attachments Sent", "gd-mail-queue"); ?></strong>
28
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('total\_queue\_attachments')); ?></span>
29
29
</li>
30
30
</ul><div class="d4p-clearfix"></div>
gd-mail-queue/trunk/forms/dashboard/wpmail.php
r2106296
r2923988
12
12
?>
13
13
<div class="d4p-group d4p-group-dashboard-card d4p-group-dashboard-queue">
14
<h3><?php \_e("WP Mail", "gd-mail-queue"); ?></h3>
14
<h3><?php esc\_html\_e("WP Mail", "gd-mail-queue"); ?></h3>
15
15
<div class="d4p-group-stats">
16
16
<ul class="d4p-items-list">
17
17
<li>
18
<strong><i class="fa fa-flag fa-fw"></i> <?php \_e("WP Mail Status", "gd-mail-queue"); ?></strong>
18
<strong><i class="fa fa-flag fa-fw"></i> <?php esc\_html\_e("WP Mail Status", "gd-mail-queue"); ?></strong>
19
19
<span class="gdmaq-label gdmaq-<?php echo $status; ?>"><?php echo $status\_labels\[$status\]; ?></span>
20
20
</li>
…
…
22
22
</div>
23
23
<div class="d4p-group-inner">
24
<h4><?php \_e("Overall WP Mail Statistics", "gd-mail-queue"); ?></h4>
24
<h4><?php esc\_html\_e("Overall WP Mail Statistics", "gd-mail-queue"); ?></h4>
25
25
<ul class="d4p-items-list">
26
26
<li>
27
<strong><i class="fa fa-reply fa-fw"></i> <?php \_e("Total Sent", "gd-mail-queue"); ?></strong>
28
<span><?php echo gdmaq\_settings()->get\_statistics('wp\_mail\_sent'); ?></span>
27
<strong><i class="fa fa-reply fa-fw"></i> <?php esc\_html\_e("Total Sent", "gd-mail-queue"); ?></strong>
28
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('wp\_mail\_sent')); ?></span>
29
29
</li>
30
30
<li>
31
<strong><i class="fa fa-times fa-fw"></i> <?php \_e("Total Failed", "gd-mail-queue"); ?></strong>
32
<span><?php echo gdmaq\_settings()->get\_statistics('wp\_mail\_failed'); ?></span>
31
<strong><i class="fa fa-times fa-fw"></i> <?php esc\_html\_e("Total Failed", "gd-mail-queue"); ?></strong>
32
<span><?php echo esc\_html(gdmaq\_settings()->get\_statistics('wp\_mail\_failed')); ?></span>
33
33
</li>
34
34
</ul><div class="d4p-clearfix"></div>
35
35
</div>
36
36
<div class="d4p-group-footer">
37
<a href="admin.php?page=gd-mail-queue-settings&panel=pause" class="button-primary"><?php \_e("Pause Controls", "gd-mail-queue"); ?></a>
37
<a href="admin.php?page=gd-mail-queue-settings&panel=pause" class="button-primary"><?php esc\_html\_e("Pause Controls", "gd-mail-queue"); ?></a>
38
38
</div>
39
39
</div>
gd-mail-queue/trunk/forms/dialogs/log.php
r2106296
r2923988
2
2
3
3
<div style="display: none">
4
<div title="<?php \_e("Are you sure?", "gd-mail-queue"); ?>" id="gdmaq-dialog-log-delete-single">
4
<div title="<?php esc\_html\_e("Are you sure?", "gd-mail-queue"); ?>" id="gdmaq-dialog-log-delete-single">
5
5
<div class="gdmaq-inner-content">
6
<p><?php \_e("Selected log entry will be removed from the database.", "gd-mail-queue"); ?></p>
7
<p><?php \_e("Are you sure you want to proceed? This operation is not reversable!", "gd-mail-queue"); ?></p>
6
<p><?php esc\_html\_e("Selected log entry will be removed from the database.", "gd-mail-queue"); ?></p>
7
<p><?php esc\_html\_e("Are you sure you want to proceed? This operation is not reversable!", "gd-mail-queue"); ?></p>
8
8
</div>
9
9
</div>
10
10
11
<div id="gdmaq-dialog-log-view-entry" title="<?php \_e("Email Log Entry", "gd-mail-queue"); ?>">
11
<div id="gdmaq-dialog-log-view-entry" title="<?php esc\_html\_e("Email Log Entry", "gd-mail-queue"); ?>">
12
12
<div id="gdmaq-view-entry-inner"></div>
13
13
</div>
gd-mail-queue/trunk/forms/front.php
r2327878
r2923988
16
16
<?php
17
17
18
\_e("Version", "gd-mail-queue");
18
esc\_html\_e("Version", "gd-mail-queue");
19
19
echo': '.gdmaq\_settings()->info->version;
20
20
…
…
29
29
30
30
<div class="d4p-buttons-group">
31
<a class="button-secondary" href="admin.php?page=gd-mail-queue-settings"><i aria-hidden="true" class="fa fa-cogs fa-fw"></i> <?php \_e("Settings", "gd-mail-queue"); ?></a>
32
<a class="button-secondary" href="admin.php?page=gd-mail-queue-tools"><i aria-hidden="true" class="fa fa-wrench fa-fw"></i> <?php \_e("Tools", "gd-mail-queue"); ?></a>
31
<a class="button-secondary" href="admin.php?page=gd-mail-queue-settings"><i aria-hidden="true" class="fa fa-cogs fa-fw"></i> <?php esc\_html\_e("Settings", "gd-mail-queue"); ?></a>
32
<a class="button-secondary" href="admin.php?page=gd-mail-queue-tools"><i aria-hidden="true" class="fa fa-wrench fa-fw"></i> <?php esc\_html\_e("Tools", "gd-mail-queue"); ?></a>
33
33
</div>
34
34
35
35
<div class="d4p-buttons-group">
36
<a class="button-secondary" href="admin.php?page=gd-mail-queue-about"><i aria-hidden="true" class="fa fa-info-circle fa-fw"></i> <?php \_e("About", "gd-mail-queue"); ?></a>
36
<a class="button-secondary" href="admin.php?page=gd-mail-queue-about"><i aria-hidden="true" class="fa fa-info-circle fa-fw"></i> <?php esc\_html\_e("About", "gd-mail-queue"); ?></a>
37
37
</div>
38
38
</div>
gd-mail-queue/trunk/forms/install.php
r2097996
r2923988
6
6
7
7
?>
8
<div class="<?php echo join(' ', $\_classes); ?>">
8
<div class="<?php echo esc\_attr(join(' ', $\_classes)); ?>">
9
9
<div class="d4p-header">
10
10
<div class="d4p-plugin">
…
…
16
16
<div class="d4p-panel-title">
17
17
<i aria-hidden="true" class="fa fa-magic"></i>
18
<h3><?php \_e("Installation", "gd-mail-queue"); ?></h3>
18
<h3><?php esc\_html\_e("Installation", "gd-mail-queue"); ?></h3>
19
19
</div>
20
20
<div class="d4p-panel-info">
21
<?php \_e("Before you continue, make sure plugin installation was successful.", "gd-mail-queue"); ?>
21
<?php esc\_html\_e("Before you continue, make sure plugin installation was successful.", "gd-mail-queue"); ?>
22
22
</div>
23
23
</div>
…
…
33
33
?>
34
34
35
<h3><?php \_e("All Done", "gd-mail-queue"); ?></h3>
35
<h3><?php esc\_html\_e("All Done", "gd-mail-queue"); ?></h3>
36
36
<?php
37
37
38
\_e("Installation completed.", "gd-mail-queue");
38
esc\_html\_e("Installation completed.", "gd-mail-queue");
39
39
40
40
?>
41
<br/><br/><a class="button-primary" href="<?php echo admin\_url('admin.php?page=gd-mail-queue-about'); ?>"><?php \_e("Click here to continue.", "gd-mail-queue"); ?></a>
41
<br/><br/><a class="button-primary" href="<?php echo admin\_url('admin.php?page=gd-mail-queue-about'); ?>"><?php esc\_html\_e("Click here to continue.", "gd-mail-queue"); ?></a>
42
42
</div>
43
43
</div>
gd-mail-queue/trunk/forms/log/entry.php
r2375699
r2923988
33
33
<div role="tablist" aria-label="<?php esc\_attr\_e("Email Log Information", "gd-mail-queue"); ?>">
34
34
<button role="tab" aria-selected="true" aria-controls="gdmaq-entry-info-tab" id="gdmaq-entry-info">
35
<?php \_e("Info", "gd-mail-queue"); ?>
35
<?php esc\_html\_e("Info", "gd-mail-queue"); ?>
36
36
</button>
37
37
<button role="tab" aria-selected="false" aria-controls="gdmaq-entry-basic-tab" id="gdmaq-entry-basic">
38
<?php \_e("Basic", "gd-mail-queue"); ?>
38
<?php esc\_html\_e("Basic", "gd-mail-queue"); ?>
39
39
</button>
40
40
<button role="tab" aria-selected="false" aria-controls="gdmaq-entry-extra-tab" id="gdmaq-entry-extra">
41
<?php \_e("Extra", "gd-mail-queue"); ?>
41
<?php esc\_html\_e("Extra", "gd-mail-queue"); ?>
42
42
</button>
43
43
<?php if ($\_has\_plain) { ?>
44
44
<button role="tab" aria-selected="false" aria-controls="gdmaq-entry-plain-tab" id="gdmaq-entry-plain">
45
<?php \_e("Plain", "gd-mail-queue"); ?>
45
<?php esc\_html\_e("Plain", "gd-mail-queue"); ?>
46
46
</button>
47
47
<?php } ?>
48
48
<?php if ($\_has\_html) { ?>
49
49
<button role="tab" aria-selected="false" aria-controls="gdmaq-entry-html-tab" id="gdmaq-entry-html">
50
<?php \_e("HTML", "gd-mail-queue"); ?>
50
<?php esc\_html\_e("HTML", "gd-mail-queue"); ?>
51
51
</button>
52
52
<?php } ?>
53
53
<?php if ($\_has\_attachments) { ?>
54
54
<button role="tab" aria-selected="false" aria-controls="gdmaq-entry-attachments-tab" id="gdmaq-entry-attachments">
55
<?php \_e("Attachments", "gd-mail-queue"); ?>
55
<?php esc\_html\_e("Attachments", "gd-mail-queue"); ?>
56
56
</button>
57
57
<?php } ?>
58
58
<?php if (isset($email->mailer->Mailer) && $email->mailer->Mailer == 'smtp') { ?>
59
59
<button role="tab" aria-selected="false" aria-controls="gdmaq-entry-smtp-tab" id="gdmaq-entry-smtp">
60
<?php \_e("SMTP", "gd-mail-queue"); ?>
60
<?php esc\_html\_e("SMTP", "gd-mail-queue"); ?>
61
61
</button>
62
62
<?php } ?>
…
…
65
65
<div tabindex="0" role="tabpanel" id="gdmaq-entry-info-tab" aria-labelledby="gdmaq-entry-info">
66
66
<div class="gdmaq-email-element">
67
<h3><?php \_e("Operation", "gd-mail-queue"); ?>:</h3>
67
<h3><?php esc\_html\_e("Operation", "gd-mail-queue"); ?>:</h3>
68
68
<span><?php
69
69
…
…
71
71
echo $email->status == 'queue' ? \_\_("Captured WP Mail and added to Queue", "gd-mail-queue") : \_\_("WP Mail email sending", "gd-mail-queue");
72
72
} else if ($email->operation == 'queue') {
73
\_e("Queued email sending", "gd-mail-queue");
73
esc\_html\_e("Queued email sending", "gd-mail-queue");
74
74
}
75
75
…
…
78
78
<?php if ($email->status !== 'queue') { ?>
79
79
<div class="gdmaq-email-element">
80
<h3><?php \_e("Email Sending Engine", "gd-mail-queue"); ?>:</h3>
80
<h3><?php esc\_html\_e("Email Sending Engine", "gd-mail-queue"); ?>:</h3>
81
81
<span><?php echo gdmaq()->get\_engine\_label($email->engine); ?></span>
82
82
</div>
…
…
84
84
<?php if ($email->engine == 'phpmailer') { ?>
85
85
<div class="gdmaq-email-element">
86
<h3><?php \_e("PHPMailer Service", "gd-mail-queue"); ?>:</h3>
86
<h3><?php esc\_html\_e("PHPMailer Service", "gd-mail-queue"); ?>:</h3>
87
87
<span><?php echo isset($email->mailer->Mailer) && $email->mailer->Mailer == 'smtp' ? \_\_("SMTP", "gd-mail-queue") : \_\_("PHP Mail", "gd-mail-queue"); ?></span>
88
88
</div>
…
…
90
90
91
91
<div class="gdmaq-email-element">
92
<h3><?php \_e("Sending Result", "gd-mail-queue"); ?>:</h3>
92
<h3><?php esc\_html\_e("Sending Result", "gd-mail-queue"); ?>:</h3>
93
93
<span><?php echo $email->status == 'ok' ? \_\_("Sent OK", "gd-mail-queue") : ($email->status == 'retry' ? \_\_("Retried", "gd-mail-queue") : \_\_("Failed", "gd-mail-queue")); ?></span>
94
94
</div>
…
…
96
96
<?php if (!empty($email->message)) { ?>
97
97
<div class="gdmaq-email-element">
98
<h3><?php \_e("Message", "gd-mail-queue"); ?>:</h3>
99
<span><?php echo $email->message; ?></span>
98
<h3><?php esc\_html\_e("Message", "gd-mail-queue"); ?>:</h3>
99
<span><?php echo esc\_html($email->message); ?></span>
100
100
</div>
101
101
<?php } ?>
…
…
104
104
<div tabindex="0" role="tabpanel" id="gdmaq-entry-basic-tab" aria-labelledby="gdmaq-entry-basic" hidden>
105
105
<div class="gdmaq-email-element">
106
<h3><?php \_e("Subject", "gd-mail-queue"); ?>:</h3>
107
<span><?php echo $email->subject; ?></span>
106
<h3><?php esc\_html\_e("Subject", "gd-mail-queue"); ?>:</h3>
107
<span><?php echo esc\_html($email->subject); ?></span>
108
108
</div>
109
109
<div class="gdmaq-email-element">
110
<h3><?php \_e("Logged", "gd-mail-queue"); ?>:</h3>
110
<h3><?php esc\_html\_e("Logged", "gd-mail-queue"); ?>:</h3>
111
111
<span><?php echo date('Y-m-d', $timestamp).' @ '.date('H:i:s', $timestamp); ?></span>
112
112
</div>
113
113
<?php if ($email->type != 'mail' && isset(gdmaq\_mailer()->detection()->supported\_types\[$email->type\])) { ?>
114
114
<div class="gdmaq-email-element">
115
<h3><?php \_e("Source", "gd-mail-queue"); ?>:</h3>
115
<h3><?php esc\_html\_e("Source", "gd-mail-queue"); ?>:</h3>
116
116
<span><?php echo gdmaq\_mailer()->detection()->supported\_types\[$email->type\]; ?></span>
117
117
</div>
118
118
<?php } ?>
119
119
<div class="gdmaq-email-element">
120
<h3><?php \_e("To", "gd-mail-queue"); ?>:</h3>
120
<h3><?php esc\_html\_e("To", "gd-mail-queue"); ?>:</h3>
121
121
<span><?php echo \_gdmaq\_entry\_preview\_render\_emails($email->emails\['to'\], 'to'); ?></span>
122
122
<?php if (!empty($email->emails\['cc'\])) { ?>
123
<h4><?php \_e("CC", "gd-mail-queue"); ?>:</h4>
123
<h4><?php esc\_html\_e("CC", "gd-mail-queue"); ?>:</h4>
124
124
<span><?php echo \_gdmaq\_entry\_preview\_render\_emails($email->emails\['cc'\], 'cc'); ?></span>
125
125
<?php } ?>
126
126
<?php if (!empty($email->emails\['bcc'\])) { ?>
127
<h4><?php \_e("BCC", "gd-mail-queue"); ?>:</h4>
127
<h4><?php esc\_html\_e("BCC", "gd-mail-queue"); ?>:</h4>
128
128
<span><?php echo \_gdmaq\_entry\_preview\_render\_emails($email->emails\['bcc'\], 'bcc'); ?></span>
129
129
<?php } ?>
130
130
</div>
131
131
<div class="gdmaq-email-element">
132
<h3><?php \_e("From", "gd-mail-queue"); ?>:</h3>
132
<h3><?php esc\_html\_e("From", "gd-mail-queue"); ?>:</h3>
133
133
<span><?php echo \_gdmaq\_entry\_preview\_render\_emails($email->emails\['from'\], 'from'); ?></span>
134
134
<?php if (!empty($email->emails\['reply\_to'\])) { ?>
135
<h4><?php \_e("Reply To", "gd-mail-queue"); ?>:</h4>
135
<h4><?php esc\_html\_e("Reply To", "gd-mail-queue"); ?>:</h4>
136
136
<span><?php echo \_gdmaq\_entry\_preview\_render\_emails($email->emails\['reply\_to'\], 'reply\_to'); ?></span>
137
137
<?php } ?>
…
…
147
147
<?php if (!empty($email->headers)) { ?>
148
148
<div class="gdmaq-email-element">
149
<h3><?php \_e("Extra Headers", "gd-mail-queue"); ?>:</h3>
149
<h3><?php esc\_html\_e("Extra Headers", "gd-mail-queue"); ?>:</h3>
150
150
<?php foreach ($email->headers as $header) { ?>
151
151
<span><?php echo $header\[0\]; ?>: <?php echo $header\[1\]; ?></span><br/>
…
…
156
156
<?php if ($\_has\_plain) { ?>
157
157
<div tabindex="0" role="tabpanel" id="gdmaq-entry-plain-tab" aria-labelledby="gdmaq-entry-plain" hidden>
158
<pre><?php echo $email->plain; ?></pre>
158
<pre><?php echo esc\_html($email->plain); ?></pre>
159
159
</div>
160
160
<?php } ?>
…
…
167
167
<div tabindex="0" role="tabpanel" id="gdmaq-entry-attachments-tab" aria-labelledby="gdmaq-entry-attachments" hidden="">
168
168
<div class="gdmaq-email-element">
169
<h3><?php \_e("Total files", "gd-mail-queue"); ?>:</h3>
169
<h3><?php esc\_html\_e("Total files", "gd-mail-queue"); ?>:</h3>
170
170
<span><?php echo count($email->attachments); ?></span>
171
171
</div>
172
172
<div class="gdmaq-email-element">
173
<h3><?php \_e("List of files", "gd-mail-queue"); ?>:</h3>
173
<h3><?php esc\_html\_e("List of files", "gd-mail-queue"); ?>:</h3>
174
174
<?php foreach ($email->attachments as $file) {
175
175
if (is\_string($file)) { ?>
gd-mail-queue/trunk/forms/settings.php
r2320777
r2923988
67
67
<div class="d4p-panel-title">
68
68
<i aria-hidden="true" class="fa fa-cogs"></i>
69
<h3><?php \_e("Settings", "gd-mail-queue"); ?></h3>
69
<h3><?php esc\_html\_e("Settings", "gd-mail-queue"); ?></h3>
70
70
<?php if ($\_panel != 'index') { ?>
71
71
<h4><i aria-hidden="true" class="fa fa-<?php echo $panels\[$\_panel\]\['icon'\]; ?>"></i> <?php echo $panels\[$\_panel\]\['title'\]; ?></h4>
…
…
77
77
<?php if ($\_panel != 'index') { ?>
78
78
<div class="d4p-panel-buttons">
79
<input type="submit" value="<?php \_e("Save Settings", "gd-mail-queue"); ?>" class="button-primary">
79
<input type="submit" value="<?php esc\_html\_e("Save Settings", "gd-mail-queue"); ?>" class="button-primary">
80
80
</div>
81
81
<?php } ?>
82
82
<div class="d4p-return-to-top">
83
<a href="#wpwrap"><?php \_e("Return to top", "gd-mail-queue"); ?></a>
83
<a href="#wpwrap"><?php esc\_html\_e("Return to top", "gd-mail-queue"); ?></a>
84
84
</div>
85
85
</div>
…
…
106
106
<div class="d4p-options-panel">
107
107
<i aria-hidden="true" class="fa fa-<?php echo $obj\['icon'\]; ?>"></i>
108
<h5><?php echo $obj\['title'\]; ?></h5>
108
<h5><?php echo esc\_html($obj\['title'\]); ?></h5>
109
109
<div>
110
110
<?php if (isset($obj\['type'\])) { ?>
111
111
<span><?php echo $obj\['type'\]; ?></span>
112
112
<?php } ?>
113
<a class="button-primary" href="<?php echo $url; ?>"><?php \_e("Settings Panel", "gd-mail-queue"); ?></a>
113
<a class="button-primary" href="<?php echo $url; ?>"><?php esc\_html\_e("Settings Panel", "gd-mail-queue"); ?></a>
114
114
</div>
115
115
</div>
gd-mail-queue/trunk/forms/setup/database.php
r2079713
r2923988
1
<h3 style="margin-top: 0;"><?php \_e("Database Tables", "gd-mail-queue"); ?></h3>
1
<h3 style="margin-top: 0;"><?php esc\_html\_e("Database Tables", "gd-mail-queue"); ?></h3>
2
2
<?php
3
3
gd-mail-queue/trunk/forms/shared/top.php
r2375699
r2923988
73
73
74
74
?>
75
<div class="<?php echo join(' ', $\_classes); ?>">
75
<div class="<?php echo esc\_attr(join(' ', $\_classes)); ?>">
76
76
<div class="d4p-header">
77
77
<div class="d4p-navigator">
gd-mail-queue/trunk/forms/tools.php
r2081206
r2923988
50
50
<div class="d4p-panel-title">
51
51
<i aria-hidden="true" class="fa fa-wrench"></i>
52
<h3><?php \_e("Tools", "gd-mail-queue"); ?></h3>
52
<h3><?php esc\_html\_e("Tools", "gd-mail-queue"); ?></h3>
53
53
<?php if ($\_panel != 'index') { ?>
54
54
<h4><i aria-hidden="true" class="fa fa-<?php echo $panels\[$\_panel\]\['icon'\]; ?>"></i> <?php echo $panels\[$\_panel\]\['title'\]; ?></h4>
…
…
64
64
<?php } ?>
65
65
<div class="d4p-return-to-top">
66
<a href="#wpwrap"><?php \_e("Return to top", "gd-mail-queue"); ?></a>
66
<a href="#wpwrap"><?php esc\_html\_e("Return to top", "gd-mail-queue"); ?></a>
67
67
</div>
68
68
</div>
…
…
91
91
<h5><?php echo $obj\['title'\]; ?></h5>
92
92
<div>
93
<a class="button-primary" href="<?php echo $url; ?>"><?php \_e("Tools Panel", "gd-mail-queue"); ?></a>
93
<a class="button-primary" href="<?php echo $url; ?>"><?php esc\_html\_e("Tools Panel", "gd-mail-queue"); ?></a>
94
94
</div>
95
95
</div>
gd-mail-queue/trunk/forms/tools/export.php
r2097996
r2923988
2
2
3
3
<div class="d4p-group d4p-group-export d4p-group-important">
4
<h3><?php \_e("Important", "gd-mail-queue"); ?></h3>
4
<h3><?php esc\_html\_e("Important", "gd-mail-queue"); ?></h3>
5
5
<div class="d4p-group-inner">
6
<?php \_e("With this tool you export all plugin settings into plain text file using JSON format. Do not modify export file, change can make it unusable.", "gd-mail-queue"); ?>
6
<?php esc\_html\_e("With this tool you export all plugin settings into plain text file using JSON format. Do not modify export file, change can make it unusable.", "gd-mail-queue"); ?>
7
7
</div>
8
8
</div>
9
9
10
10
<div class="d4p-group d4p-group-tools d4p-group-reset">
11
<h3><?php \_e("Select what to Export", "gd-mail-queue"); ?></h3>
11
<h3><?php esc\_html\_e("Select what to Export", "gd-mail-queue"); ?></h3>
12
12
<div class="d4p-group-inner">
13
13
<label>
14
<input checked="checked" type="checkbox" class="widefat" id="gdmaqtools-export-settings" value="on" /> <?php \_e("Plugin Settings", "gd-mail-queue"); ?>
14
<input checked="checked" type="checkbox" class="widefat" id="gdmaqtools-export-settings" value="on" /> <?php esc\_html\_e("Plugin Settings", "gd-mail-queue"); ?>
15
15
</label>
16
16
<label>
17
<input checked="checked" type="checkbox" class="widefat" id="gdmaqtools-export-statistics" value="on" /> <?php \_e("Plugin Statistics", "gd-mail-queue"); ?>
17
<input checked="checked" type="checkbox" class="widefat" id="gdmaqtools-export-statistics" value="on" /> <?php esc\_html\_e("Plugin Statistics", "gd-mail-queue"); ?>
18
18
</label>
19
19
</div>
gd-mail-queue/trunk/forms/tools/import.php
r2079713
r2923988
1
1
<div class="d4p-group d4p-group-import d4p-group-important">
2
<h3><?php \_e("Important", "gd-mail-queue"); ?></h3>
2
<h3><?php esc\_html\_e("Important", "gd-mail-queue"); ?></h3>
3
3
<div class="d4p-group-inner">
4
<?php \_e("With this tool you import all plugin settings from plain text file made using the Export tool. If you made changes to this file, it is very likely that import will fail.", "gd-mail-queue"); ?>
4
<?php esc\_html\_e("With this tool you import all plugin settings from plain text file made using the Export tool. If you made changes to this file, it is very likely that import will fail.", "gd-mail-queue"); ?>
5
5
</div>
6
6
</div>
7
7
8
8
<div class="d4p-group d4p-group-import d4p-group-important">
9
<h3><?php \_e("Import File", "gd-mail-queue"); ?></h3>
9
<h3><?php esc\_html\_e("Import File", "gd-mail-queue"); ?></h3>
10
10
<div class="d4p-group-inner">
11
<?php \_e("Select file you want to import", "gd-mail-queue"); ?>:
11
<?php esc\_html\_e("Select file you want to import", "gd-mail-queue"); ?>:
12
12
<br/><br/>
13
13
<input type="file" name="import\_file" />
gd-mail-queue/trunk/forms/tools/queue.php
r2081206
r2923988
2
2
3
3
<div class="d4p-group d4p-group-information">
4
<h3><?php \_e("Important", "gd-mail-queue"); ?></h3>
4
<h3><?php esc\_html\_e("Important", "gd-mail-queue"); ?></h3>
5
5
<div class="d4p-group-inner">
6
<?php \_e("This tool adds test email directly to the queue.", "gd-mail-queue"); ?>
6
<?php esc\_html\_e("This tool adds test email directly to the queue.", "gd-mail-queue"); ?>
7
7
</div>
8
8
</div>
9
9
10
10
<div class="d4p-group d4p-group-tools">
11
<h3><?php \_e("Configure test", "gd-mail-queue"); ?></h3>
11
<h3><?php esc\_html\_e("Configure test", "gd-mail-queue"); ?></h3>
12
12
<div class="d4p-group-inner">
13
<label><?php \_e("Send To", "gd-mail-queue"); ?></label>
13
<label><?php esc\_html\_e("Send To", "gd-mail-queue"); ?></label>
14
14
<input type="text" class="widefat" name="gdmaqtools\[queuetest\]\[email\]" value="<?php echo get\_option('admin\_email'); ?>" />
15
15
<br/><br/>
16
<label><?php \_e("Subject", "gd-mail-queue"); ?></label>
16
<label><?php esc\_html\_e("Subject", "gd-mail-queue"); ?></label>
17
17
<input type="text" class="widefat" name="gdmaqtools\[queuetest\]\[subject\]" value="<?php echo \_\_("Test email", "gd-mail-queue").': '.get\_option('blogname'); ?>" />
18
18
</div>
…
…
20
20
21
21
<div class="d4p-group d4p-group-tools" id="d4p-tools-test-results" style="display: none;">
22
<h3><?php \_e("Test results", "gd-mail-queue"); ?></h3>
22
<h3><?php esc\_html\_e("Test results", "gd-mail-queue"); ?></h3>
23
23
<div class="d4p-group-inner">
24
24
gd-mail-queue/trunk/forms/tools/remove.php
r2106296
r2923988
1
1
<div class="d4p-group d4p-group-extra d4p-group-important">
2
<h3><?php \_e("Important", "gd-mail-queue"); ?></h3>
2
<h3><?php esc\_html\_e("Important", "gd-mail-queue"); ?></h3>
3
3
<div class="d4p-group-inner">
4
<?php \_e("This tool can remove plugin settings saved in the WordPress options table and all database tables added by the plugin.", "gd-mail-queue"); ?><br/><br/>
5
<?php \_e("Deletion operations are not reversible, and it is highly recommended to create database backup before proceeding with this tool.", "gd-mail-queue"); ?>
6
<?php \_e("If you choose to remove plugin settings, once that is done, all settings will be reinitialized to default values if you choose to leave plugin active.", "gd-mail-queue"); ?>
4
<?php esc\_html\_e("This tool can remove plugin settings saved in the WordPress options table and all database tables added by the plugin.", "gd-mail-queue"); ?><br/><br/>
5
<?php esc\_html\_e("Deletion operations are not reversible, and it is highly recommended to create database backup before proceeding with this tool.", "gd-mail-queue"); ?>
6
<?php esc\_html\_e("If you choose to remove plugin settings, once that is done, all settings will be reinitialized to default values if you choose to leave plugin active.", "gd-mail-queue"); ?>
7
7
</div>
8
8
</div>
9
9
10
10
<div class="d4p-group d4p-group-tools d4p-group-reset">
11
<h3><?php \_e("Remove plugin settings", "gd-mail-queue"); ?></h3>
11
<h3><?php esc\_html\_e("Remove plugin settings", "gd-mail-queue"); ?></h3>
12
12
<div class="d4p-group-inner">
13
13
<label>
14
<input type="checkbox" class="widefat" name="gdmaqtools\[remove\]\[settings\]" value="on" /> <?php \_e("All Plugin Settings", "gd-mail-queue"); ?>
14
<input type="checkbox" class="widefat" name="gdmaqtools\[remove\]\[settings\]" value="on" /> <?php esc\_html\_e("All Plugin Settings", "gd-mail-queue"); ?>
15
15
</label>
16
16
<label>
17
<input type="checkbox" class="widefat" name="gdmaqtools\[remove\]\[statistics\]" value="on" /> <?php \_e("All Plugin Statistics", "gd-mail-queue"); ?>
17
<input type="checkbox" class="widefat" name="gdmaqtools\[remove\]\[statistics\]" value="on" /> <?php esc\_html\_e("All Plugin Statistics", "gd-mail-queue"); ?>
18
18
</label>
19
19
</div>
…
…
21
21
22
22
<div class="d4p-group d4p-group-tools d4p-group-reset">
23
<h3><?php \_e("Remove plugin CRON jobs", "gd-mail-queue"); ?></h3>
23
<h3><?php esc\_html\_e("Remove plugin CRON jobs", "gd-mail-queue"); ?></h3>
24
24
<div class="d4p-group-inner">
25
25
<label>
26
<input type="checkbox" class="widefat" name="gdmaqtools\[remove\]\[cron\]" value="on" /> <?php \_e("All Plugin CRON Jobs", "gd-mail-queue"); ?>
26
<input type="checkbox" class="widefat" name="gdmaqtools\[remove\]\[cron\]" value="on" /> <?php esc\_html\_e("All Plugin CRON Jobs", "gd-mail-queue"); ?>
27
27
</label>
28
28
</div>
…
…
30
30
31
31
<div class="d4p-group d4p-group-tools d4p-group-reset">
32
<h3><?php \_e("Remove database data and tables", "gd-mail-queue"); ?></h3>
32
<h3><?php esc\_html\_e("Remove database data and tables", "gd-mail-queue"); ?></h3>
33
33
<div class="d4p-group-inner">
34
34
<label>
35
<input type="checkbox" class="widefat" name="gdmaqtools\[remove\]\[drop\]" value="on" /> <?php \_e("Remove plugins database tables and all data in them", "gd-mail-queue"); ?>
35
<input type="checkbox" class="widefat" name="gdmaqtools\[remove\]\[drop\]" value="on" /> <?php esc\_html\_e("Remove plugins database tables and all data in them", "gd-mail-queue"); ?>
36
36
</label>
37
37
<label>
38
<input type="checkbox" class="widefat" name="gdmaqtools\[remove\]\[truncate\]" value="on" /> <?php \_e("Remove all data from database tables", "gd-mail-queue"); ?>
38
<input type="checkbox" class="widefat" name="gdmaqtools\[remove\]\[truncate\]" value="on" /> <?php esc\_html\_e("Remove all data from database tables", "gd-mail-queue"); ?>
39
39
</label><br/>
40
40
<hr/>
41
<p><?php \_e("Database tables that will be affected", "gd-mail-queue"); ?>:</p>
41
<p><?php esc\_html\_e("Database tables that will be affected", "gd-mail-queue"); ?>:</p>
42
42
<ul style="list-style: inside disc;">
43
<li><?php echo gdmaq\_db()->queue; ?></li>
44
<li><?php echo gdmaq\_db()->log; ?></li>
45
<li><?php echo gdmaq\_db()->emails; ?></li>
46
<li><?php echo gdmaq\_db()->log\_email; ?></li>
43
<li><?php echo esc\_html(gdmaq\_db()->queue); ?></li>
44
<li><?php echo esc\_html(gdmaq\_db()->log); ?></li>
45
<li><?php echo esc\_html(gdmaq\_db()->emails); ?></li>
46
<li><?php echo esc\_html(gdmaq\_db()->log\_email); ?></li>
47
47
</ul>
48
48
</div>
…
…
50
50
51
51
<div class="d4p-group d4p-group-tools d4p-group-reset">
52
<h3><?php \_e("Disable Plugin", "gd-mail-queue"); ?></h3>
52
<h3><?php esc\_html\_e("Disable Plugin", "gd-mail-queue"); ?></h3>
53
53
<div class="d4p-group-inner">
54
54
<label>
55
<input type="checkbox" class="widefat" name="gdmaqtools\[remove\]\[disable\]" value="on" /> <?php \_e("Disable plugin", "gd-mail-queue"); ?>
55
<input type="checkbox" class="widefat" name="gdmaqtools\[remove\]\[disable\]" value="on" /> <?php esc\_html\_e("Disable plugin", "gd-mail-queue"); ?>
56
56
</label>
57
57
</div>
gd-mail-queue/trunk/forms/tools/test.php
r2081206
r2923988
2
2
3
3
<div class="d4p-group d4p-group-information">
4
<h3><?php \_e("Important", "gd-mail-queue"); ?></h3>
4
<h3><?php esc\_html\_e("Important", "gd-mail-queue"); ?></h3>
5
5
<div class="d4p-group-inner">
6
<?php \_e("This tool sends test email to check email sending settings, and capture sending status or errors. To make sure email is sent directly, queue intercept will be disabled for the test.", "gd-mail-queue"); ?>
6
<?php esc\_html\_e("This tool sends test email to check email sending settings, and capture sending status or errors. To make sure email is sent directly, queue intercept will be disabled for the test.", "gd-mail-queue"); ?>
7
7
</div>
8
8
</div>
9
9
10
10
<div class="d4p-group d4p-group-tools">
11
<h3><?php \_e("Configure test", "gd-mail-queue"); ?></h3>
11
<h3><?php esc\_html\_e("Configure test", "gd-mail-queue"); ?></h3>
12
12
<div class="d4p-group-inner">
13
<label><?php \_e("Send To", "gd-mail-queue"); ?></label>
14
<input type="text" class="widefat" name="gdmaqtools\[mailtest\]\[email\]" value="<?php echo get\_option('admin\_email'); ?>" />
13
<label><?php esc\_html\_e("Send To", "gd-mail-queue"); ?></label>
14
<input type="text" class="widefat" name="gdmaqtools\[mailtest\]\[email\]" value="<?php echo esc\_attr(get\_option('admin\_email')); ?>" />
15
15
<br/><br/>
16
<label><?php \_e("Subject", "gd-mail-queue"); ?></label>
16
<label><?php esc\_html\_e("Subject", "gd-mail-queue"); ?></label>
17
17
<input type="text" class="widefat" name="gdmaqtools\[mailtest\]\[subject\]" value="<?php echo \_\_("Test email", "gd-mail-queue").': '.get\_option('blogname'); ?>" />
18
18
</div>
…
…
20
20
21
21
<div class="d4p-group d4p-group-tools" id="d4p-tools-test-results" style="display: none;">
22
<h3><?php \_e("Test results", "gd-mail-queue"); ?></h3>
22
<h3><?php esc\_html\_e("Test results", "gd-mail-queue"); ?></h3>
23
23
<div class="d4p-group-inner">
24
24
gd-mail-queue/trunk/forms/update.php
r2097996
r2923988
6
6
7
7
?>
8
<div class="<?php echo join(' ', $\_classes); ?>">
8
<div class="<?php echo esc\_attr(join(' ', $\_classes)); ?>">
9
9
<div class="d4p-header">
10
10
<div class="d4p-plugin">
…
…
16
16
<div class="d4p-panel-title">
17
17
<i aria-hidden="true" class="fa fa-magic"></i>
18
<h3><?php \_e("Update", "gd-mail-queue"); ?></h3>
18
<h3><?php esc\_html\_e("Update", "gd-mail-queue"); ?></h3>
19
19
</div>
20
20
<div class="d4p-panel-info">
21
<?php \_e("Before you continue, make sure plugin was successfully updated.", "gd-mail-queue"); ?>
21
<?php esc\_html\_e("Before you continue, make sure plugin was successfully updated.", "gd-mail-queue"); ?>
22
22
</div>
23
23
</div>
…
…
33
33
?>
34
34
35
<h3><?php \_e("All Done", "gd-mail-queue"); ?></h3>
36
<?php \_e("Update completed.", "gd-mail-queue"); ?>
35
<h3><?php esc\_html\_e("All Done", "gd-mail-queue"); ?></h3>
36
<?php esc\_html\_e("Update completed.", "gd-mail-queue"); ?>
37
37
38
<br/><br/><a class="button-primary" href="<?php echo admin\_url('admin.php?page=gd-mail-queue-about'); ?>"><?php \_e("Click here to continue.", "gd-mail-queue"); ?></a>
38
<br/><br/><a class="button-primary" href="<?php echo admin\_url('admin.php?page=gd-mail-queue-about'); ?>"><?php esc\_html\_e("Click here to continue.", "gd-mail-queue"); ?></a>
39
39
</div>
40
40
</div>
gd-mail-queue/trunk/gd-mail-queue.php
r2776206
r2923988
8
8
Author URI: https://www.dev4press.com/
9
9
Text Domain: gd-mail-queue
10
Version: 3.9.3
11
Requires at least: 5.0
12
Tested up to: 6.0
13
Requires PHP: 7.0
10
Version: 4.0
11
Requires at least: 5.2
12
Tested up to: 6.2
13
Requires PHP: 7.3
14
14
License: GPLv3 or later
15
15
License URI: https://www.gnu.org/licenses/gpl-3.0.html
gd-mail-queue/trunk/readme.txt
r2889262
r2923988
2
2
Contributors: GDragoN
3
3
Donate link: https://plugins.dev4press.com/gd-mail-queue/
4
Version: 3.9.3.1
4
Version: 4.0
5
5
Tags: dev4press, mail, queue, email log, smtp, html email, bbpress, mail log, wp\_mail
6
Requires at least: 5.0
6
Requires at least: 5.2
7
7
Tested up to: 6.2
8
Requires PHP: 7.0
8
Requires PHP: 7.3
9
9
Stable tag: trunk
10
10
License: GPLv3 or later
…
…
25
25
\* If eligible, add each recipient email into the queue
26
26
27
Process of turning plain text into HTML emails, support all emails sent through wp\_mail, even if they don't end in the queue. This can turn all WordPress system emails (registration, password reset...) into HTML emails. You can:
28
29
\* Choose between predefined HTML templates
30
\* Add your custom HTML template
31
\* Define your custom header and footer for emails
27
Process of turning plain text into HTML emails, support all emails sent through wp\_mail, even if they don't end in the queue. This can turn all WordPress system emails (registration, password reset...) into HTML emails and you can choose between predefined HTML templates, or register own templates via filter.
32
28
33
29
Queue works through the CRON, as a background job, and you can configure how many emails to send in a batch, with the timeout setting to prevent PHP timeout breaking the sending process.
…
…
50
46
\* Preview popup shows the full HTML email part preview
51
47
\* Retry sending any failed emails through the queue
48
49
\= Security related features =
50
The plugin will attempt to strip malicious content from intercepted email, and sanitize the email plain text before generating HTML version, with the option to control the scope of the HTML tags to allow. HTML from subject will be striped. Emails stored in the log will be additionally sanitized, and on display, email content will be again escaped or run through KSES to avoid issues.
52
51
53
52
\= Other plugin features =
…
…
168
167
169
168
\== Upgrade Notice ==
169
\= 4.0 =
170
Various improvements, changes and security fix.
171
170
172
\= 3.9 =
171
173
Various improvements and fixes.
…
…
175
177
176
178
\== Changelog ==
179
\= 4.0 - 2023.06.09 =
180
\* New: plugin tested with WordPress up to 6.2
181
\* New: system requirements: plugin requires PHP 7.3
182
\* New: system requirements: plugin requires WordPress 5.2
183
\* New: option to control HTMLfy pre-processing of plain text
184
\* New: run KSES filter when adding email into queue
185
\* New: run KSES filter when saving email into the log
186
\* New: logged email preview with proper data escaping
187
\* New: filters to control pre-processing of emails going to queue
188
\* New: process logged email preview with KSES before displaying
189
\* New: filter for HTMLfy pre-processing control for KSES
190
\* Edit: many more additional content escaping for display
191
\* Edit: various small updates to improve PHP code standards
192
\* Edit: d4pLib 2.8.15
193
\* Fix: unauthenticated stored cross-site scripting vulnerability
194
177
195
\= 3.9.3 - 2022.08.26 =
178
196
\* Edit: no longer check for super admin but use activate\_plugins cap