initial
This commit is contained in:
+62
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace Gravity_Forms\Gravity_SMTP\Suppression\Endpoints;
|
||||
|
||||
use Gravity_Forms\Gravity_SMTP\Models\Suppressed_Emails_Model;
|
||||
use Gravity_Forms\Gravity_SMTP\Users\Roles;
|
||||
use Gravity_Forms\Gravity_Tools\Endpoints\Endpoint;
|
||||
|
||||
class Add_Suppressed_Emails_Endpoint extends Endpoint {
|
||||
|
||||
const ACTION_NAME = 'add_suppressed_emails';
|
||||
|
||||
const PARAM_EMAILS = 'emails';
|
||||
const PARAM_NOTE = 'note';
|
||||
|
||||
protected $minimum_cap = Roles::EDIT_EMAIL_SUPPRESSION_SETTINGS;
|
||||
|
||||
/**
|
||||
* @var Suppressed_Emails_Model
|
||||
*/
|
||||
protected $suppressed_emails;
|
||||
|
||||
protected $required_params = array(
|
||||
self::PARAM_EMAILS,
|
||||
);
|
||||
|
||||
public function __construct( $suppressed_emails_model ) {
|
||||
$this->suppressed_emails = $suppressed_emails_model;
|
||||
}
|
||||
|
||||
protected function get_nonce_name() {
|
||||
return self::ACTION_NAME;
|
||||
}
|
||||
|
||||
public function handle() {
|
||||
if ( ! $this->validate() ) {
|
||||
wp_send_json_error( 'Missing required parameters.', 400 );
|
||||
}
|
||||
|
||||
$emails = FILTER_INPUT( INPUT_POST, self::PARAM_EMAILS, FILTER_DEFAULT, FILTER_REQUIRE_ARRAY );
|
||||
$note = FILTER_INPUT( INPUT_POST, self::PARAM_NOTE, FILTER_DEFAULT );
|
||||
|
||||
// Sanitize
|
||||
$note = ! empty( $note ) ? htmlspecialchars( $note ) : '';
|
||||
$valid_emails = array();
|
||||
|
||||
foreach( $emails as $email ) {
|
||||
if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$valid_emails[] = $email;
|
||||
}
|
||||
|
||||
foreach( $valid_emails as $email ) {
|
||||
$this->suppressed_emails->suppress_email( $email, 'manually_added', $note );
|
||||
}
|
||||
|
||||
wp_send_json_success( $emails );
|
||||
}
|
||||
|
||||
}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace Gravity_Forms\Gravity_SMTP\Suppression\Endpoints;
|
||||
|
||||
use Gravity_Forms\Gravity_SMTP\Models\Suppressed_Emails_Model;
|
||||
use Gravity_Forms\Gravity_SMTP\Users\Roles;
|
||||
use Gravity_Forms\Gravity_Tools\Endpoints\Endpoint;
|
||||
|
||||
class Get_Paginated_Items extends Endpoint {
|
||||
|
||||
const ACTION_NAME = 'suppressed_emails_page';
|
||||
|
||||
const PARAM_PER_PAGE = 'per_page';
|
||||
const PARAM_REQUESTED_PAGE = 'requested_page';
|
||||
const PARAM_SEARCH_TERM = 'search_term';
|
||||
|
||||
protected $minimum_cap = Roles::VIEW_EMAIL_SUPPRESSION_SETTINGS;
|
||||
|
||||
/**
|
||||
* @var Suppressed_Emails_Model
|
||||
*/
|
||||
protected $emails;
|
||||
|
||||
public function __construct( $suppressed_emails_model ) {
|
||||
$this->emails = $suppressed_emails_model;
|
||||
}
|
||||
|
||||
protected function get_nonce_name() {
|
||||
return self::ACTION_NAME;
|
||||
}
|
||||
|
||||
public function handle() {
|
||||
if ( ! $this->validate() ) {
|
||||
wp_send_json_error( __( 'Missing required parameters.', 'gravitysmtp' ), 400 );
|
||||
}
|
||||
|
||||
$per_page = filter_input( INPUT_POST, 'per_page', FILTER_SANITIZE_NUMBER_INT );
|
||||
$requested_page = filter_input( INPUT_POST, 'requested_page', FILTER_SANITIZE_NUMBER_INT );
|
||||
$search_term = filter_input( INPUT_POST, 'search_term' );
|
||||
|
||||
if ( ! empty( $search_term ) ) {
|
||||
$search_term = htmlspecialchars( $search_term );
|
||||
}
|
||||
|
||||
$requested_page = intval( $requested_page );
|
||||
$offset = ( $requested_page - 1 ) * $per_page;
|
||||
|
||||
if ( empty( $per_page ) ) {
|
||||
$per_page = 20;
|
||||
}
|
||||
|
||||
$rows = $this->emails->paginate( $requested_page, $per_page, $search_term );
|
||||
$count = $this->emails->count( $search_term );
|
||||
|
||||
$data = array(
|
||||
'rows' => $this->get_suppression_data_formatted_as_rows( $rows ),
|
||||
'total' => $count,
|
||||
'row_count' => count( $rows ),
|
||||
);
|
||||
|
||||
wp_send_json_success( $data );
|
||||
}
|
||||
|
||||
private function get_suppression_data_formatted_as_rows( $data ) {
|
||||
return $this->emails->format_as_data_rows( $data );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace Gravity_Forms\Gravity_SMTP\Suppression\Endpoints;
|
||||
|
||||
use Gravity_Forms\Gravity_SMTP\Models\Suppressed_Emails_Model;
|
||||
use Gravity_Forms\Gravity_SMTP\Users\Roles;
|
||||
use Gravity_Forms\Gravity_Tools\Endpoints\Endpoint;
|
||||
|
||||
class Reactivate_Suppressed_Emails_Endpoint extends Endpoint {
|
||||
|
||||
const ACTION_NAME = 'reactivate_suppressed_emails';
|
||||
|
||||
const PARAM_EMAILS = 'emails';
|
||||
const PARAM_ALL_EMAILS = 'all_emails';
|
||||
|
||||
protected $minimum_cap = Roles::EDIT_EMAIL_SUPPRESSION_SETTINGS;
|
||||
|
||||
/**
|
||||
* @var Suppressed_Emails_Model
|
||||
*/
|
||||
protected $suppressed_emails;
|
||||
|
||||
protected $required_params = array(
|
||||
self::PARAM_EMAILS,
|
||||
self::PARAM_ALL_EMAILS,
|
||||
);
|
||||
|
||||
public function __construct( $suppressed_emails_model ) {
|
||||
$this->suppressed_emails = $suppressed_emails_model;
|
||||
}
|
||||
|
||||
protected function get_nonce_name() {
|
||||
return self::ACTION_NAME;
|
||||
}
|
||||
|
||||
public function handle() {
|
||||
if ( ! $this->validate() ) {
|
||||
wp_send_json_error( 'Missing required parameters.', 400 );
|
||||
}
|
||||
|
||||
$delete_all_emails = filter_input( INPUT_POST, self::PARAM_ALL_EMAILS );
|
||||
$delete_all_emails = htmlspecialchars( $delete_all_emails );
|
||||
|
||||
if ( $delete_all_emails == '1' ) {
|
||||
$this->suppressed_emails->delete_all();
|
||||
wp_send_json_success( array( 'message' => 'All emails reactivated successfully' ), 200 );
|
||||
}
|
||||
|
||||
$emails = filter_input( INPUT_POST, self::PARAM_EMAILS, FILTER_DEFAULT, FILTER_REQUIRE_ARRAY );
|
||||
|
||||
// Split into lines
|
||||
$valid_emails = array();
|
||||
|
||||
foreach( $emails as $email ) {
|
||||
if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$valid_emails[] = $email;
|
||||
}
|
||||
|
||||
foreach( $valid_emails as $email ) {
|
||||
$this->suppressed_emails->reactivate_email( $email );
|
||||
}
|
||||
|
||||
wp_send_json_success( $emails );
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user