Check Email - Version 1.0.5

Version Description

Download this release

Release Info

Developer raldea89
Plugin Icon wp plugin Check Email
Version 1.0.5
Comparing to
See all releases

Code changes from version 1.0.4 to 1.0.5

Gruntfile.js ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+ module.exports = function( grunt ) {
3
+
4
+ // load all tasks
5
+ require( 'load-grunt-tasks' )( grunt, { scope: 'devDependencies' } );
6
+
7
+ grunt.config.init( {
8
+ pkg: grunt.file.readJSON( 'package.json' ),
9
+
10
+ dirs: {
11
+ css: '/assets/css',
12
+ js: '/assets/js'
13
+ },
14
+ checktextdomain: {
15
+ standard: {
16
+ options: {
17
+ text_domain: [ 'check-email' ], //Specify allowed domain(s)
18
+ create_report_file: 'true',
19
+ keywords: [ //List keyword specifications
20
+ '__:1,2d',
21
+ '_e:1,2d',
22
+ '_x:1,2c,3d',
23
+ 'esc_html__:1,2d',
24
+ 'esc_html_e:1,2d',
25
+ 'esc_html_x:1,2c,3d',
26
+ 'esc_attr__:1,2d',
27
+ 'esc_attr_e:1,2d',
28
+ 'esc_attr_x:1,2c,3d',
29
+ '_ex:1,2c,3d',
30
+ '_n:1,2,4d',
31
+ '_nx:1,2,4c,5d',
32
+ '_n_noop:1,2,3d',
33
+ '_nx_noop:1,2,3c,4d'
34
+ ]
35
+ },
36
+ files: [
37
+ {
38
+ src: [
39
+ '**/*.php',
40
+ '!**/node_modules/**',
41
+ ], //all php
42
+ expand: true
43
+ }
44
+ ]
45
+ }
46
+ },
47
+ makepot: {
48
+ target: {
49
+ options: {
50
+ cwd: '', // Directory of files to internationalize.
51
+ domainPath: 'languages/', // Where to save the POT file.
52
+ exclude: [], // List of files or directories to ignore.
53
+ include: [], // List of files or directories to include.
54
+ mainFile: 'check-email.php', // Main project file.
55
+ potComments: '', // The copyright at the beginning of the POT file.
56
+ potFilename: 'check-email.po', // Name of the POT file.
57
+ potHeaders: {
58
+ poedit: true, // Includes common Poedit headers.
59
+ 'x-poedit-keywordslist': true // Include a list of all possible gettext functions.
60
+ }, // Headers to add to the generated POT file.
61
+ processPot: null, // A callback function for manipulating the POT file.
62
+ type: 'wp-plugin', // Type of project (wp-plugin or wp-theme).
63
+ updateTimestamp: true, // Whether the POT-Creation-Date should be updated without other changes.
64
+ updatePoFiles: false // Whether to update PO files in the same directory as the POT file.
65
+ }
66
+ }
67
+ },
68
+ clean: {
69
+ init: {
70
+ src: [ 'build/' ]
71
+ }
72
+ },
73
+ copy: {
74
+ build: {
75
+ expand: true,
76
+ src: [
77
+ '**',
78
+ '!node_modules/**',
79
+ '!vendor/**',
80
+ '!build/**',
81
+ '!readme.md',
82
+ '!README.md',
83
+ '!phpcs.ruleset.xml',
84
+ '!package-lock.json',
85
+ '!svn-ignore.txt',
86
+ '!Gruntfile.js',
87
+ '!package.json',
88
+ '!composer.json',
89
+ '!composer.lock',
90
+ '!postcss.config.js',
91
+ '!webpack.config.js',
92
+ '!set_tags.sh',
93
+ '!check-email.zip',
94
+ '!old/**',
95
+ '!nbproject/**'
96
+ ],
97
+ dest: 'build/'
98
+ }
99
+ },
100
+
101
+ compress: {
102
+ build: {
103
+ options: {
104
+ pretty: true, // Pretty print file sizes when logging.
105
+ archive: '<%= pkg.name %>.zip'
106
+ },
107
+ expand: true,
108
+ cwd: 'build/',
109
+ src: [ '**/*' ],
110
+ dest: '<%= pkg.name %>/'
111
+ }
112
+ },
113
+
114
+ } );
115
+
116
+ grunt.loadNpmTasks( 'grunt-contrib-clean' );
117
+ grunt.loadNpmTasks( 'grunt-contrib-cssmin' );
118
+
119
+ grunt.registerTask( 'textdomain', [
120
+ 'checktextdomain',
121
+ 'makepot'
122
+ ] );
123
+
124
+ // Build task
125
+ grunt.registerTask( 'build-archive', [
126
+ 'clean:init',
127
+ 'copy',
128
+ 'compress:build',
129
+ 'clean:init'
130
+ ] );
131
+ };
assets/css/admin/checkemail.css CHANGED
@@ -36,4 +36,18 @@
36
  background-color: #FAFAFA;
37
  border: 1px solid #CCC;
38
  padding: 10px 15px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  }
36
  background-color: #FAFAFA;
37
  border: 1px solid #CCC;
38
  padding: 10px 15px;
39
+ }
40
+
41
+ .tab-content.ce_tab_general .check_email_enable_logs,
42
+ .tab-content.ce_tab_general .check_email_enable_dashboard_widget,
43
+ .tab-content.ce_tab_general .check_email_db_size_notification {
44
+ display: none;
45
+ }
46
+
47
+ .tab-content.ce_tab_logging .check_email_allowed_user_roles,
48
+ .tab-content.ce_tab_logging .check_email_remove_on_uninstall,
49
+ .tab-content.ce_tab_logging .check_email_override_emails_from,
50
+ .tab-content.ce_tab_logging .check_email_email_from_name,
51
+ .tab-content.ce_tab_logging .check_email_email_from_email {
52
+ display: none;
53
  }
assets/js/admin/checkemail.js CHANGED
@@ -1,34 +1,103 @@
1
  /**
2
  * Show/Hide individual add-on license key input.
3
  */
4
- ( function( $ ) {
5
- $( document ).ready( function() {
6
- $(".checkemail-hide").hide();
7
- var widget = $("#check-email-enable-widget").parent().parent();
8
- var dbNotifications = $("#check-email-enable-db-notifications").parent().parent();
9
- if (!$('#check-email-enable-logs').is(":checked")) {
10
- widget.hide();
11
- dbNotifications.hide();
12
- }
13
-
14
- $("#checkemail_autoheaders,#checkemail_customheaders").on("change", function(){
15
- if ($("#checkemail_autoheaders").is(":checked")){
16
- $("#customheaders").hide();
17
- $("#autoheaders").show();
18
- }
19
- if ($("#checkemail_customheaders").is(":checked")){
20
- $("#autoheaders").hide();
21
- $("#customheaders").show();
22
- }
23
- });
24
- $('#check-email-enable-logs').on('click', function() {
25
- if ($(this).is(":checked")) {
26
- widget.show();
27
- dbNotifications.show();
28
- } else {
29
- widget.hide();
30
- dbNotifications.hide();
31
- }
32
- });
33
- } );
34
- } )(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  /**
2
  * Show/Hide individual add-on license key input.
3
  */
4
+ (function ($) {
5
+ $(document).ready(function () {
6
+ $(".checkemail-hide").hide();
7
+ var widget = $("#check-email-enable-widget").parent().parent();
8
+ var dbNotifications = $("#check-email-enable-db-notifications")
9
+ .parent()
10
+ .parent();
11
+ if (!$("#check-email-enable-logs").is(":checked")) {
12
+ widget.hide();
13
+ dbNotifications.hide();
14
+ }
15
+
16
+ $("#checkemail_autoheaders,#checkemail_customheaders").on(
17
+ "change",
18
+ function () {
19
+ if ($("#checkemail_autoheaders").is(":checked")) {
20
+ $("#customheaders").hide();
21
+ $("#autoheaders").show();
22
+ }
23
+ if ($("#checkemail_customheaders").is(":checked")) {
24
+ $("#autoheaders").hide();
25
+ $("#customheaders").show();
26
+ }
27
+ }
28
+ );
29
+ $("#check-email-enable-logs").on("click", function () {
30
+ if ($(this).is(":checked")) {
31
+ widget.show();
32
+ dbNotifications.show();
33
+ } else {
34
+ widget.hide();
35
+ dbNotifications.hide();
36
+ }
37
+ });
38
+
39
+ var from_name_setting = $("#check-email-from_name").parent().parent();
40
+ var from_email_setting = $("#check-email-from_email").parent().parent();
41
+ if (!$("#check-email-overdide-from").is(":checked")) {
42
+ from_name_setting.hide();
43
+ from_email_setting.hide();
44
+ }
45
+
46
+ $("#check-email-overdide-from").on("click", function () {
47
+ if ($(this).is(":checked")) {
48
+ from_name_setting.show();
49
+ from_email_setting.show();
50
+ } else {
51
+ from_name_setting.hide();
52
+ from_email_setting.hide();
53
+ }
54
+ });
55
+
56
+ function activatePlugin(url) {
57
+ $.ajax({
58
+ async: true,
59
+ type: "GET",
60
+ dataType: "html",
61
+ url: url,
62
+ success: function () {
63
+ location.reload();
64
+ },
65
+ });
66
+ }
67
+
68
+ // Install plugins actions
69
+ $("#install_wp_smtp").on("click", (event) => {
70
+ event.preventDefault();
71
+ const current = $(event.currentTarget);
72
+ const plugin_slug = current.data("slug");
73
+ const plugin_action = current.data("action");
74
+ const activate_url = current.data("activation_url");
75
+
76
+ // Now let's disable the button and show the action text
77
+ current.attr("disabled", true);
78
+
79
+ if ("install" === plugin_action) {
80
+ current.addClass("updating-message");
81
+
82
+ const args = {
83
+ slug: plugin_slug,
84
+ success: (response) => {
85
+ current.html("Activating plugin");
86
+
87
+ activatePlugin(response.activateUrl);
88
+ },
89
+ error: (response) => {
90
+ current.removeClass("updating-message");
91
+ jQuery("#install_wp_smtp_info p").html(response.errorMessage);
92
+ jQuery("#install_wp_smtp_info").addClass("notice-error notice");
93
+ },
94
+ };
95
+
96
+ wp.updates.installPlugin(args);
97
+ } else if ("activate" === plugin_action) {
98
+ activatePlugin(activate_url);
99
+ }
100
+ });
101
+
102
+ });
103
+ })(jQuery);
changelog.txt CHANGED
@@ -1,5 +1,11 @@
1
  == Changelog ==
2
 
 
 
 
 
 
 
3
  = v1.0.4 - 28/10/2021 =
4
  - Fixed: URL got too long when bulk deleting email logs. (https://github.com/WPChill/check-email/issues/30)
5
  - Fixed: Sanitization and Escaping
@@ -9,6 +15,8 @@
9
 
10
  = v1.0.2 - 16/06/2021 =
11
  - Added: From column in Email Logs. ( https://github.com/WPChill/check-email/issues/24 )
 
 
12
  - Added: Translation for roles and notices. ( https://github.com/WPChill/check-email/issues/10 )
13
  - Added: Headers of the emails in the view log tab. ( https://github.com/WPChill/check-email/issues/12 )
14
  - Fixed: Admin subpages link bug. ( https://github.com/WPChill/check-email/issues/9 )
@@ -22,13 +30,13 @@
22
  * Fixed admin menu capabilities.
23
  * Rezolved incompatibility with Wp Mail Logging.
24
 
25
- = 1.0.0 =
26
  * Added Email Logs for all the emails sent through Wordpress.
27
 
28
  = 0.6.1 =
29
  Added feedback form. Improved CSS backend.
30
 
31
- = 0.6.0 =
32
  Fixed loopback error.
33
 
34
  = 0.5.7 =
@@ -70,7 +78,7 @@ Fixed version number
70
  = 0.1.2 =
71
  Fixed bug in Plugin Register caused by latest version of WordPress
72
 
73
- = 0.1.1 =
74
  Fixed typo in plugin name
75
 
76
  = 0.1 =
1
  == Changelog ==
2
 
3
+ = v1.0.5 - 10/03/2022 =
4
+ - Fixed: Replaced deprecated jQuery code ( https://github.com/WPChill/check-email/issues/32 )
5
+ - Fixed: HTML code was being shown in dashboard widget ( https://github.com/WPChill/check-email/issues/33 )
6
+ - Added: Tabs and grouped settings by tabs ( https://github.com/WPChill/check-email/issues/37 )
7
+ - Added: Quick install WP SMTP plugin from settings ( https://github.com/WPChill/check-email/issues/37 )
8
+
9
  = v1.0.4 - 28/10/2021 =
10
  - Fixed: URL got too long when bulk deleting email logs. (https://github.com/WPChill/check-email/issues/30)
11
  - Fixed: Sanitization and Escaping
15
 
16
  = v1.0.2 - 16/06/2021 =
17
  - Added: From column in Email Logs. ( https://github.com/WPChill/check-email/issues/24 )
18
+
19
+ = v1.0.2 - 16/06/2021 =
20
  - Added: Translation for roles and notices. ( https://github.com/WPChill/check-email/issues/10 )
21
  - Added: Headers of the emails in the view log tab. ( https://github.com/WPChill/check-email/issues/12 )
22
  - Fixed: Admin subpages link bug. ( https://github.com/WPChill/check-email/issues/9 )
30
  * Fixed admin menu capabilities.
31
  * Rezolved incompatibility with Wp Mail Logging.
32
 
33
+ = 1.0.0 =
34
  * Added Email Logs for all the emails sent through Wordpress.
35
 
36
  = 0.6.1 =
37
  Added feedback form. Improved CSS backend.
38
 
39
+ = 0.6.0 =
40
  Fixed loopback error.
41
 
42
  = 0.5.7 =
78
  = 0.1.2 =
79
  Fixed bug in Plugin Register caused by latest version of WordPress
80
 
81
+ = 0.1.1 =
82
  Fixed typo in plugin name
83
 
84
  = 0.1 =
check-email.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Check & Log Email
4
  * Description: Check & Log email allows you to test if your WordPress installation is sending emails correctly and logs every email.
5
  * Author: WPChill
6
- * Version: 1.0.4
7
  * Author URI: https://wpchill.com/
8
  * License: GPLv3 or later
9
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -99,6 +99,7 @@ function check_email_log( $plugin_file ) {
99
  $check_email->add_loadie( $capability_giver );
100
  $capability_giver->add_cap_to_admin();
101
 
 
102
 
103
  // `register_activation_hook` can't be called from inside any hook.
104
  register_activation_hook( $plugin_file, array( $check_email->table_manager, 'on_activate' ) );
3
  * Plugin Name: Check & Log Email
4
  * Description: Check & Log email allows you to test if your WordPress installation is sending emails correctly and logs every email.
5
  * Author: WPChill
6
+ * Version: 1.0.5
7
  * Author URI: https://wpchill.com/
8
  * License: GPLv3 or later
9
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
99
  $check_email->add_loadie( $capability_giver );
100
  $capability_giver->add_cap_to_admin();
101
 
102
+ $check_email->add_loadie( new \CheckEmail\Core\Check_Email_From_Handler() );
103
 
104
  // `register_activation_hook` can't be called from inside any hook.
105
  register_activation_hook( $plugin_file, array( $check_email->table_manager, 'on_activate' ) );
include/Core/Check_Email_From_Handler.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php namespace CheckEmail\Core;
2
+
3
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly
4
+
5
+ class Check_Email_From_Handler {
6
+
7
+ public $options;
8
+ /**
9
+ * Constructor
10
+ */
11
+ public function __construct() {
12
+
13
+ $this->options = get_option('check-email-log-core', false);
14
+
15
+ add_filter( 'wp_mail', array( $this, 'override_values'), 15 );
16
+ add_filter( 'wp_mail_from', array($this, 'set_wp_mail_from' ), 99 );
17
+ add_filter( 'wp_mail_from_name', array($this, 'set_wp_mail_from_name' ), 99 );
18
+ }
19
+
20
+
21
+ /**
22
+ * Overrides the current wp_mail_from with the one from settings.
23
+ *
24
+ * @param String $email - Wordpress current mail from address.
25
+ * @return String $email - "From" email address set in settings if it exists, else return the $email unchanged
26
+ *
27
+ * @since 1.0.5
28
+ */
29
+ public function set_wp_mail_from( $email ){
30
+ if( $this->override_enabled() && isset( $this->options['email_from_email'] ) && '' != $this->options['email_from_email']){
31
+ return $this->options['email_from_email'];
32
+ }
33
+
34
+ return $email;
35
+ }
36
+
37
+ /**
38
+ * Overrides the current wp_mail_from_name with the one from settings.
39
+ *
40
+ * @param String $name - Wordpress current mail from name.
41
+ * @return String $name - "From" name set in settings if it exists, else return the $name unchanged
42
+ *
43
+ * @since 1.0.5
44
+ */
45
+ public function set_wp_mail_from_name( $name ){
46
+ if( $this->override_enabled() && isset( $this->options['email_from_name'] ) && '' != $this->options['email_from_name']){
47
+ return $this->options['email_from_name'];
48
+ }
49
+
50
+ return $name;
51
+ }
52
+ /**
53
+ * Check if the setting to override the default from email and from name is active.
54
+ *
55
+ * @since 1.0.5
56
+ */
57
+ public function override_enabled(){
58
+
59
+ if( $this->options && isset( $this->options['override_emails_from'] ) && $this->options['override_emails_from'] ){
60
+ return true;
61
+ }
62
+
63
+ return false;
64
+ }
65
+
66
+ /**
67
+ * Replaces the current wp_mail $headers with the values from settings.
68
+ *
69
+ * @param Array $headers - Wordpress current mail headers
70
+ * @return Array $headers - New headers from settings
71
+ *
72
+ * @since 1.0.5
73
+ */
74
+ public function override_values( $headers ) {
75
+ if( $this->override_enabled() && isset( $this->options['email_from_email'] ) && '' != $this->options['email_from_email']){
76
+
77
+ $headers['headers'] = "MIME-Version: 1.0\r\n";
78
+
79
+ $email = $this->options['email_from_email'];
80
+
81
+ if( $this->override_enabled() && isset( $this->options['email_from_name'] ) && '' != $this->options['email_from_name'] ){
82
+
83
+ $headers['headers'] .= "From: " . $this->options['email_from_name'] . " <". $email .">\r\n" ;
84
+ }else{
85
+
86
+ $headers['headers'] .= "From: <". $email .">\r\n" ;
87
+ }
88
+
89
+ $headers['headers'] .= "Content-Type: text/plain; charset=\"UTF-8\"\r\n";
90
+ }
91
+
92
+
93
+ return $headers;
94
+ }
95
+ }
include/Core/Check_Email_Review.php CHANGED
@@ -123,11 +123,11 @@ class Check_Email_Review {
123
  <script type="text/javascript">
124
  jQuery( document ).ready( function( $ ){
125
 
126
- $( '#check-email-epsilon-review-notice button' ).click( function(){
127
  $( '#epsilon-no-rate' ).trigger( 'click' );
128
  });
129
 
130
- $( '.epsilon-review-button' ).click( function( evt ){
131
  var href = $(this).attr('href'),
132
  id = $(this).attr('id');
133
 
123
  <script type="text/javascript">
124
  jQuery( document ).ready( function( $ ){
125
 
126
+ $( '#check-email-epsilon-review-notice button' ).on( 'click', function(){
127
  $( '#epsilon-no-rate' ).trigger( 'click' );
128
  });
129
 
130
+ $( '.epsilon-review-button' ).on( 'click', function( evt ){
131
  var href = $(this).attr('href'),
132
  id = $(this).attr('id');
133
 
include/Core/UI/Component/Check_Email_Dashboard_Widget.php CHANGED
@@ -34,9 +34,9 @@ class Check_Email_Dashboard_Widget implements Loadie {
34
  ?>
35
 
36
  <ul class="subsubsub" style="float: none">
37
- <li><?php printf( esc_html__( '<a href="%s">Status</a>', 'check-email' ), 'admin.php?page=check-email-status' ); ?> <span style="color: #ddd"> | </span></li>
38
- <li><?php printf( esc_html__( '<a href="%s">Email Logs</a>', 'check-email' ), 'admin.php?page=check-email-logs' ); ?> <span style="color: #ddd"> | </span></li>
39
- <li><?php printf( esc_html__( '<a href="%s">Settings</a>', 'check-email' ), 'admin.php?page=check-email-settings' ); ?> <span style="color: #ddd"> | </span></li>
40
  </ul>
41
 
42
  <?php
34
  ?>
35
 
36
  <ul class="subsubsub" style="float: none">
37
+ <li><?php printf( wp_kses_post( __( '<a href="%s">Status</a>', 'check-email' ) ), 'admin.php?page=check-email-status' ); ?> <span style="color: #ddd"> | </span></li>
38
+ <li><?php printf( wp_kses_post( __( '<a href="%s">Email Logs</a>', 'check-email' ) ), 'admin.php?page=check-email-logs' ); ?> <span style="color: #ddd"> | </span></li>
39
+ <li><?php printf( wp_kses_post( __( '<a href="%s">Settings</a>', 'check-email' ) ), 'admin.php?page=check-email-settings' ); ?> <span style="color: #ddd"> | </span></li>
40
  </ul>
41
 
42
  <?php
include/Core/UI/Page/Check_Email_Log_List_Page.php CHANGED
@@ -127,7 +127,7 @@ class Check_Email_Log_List_Page extends Check_Email_BasePage {
127
 
128
  wp_register_style( 'jquery-ui-css', $plugin_dir_url . 'assets/vendor/jquery-ui/themes/base/jquery-ui.min.css', array(), '1.12.1' );
129
 
130
- wp_register_script( 'insertionQ', $plugin_dir_url . 'assets/vendor/insertion-query/insQ.min.js', array( 'jquery' ), '1.0.4', true );
131
 
132
  wp_enqueue_script( 'check-email-view-logs', $plugin_dir_url . 'assets/js/admin/view-logs.js', array( 'insertionQ', 'jquery-ui-core', 'jquery-ui-datepicker', 'jquery-ui-tooltip', 'jquery-ui-tabs' ), $check_email->get_version(), true );
133
  }
127
 
128
  wp_register_style( 'jquery-ui-css', $plugin_dir_url . 'assets/vendor/jquery-ui/themes/base/jquery-ui.min.css', array(), '1.12.1' );
129
 
130
+ wp_register_script( 'insertionQ', $plugin_dir_url . 'assets/vendor/insertion-query/insQ.min.js', array( 'jquery' ), '1.0.5', true );
131
 
132
  wp_enqueue_script( 'check-email-view-logs', $plugin_dir_url . 'assets/js/admin/view-logs.js', array( 'insertionQ', 'jquery-ui-core', 'jquery-ui-datepicker', 'jquery-ui-tooltip', 'jquery-ui-tabs' ), $check_email->get_version(), true );
133
  }
include/Core/UI/Page/Check_Email_Settings_Page.php CHANGED
@@ -5,19 +5,24 @@ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
5
  class Check_Email_Settings_Page extends Check_Email_BasePage {
6
 
7
  const PAGE_SLUG = 'check-email-settings';
8
-
9
  public function load() {
10
  parent::load();
11
 
12
  add_action( 'admin_init', array( $this, 'register_settings' ) );
 
 
13
  }
14
 
15
  public function register_settings() {
16
  $sections = $this->get_setting_sections();
17
 
18
  foreach ( $sections as $section ) {
 
 
 
19
  register_setting(
20
- self::PAGE_SLUG,
21
  $section->option_name,
22
  array( 'sanitize_callback' => $section->sanitize_callback )
23
  );
@@ -26,7 +31,7 @@ class Check_Email_Settings_Page extends Check_Email_BasePage {
26
  $section->id,
27
  $section->title,
28
  $section->callback,
29
- self::PAGE_SLUG
30
  );
31
 
32
  foreach ( $section->fields as $field ) {
@@ -34,7 +39,7 @@ class Check_Email_Settings_Page extends Check_Email_BasePage {
34
  $section->id . '[' . $field->id . ']',
35
  $field->title,
36
  $field->callback,
37
- self::PAGE_SLUG,
38
  $section->id,
39
  $field->args
40
  );
@@ -64,22 +69,106 @@ class Check_Email_Settings_Page extends Check_Email_BasePage {
64
  );
65
 
66
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
 
 
 
 
 
 
68
  public function render_page() {
 
 
 
69
  ?>
70
  <div class="wrap">
71
- <h1><?php esc_html_e( 'Email Log Settings', 'check-email' ); ?></h1>
72
-
73
- <form method="post" action="options.php">
74
- <?php
75
- settings_errors();
76
- settings_fields( self::PAGE_SLUG );
77
- do_settings_sections( self::PAGE_SLUG );
78
-
79
- submit_button( esc_html__( 'Save', 'check-email' ) );
80
- ?>
81
- </form>
82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  </div>
84
  <?php
85
 
5
  class Check_Email_Settings_Page extends Check_Email_BasePage {
6
 
7
  const PAGE_SLUG = 'check-email-settings';
8
+ public $page_slug;
9
  public function load() {
10
  parent::load();
11
 
12
  add_action( 'admin_init', array( $this, 'register_settings' ) );
13
+ add_action( 'wp_ajax_oneclick_smtp_install', array( $this, 'install_plugin' ) );
14
+ add_action( 'wp_ajax_oneclick_smtp_activate', array( $this, 'activate_plugin' ) );
15
  }
16
 
17
  public function register_settings() {
18
  $sections = $this->get_setting_sections();
19
 
20
  foreach ( $sections as $section ) {
21
+ if( !isset( $section->page_slug ) )
22
+ continue;
23
+ $this->page_slug = $section->page_slug;
24
  register_setting(
25
+ $this->page_slug ,
26
  $section->option_name,
27
  array( 'sanitize_callback' => $section->sanitize_callback )
28
  );
31
  $section->id,
32
  $section->title,
33
  $section->callback,
34
+ $this->page_slug
35
  );
36
 
37
  foreach ( $section->fields as $field ) {
39
  $section->id . '[' . $field->id . ']',
40
  $field->title,
41
  $field->callback,
42
+ $this->page_slug,
43
  $section->id,
44
  $field->args
45
  );
69
  );
70
 
71
  }
72
+ /**
73
+ * Checks if SMTP plugin is installed and/or active
74
+ * @return string
75
+ * @since 1.0.5
76
+ */
77
+ public function is_smtp_installed() {
78
+ if ( ! function_exists( 'get_plugins' ) ) {
79
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
80
+ }
81
+
82
+ $all_plugins = get_plugins();
83
+
84
+ if ( empty( $all_plugins['wp-smtp/wp-smtp.php'] ) ) {
85
+
86
+ return 'install';
87
+ }else{
88
+ if( !is_plugin_active( 'wp-smtp/wp-smtp.php' ) ){
89
+
90
+ return 'activate';
91
+ }else{
92
+ return 'false';
93
+ }
94
+ }
95
+ }
96
 
97
+ /**
98
+ * Renders the plugin settings page HTML
99
+ *
100
+ * @since 1.0.5
101
+ */
102
  public function render_page() {
103
+
104
+ $tab = isset( $_GET['tab']) ? $_GET['tab'] : 'general';
105
+
106
  ?>
107
  <div class="wrap">
 
 
 
 
 
 
 
 
 
 
 
108
 
109
+ <nav class="nav-tab-wrapper">
110
+ <a href="?page=check-email-settings" class="nav-tab <?php if( 'general' == $tab ):?>nav-tab-active<?php endif; ?>"><?php esc_html_e( 'General', 'check-email' ); ?></a>
111
+ <a href="?page=check-email-settings&tab=logging" class="nav-tab <?php if( 'logging' == $tab ):?>nav-tab-active<?php endif; ?>"><?php esc_html_e( 'Logging', 'check-email' ); ?></a>
112
+ <a href="?page=check-email-settings&tab=smtp" class="nav-tab <?php if( 'smtp' == $tab ):?>nav-tab-active<?php endif; ?>"><?php esc_html_e( 'SMTP', 'check-email' ); ?></a>
113
+ <a href="https://docs.google.com/forms/d/e/1FAIpQLSdhHrYons-oMg_9oEDVvx8VTvzdeCQpT4PnG6KLCjYPiyQfXg/viewform" target="_blank" class="nav-tab"><span class="dashicons dashicons-external"></span><?php esc_html_e( 'Suggest a feature', 'check-email' ); ?></a>
114
+ </nav>
115
+
116
+ <div class="tab-content ce_tab_<?php echo $tab; ?>">
117
+
118
+ <?php if( 'general' == $tab ): ?>
119
+ <h2><?php esc_html_e( 'Core Check Email Log Settings', 'check-email' ); ?></h2>
120
+ <?php elseif( 'logging' == $tab ): ?>
121
+ <h2><?php esc_html_e( 'Logging', 'check-email' ); ?></h2>
122
+ <?php elseif( 'smtp' == $tab ): ?>
123
+ <h2><?php esc_html_e( 'WP SMTP Installer', 'check-email' ); ?></h2>
124
+ <?php endif; ?>
125
+
126
+ <?php if( 'smtp' !== $tab ): ?>
127
+ <?php $submit_url = ( '' != $tab ) ? add_query_arg( 'tab', $tab, admin_url( 'options.php' ) ) : 'options.php'; ?>
128
+ <form method="post" action="<?php echo esc_url( $submit_url ); ?>">
129
+ <?php
130
+ settings_errors();
131
+ settings_fields( $this->page_slug );
132
+ do_settings_sections( $this->page_slug );
133
+ submit_button( esc_html__( 'Save', 'check-email' ) );
134
+ ?>
135
+ </form>
136
+ <?php elseif( 'smtp' == $tab ): ?>
137
+ <table class="form-table" role="presentation">
138
+ <tbody>
139
+ <tr>
140
+ <th scope="row"><?php esc_html_e( 'Install WP SMTP', 'check-email' ); ?></th>
141
+ <?php $smtp_status = $this->is_smtp_installed(); ?>
142
+ <?php if( 'false' != $smtp_status ): ?>
143
+ <?php
144
+ $activate_url = add_query_arg(
145
+ array(
146
+ 'action' => 'activate',
147
+ 'plugin' => rawurlencode( 'wp-smtp/wp-smtp.php' ),
148
+ 'plugin_status' => 'all',
149
+ 'paged' => '1',
150
+ '_wpnonce' => wp_create_nonce( 'activate-plugin_wp-smtp/wp-smtp.php' ),
151
+ ),
152
+ admin_url( 'plugins.php' )
153
+ );
154
+ ?>
155
+ <td>
156
+ <div class="install_plugin_wrap">
157
+ <button id="install_wp_smtp" class="button" data-slug="wp-smtp" data-action="<?php echo ( 'install' == $smtp_status ? 'install' : 'activate' ); ?>" data-activation_url="<?php echo $activate_url; ?>"><?php echo sprintf( esc_html__( '%s SMTP', 'check-email' ), ( 'install' == $smtp_status ? 'Install' : 'Activate' ) ); ?></button>
158
+ <div id="install_wp_smtp_info"> <p><?php echo sprintf( esc_html__( 'Click to %s WP SMTP', 'check-email' ), ( 'install' == $smtp_status ? 'install' : 'activate' ) ) ; ?> </p></div>
159
+ </div>
160
+
161
+ </td>
162
+ <?php else: ?>
163
+ <td>
164
+ <div class="install_wp_smtp_wrap"> <?php esc_html_e( 'WP SMTP is allready installed and activated.', 'check-email' ); ?></div>
165
+ </td>
166
+ <?php endif; ?>
167
+ </tr>
168
+ </tbody>
169
+ </table>
170
+ <?php endif; ?>
171
+ </div>
172
  </div>
173
  <?php
174
 
include/Core/UI/Page/Check_Email_Status_Page.php CHANGED
@@ -149,6 +149,6 @@ class Check_Email_Status_Page extends Check_Email_BasePage {
149
  $check_email = wpchill_check_email();
150
  $plugin_dir_url = plugin_dir_url( $check_email->get_plugin_file() );
151
  wp_enqueue_style( 'checkemail-css', $plugin_dir_url . 'assets/css/admin/checkemail.css', array(), $check_email->get_version() );
152
- wp_enqueue_script( 'checkemail', $plugin_dir_url . 'assets/js/admin/checkemail.js', array(), $check_email->get_version(), true );
153
  }
154
  }
149
  $check_email = wpchill_check_email();
150
  $plugin_dir_url = plugin_dir_url( $check_email->get_plugin_file() );
151
  wp_enqueue_style( 'checkemail-css', $plugin_dir_url . 'assets/css/admin/checkemail.css', array(), $check_email->get_version() );
152
+ wp_enqueue_script( 'checkemail', $plugin_dir_url . 'assets/js/admin/checkemail.js', array( 'jquery', 'updates' ), $check_email->get_version(), true );
153
  }
154
  }
include/Core/UI/Setting/Check_Email_Core_Setting.php CHANGED
@@ -8,33 +8,41 @@ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
8
  class Check_Email_Core_Setting extends Check_Email_Setting {
9
 
10
  protected function initialize() {
11
- $this->section->id = 'check-email-log-core';
12
- $this->section->title = esc_html__( 'Core Check Email Log Settings', 'check-email' );
13
- $this->section->option_name = 'check-email-log-core';
14
-
15
- $this->section->field_labels = array(
16
- 'allowed_user_roles' => esc_html__( 'Allowed User Roles', 'check-email' ),
17
- 'enable_logs' => esc_html__( 'Enable Logs', 'check-email' ),
18
- 'enable_dashboard_widget' => esc_html__( 'Enable Dashboard Widget', 'check-email' ),
19
- 'db_size_notification' => esc_html__( 'Database Size Notification', 'check-email' ),
20
- 'remove_on_uninstall' => esc_html__( 'Remove Data on Uninstall?', 'check-email' ),
21
- );
22
 
23
- $this->section->default_value = array(
24
- 'allowed_user_roles' => array(),
25
- 'enable_logs' => false,
26
- 'enable_dashboard_widget' => false,
27
- 'db_size_notification' => array(
28
- 'notify' => false,
29
- 'admin_email' => '',
30
- 'logs_threshold' => '',
31
- 'log_threshold_met' => false,
32
- 'threshold_email_last_sent' => false,
33
- ),
34
- 'remove_on_uninstall' => '',
35
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  $this->load();
 
38
  }
39
 
40
  public function load() {
@@ -369,4 +377,43 @@ EOT;
369
  <?php
370
  }
371
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
372
  }
8
  class Check_Email_Core_Setting extends Check_Email_Setting {
9
 
10
  protected function initialize() {
 
 
 
 
 
 
 
 
 
 
 
11
 
12
+ $this->section->page_slug = 'check-email-settings';
13
+ $this->section->id = 'check-email-log-core';
14
+ $this->section->option_name = 'check-email-log-core';
15
+
16
+ $this->section->field_labels = array(
17
+ 'allowed_user_roles' => esc_html__( 'Allowed User Roles', 'check-email' ),
18
+ 'remove_on_uninstall' => esc_html__( 'Remove Data on Uninstall?', 'check-email' ),
19
+ 'override_emails_from' => esc_html__( 'Override Emails From', 'check-email' ),
20
+ 'email_from_name' => esc_html__( 'Change the "from" name.', 'check-email' ),
21
+ 'email_from_email' => esc_html__( 'Change the "from" email.', 'check-email' ),
22
+ 'enable_logs' => esc_html__( 'Enable Logs', 'check-email' ),
23
+ 'enable_dashboard_widget' => esc_html__( 'Enable Dashboard Widget', 'check-email' ),
24
+ 'db_size_notification' => esc_html__( 'Database Size Notification', 'check-email' ),
25
+ );
26
+
27
+ $this->section->default_value = array(
28
+ 'allowed_user_roles' => array(),
29
+ 'remove_on_uninstall' => '',
30
+ 'email_from_name' => '',
31
+ 'email_from_email' => '',
32
+ 'override_emails_from' => false,
33
+ 'enable_logs' => false,
34
+ 'enable_dashboard_widget' => false,
35
+ 'db_size_notification' => array(
36
+ 'notify' => false,
37
+ 'admin_email' => '',
38
+ 'logs_threshold' => '',
39
+ 'log_threshold_met' => false,
40
+ 'threshold_email_last_sent' => false,
41
+ )
42
+ );
43
 
44
  $this->load();
45
+
46
  }
47
 
48
  public function load() {
377
  <?php
378
  }
379
 
380
+ public function render_override_emails_from_settings( $args ){
381
+
382
+ $option = $this->get_value();
383
+ $field_value = $option[ $args['id'] ];
384
+ $field_name = $this->section->option_name . '[' . $args['id'] . ']';
385
+ ?>
386
+ <input id="check-email-overdide-from" type="checkbox" name="<?php echo esc_attr( $field_name ); ?>" value="true" <?php checked( 'true', $field_value ); ?>>
387
+ <?php esc_html_e( 'Check this box if you would like override wordpress default from email and name.', 'check-email' ) ?>
388
+ <?php
389
+
390
+ }
391
+
392
+ public function render_email_from_name_settings( $args ){
393
+
394
+ $option = $this->get_value();
395
+ $field_value = $option[ $args['id'] ];
396
+ $field_name = $this->section->option_name . '[' . $args['id'] . ']';
397
+
398
+ echo sprintf(
399
+ '<input id="check-email-from_name" type="text" name="%s" value="%s" size="35" />',
400
+ esc_attr( $field_name ),
401
+ esc_attr( $field_value )
402
+ );
403
+
404
+ }
405
+
406
+
407
+ public function render_email_from_email_settings( $args ){
408
+
409
+ $option = $this->get_value();
410
+ $field_value = $option[ $args['id'] ];
411
+ $field_name = $this->section->option_name . '[' . $args['id'] . ']';
412
+
413
+ echo sprintf(
414
+ '<input id="check-email-from_email" type="email" name="%s" value="%s" size="35" />',
415
+ esc_attr( $field_name ),
416
+ esc_attr( $field_value )
417
+ );
418
+ }
419
  }
include/Core/UI/Setting/Check_Email_Setting.php CHANGED
@@ -73,7 +73,7 @@ abstract class Check_Email_Setting {
73
  $field = new Check_Email_Log_Setting_Field();
74
  $field->id = $field_id;
75
  $field->title = $label;
76
- $field->args = array( 'id' => $field_id );
77
  $field->callback = array( $this, 'render_' . $field_id . '_settings' );
78
 
79
  $fields[] = $field;
73
  $field = new Check_Email_Log_Setting_Field();
74
  $field->id = $field_id;
75
  $field->title = $label;
76
+ $field->args = array( 'id' => $field_id, 'class' => 'check_email_'.$field_id );
77
  $field->callback = array( $this, 'render_' . $field_id . '_settings' );
78
 
79
  $fields[] = $field;
languages/check-email.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Check & Log Email 1.0.2\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/check-email\n"
7
- "POT-Creation-Date: 2021-05-28 09:18:41+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -313,49 +313,49 @@ msgstr ""
313
  msgid "Administrator always has access and cannot be disabled."
314
  msgstr ""
315
 
316
- #: include/Core/UI/Setting/Check_Email_Core_Setting.php:100
317
  msgid "Check this box if you would like to log your emails."
318
  msgstr ""
319
 
320
- #: include/Core/UI/Setting/Check_Email_Core_Setting.php:116
321
  msgid ""
322
  "Check this box if you would like to completely remove all of its data when "
323
  "the plugin is deleted."
324
  msgstr ""
325
 
326
- #: include/Core/UI/Setting/Check_Email_Core_Setting.php:157
327
  msgid "Check this box if you would like to enable dashboard widget."
328
  msgstr ""
329
 
330
- #: include/Core/UI/Setting/Check_Email_Core_Setting.php:188
331
  msgid "Notify %1$s if there are more than %2$s logs."
332
  msgstr ""
333
 
334
- #: include/Core/UI/Setting/Check_Email_Core_Setting.php:196
335
  msgid "%1$s There are %2$s email logs currently logged in the database."
336
  msgstr ""
337
 
338
- #: include/Core/UI/Setting/Check_Email_Core_Setting.php:197
339
  msgid "Note"
340
  msgstr ""
341
 
342
- #: include/Core/UI/Setting/Check_Email_Core_Setting.php:205
343
  msgid ""
344
  "Last notification email was sent on %1$s. Click %2$s button to reset "
345
  "sending the notification."
346
  msgstr ""
347
 
348
- #: include/Core/UI/Setting/Check_Email_Core_Setting.php:318
349
  msgid "Check & Log Email: Your log threshold of %s has been met"
350
  msgstr ""
351
 
352
- #: include/Core/UI/Setting/Check_Email_Core_Setting.php:344
353
  msgid ""
354
  "Currently there are %1$s logged, which is more than the threshold. You can "
355
  "delete some logs or increase the threshold."
356
  msgstr ""
357
 
358
- #: include/Core/UI/Setting/Check_Email_Core_Setting.php:345
359
  msgid " email log"
360
  msgid_plural " email logs"
361
  msgstr[0] ""
@@ -377,27 +377,27 @@ msgid "View Content"
377
  msgstr ""
378
 
379
  #: include/Core/UI/list_table/Check_Email_Log_List_Table.php:92
380
- #: include/Core/UI/list_table/Check_Email_Log_List_Table.php:160
381
  #: include/class-check-email-log-list-table.php:77
382
  #: include/class-check-email-log-list-table.php:107
383
  msgid "Delete"
384
  msgstr ""
385
 
386
- #: include/Core/UI/list_table/Check_Email_Log_List_Table.php:161
387
  #: include/class-check-email-log-list-table.php:108
388
  msgid "Delete All Logs"
389
  msgstr ""
390
 
391
- #: include/Core/UI/list_table/Check_Email_Log_List_Table.php:188
392
  #: include/class-check-email-log-list-table.php:206
393
  msgid "Your email log is empty"
394
  msgstr ""
395
 
396
- #: include/Core/UI/list_table/Check_Email_Log_List_Table.php:207
397
  msgid "Search by date"
398
  msgstr ""
399
 
400
- #: include/Core/UI/list_table/Check_Email_Log_List_Table.php:208
401
  msgid "Search by term"
402
  msgstr ""
403
 
4
  msgstr ""
5
  "Project-Id-Version: Check & Log Email 1.0.2\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/check-email\n"
7
+ "POT-Creation-Date: 2021-07-07 09:28:35+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
313
  msgid "Administrator always has access and cannot be disabled."
314
  msgstr ""
315
 
316
+ #: include/Core/UI/Setting/Check_Email_Core_Setting.php:99
317
  msgid "Check this box if you would like to log your emails."
318
  msgstr ""
319
 
320
+ #: include/Core/UI/Setting/Check_Email_Core_Setting.php:115
321
  msgid ""
322
  "Check this box if you would like to completely remove all of its data when "
323
  "the plugin is deleted."
324
  msgstr ""
325
 
326
+ #: include/Core/UI/Setting/Check_Email_Core_Setting.php:156
327
  msgid "Check this box if you would like to enable dashboard widget."
328
  msgstr ""
329
 
330
+ #: include/Core/UI/Setting/Check_Email_Core_Setting.php:199
331
  msgid "Notify %1$s if there are more than %2$s logs."
332
  msgstr ""
333
 
334
+ #: include/Core/UI/Setting/Check_Email_Core_Setting.php:208
335
  msgid "%1$s There are %2$s email logs currently logged in the database."
336
  msgstr ""
337
 
338
+ #: include/Core/UI/Setting/Check_Email_Core_Setting.php:209
339
  msgid "Note"
340
  msgstr ""
341
 
342
+ #: include/Core/UI/Setting/Check_Email_Core_Setting.php:219
343
  msgid ""
344
  "Last notification email was sent on %1$s. Click %2$s button to reset "
345
  "sending the notification."
346
  msgstr ""
347
 
348
+ #: include/Core/UI/Setting/Check_Email_Core_Setting.php:333
349
  msgid "Check & Log Email: Your log threshold of %s has been met"
350
  msgstr ""
351
 
352
+ #: include/Core/UI/Setting/Check_Email_Core_Setting.php:360
353
  msgid ""
354
  "Currently there are %1$s logged, which is more than the threshold. You can "
355
  "delete some logs or increase the threshold."
356
  msgstr ""
357
 
358
+ #: include/Core/UI/Setting/Check_Email_Core_Setting.php:361
359
  msgid " email log"
360
  msgid_plural " email logs"
361
  msgstr[0] ""
377
  msgstr ""
378
 
379
  #: include/Core/UI/list_table/Check_Email_Log_List_Table.php:92
380
+ #: include/Core/UI/list_table/Check_Email_Log_List_Table.php:169
381
  #: include/class-check-email-log-list-table.php:77
382
  #: include/class-check-email-log-list-table.php:107
383
  msgid "Delete"
384
  msgstr ""
385
 
386
+ #: include/Core/UI/list_table/Check_Email_Log_List_Table.php:170
387
  #: include/class-check-email-log-list-table.php:108
388
  msgid "Delete All Logs"
389
  msgstr ""
390
 
391
+ #: include/Core/UI/list_table/Check_Email_Log_List_Table.php:197
392
  #: include/class-check-email-log-list-table.php:206
393
  msgid "Your email log is empty"
394
  msgstr ""
395
 
396
+ #: include/Core/UI/list_table/Check_Email_Log_List_Table.php:216
397
  msgid "Search by date"
398
  msgstr ""
399
 
400
+ #: include/Core/UI/list_table/Check_Email_Log_List_Table.php:217
401
  msgid "Search by term"
402
  msgstr ""
403
 
package.json ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "check-email",
3
+ "main": "Gruntfile.js",
4
+ "version": "2.1.0",
5
+ "author": "Macho Themes",
6
+ "license": "GPL v3",
7
+ "repository": "https://github.com/MachoThemes/check-email",
8
+ "devDependencies": {
9
+ "grunt": "^1.4.1",
10
+ "grunt-checktextdomain": "^1.0.1",
11
+ "grunt-cli": "^1.4.3",
12
+ "grunt-contrib-clean": "^2.0.0",
13
+ "grunt-contrib-compress": "^2.0.0",
14
+ "grunt-contrib-concat": "^1.0.1",
15
+ "grunt-contrib-copy": "^1.0.0",
16
+ "grunt-wp-i18n": "^1.0.3",
17
+ "load-grunt-tasks": "^5.1.0"
18
+ },
19
+ "dependencies": {
20
+ "npm": "^7.19.1"
21
+ }
22
+ }
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: wpchill, silkalns, giucu91
3
  Tags: check, test, email, smtp, pop, send, delivery
4
  Requires at least: 5.0
5
  Tested up to: 5.9
6
- Stable tag: 1.0.4
7
 
8
  Check & Log email allows you to test if your WordPress installation is sending emails correctly by sending a test email to an address of your choice. Allows overriding of email headers and carbon copying to another address.
9
 
3
  Tags: check, test, email, smtp, pop, send, delivery
4
  Requires at least: 5.0
5
  Tested up to: 5.9
6
+ Stable tag: 1.0.5
7
 
8
  Check & Log email allows you to test if your WordPress installation is sending emails correctly by sending a test email to an address of your choice. Allows overriding of email headers and carbon copying to another address.
9