/**
 * 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();
        }
    }
}
Example #2
0
/**
 * 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;
}