dazza37 Posted December 12, 2007 Share Posted December 12, 2007 I have a newsletter module built into the ecommerce software I'm using and need a bit of a mod. Currently, when a customer puts in their email address it emails them requesting confirmation and then a subsequent email with confirmation. I would like to bypass the request and just send them one email with a confirm/thank-you. I've seemed to come down with the Mr. Bush syndrome all morning... endless cut n' past - trial n' error kinda thing! But I'm willing to step down!! Any help would be appreciated! Thanks, Daz <?php /* vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4: */ func_define("SUBSCRIBER_EXISTS", 1); func_define("SUBSCRIBE_SUCCESS", 0); func_define("SUBSCRIBE_FAILED", -1); /** * New list subscriber description. * * @package Module_Newsletters * @access public * @version $Id: NewsSubscriber.php,v 1.8 2007/03/20 15:00:16 sheriff Exp $ */ class NewsSubscriber extends Base { var $fields = array( "list_id" => 0, "email" => "", "since_date" => 0, ); var $primaryKey = array("list_id", "email"); var $alias = "news_subscribers"; var $defaultOrder = "since_date,email"; function subscribe($email, $list_id, $verbose = true) { require_once "modules/Newsletters/encoded.php"; if ($this->find("list_id=$list_id AND email='".addslashes(strtolower($email))."'")) { return SUBSCRIBER_EXISTS; } $this->set("email", strtolower($email)); $this->set("list_id", $list_id); $this->set("since_date", time()); $this->create(); if ($verbose) { $params = array ( "email" => $this->get("email"), "list" => $this->getList(true), "code" => func_newsletters_gen_code($this->get("email")) ); if (!is_null($this->get("profile"))) { $params["profile"] = $this->get("profile"); } $this->sendMail( $this->get("email"), "modules/Newsletters/subscribed", $params ); } return SUBSCRIBE_SUCCESS; } function unsubscribe($email = null, $list_id = null, $verbose = true) { if (!is_null($email) && !is_null($list_id)) { if (!$this->find("list_id=$list_id AND email='".addslashes(strtolower($email))."'")) { return; } } $this->delete(); if ($verbose) { $this->set("list_id", $list_id); $params = array ( "email" => $this->get("email"), "list" => $this->getList(true) ); if (!is_null($this->get("profile"))) { $params["profile"] = $this->get("profile"); } $this->sendMail( $this->get("email"), "modules/Newsletters/unsubscribed", $params ); } } function request($email, $list_id = null) { $this->sendMail( $email, "modules/Newsletters/confirm_subscription", array("email" => $email, "code" => func_newsletters_gen_code($email)) ); } function sendMail($email, $template, $params = array()) { $mailer =& func_new("Mailer"); if (!empty($params)) { foreach ($params as $param => $value) { $mailer->set($param, $value); } } $mailer->compose($this->get("config.Company.site_administrator"), $email, $template); $mailer->send(); } function import($list_id, $fname) { if (($subscribers = file($fname)) === false) { die("failed to open CSV file $fname"); } foreach ($subscribers as $num => $email) { trim($email); $email = preg_replace("/[\n\r\t]/", "", $email); echo "<b>Importing CSV line #$num...</b><br>"; $num++; if (strlen($email) > 0) { $ns =& func_new("NewsSubscriber"); $res = $ns->subscribe($email, $list_id); if ($res == SUBSCRIBER_EXISTS) { echo "<font color=blue>Subscriber $email already exists!</font><br>"; } } else { echo "<font color=red>Subscriber e-mail is wrong!</font><br>"; } } } function &getList($as_new=false) { if ($as_new) { $this->list = null; } if (is_null($this->list)) { $this->list =& func_new("NewsList", $this->get("list_id")); } return $this->list; } } // WARNING: // Please ensure that you have no whitespaces / empty lines below this message. // Adding a whitespace or an empty line below this line will cause a PHP error. ?> [attachment deleted by admin] Link to comment https://forums.phpfreaks.com/topic/81386-i-havent-a-clue-do-any-of-you/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.