/** * Sets up and saves a product update email when added or edited. * * @since 0.9.3 * @param array $data email data * @return void */ function edd_pup_create_email($data) { if (isset($data['edd_pup_nonce']) && wp_verify_nonce($data['edd_pup_nonce'], 'edd_pup_nonce')) { $post = edd_pup_sanitize_save($data); if (0 != $post) { if ($data['edd-action'] == 'add_pup_email') { wp_redirect(esc_url_raw(add_query_arg(array('view' => 'edit_pup_email', 'id' => $post, 'edd_pup_notice' => 2)))); } else { wp_redirect(esc_url_raw(add_query_arg('edd_pup_notice', 1))); } edd_die(); } else { wp_redirect(esc_url_raw(add_query_arg('edd_pup_notice', 3))); edd_die(); } } }
/** * Trigger the sending of a Product Update Test Email * * @param array $data Parameters sent from Settings page * @return void */ function edd_pup_send_test_email() { $form = array(); parse_str($_POST['form'], $form); if (empty($form['edd-pup-test-nonce']) || !wp_verify_nonce($form['edd-pup-test-nonce'], 'edd-pup-send-test-email')) { _e('Nonce failure. Invalid response from server when trying to send test email. Please try again or contact support.', 'edd-pup'); die; } $error = 0; if (empty($form['test-email'])) { _e('Please enter an email address to send the test to.', 'edd-pup'); } else { $emails = explode(',', $form['test-email'], 6); if (count($emails) > 5) { array_pop($emails); } // Sanitize our email addresses to make sure they're valid foreach ($emails as $key => $address) { $clean = sanitize_email($address); if (is_email($clean)) { $to[$key] = $clean; } else { $error++; } } if (!empty($to)) { $email_id = edd_pup_sanitize_save($_POST); // Set transient for custom tags in test email set_transient('edd_pup_preview_email_' . get_current_user_id(), $email_id, 60); // Send a test email $sent = edd_pup_test_email($email_id, $to); // Instruct browser to redirect for continued editing of email parse_str($_POST['url'], $url); if ($url['view'] == 'add_pup_email') { echo absint($email_id); die; } if ($error > 0) { _e('One or more of the emails entered were invalid. Test emails sent to: ' . implode(', ', $sent), 'edd-pup'); } else { _e('Test email sent to: ' . implode(', ', $sent), 'edd-pup'); } } else { if (empty($to) && $error > 0) { _e('Your email address was invalid. Please enter a valid email address to send the test.', 'edd-pup'); } } } die; }