Files
hub-insurance/wp-content/plugins/gravitysmtp/includes/alerts/endpoints/class-save-alerts-settings-endpoint.php
T
2026-07-02 15:54:39 -06:00

58 lines
1.5 KiB
PHP

<?php
namespace Gravity_Forms\Gravity_SMTP\Alerts\Endpoints;
use Gravity_Forms\Gravity_SMTP\Data_Store\Plugin_Opts_Data_Store;
use Gravity_Forms\Gravity_SMTP\Users\Roles;
use Gravity_Forms\Gravity_Tools\Endpoints\Endpoint;
class Save_Alerts_Settings_Endpoint extends Endpoint {
const PARAM_SETTINGS = 'alerts_settings';
const PARAM_ALERT_THRESHOLD_COUNT = 'alert_threshold_count';
const PARAM_ALERT_THRESHOLD_INTERVAL = 'alert_threshold_interval';
const PARAM_NOTIFY_WHEN_EMAIL_FAILS = 'notify_when_email_sending_fails_enabled';
const PARAM_SLACK_ALERTS_ENABLED = 'slack_alerts_enabled';
const PARAM_SLACK_ALERTS = 'slack_alerts';
const PARAM_TWILIO_ALERTS_ENABLED = 'twilio_alerts_enabled';
const PARAM_TWILIO_ALERTS = 'twilio_alerts';
const ACTION_NAME = 'save_alerts_settings';
protected $minimum_cap = Roles::EDIT_ALERTS;
/**
* @var Plugin_Opts_Data_Store
*/
protected $plugin_data_store;
protected $required_params = array(
self::PARAM_SETTINGS,
);
public function __construct( $plugin_data_store ) {
$this->plugin_data_store = $plugin_data_store;
}
protected function get_nonce_name() {
return self::ACTION_NAME;
}
public function handle() {
if ( ! $this->validate() ) {
wp_send_json_error( __( 'Missing required parameters.', 'gravitysmtp' ), 400 );
}
$settings = filter_input( INPUT_POST, self::PARAM_SETTINGS, FILTER_DEFAULT, FILTER_REQUIRE_ARRAY );
$this->plugin_data_store->save( self::PARAM_SETTINGS, $settings );
wp_send_json_success( $settings );
}
}