public static function maybe_send_notification() { // form maybe be serialized if (isset($_REQUEST['serialized_fields'])) { foreach ($_REQUEST['serialized_fields'] as $key => $data) { if (strpos($data['name'], '[]') !== false) { $_REQUEST[str_replace('[]', '', $data['name'])][] = $data['value']; } else { $_REQUEST[$data['name']] = $data['value']; } } } if (!isset($_REQUEST['sa_send_metabox_notification_nonce'])) { self::ajax_fail('Forget something (nonce)?'); } $nonce = $_REQUEST['sa_send_metabox_notification_nonce']; if (!wp_verify_nonce($nonce, SI_Controller::NONCE)) { self::ajax_fail('Not going to fall for it!'); } if (!isset($_REQUEST['sa_send_metabox_doc_id'])) { self::ajax_fail('Forget something (id)?'); } if (get_post_type($_REQUEST['sa_send_metabox_doc_id']) !== SI_Invoice::POST_TYPE) { return; } $recipients = isset($_REQUEST['sa_metabox_recipients']) ? $_REQUEST['sa_metabox_recipients'] : array(); if (isset($_REQUEST['sa_metabox_custom_recipient']) && '' !== trim($_REQUEST['sa_metabox_custom_recipient'])) { if (is_email($_REQUEST['sa_metabox_custom_recipient'])) { $recipients[] = $_REQUEST['sa_metabox_custom_recipient']; } } if (empty($recipients)) { self::ajax_fail('A recipient is required.'); } $invoice = SI_Invoice::get_instance($_REQUEST['sa_send_metabox_doc_id']); $invoice->set_sender_note($_REQUEST['sa_send_metabox_sender_note']); $from_email = null; $from_name = null; if (isset($_REQUEST['sa_send_metabox_send_as'])) { $name_and_email = SI_Notifications_Control::email_split($_REQUEST['sa_send_metabox_send_as']); if (is_email($name_and_email['email'])) { $from_name = $name_and_email['name']; $from_email = $name_and_email['email']; } } do_action('send_invoice', $invoice, $recipients, $from_email, $from_name); // If status is temp than change to pending. if ($invoice->get_status() == SI_Invoice::STATUS_TEMP) { $invoice->set_pending(); } header('Content-type: application/json'); if (self::DEBUG) { header('Access-Control-Allow-Origin: *'); } echo wp_json_encode(array('response' => si__('Notification Queued'))); exit; }
/** * Save the sender's note. * @param int $post_id * @param object $post * @param array $callback_args * @param int $invoice_id * @return */ public static function save_invoice_note($post_id, $post, $callback_args, $invoice_id = null) { $invoice = SI_Invoice::get_instance($post_id); $sender_notes = isset($_POST['sender_notes']) && $_POST['sender_notes'] !== '' ? $_POST['sender_notes'] : ''; if ($sender_notes === '') { // check to make sure the sender note option wasn't updated for the send. $sender_notes = isset($_POST['sa_send_metabox_sender_note']) && $_POST['sa_send_metabox_sender_note'] !== '' ? $_POST['sa_send_metabox_sender_note'] : ''; } $invoice->set_sender_note($sender_notes); $recipients = isset($_REQUEST['sa_metabox_recipients']) ? $_REQUEST['sa_metabox_recipients'] : array(); if (isset($_REQUEST['sa_metabox_custom_recipient']) && '' !== trim($_REQUEST['sa_metabox_custom_recipient'])) { if (is_email($_REQUEST['sa_metabox_custom_recipient'])) { $recipients[] = $_REQUEST['sa_metabox_custom_recipient']; } } if (empty($recipients)) { return; } $from_email = null; $from_name = null; if (isset($_REQUEST['sa_send_metabox_send_as'])) { $name_and_email = SI_Notifications_Control::email_split($_REQUEST['sa_send_metabox_send_as']); if (is_email($name_and_email['email'])) { $from_name = $name_and_email['name']; $from_email = $name_and_email['email']; } } do_action('send_invoice', $invoice, $recipients, $from_email, $from_name); }