public function validate_inputs($post) { $post = apply_filters('wpem_pre_validate_schedule', $post); $errors = new WP_Error(); if (!absint($post['id'])) { $errors->add('schedule_id', __('invalid schedule.', 'wpem')); } $data_sources = EM_Mailer::get_data_sources(); if (!isset($post['source']['id']) || !array_key_exists($post['source']['id'], $data_sources)) { $errors->add('email_source', __('Invalid value for Emaill source given', 'wpem')); } /* if($post['source']['id']=='wp'){ }else{ } */ if (!in_array($post['mail_format'], array('html', 'plaintext'))) { $errors->add('mail_format', __('Unsupported mail format', 'wpem')); } if (empty($post['from_name'])) { $errors->add('from_name', __('From Name should not be empty', 'wpem')); } else { $post['from_name'] = sanitize_text_field($post['from_name']); } if (!is_email($post['from_email'])) { $errors->add('from_email', __('invalid email', 'wpem')); } else { $post['from_email'] = sanitize_email($post['from_email']); } $start_date = $post['start_date']; if (!preg_match('#([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2})#', $start_date, $matches)) { $errors->add('start_date', __('Invalid Start Date', 'wpem')); } if (!in_array($post['frequency'], array('Once', 'Daily', 'Weekly', 'Monthly', 'Yearly'))) { $errors->add('frequency', __('Invalid Frequency', 'wpem')); } $end_date = $post['end_date']; if (!preg_match('#([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2})#', $end_date, $matches)) { $errors->add('end_date', __('Invalid End Date', 'wpem')); } if (!intval($post['template'])) { $errors->add('template', __('Invalid template', 'wpem')); } if (empty($post['title'])) { $errors->add('title', __('Title cannot be empty.', 'wpem')); } else { $post['title'] = sanitize_text_field($post['title']); } if (empty($post['body'])) { $errors->add('body', __('Notification body cannot be empty.', 'wpem')); } else { $post['body'] = wp_unslash($post['body']); } if (!empty($post['attachments'])) { $post['attachments'] = wpem_sanitize_attachments($post['attachments']); } foreach ($post as $key => $value) { if (!in_array($key, apply_filters('wpem_allowed_mail_keys', array('id', 'source', 'mail_format', 'from_name', 'from_email', 'start_date', 'frequency', 'end_date', 'template', 'title', 'body', 'attachments')))) { unset($post[$key]); } } $post['errors'] = $errors; return apply_filters('wpem_validate_schedule', $post); }
public static function validate_mail($mail) { $mail = apply_filters('wpem_pre_validate_mail', $mail); $errors = new WP_Error(); if (!in_array($mail['mail_format'], array('html', 'plaintext'))) { $errors->add('mail_format', __('Unsupported mail format', 'wpem')); } if (empty($mail['from_name'])) { $errors->add('from_name', __('From Name should not be empty', 'wpem')); } else { $mail['from_name'] = sanitize_text_field($mail['from_name']); } if (!is_email($mail['from_email'])) { $errors->add('from_email', __('invalid email', 'wpem')); } if (!intval($mail['template'])) { $errors->add('template', __('Invalid template', 'wpem')); } foreach ((array) $mail['recepients'] as $index => $recepient) { $invalid_recepients = array(); if (!is_email($recepient['email'])) { unset($mail['recepients'][$index]); } if (empty($mail['recepients'])) { $errors->add('from_email', __('No valid recepient emails', 'wpem')); } do_action('wpem-invalid-recepients', $invalid_recepients, $mail); } if (empty($mail['title'])) { $errors->add('title', __('Title cannot be empty.', 'wpem')); } else { $mail['title'] = sanitize_text_field($mail['title']); } if (empty($mail['body'])) { $errors->add('body', __('Body cannot be empty.', 'wpem')); } else { $mail['body'] = wp_unslash($mail['body']); } if (isset($mail['attachments'])) { $mail['attachments'] = wpem_sanitize_attachments($mail['attachments']); } $mail['errors'] = $errors; return apply_filters('wpem_validate_mail', $mail); }