/**
* Check the current request is a specific one based on action and
* optional context
*
* @param string $action_key
* @param bool $ajax
* @param null|string|array $context_key
*
* @return bool
*/
function maybe_process_on_action($action_key, $ajax, $context_key = null)
{
if ($ajax !== $this->is_ajax()) {
return false;
}
$var_type = 'GET';
if (isset($_GET['action'])) {
$action = $this->as3cf->filter_input('action');
} else {
if (isset($_POST['action'])) {
$var_type = 'POST';
$action = $this->as3cf->filter_input('action', INPUT_POST);
} else {
return false;
}
}
$context_check = true;
if (!is_null($context_key)) {
$global = constant('INPUT_' . $var_type);
$context = $this->as3cf->filter_input('context', $global);
if (is_array($context_key)) {
$context_check = in_array($context, $context_key);
} else {
$context_check = $context_key === $context;
}
}
return $action_key === sanitize_key($action) && $context_check;
}