summaryrefslogtreecommitdiff
path: root/Postman/Postman-Email-Log
diff options
context:
space:
mode:
Diffstat (limited to 'Postman/Postman-Email-Log')
-rw-r--r--Postman/Postman-Email-Log/PostmanEmailLogController.php29
-rw-r--r--Postman/Postman-Email-Log/PostmanEmailLogService.php4
-rw-r--r--Postman/Postman-Email-Log/PostmanEmailLogView.php31
3 files changed, 40 insertions, 24 deletions
diff --git a/Postman/Postman-Email-Log/PostmanEmailLogController.php b/Postman/Postman-Email-Log/PostmanEmailLogController.php
index dd8f650..a6e5179 100644
--- a/Postman/Postman-Email-Log/PostmanEmailLogController.php
+++ b/Postman/Postman-Email-Log/PostmanEmailLogController.php
@@ -76,10 +76,10 @@ class PostmanEmailLogController {
}
function handleCsvExport() {
- if ( ! empty( $_POST ) && ! wp_verify_nonce( $_REQUEST['post-smtp-log'], 'post-smtp' ) )
+ if ( isset( $_REQUEST['post-smtp-log-nonce'] ) && ! wp_verify_nonce( $_REQUEST['post-smtp-log-nonce'], 'post-smtp' ) )
die( 'Security check' );
- if ( isset( $_POST['postman_export_csv'] ) && current_user_can( Postman::MANAGE_POSTMAN_CAPABILITY_LOGS ) ) {
+ if ( isset( $_GET['postman_export_csv'] ) && current_user_can( Postman::MANAGE_POSTMAN_CAPABILITY_LOGS ) ) {
$args = array(
'post_type' => PostmanEmailLogPostType::POSTMAN_CUSTOM_POST_TYPE_SLUG,
'post_status' => PostmanEmailLogService::POSTMAN_CUSTOM_POST_STATUS_PRIVATE,
@@ -411,16 +411,17 @@ class PostmanEmailLogController {
</div>
<?php
- $from_date = isset( $_POST['from_date'] ) ? sanitize_text_field( $_POST['from_date'] ) : '';
- $to_date = isset( $_POST['to_date'] ) ? sanitize_text_field( $_POST['to_date'] ) : '';
- $search = isset( $_POST['search'] ) ? sanitize_text_field( $_POST['search'] ) : '';
+ $from_date = isset( $_GET['from_date'] ) ? sanitize_text_field( $_GET['from_date'] ) : '';
+ $to_date = isset( $_GET['to_date'] ) ? sanitize_text_field( $_GET['to_date'] ) : '';
+ $search = isset( $_GET['search'] ) ? sanitize_text_field( $_GET['search'] ) : '';
$page_records = apply_filters( 'postman_log_per_page', array( 10, 15, 25, 50, 75, 100 ) );
- $postman_page_records = isset( $_POST['postman_page_records'] ) ? absint( $_POST['postman_page_records'] ) : '';
+ $postman_page_records = isset( $_GET['postman_page_records'] ) ? absint( $_GET['postman_page_records'] ) : '';
?>
- <form id="postman-email-log-filter" method="post">
- <input type="hidden" action="post-smtp-filter" value="1">
- <?php wp_nonce_field('post-smtp', 'post-smtp-log'); ?>
+ <form id="postman-email-log-filter" action="<?php echo admin_url( PostmanUtils::POSTMAN_EMAIL_LOG_PAGE_RELATIVE_URL ); ?>" method="get">
+ <input type="hidden" name="page" value="postman_email_log">
+ <input type="hidden" name="post-smtp-filter" value="1">
+ <?php wp_nonce_field('post-smtp', 'post-smtp-log-nonce'); ?>
<div id="email-log-filter" class="postman-log-row">
<div class="form-control">
@@ -447,13 +448,13 @@ class PostmanEmailLogController {
</select>
</div>
- <div class="form-control">
- <button type="submit" id="postman_export_csv" name="postman_export_csv" class="button button-primary"><?php _e( 'Export To CSV', 'post-smtp' ); ?></button>
+ <div class="form-control" style="padding: 0 5px 0 5px;">
+ <button type="submit" name="filter" class="button button-primary"><?php _e( 'Filter/Search', 'post-smtp' ); ?></button>
</div>
- <div class="form-control" style="padding: 0 5px 0 5px; margin-right: 50px;">
- <button type="submit" name="filter" class="button button-primary"><?php _e( 'Filter/Search', 'post-smtp' ); ?></button>
- </div>
+ <div class="form-control" style="padding: 0 5px 0 0px;">
+ <button type="submit" id="postman_export_csv" name="postman_export_csv" class="button button-primary"><?php _e( 'Export To CSV', 'post-smtp' ); ?></button>
+ </div>
<div class="form-control">
<button type="submit" id="postman_trash_all" name="postman_trash_all" class="button button-primary"><?php _e( 'Trash All', 'post-smtp' ); ?></button>
diff --git a/Postman/Postman-Email-Log/PostmanEmailLogService.php b/Postman/Postman-Email-Log/PostmanEmailLogService.php
index 457baf9..17269e1 100644
--- a/Postman/Postman-Email-Log/PostmanEmailLogService.php
+++ b/Postman/Postman-Email-Log/PostmanEmailLogService.php
@@ -5,6 +5,7 @@ if ( ! defined( 'ABSPATH' ) ) {
require_once dirname(__DIR__ ) . '/PostmanLogFields.php';
require_once POST_SMTP_PATH . '/Postman/Extensions/Core/Notifications/PostmanNotify.php';
+require_once POST_SMTP_PATH . '/Postman/Extensions/Core/StatusSolution.php';
if ( ! class_exists( 'PostmanEmailLog' ) ) {
class PostmanEmailLog {
@@ -175,7 +176,10 @@ if ( ! class_exists( 'PostmanEmailLogService' ) ) {
$this->logger->debug( sprintf( 'Saved message #%s to the database', $post_id ) );
$this->logger->trace( $log );
+ $solution = apply_filters( 'post_smtp_log_solution', null, $new_status, $log, $message );
+
// Write the meta data related to the email
+ PostmanLogFields::get_instance()->update( $post_id, 'solution', $solution );
PostmanLogFields::get_instance()->update( $post_id, 'success', $log->success );
PostmanLogFields::get_instance()->update( $post_id, 'from_header', $log->sender );
if ( ! empty( $log->toRecipients ) ) {
diff --git a/Postman/Postman-Email-Log/PostmanEmailLogView.php b/Postman/Postman-Email-Log/PostmanEmailLogView.php
index 52cdd4d..2b06ba3 100644
--- a/Postman/Postman-Email-Log/PostmanEmailLogView.php
+++ b/Postman/Postman-Email-Log/PostmanEmailLogView.php
@@ -60,6 +60,7 @@ class PostmanEmailLogView extends WP_List_Table {
function column_default( $item, $column_name ) {
switch ( $column_name ) {
case 'sent_to' :
+ case 'solution' :
case 'date' :
case 'status' :
return $item [ $column_name ];
@@ -167,6 +168,7 @@ class PostmanEmailLogView extends WP_List_Table {
'title' => _x( 'Subject', 'What is the subject of this message?', 'post-smtp' ),
'sent_to' => __( 'Sent To', 'post-smtp' ),
'status' => __( 'Status', 'post-smtp' ),
+ 'solution' => __( 'Solution', 'post-smtp' ),
'date' => _x( 'Delivery Time', 'When was this email sent?', 'post-smtp' ),
);
return $columns;
@@ -263,13 +265,13 @@ class PostmanEmailLogView extends WP_List_Table {
* ************************************************************************
*/
function prepare_items() {
- if ( ! empty( $_POST ) && ! wp_verify_nonce( $_REQUEST['post-smtp-log'], 'post-smtp' ) )
+ if ( isset( $_REQUEST['post-smtp-log-nonce'] ) && ! wp_verify_nonce( $_REQUEST['post-smtp-log-nonce'], 'post-smtp' ) )
die( 'Security check' );
/**
* First, lets decide how many records per page to show
*/
- $per_page = isset( $_POST['postman_page_records'] ) ? absint( $_POST['postman_page_records'] ) : 10;
+ $per_page = isset( $_GET['postman_page_records'] ) ? absint( $_GET['postman_page_records'] ) : 10;
/**
* REQUIRED.
@@ -324,36 +326,36 @@ class PostmanEmailLogView extends WP_List_Table {
'suppress_filters' => true,
);
- if ( isset( $_POST['from_date'] ) && ! empty( $_POST['from_date'] ) ) {
- $from_date = sanitize_text_field( $_POST['from_date'] );
+ if ( isset( $_GET['from_date'] ) && ! empty( $_GET['from_date'] ) ) {
+ $from_date = sanitize_text_field( $_GET['from_date'] );
$args['date_query']['after'] = $from_date;
$args['date_query']['column'] = 'post_date';
$args['date_query']['inclusive'] = false;
}
- if ( isset( $_POST['to_date'] ) && ! empty( $_POST['to_date'] ) ) {
- $to_date = sanitize_text_field( $_POST['to_date'] );
+ if ( isset( $_GET['to_date'] ) && ! empty( $_GET['to_date'] ) ) {
+ $to_date = sanitize_text_field( $_GET['to_date'] );
$args['date_query']['before'] = $to_date;
$args['date_query']['column'] = 'post_date';
$args['date_query']['inclusive'] = true;
}
- if ( ! empty( $_POST['search'] ) ) {
+ if ( ! empty( $_GET['search'] ) ) {
if ( isset( $args['date_query'] ) ) {
unset( $args['date_query'] ); }
- $args['s'] = sanitize_text_field( $_POST['search'] );
+ $args['s'] = sanitize_text_field( $_GET['search'] );
}
- if ( isset( $_POST['postman_trash_all'] ) ) {
+ if ( isset( $_GET['postman_trash_all'] ) ) {
$args['posts_per_page'] = -1;
}
$posts = new WP_query( $args );
- if ( isset( $_POST['postman_trash_all'] ) ) {
+ if ( isset( $_GET['postman_trash_all'] ) && current_user_can(Postman::MANAGE_POSTMAN_CAPABILITY_LOGS ) ) {
foreach ( $posts->posts as $post ) {
wp_delete_post( $post->ID, true );
}
@@ -374,10 +376,19 @@ class PostmanEmailLogView extends WP_List_Table {
}
$meta_values = PostmanLogFields::get_instance()->get( $post->ID );
$sent_to = array_map( 'esc_html', explode( ',' , $meta_values ['to_header'] [0] ) );
+ $solution_meta = $meta_values ['solution'] [0];
+
+ if ( empty( $solution_meta ) && empty( $post->post_excerpt ) ) {
+ $solution = 'No need - Mail sent';
+ } else {
+ $solution = $solution_meta;
+ }
+
$flattenedPost = array(
// the post title must be escaped as they are displayed in the HTML output
'sent_to' => implode( ', ', $sent_to ),
'title' => esc_html( $post->post_title ),
+ 'solution' => $solution,
// the post status must be escaped as they are displayed in the HTML output
'status' => ($post->post_excerpt != null ? esc_html( $post->post_excerpt ) : __( 'Sent', 'post-smtp' )),
'date' => date( "$date_format $time_format", strtotime( $post->post_date ) ),