function wpr_replace_tags($sid, &$subject, &$body, $additional = array()) { global $wpdb; $query = "SELECT * FROM " . $wpdb->prefix . "wpr_subscribers WHERE id='{$sid}'"; $subscriber = $wpdb->get_results($query); $subscriber = $subscriber[0]; $nid = $subscriber->nid; $newsletter = new Newsletter($nid); $parameters = array(); //newsletter name $newsletterName = $newsletter->getNewsletterName(); $parameters['newslettername'] = $newsletterName; $query = "SELECT * FROM " . $wpdb->prefix . "wpr_custom_fields where nid='{$nid}'"; $custom_fields = $wpdb->get_results($query); //blog name $parameters['sitename'] = get_bloginfo("name"); //blog url $parameters['homeurl'] = get_bloginfo("home"); //subscriber name $parameters['name'] = $subscriber->name; //the address of the sender (as required by can spam) $parameters['address'] = get_option("wpr_admin_address"); //the email address $parameters['email'] = $subscriber->email; //admin email $parameters['adminemail'] = get_option('admin_email'); $query = "select * from " . $wpdb->prefix . "wpr_subscribers_{$nid} where id={$id};"; $subscriber = $wpdb->get_results($query); $subscriber = $subscriber[0]; //custom fields defined by the administrator foreach ($custom_fields as $custom_field) { $name = $custom_field->name; $parameters[$custom_field->name] = $subscriber->{$name}; } $parameters = array_merge($parameters, $additional); foreach ($parameters as $name => $value) { $subject = str_replace("[!{$name}!]", $value, $subject); $body = str_replace("[!{$name}!]", $value, $body); } }
function _wpr_newsletter_delete() { global $wpdb; $prefix = $wpdb->prefix; $nid = $_GET['nid']; try { $newsletter = new Newsletter($nid); } catch (Exception $excp) { _wpr_set("_wpr_view", "newsletter_delete_not_found"); return; } if (isset($_GET['confirmed']) && $_GET['confirmed'] == 'true') { $newsletter->delete(); $newsletter_home = Routing::newsletterHome(); wp_redirect($newsletter_home); } $getEmailsPendingDeliveryQuery = sprintf("SELECT COUNT(*) number FROM %swpr_queue WHERE sid=(SELECT id FROM %swpr_subscribers WHERE nid=%d) AND sent=0;", $prefix, $prefix, $nid); $emails_pending_count_result = $wpdb->get_results($getEmailsPendingDeliveryQuery); $number_pending = $emails_pending_count_result[0]->number; _wpr_set("newsletter_name", $newsletter->getNewsletterName()); _wpr_set("subscriber_count", $newsletter->getNumberOfActiveSubscribers()); _wpr_set("_wpr_view", "newsletter_delete"); _wpr_set("nid", $nid); _wpr_set("emailsPendingDelivery", $number_pending); }