Add honeypot field for spambot
[MAILPOET-1014]
This commit is contained in:
@ -66,6 +66,11 @@ class Subscribers extends APIEndpoint {
|
||||
APIError::BAD_REQUEST => __('Please specify a valid form ID.', 'mailpoet')
|
||||
));
|
||||
}
|
||||
if(!empty($data['email'])) {
|
||||
return $this->badRequest(array(
|
||||
APIError::BAD_REQUEST => __('Please leave the first field empty.', 'mailpoet')
|
||||
));
|
||||
}
|
||||
|
||||
$segment_ids = (!empty($data['segments'])
|
||||
? (array)$data['segments']
|
||||
@ -74,6 +79,8 @@ class Subscribers extends APIEndpoint {
|
||||
$segment_ids = $form->filterSegments($segment_ids);
|
||||
unset($data['segments']);
|
||||
|
||||
$data = $this->deobfuscateFormPayload($data);
|
||||
|
||||
if(empty($segment_ids)) {
|
||||
return $this->badRequest(array(
|
||||
APIError::BAD_REQUEST => __('Please select a list.', 'mailpoet')
|
||||
@ -115,6 +122,18 @@ class Subscribers extends APIEndpoint {
|
||||
}
|
||||
}
|
||||
|
||||
private function deobfuscateFormPayload($data) {
|
||||
$result = array();
|
||||
foreach($data as $key => $value) {
|
||||
if(strpos($key, 'form_field_') === 0) {
|
||||
$result[base64_decode(substr($key, 11))] = $value;
|
||||
} else {
|
||||
$result[$key] = $value;
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
function save($data = array()) {
|
||||
if(empty($data['segments'])) {
|
||||
$data['segments'] = array();
|
||||
|
Reference in New Issue
Block a user