diff options
Diffstat (limited to 'Postman/Postman-Email-Log')
-rw-r--r-- | Postman/Postman-Email-Log/PostmanEmailLogController.php | 29 | ||||
-rw-r--r-- | Postman/Postman-Email-Log/PostmanEmailLogService.php | 4 | ||||
-rw-r--r-- | Postman/Postman-Email-Log/PostmanEmailLogView.php | 31 |
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 ) ), |