Jump to content

Changing Plugin Code Help!


twilitegxa

Recommended Posts

I have this double opt-in plugin from Wordpress that I would like to make some changes to, but I am having some trouble figuring out what bit of code I need to change and how. What it does now is when you type in your name and e-mail address, it displays a message in the same section where the two textboxes were and moves the screen down to where this text is (kind of link an anchor tag maybe?). I would like to send the user to a new page displaying a message instead of the current setup. I found a way to use a meta tag to refresh and redirect to a new page, however it is still moving the page down to where the other message would appear, even if I remove the message. Can anyone tell me which code to remove or change and how to change it so that the page stops moving down to this spot on the page? It also does this when the user clicks the confirmation e-mail, so I would like some help finding both of these sections of code please. Here is the code:

 

 


<?php
/*
Plugin Name: Wordpress Newsletter subscription Opt-in for SendBlaster
Plugin URI: http://www.sendblaster.com/wordpress-newsletter-double-optin-widget/
Description: Create a simple form to collect subscription requests to newsletter software managed mailing lists. User input is stored in the db and sent by e-mail in a format compatible with common newsletter softwares' data structure and subscription management.
Version: 1.1.6
Author: Max
Author URI: http://www.sendblaster.com/
*/


/*


    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.


    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.


    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/


$wpsb_db_version = "0.1";




function wpsb_show_form($rtn = 0) {	
$wpsb_flds = (get_option('wpsb_form_fields'));
$add_link_lv = get_option("wpsb_link_love");
$out = '<form action="#wpsbw" method="post">' . "\n";
$out .= '<p class="wpsb_form_label">' . get_option('wpsb_form_email');
$out .= '<br /> <input type="text" name="wpsb_email" id="wpsb_email" class="wpsb_form_txt" /></p>' . "\n";
if (is_array($wpsb_flds)) {
	foreach ($wpsb_flds as $wpsb_k => $wpsb_v) {
		if (is_numeric($wpsb_k) && $wpsb_v) {
			$out .= '<p class="wpsb_form_label">' . $wpsb_v;
			$out .= ' <input type="text" name="wpsb_fld['. $wpsb_k .']" id="wpsb_fld_'. $wpsb_k .'"  maxlength="64" class="wpsb_form_txt" /></p>' . "\n";
		}
	}
}
$out .= '<script type="text/javascript">
//<![CDATA[	
	function wpsb_toggle_custom_fields (state) {
		for (i=2; i<16; i++) {
			if (obj = document.getElementById(\'wpsb_fld_\'+i)) {
				obj.disabled = !state;
				obj.readOnly = !state;
			}
		}
	}
//]]>
</script>
';
$out .= '<p class="wpsb_form_label"><input type="radio" name="wpsb_radio_option" id="wpsb_radio_option1" onclick="wpsb_toggle_custom_fields(1)" class="wpsb_form_radio" value="wpsb_radio_in" checked="checked" /> '.$wpsb_flds['wpsb_radio_in'];
$out .= '<br/>';
$out .= '<input type="radio" name="wpsb_radio_option" id="wpsb_radio_option2" onclick="wpsb_toggle_custom_fields(0)" class="wpsb_form_radio" value="wpsb_radio_out" /> '.$wpsb_flds['wpsb_radio_out'].'</p>';

$out .= '<p class="wpsb_form_label"><input type="submit" value="' . get_option('wpsb_form_send');
$out .= '" class="wpsb_form_btn" /></p>' . "\n</form>\n<!-- Made by www.SendBlaster.com Newsletter Software Opt-in -->\n";
if ($add_link_lv) {
	$out .= "<h6>Get this <a href=\"http://wordpress.org/extend/plugins/newsletter-subscription-double-optin/\" title=\"Wordpress newsletter plugin\">Wordpress newsletter widget</a><br /> for <a href=\"http://www.sendblaster.com/newsletter-software-no-recurring-fees/\" title=\"newsletter softwares\">newsletter software</a></h6>";
}
if ($rtn) {
	return $out;
}
else {
	echo $out;
}
}


function wpsb_getip() {
if (isset($_SERVER)) {
	if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
		$ip_addr = $_SERVER["HTTP_X_FORWARDED_FOR"];
	} 
	elseif (isset($_SERVER["HTTP_CLIENT_IP"])) {
		$ip_addr = $_SERVER["HTTP_CLIENT_IP"];
	} 
	else {
		$ip_addr = $_SERVER["REMOTE_ADDR"];
	}
} 
else {
	if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
		$ip_addr = getenv( 'HTTP_X_FORWARDED_FOR' );
	} 
	elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
		$ip_addr = getenv( 'HTTP_CLIENT_IP' );
	} 
	else {
		$ip_addr = getenv( 'REMOTE_ADDR' );
	}
}
return $ip_addr;
}


function wpsb_has_email_headers($text) {
   return preg_match("/(%0A|%0D|\n+|\r+)(content-type:|to:|cc:|bcc:)/i", $text);
}


function wpsb_opt_in() {
global $wpdb;
$table_users = $wpdb->prefix . "wpsb_users";


echo stripslashes(get_option('wpsb_form_header'));


$_POST['wpsb_email'] = trim($_POST['wpsb_email']);
if (empty($_POST['wpsb_email'])) {
	if (!empty($_GET['wpsb_d']) && !empty($_GET['wpsb_s'])) {
		wpsb_dbl_optin_confirm();
	}
	else {
		wpsb_show_form();
	}
} 
else {
	$email = stripslashes($_POST['wpsb_email']);
	$wpsb_custom_flds = "";
	if (!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/", $email)) {
			echo stripslashes(get_option('wpsb_msg_bad'));
			wpsb_show_form();
	}
	else {
		if ($_POST['wpsb_radio_option'] && $_POST['wpsb_radio_option'] == "wpsb_radio_out") {
			$manager_email = stripslashes(get_option('wpsb_email_from'));
			$wpsb_flds = (get_option('wpsb_form_fields'));
			$headers = "MIME-Version: 1.0\n";
			$headers .= "From: $email\n";
			$headers .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n";
			if (mail($manager_email, "Unsubscribe", "", $headers)) {
				echo stripslashes($wpsb_flds['wpsb_unsubscr_success']);
			} 
			else {
				echo stripslashes(get_option('wpsb_msg_fail'));
			}
		}
		else {
			$wpsb_double_optin = get_option('wpsb_double_optin');
			$wpsb_auto_delete = get_option('wpsb_auto_delete');
			if (!empty($_POST['wpsb_fld'])) {
				foreach ($_POST['wpsb_fld'] as $wpsb_k => $wpsb_v) {
					if (ereg("^[ ]*([^\t\r\n\\]{1,64}[^ ])[ ]*$", stripslashes($wpsb_v), $wpsb_r)) {
						$wpsb_custom_flds .= "#".$wpsb_k."#: ".$wpsb_r[1]."\n";
					}
				}
			}
			$email_from = stripslashes(get_option('wpsb_email_from'));
			$subject = stripslashes(get_option('wpsb_email_subject'));
			$message = stripslashes(get_option('wpsb_email_message'));

			$headers = "MIME-Version: 1.0\n";
			$headers .= "From: $email_from\n";
			$headers .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n";

			$wpsb_time = time();
			$wpsb_ip = wpsb_getip();
			if ($wpsb_double_optin == 1) {
				$wpsb_link = Array ("scheme" => "http", "host" => $_SERVER['HTTP_HOST'], "port" => "", "user" => "", "pass" => "", "path" => "", "query" => "", "fragment" => "");
				$wpsb_link += parse_url(get_bloginfo('wpurl'));
				$wpsb_optin_url = $wpsb_link['scheme']."://".$wpsb_link['host'].$_SERVER['SCRIPT_NAME']."?wpsb_d=".$wpsb_time."&wpsb_s=".md5($email.$wpsb_ip)."#wpsbw";
				$message = str_replace('#link#', $wpsb_optin_url, $message);
			}
			$selectqry = "SELECT * FROM " . $table_users . " WHERE `email` = '" . $email ."'";
			if ($wpdb->query($selectqry)) {
				echo stripslashes(get_option('wpsb_msg_dbl'));
			}
			else {
				if (mail($email,$subject,$message,$headers)) {
					if ($wpsb_double_optin || !$wpsb_auto_delete) {
						// Write new user to database
//BATYA WAS HERE

						$insert = "INSERT INTO " . $table_users . " 
							(time, ip, email, msg_sent, custom_data) 
							VALUES (
							'" . $wpsb_time . "',
							'" . $wpsb_ip . "',
							'" . $email . "',
							'" . (int) !$wpsb_double_optin ."',
							'" . $wpsb_custom_flds . "'
							)";
					 	$result = $wpdb->query($insert);
					}
					if (!$wpsb_double_optin) {
						$headers = "MIME-Version: 1.0\n";
						$headers .= "From: $email\n";
						$headers .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n";
						mail($email_from, "Subscribe", $wpsb_custom_flds, $headers);
					}
					//echo stripslashes(get_option('wpsb_msg_sent'));
					echo '<META HTTP-EQUIV="Refresh" Content="0; URL=http://webdesignsbyliz.com/blog/?page_id=2">';

					//ADD THIS TO BATYA	
					$custom_wpsb_field = str_replace('#2#:', '', $wpsb_custom_flds);
					$custom_wpsb_username = str_replace(' ', '', $custom_wpsb_field);

//connect to server and select database
$conn = mysql_connect("localhost", "webdes17_lizkula", "minimoon") or die(mysql_error());
mysql_select_db("webdes17_wrdp1", $conn) or die(mysql_error());
						$insert1 = "INSERT INTO wp_users VALUES ('', '$custom_wpsb_username', '$custom_wpsb_username', '$custom_wpsb_username', '$email', '', NOW(), '', '', '$custom_wpsb_username')";
						$result2 = mysql_query($insert1, $conn) or die(mysql_error());
		//END ADD THIS TO BATYA				
				} 
				else {
					echo stripslashes(get_option('wpsb_msg_fail'));
				}
			}
		}
	}
}
echo stripslashes(get_option('wpsb_form_footer'));
}


function wpsb_dbl_optin_confirm() {
global $wpdb;
$table_users = $wpdb->prefix . "wpsb_users";
$email = stripslashes(get_option('wpsb_email_from'));
$wpsb_auto_delete = get_option('wpsb_auto_delete');
$sql = "SELECT * FROM `". $table_users . "` WHERE `time` = '" . $_GET['wpsb_d'] . "' AND MD5(CONCAT(`email`, `ip`)) = '" . $_GET['wpsb_s'] ."' AND `msg_sent` = '0'";
$res = $wpdb->get_results($sql);
if (sizeof($res)) {
	$record = $res[0];
	$headers = "MIME-Version: 1.0\n";
	$headers .= "From: ". $record->email."\n";
	$headers .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n";
	if (mail($email, "Subscribe", $record->custom_data, $headers)) {
		if ($wpsb_auto_delete) {
			$update = "DELETE FROM `$table_users` WHERE `id` = ". $record->id;
		}
		else {
			$update = "UPDATE `$table_users` SET `msg_sent` = '1' WHERE `id` = ". $record->id;
		}
		$res = $wpdb->query($update);
		echo stripslashes(get_option('wpsb_dbl_sent'));
	}
	else {
		echo stripslashes(get_option('wpsb_msg_fail'));
	}
}
else {
	echo stripslashes(get_option('wpsb_dbl_fail'));
}
}


function wpsb_install() {
global $wpdb;
global $wpsb_db_version;


$table_users = $wpdb->prefix . "wpsb_users";


if($wpdb->get_var("show tables like '$table_users'") != $table_users) {


	// Table did not exist; create new
	$sql = "CREATE TABLE `" . $table_users . "` (
  			`id` mediumint(9) NOT NULL auto_increment,
  			`time` bigint(11) NOT NULL default '0',
  			`ip` varchar(50) NOT NULL default '',
			`email` varchar(50) NOT NULL default '',
  			`msg_sent` enum('0','1') NOT NULL default '0',
  			`custom_data` text NOT NULL,
  			UNIQUE KEY `id` (`id`)
	);";
	$result = $wpdb->query($sql);
	//require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
	//dbDelta($sql);


	// Insert initial data in table
	$insert = "INSERT INTO `$table_users` (`time`, `ip`, `email`, `msg_sent`) " .
		"VALUES ('" . time() . "','" . wpsb_getip() .
		"','" . get_option('admin_email') . "', '1')";
	$result = $wpdb->query($insert);


	add_option("wpsb_db_version", $wpsb_db_version);


	// Initialise options with default values
	$blogname = get_option('blogname');
	add_option('wpsb_widget_title', 'Choose a title for the widget');
	add_option('wpsb_email_from', get_option('admin_email') );
	add_option('wpsb_email_subject', "[$blogname] Mailing list subscription");
	add_option('wpsb_email_message', "This is an automatic response to a subscription request started at $blogname.\nThanks for subscribing.\n\n#link#");
	add_option('wpsb_double_optin', "1");
	add_option('wpsb_link_love', "1");
	add_option('wpsb_auto_delete', "0");

	add_option('wpsb_msg_bad', "<p>Bad e-mail address.</p>");
	add_option('wpsb_msg_dbl', "<p>E-mail address already subscribed.</p>");
	add_option('wpsb_msg_fail', "<p>Failed sending to e-mail address.</p>");
	add_option('wpsb_msg_sent', "<p>Thanks for subscribing.</p>");
	add_option('wpsb_dbl_fail', "<p>E-mail address not found or already confirmed.</p>");
	add_option('wpsb_dbl_sent', "<p>Subscription confirmed. Thank you.</p>");


	add_option('wpsb_form_header', "<a name=\"wpsbw\"></a><div class=\"widget module\">You may want to put some text here");
	add_option('wpsb_form_footer', "<>");
	add_option('wpsb_form_email', "E-mail:");
	//add_option('wpsb_form_fields', "");
	add_option('wpsb_form_fields', array("wpsb_radio_in"=>"Subscribe","wpsb_radio_out"=>"Unsubscribe"));
	add_option('wpsb_form_send', "Submit");
}
}


function wpsb_options() {
global $wpdb;
$table_users = $wpdb->prefix . "wpsb_users";


// Handle options from get method information
if (isset($_GET['user_id'])) {
	$user_id = $_GET['user_id'];


	// Delete user from database
	$delete = "DELETE FROM " . $table_users .
			" WHERE id = '" . $user_id . "'";
	$result = $wpdb->query($delete);


	// Notify admin of delete
	echo '<div id="message" class="updated fade"><p><strong>';
	_e('User deleted.', 'wpsb_domain');
	echo '</strong></p><>';
}

if (isset($_GET['purge'])) {
	$goOn = false;
	switch (intval($_GET['purge'])) {
		case 1:
			// all
			$to_del = "1";
			$goOn = true;
			break;
		case 2:
			// older than 1 week
			$to_del = "`time` < " . strtotime("-1 week");
			$goOn = true;
			break;
		case 3:
			// older than 2 weeks
			$to_del = "`time` < " . strtotime("-2 weeks");
			$goOn = true;
			break;
		case 4:
			// older than 1 month
			$to_del = "`time` < " . strtotime("-1 month");
			$goOn = true;
			break;
	}
	if ($goOn) {
		// Delete user from database
		$delete = "DELETE FROM `" . $table_users .
				"` WHERE " . $to_del . " AND `msg_sent` = '0'";
		$result = $wpdb->query($delete);

		// Notify admin of delete
		echo '<div id="message" class="updated fade"><p><strong>';
		_e($result .' user(s) deleted.', 'wpsb_domain');
		echo '</strong></p><>';
	}
}


// Get current options from database
$email_from = stripslashes(get_option('wpsb_email_from'));
$email_subject = stripslashes(get_option('wpsb_email_subject'));
$email_message = stripslashes(get_option('wpsb_email_message'));
$double_optin = get_option('wpsb_double_optin');
$link_love = get_option('wpsb_link_love');
$auto_delete = get_option('wpsb_auto_delete');
$msg_bad = stripslashes(get_option('wpsb_msg_bad'));
$msg_dbl = stripslashes(get_option('wpsb_msg_dbl'));
$msg_fail = stripslashes(get_option('wpsb_msg_fail'));
$msg_sent = stripslashes(get_option('wpsb_msg_sent'));
$dbl_fail = stripslashes(get_option('wpsb_dbl_fail'));
$dbl_sent = stripslashes(get_option('wpsb_dbl_sent'));


$form_header = stripslashes(get_option('wpsb_form_header'));
$form_footer = stripslashes(get_option('wpsb_form_footer'));
$form_email = stripslashes(get_option('wpsb_form_email'));
$form_fields = (get_option('wpsb_form_fields'));
$form_send = stripslashes(get_option('wpsb_form_send'));


// Update options if user posted new information
if( $_POST['wpsb_hidden'] == 'SAb13c' ) {
	// Read from form
	$email_from = stripslashes($_POST['wpsb_email_from']);
	$email_subject = stripslashes($_POST['wpsb_email_subject']);
	$email_message = stripslashes($_POST['wpsb_email_message']);
	$double_optin = (int) isset($_POST['wpsb_double_optin']);
	$link_love = (int) isset($_POST['wpsb_link_love']);
	$auto_delete = (int) isset($_POST['wpsb_auto_delete']);
	$msg_bad = stripslashes($_POST['wpsb_msg_bad']);
	$msg_dbl = stripslashes($_POST['wpsb_msg_dbl']);
	$msg_fail = stripslashes($_POST['wpsb_msg_fail']);
	$msg_sent = stripslashes($_POST['wpsb_msg_sent']);
	$dbl_fail = stripslashes($_POST['wpsb_dbl_fail']);
	$dbl_sent = stripslashes($_POST['wpsb_dbl_sent']);


	$form_header = stripslashes($_POST['wpsb_form_header']);
	$form_footer = stripslashes($_POST['wpsb_form_footer']);
	$form_email = stripslashes($_POST['wpsb_form_email']);
	$form_fields = is_array($_POST['wpsb_form_fld']) ? $_POST['wpsb_form_fld'] : array();
	$form_send = stripslashes($_POST['wpsb_form_send']);


	// Save to database
	update_option('wpsb_email_from', $email_from );
	update_option('wpsb_email_subject', $email_subject);
	update_option('wpsb_email_message', $email_message);
	update_option('wpsb_double_optin', $double_optin);
	update_option('wpsb_link_love', $link_love);
	update_option('wpsb_auto_delete', $auto_delete);


	update_option('wpsb_msg_bad', $msg_bad);
	update_option('wpsb_msg_dbl', $msg_dbl);
	update_option('wpsb_msg_fail', $msg_fail);
	update_option('wpsb_msg_sent', $msg_sent);
	update_option('wpsb_dbl_fail', $dbl_fail);
	update_option('wpsb_dbl_sent', $dbl_sent);


	update_option('wpsb_form_header', $form_header);
	update_option('wpsb_form_footer', $form_footer);
	update_option('wpsb_form_email', $form_email);
	update_option('wpsb_form_fields', ($form_fields));
	update_option('wpsb_form_send', $form_send);


	// Notify admin of change
	echo '<div id="message" class="updated fade"><p><strong>';
	_e('Options saved.', 'wpsb_domain');
	echo '</strong></p><>';
}
?>
<div class="wrap">
  <h2>Newsletter subscription Double Opt-in Options</h2>
<form method="post" action="">
    <fieldset class="options"> <legend>General settings</legend> 
    <table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">
      <tr valign="top"> 
        <th scope="row">Mailbox for managing subscriptions:</th>
        <td> 
          <p>
	    <input type="hidden" name="wpsb_hidden" value="SAb13c" />
            <input type="text" name="wpsb_email_from" id="wpsb_email_from" value="<?php echo $email_from; ?>" size="40" />
          </p>
          <p><em>Note for <a href="http://www.sendblaster.com" title="Free newsletter software">SendBlaster</a> 
            users</em>: this is the main parameter you have to insert inside <a href="http://www.sendblaster.com/bulk-email-software/wp-content/manage-subscriptions.gif">SendBlaster 
            Manage Subscription</a> section</p>
        </td>
      </tr>
      <tr valign="top"> 
        <th scope="row">Message to subscriber, subject:</th>
        <td> 
          <input type="text" name="wpsb_email_subject" id="wpsb_email_subject" value="<?php echo $email_subject; ?>" size="40" />
        </td>
      </tr>
      <tr valign="top"> 
        <th scope="row">Message to subscriber, content:</th>
        <td> 
          <p> 
            <textarea name="wpsb_email_message" id="wpsb_email_message" rows="4" cols="40"><?php echo $email_message; ?></textarea>
          </p>
          <p> Use the #link# placeholder where you want the URL for confirming 
            subscription to appear (only if double opt-in is checked). </p>
        </td>
      </tr>
      <tr valign="top"> 
        <th scope="row">Double Opt-in:</th>
        <td> 
          <input type="checkbox" name="wpsb_double_optin" id="wpsb_double_optin" value="1"<?php echo $double_optin ? " checked=\"checked\"" : "";?> />
          If checked you will receive subscribing emails only when user clicks 
          on the appropriate link inside confirmation message.</td>
      </tr>
      <tr valign="top"> 
        <th scope="row">Link Love:</th>
        <td> 
          <input type="checkbox" name="wpsb_link_love" id="wpsb_link_love" value="1"<?php echo $link_love ? " checked=\"checked\"" : "";?> />
          If unchecked removes Plugin credits from sidebar.</td>
      </tr>
      <tr valign="top">
        <th scope="row">Delete subscribed users:</th>
        <td>
          <input type="checkbox" name="wpsb_auto_delete" id="wpsb_auto_delete" value="1"<?php echo $auto_delete ? " checked=\"checked\"" : "";?> />
          If checked automatically removes users upon their subscription (use 
          only if you download your subscriptions daily)</td>
      </tr>
      <tr valign="top"> 
        <td colspan="2"> </td>
      </tr>
    </table>
    </fieldset> <fieldset class="options"> <legend>Front side messages</legend> 
    <table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">
      <tr valign="top"> 
        <th scope="row">Bad e-mail address:</th>
        <td> 
          <input type="text" name="wpsb_msg_bad" id="wpsb_msg_bad" value="<?php echo $msg_bad; ?>" size="40" />
        </td>
      </tr>
      <tr valign="top">
        <th scope="row">Duplicate e-mail address:</th>
        <td>
          <input type="text" name="wpsb_msg_dbl" id="wpsb_msg_dbl" value="<?php echo $msg_dbl; ?>" size="40" />
        </td>
      </tr>
      <tr valign="top"> 
        <th scope="row">Failed to send:</th>
        <td> 
          <input type="text" name="wpsb_msg_fail" id="wpsb_msg_fail" value="<?php echo $msg_fail; ?>" size="40" />
        </td>
      </tr>
      <tr valign="top"> 
        <th scope="row">Success:</th>
        <td> 
          <input type="text" name="wpsb_msg_sent" id="wpsb_msg_sent" value="<?php echo $msg_sent; ?>" size="40" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Unsubscribe success:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[wpsb_unsubscr_success]" id="wpsb_unsubscr_success" value="<?php echo $form_fields['wpsb_unsubscr_success']; ?>" size="40" />
        </td>
      </tr>
      <tr valign="top"> 
        <th scope="row">Double opt-in failure:</th>
        <td>
          <input type="text" name="wpsb_dbl_fail" id="wpsb_dbl_fail" value="<?php echo $dbl_fail; ?>" size="40" />
        </td>
      </tr>
      <tr valign="top"> 
        <th scope="row">Double opt-in success:</th>
        <td>
          <input type="text" name="wpsb_dbl_sent" id="wpsb_dbl_sent" value="<?php echo $dbl_sent; ?>" size="40" />
        </td>
      </tr>
    </table>
    </fieldset> <fieldset class="options"> 
    <legend>Front side form appearance and labels</legend>
    <table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">
      <tr valign="top"> 
        <th scope="row">Form header:</th>
        <td> 
          <textarea name="wpsb_form_header" id="wpsb_form_header" rows="4" cols="40"><?php echo $form_header; ?></textarea>
        </td>
      </tr>
      <tr valign="top"> 
        <th scope="row">Form footer:</th>
        <td> 
          <textarea name="wpsb_form_footer" id="wpsb_form_footer" rows="2" cols="40"><?php echo $form_footer; ?></textarea>
        </td>
      </tr>
      <tr valign="top"> 
        <th scope="row">E-mail (mandatory: field #1)</th>
        <td> <p> 
            <input type="text" name="wpsb_form_email" id="wpsb_form_email" value="<?php echo $form_email; ?>" size="40" maxlength="64" /></p><p>First field (E-mail) is mandatory and cannot be removed <br />
            Leave blank to <strong>disable</strong> other custom fields, <br />
            Writing label names will <strong>enable</strong> the custom fields.</p></td>
      </tr>
      <tr valign="top"> 
        <th scope="row">Custom field #2:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[2]" id="wpsb_form_fld2" value="<?php echo $form_fields[2]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #3:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[3]" id="wpsb_form_fld3" value="<?php echo $form_fields[3]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #4:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[4]" id="wpsb_form_fld4" value="<?php echo $form_fields[4]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #5:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[5]" id="wpsb_form_fld5" value="<?php echo $form_fields[5]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #6:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[6]" id="wpsb_form_fld6" value="<?php echo $form_fields[6]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #7:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[7]" id="wpsb_form_fld7" value="<?php echo $form_fields[7]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #8:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[8]" id="wpsb_form_fld8" value="<?php echo $form_fields[8]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #9:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[9]" id="wpsb_form_fld9" value="<?php echo $form_fields[9]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #10:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[10]" id="wpsb_form_fld10" value="<?php echo $form_fields[10]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #11:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[11]" id="wpsb_form_fld11" value="<?php echo $form_fields[11]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #12:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[12]" id="wpsb_form_fld12" value="<?php echo $form_fields[12]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #13:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[13]" id="wpsb_form_fld13" value="<?php echo $form_fields[13]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #14:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[14]" id="wpsb_form_fld14" value="<?php echo $form_fields[14]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Custom field #15:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[15]" id="wpsb_form_fld15" value="<?php echo $form_fields[15]; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Subscribe label:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[wpsb_radio_in]" id="wpsb_form_fld16" value="<?php echo $form_fields['wpsb_radio_in']; ?>" size="40" maxlength="64" />
        </td>
      </tr>
  <tr valign="top"> 
        <th scope="row">Unsubscribe label:</th>
        <td> 
          <input type="text" name="wpsb_form_fld[wpsb_radio_out]" id="wpsb_form_fld17" value="<?php echo $form_fields['wpsb_radio_out']; ?>" size="40" maxlength="64" />
        </td>
      </tr>
      <tr valign="top"> 
        <th scope="row">Submit button:</th>
        <td> 
          <input type="text" name="wpsb_form_send" id="wpsb_form_send" value="<?php echo $form_send; ?>" size="40" maxlength="64" />
        </td>
      </tr>
      <tr valign="top"> 
        <td colspan="2" scope="row"> </td>
      </tr>
    </table>
</fieldset>
<p class="submit">
<input type="submit" name="Submit" value="Update Options »" />
</p>
</form>
<>
<div class="wrap">
<h2>Temp Opted-in users backup</h2>
  <p>Delete users from this panel once you have downloaded subscriptions with 
    your mailing list software. <br />
</p>
<?php
if ($users = $wpdb->get_results("SELECT * FROM $table_users WHERE `msg_sent` = '1' ORDER BY `id` DESC")) {
?>
<h3>Bcc friendly format:</h3>
<p>
<?php
	$additional_user=0;
	foreach ($users as $user) {
		if ($user->msg_sent == "1") {
			if ($additional_user) {
				echo ', ';
			}
			$additional_user=1;
			echo $user->email;
		}
	}	
?>
</p>
<?php
}
if ($users = $wpdb->get_results("SELECT * FROM $table_users ORDER BY `id` DESC")) {
	$user_no=0;
	//$url = get_bloginfo('wpurl') . '/wp-admin/options-general.php?page=' . basename(dirname(__FILE__)). '/' . basename(__FILE__);
	$url = get_bloginfo('wpurl') . '/wp-admin/options-general.php?page=' . $_GET['page'];
?>
<table class="widefat">
<thead>    
<tr align="right"> 
      <td colspan="6">
    <script type="text/javascript"> 
		//<![CDATA[
		function confirm_purge (frm) {
			if(frm.purge.selectedIndex != 0 && confirm('Are you sure you want to proceed?')) {
				top.location.href='<?php echo $url; ?>&purge=' + frm.purge.options[frm.purge.selectedIndex].value;
			}
		}
		//]]>
	</script>
        <form method="get" action="">
	  <fieldset class="options">Purge non opted-in users: 
          <select name="purge" id="purge">
            <option value="0">Select...</option>
            <option value="1">All</option>
            <option value="2">Older than 1 week</option>
            <option value="3">Older than 2 weeks</option>
            <option value="4">Older than 1 month</option>
          </select>
          <input type="button" name="prg_btn" id="prg_btn" value="Go" onclick="confirm_purge(this.form)" />
	  </fieldset>
	</form>
  </td>
</tr>
<tr>
<th scope="col">ID</th>
<th scope="col">Date/Time</th>
<th scope="col">Opted-in</th>
<th scope="col">IP</th>
<th scope="col">E-mail</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
<?php
	$url = $url . '&user_id=';
	foreach ($users as $user) {
		if ($user_no&1) {
			echo "<tr class=\"alternate\">";
		} else {
			echo "<tr>";
		}
		$user_no=$user_no+1;
		echo "<td>$user->id</td>";
		echo "<td>" . date(get_option('date_format'), $user->time). " " . date(get_option('time_format'), $user->time) . "</td>";
		echo "<td>";
		echo $user->msg_sent ? "Yes" : "No";
		echo "</td>";
		echo "<td>$user->ip</td>";
		echo "<td>$user->email</td>";
		echo "<td><a href=\"$url$user->id\" onclick=\"if(confirm('Are you sure you want to delete user with ID $user->id?')) return; else return false;\">Delete</a></td>";
		echo "</tr>";
	}
?>
</tbody>
</table>
<p><em>ToolTip</em>: to insert the module in a page: 1) install the <a href="http://wordpress.org/extend/plugins/exec-php/">exec php</a> plugin; 2) insert this code in your pages: <?php wpsb_opt_in(); ?></p><>
<?php
}
}


function wpsb_widget_init() {
global $wp_version;


if (!function_exists('register_sidebar_widget')) {
	return;
}


function wpsb_widget($args) {
	extract($args);
	echo $before_widget . $before_title;
	echo get_option('wpsb_widget_title');
	echo $after_title;
	wpsb_opt_in();
	echo $after_widget;
}


function wpsb_widget_control() {
	$title = get_option('wpsb_widget_title');
	if ($_POST['wpsb_submit']) {
		$title = stripslashes($_POST['wpsb_widget_title']);
		update_option('wpsb_widget_title', $title );
	}
	echo '<p>Title:<input  style="width: 200px;" type="text" value="';
	echo $title . '" name="wpsb_widget_title" id="wpsb_widget_title" /></p>';
	echo '<input type="hidden" id="wpsb_submit" name="wpsb_submit" value="1" />';
}


$width = 300;
$height = 100;
if ( '2.2' == $wp_version || (!function_exists( 'wp_register_sidebar_widget' ))) {
	register_sidebar_widget('WP SendBlaster Opt-in', 'wpsb_widget');
	register_widget_control('WP SendBlaster Opt-in', 'wpsb_widget_control', $width, $height);
} else {
	// v2.2.1+
	$size = array('width' => $width, 'height' => $height);
	$class = array( 'classname' => 'wpsb_opt_in' ); // css classname
	wp_register_sidebar_widget('wpsb', 'WP SendBlaster Opt-in', 'wpsb_widget', $class);
	wp_register_widget_control('wpsb', 'WP SendBlaster Opt-in', 'wpsb_widget_control', $size);
}
if (function_exists('register_sidebar_module')) {
	$class = array( 'classname' => 'wpsb_opt_in' ); // css classname
	register_sidebar_module('WP SendBlaster Opt-in', 'wpsb_widget', '', $class);
	register_sidebar_module_control('WP SendBlaster Opt-in', 'wpsb_widget_control');


}
}


function wpsb_add_to_menu() {
add_options_page('WP SendBlaster Opt-in Options', 'WP SendBlaster Opt-in', 7, __FILE__, 'wpsb_options' );
}


function wpsb_insert ($cnt) {
 global $wpsb_ob;
 $cnt = str_replace("<!--wpsb-opt-in-->", $wpsb_ob, $cnt);
 return $cnt;
}




register_activation_hook(__FILE__, 'wpsb_install');
add_action('admin_menu', 'wpsb_add_to_menu');
add_action('init', 'wpsb_widget_init');


?>

Link to comment
Share on other sites

I'm sorry, I originally posted the unmodified code. Here is what U have so far:

 

 


<?php ob_start();?>






<?php


/*


Plugin Name: Wordpress Newsletter subscription Opt-in for SendBlaster


Plugin URI: http://www.sendblaster.com/wordpress-newsletter-double-optin-widget/


Description: Create a simple form to collect subscription requests to newsletter software managed mailing lists. User input is stored in the db and sent by e-mail in a format compatible with common newsletter softwares' data structure and subscription management.


Version: 1.1.6


Author: Max


Author URI: http://www.sendblaster.com/


*/






/*






    This program is free software; you can redistribute it and/or modify


    it under the terms of the GNU General Public License as published by


    the Free Software Foundation; either version 2 of the License, or


    (at your option) any later version.






    This program is distributed in the hope that it will be useful,


    but WITHOUT ANY WARRANTY; without even the implied warranty of


    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the


    GNU General Public License for more details.






    You should have received a copy of the GNU General Public License


    along with this program; if not, write to the Free Software


    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA


*/






$wpsb_db_version = "0.1";










function wpsb_show_form($rtn = 0) {	


$wpsb_flds = (get_option('wpsb_form_fields'));


$add_link_lv = get_option("wpsb_link_love");


$out = '<form action="http://www.batyathebabycoach.com/thankyou-signup" method="post" name="news_frm" onSubmit="return newsletter();">' . "\n";








if (is_array($wpsb_flds)) {


	foreach ($wpsb_flds as $wpsb_k => $wpsb_v) {


		if (is_numeric($wpsb_k) && $wpsb_v) {


			$out .= '<p class="wpsb_form_label"    style="padding-left:10px;font-weight:bold; padding-top:10px; padding-right:10px;text-align:left;">' . $wpsb_v;


			$out .= '  <input type="text" name="wpsb_fld['. $wpsb_k .']" id="wpsb_fld_'. $wpsb_k .'"  maxlength="64" class="righttab_se_txtfield " /></p><br/>' ;


		}


	}


}


$out .= '<script type="text/javascript">


//<![CDATA[	


	function wpsb_toggle_custom_fields (state) {


		for (i=2; i<16; i++) {


			if (obj = document.getElementById(\'wpsb_fld_\'+i)) {


				obj.disabled = !state;


				obj.readOnly = !state;


			}


		}


	}


//]]>


</script>


';


/*	$out .= '<p class="wpsb_form_label"  style="color:#178C00;"><input style="visibility:hidden;color:#178C00;"


 type="radio" name="wpsb_radio_option" id="wpsb_radio_option1" onclick="wpsb_toggle_custom_fields(1)" class="wpsb_form_radio" value="wpsb_radio_in" checked="checked" /> '.$wpsb_flds['wpsb_radio_in'];





 $out .= '<input type="radio" name="wpsb_radio_option" id="wpsb_radio_option2" onclick="wpsb_toggle_custom_fields(0)" class="wpsb_form_radio" value="wpsb_radio_out" style="visibility:hidden;color:#178C00;" /> '.$wpsb_flds['wpsb_radio_out'];*/


$out .= '<p class="wpsb_form_label"  style="padding-left:10px; padding-top:5px;font-weight:bold; padding-right:10px;text-align:left;">' . get_option('wpsb_form_email');


$out .= '<input type="text" name="wpsb_email" id="wpsb_email" class="righttab_se_txtfield "  /></p>'.'<br>'.
'<p>.<input type="image" name="submit" value="' . get_option('wpsb_form_send').'" class="wpsb_form_btn" src="'. get_option('home').'/go.jpg" style="vertical-align:top; padding-left:90px;border:0px"


 /></p><br>' . "</form>" ;


/*$out .= '<input type="submit" value="' . get_option('wpsb_form_send');


$out .= '" class="wpsb_form_btn" />' . "</form>";*/


if ($add_link_lv) {


	$out .= "";


}


if ($rtn) {


	return $out;


}


else {


	echo $out;


}


}






function wpsb_getip() {


if (isset($_SERVER)) {


	if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {


		$ip_addr = $_SERVER["HTTP_X_FORWARDED_FOR"];


	} 


	elseif (isset($_SERVER["HTTP_CLIENT_IP"])) {


		$ip_addr = $_SERVER["HTTP_CLIENT_IP"];


	} 


	else {


		$ip_addr = $_SERVER["REMOTE_ADDR"];


	}


} 


else {


	if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {


		$ip_addr = getenv( 'HTTP_X_FORWARDED_FOR' );


	} 


	elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {


		$ip_addr = getenv( 'HTTP_CLIENT_IP' );


	} 


	else {


		$ip_addr = getenv( 'REMOTE_ADDR' );


	}


}


return $ip_addr;


}






function wpsb_has_email_headers($text) {


   return preg_match("/(%0A|%0D|\n+|\r+)(content-type:|to:|cc:|bcc:)/i", $text);


}






function wpsb_opt_in() {


global $wpdb;


$table_users = $wpdb->prefix . "wpsb_users";






echo stripslashes(get_option('wpsb_form_header'));






$_POST['wpsb_email'] = trim($_POST['wpsb_email']);


if (empty($_POST['wpsb_email'])) {


	if (!empty($_GET['wpsb_d']) && !empty($_GET['wpsb_s'])) {


		wpsb_dbl_optin_confirm();


	}


	else {


		wpsb_show_form();


	}


} 


else {


	$email = stripslashes($_POST['wpsb_email']);


	$wpsb_custom_flds = "";


	if (!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/", $email)) {


			echo stripslashes(get_option('wpsb_msg_bad'));


			wpsb_show_form();


	}


	else {


		if ($_POST['wpsb_radio_option'] && $_POST['wpsb_radio_option'] == "wpsb_radio_out") {


			$manager_email = stripslashes(get_option('wpsb_email_from'));


			$wpsb_flds = (get_option('wpsb_form_fields'));


			$headers = "MIME-Version: 1.0\n";


			$headers .= "From: $email\n";


			$headers .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n";


			if (mail($manager_email, "Unsubscribe", "", $headers)) {


				echo stripslashes($wpsb_flds['wpsb_unsubscr_success']);


			} 


			else {


				echo stripslashes(get_option('wpsb_msg_fail'));


			}


		}


		else {


			$wpsb_double_optin = get_option('wpsb_double_optin');


			$wpsb_auto_delete = get_option('wpsb_auto_delete');


			if (!empty($_POST['wpsb_fld'])) {


				foreach ($_POST['wpsb_fld'] as $wpsb_k => $wpsb_v) {


					if (ereg("^[ ]*([^\t\r\n\\]{1,64}[^ ])[ ]*$", stripslashes($wpsb_v), $wpsb_r)) {


						$wpsb_custom_flds .= "#".$wpsb_k."#: ".$wpsb_r[1]."\n";


					}


				}


			}


			$email_from = stripslashes(get_option('wpsb_email_from'));


			$subject = stripslashes(get_option('wpsb_email_subject'));


			$message = stripslashes(get_option('wpsb_email_message'));





			$headers = "MIME-Version: 1.0\n";


			$headers .= "From: $email_from\n";


			$headers .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n";





			$wpsb_time = time();


			$wpsb_ip = wpsb_getip();


			if ($wpsb_double_optin == 1) {


				$wpsb_link = Array ("scheme" => "http", "host" => $_SERVER['HTTP_HOST'], "port" => "", "user" => "", "pass" => "", "path" => "", "query" => "", "fragment" => "");


				$wpsb_link += parse_url(get_bloginfo('wpurl'));


				$wpsb_optin_url = $wpsb_link['scheme']."://".$wpsb_link['host'].$_SERVER['SCRIPT_NAME']."?wpsb_d=".$wpsb_time."&wpsb_s=".md5($email.$wpsb_ip)."#wpsbw";


				$message = str_replace('#link#', $wpsb_optin_url, $message);


			}


			$selectqry = "SELECT * FROM " . $table_users . " WHERE `email` = '" . $email ."'";


			if ($wpdb->query($selectqry)) {


				echo stripslashes(get_option('wpsb_msg_dbl'));


			}


			else {


				if (mail($email,$subject,$message,$headers)) {


					if ($wpsb_double_optin || !$wpsb_auto_delete) {


						// Write new user to database


						$insert = "INSERT INTO " . $table_users . " 


							(time, ip, email, msg_sent, custom_data) 


							VALUES (


							'" . $wpsb_time . "',


							'" . $wpsb_ip . "',


							'" . $email . "',


							'" . (int) !$wpsb_double_optin ."',


							'" . $wpsb_custom_flds . "'


							)";


					 	$result = $wpdb->query($insert);


					}


					if (!$wpsb_double_optin) {


						$headers = "MIME-Version: 1.0\n";


						$headers .= "From: $email\n";


						$headers .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n";


						mail($email_from, "Subscribe", $wpsb_custom_flds, $headers);


					}


					echo stripslashes(get_option('wpsb_msg_sent'));


				} 


				else {


					echo stripslashes(get_option('wpsb_msg_fail'));


				}


			}


		}


	}


}


echo stripslashes(get_option('wpsb_form_footer'));


}






function wpsb_dbl_optin_confirm() {


global $wpdb;


$table_users = $wpdb->prefix . "wpsb_users";


$email = stripslashes(get_option('wpsb_email_from'));


$wpsb_auto_delete = get_option('wpsb_auto_delete');


$sql = "SELECT * FROM `". $table_users . "` WHERE `time` = '" . $_GET['wpsb_d'] . "' AND MD5(CONCAT(`email`, `ip`)) = '" . $_GET['wpsb_s'] ."' AND `msg_sent` = '0'";


$res = $wpdb->get_results($sql);


if (sizeof($res)) {


	$record = $res[0];


	$headers = "MIME-Version: 1.0\n";


	$headers .= "From: ". $record->email."\n";


	$headers .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n";


	if (mail($email, "Subscribe", $record->custom_data, $headers)) {


		if ($wpsb_auto_delete) {


			$update = "DELETE FROM `$table_users` WHERE `id` = ". $record->id;


		}


		else {


			$update = "UPDATE `$table_users` SET `msg_sent` = '1' WHERE `id` = ". $record->id;


		}


		$res = $wpdb->query($update);


		echo stripslashes(get_option('wpsb_dbl_sent'));


	}


	else {


		echo stripslashes(get_option('wpsb_msg_fail'));


	}


}


else {


	echo stripslashes(get_option('wpsb_dbl_fail'));


}


}






function wpsb_install() {


global $wpdb;


global $wpsb_db_version;






$table_users = $wpdb->prefix . "wpsb_users";






if($wpdb->get_var("show tables like '$table_users'") != $table_users) {






	// Table did not exist; create new


	$sql = "CREATE TABLE `" . $table_users . "` (


  			`id` mediumint(9) NOT NULL auto_increment,


  			`time` bigint(11) NOT NULL default '0',


  			`ip` varchar(50) NOT NULL default '',


			`email` varchar(50) NOT NULL default '',


  			`msg_sent` enum('0','1') NOT NULL default '0',


  			`custom_data` text NOT NULL,


  			UNIQUE KEY `id` (`id`)


	);";


	$result = $wpdb->query($sql);


	//require_once(ABSPATH . 'wp-admin/includes/upgrade.php');


	//dbDelta($sql);






	// Insert initial data in table


	$insert = "INSERT INTO `$table_users` (`time`, `ip`, `email`, `msg_sent`) " .


		"VALUES ('" . time() . "','" . wpsb_getip() .


		"','" . get_option('admin_email') . "', '1')";


	$result = $wpdb->query($insert);






	add_option("wpsb_db_version", $wpsb_db_version);






	// Initialise options with default values


	$blogname = get_option('blogname');


	add_option('wpsb_widget_title', 'Choose a title for the widget');


	add_option('wpsb_email_from', get_option('admin_email') );


	add_option('wpsb_email_subject', "[$blogname] Mailing list subscription");


	add_option('wpsb_email_message', "This is an automatic response to a subscription request started at $blogname.\nThanks for subscribing.\n\n#link#");


	add_option('wpsb_double_optin', "1");


	add_option('wpsb_link_love', "1");


	add_option('wpsb_auto_delete', "0");





	add_option('wpsb_msg_bad', "<p>Enter valid Email Address.</p>");


	add_option('wpsb_msg_dbl', "<p>E-mail address already subscribed.</p>");


	add_option('wpsb_msg_fail', "<p>Failed sending to e-mail address.</p>");


	add_option('wpsb_msg_sent', "<p>Thanks for subscribing.</p>");


	add_option('wpsb_dbl_fail', "<p>E-mail address not found or already confirmed.</p>");


	add_option('wpsb_dbl_sent', "<p>Subscription confirmed. Thank you.</p>");






	add_option('wpsb_form_header', "<a name=\"wpsbw\"></a><div class=\"widget module\">You may want to put some text here");


	add_option('wpsb_form_footer', "<>");


	add_option('wpsb_form_email', "E-mail:");


	//add_option('wpsb_form_fields', "");


	add_option('wpsb_form_fields', array("wpsb_radio_in"=>"Subscribe","wpsb_radio_out"=>"Unsubscribe"));


	add_option('wpsb_form_send', "Submit");


}


}






function wpsb_options() {


global $wpdb;


$table_users = $wpdb->prefix . "wpsb_users";






// Handle options from get method information


if (isset($_GET['user_id'])) {


	$user_id = $_GET['user_id'];






	// Delete user from database


	$delete = "DELETE FROM " . $table_users .


			" WHERE id = '" . $user_id . "'";


	$result = $wpdb->query($delete);






	// Notify admin of delete


	echo '<div id="message" class="updated fade"><p><strong>';


	_e('User deleted.', 'wpsb_domain');


	echo '</strong></p><>';


}





if (isset($_GET['purge'])) {


	$goOn = false;


	switch (intval($_GET['purge'])) {


		case 1:


			// all


			$to_del = "1";


			$goOn = true;


			break;


		case 2:


			// older than 1 week


			$to_del = "`time` < " . strtotime("-1 week");


			$goOn = true;


			break;


		case 3:


			// older than 2 weeks


			$to_del = "`time` < " . strtotime("-2 weeks");


			$goOn = true;


			break;


		case 4:


			// older than 1 month


			$to_del = "`time` < " . strtotime("-1 month");


			$goOn = true;


			break;


	}


	if ($goOn) {


		// Delete user from database


		$delete = "DELETE FROM `" . $table_users .


				"` WHERE " . $to_del . " AND `msg_sent` = '0'";


		$result = $wpdb->query($delete);





		// Notify admin of delete


		echo '<div id="message" class="updated fade"><p><strong>';


		_e($result .' user(s) deleted.', 'wpsb_domain');


		echo '</strong></p><>';


	}


}






// Get current options from database


$email_from = stripslashes(get_option('wpsb_email_from'));


$email_subject = stripslashes(get_option('wpsb_email_subject'));


$email_message = stripslashes(get_option('wpsb_email_message'));


$double_optin = get_option('wpsb_double_optin');


$link_love = get_option('wpsb_link_love');


$auto_delete = get_option('wpsb_auto_delete');


$msg_bad = stripslashes(get_option('wpsb_msg_bad'));


$msg_dbl = stripslashes(get_option('wpsb_msg_dbl'));


$msg_fail = stripslashes(get_option('wpsb_msg_fail'));


$msg_sent = stripslashes(get_option('wpsb_msg_sent'));


$dbl_fail = stripslashes(get_option('wpsb_dbl_fail'));


$dbl_sent = stripslashes(get_option('wpsb_dbl_sent'));






$form_header = stripslashes(get_option('wpsb_form_header'));


$form_footer = stripslashes(get_option('wpsb_form_footer'));


$form_email = stripslashes(get_option('wpsb_form_email'));


$form_fields = (get_option('wpsb_form_fields'));


$form_send = stripslashes(get_option('wpsb_form_send'));






// Update options if user posted new information


if( $_POST['wpsb_hidden'] == 'SAb13c' ) {


	// Read from form


	$email_from = stripslashes($_POST['wpsb_email_from']);


	$email_subject = stripslashes($_POST['wpsb_email_subject']);


	$email_message = stripslashes($_POST['wpsb_email_message']);


	$double_optin = (int) isset($_POST['wpsb_double_optin']);


	$link_love = (int) isset($_POST['wpsb_link_love']);


	$auto_delete = (int) isset($_POST['wpsb_auto_delete']);


	$msg_bad = stripslashes($_POST['wpsb_msg_bad']);


	$msg_dbl = stripslashes($_POST['wpsb_msg_dbl']);


	$msg_fail = stripslashes($_POST['wpsb_msg_fail']);


	$msg_sent = stripslashes($_POST['wpsb_msg_sent']);


	$dbl_fail = stripslashes($_POST['wpsb_dbl_fail']);


	$dbl_sent = stripslashes($_POST['wpsb_dbl_sent']);






	$form_header = stripslashes($_POST['wpsb_form_header']);


	$form_footer = stripslashes($_POST['wpsb_form_footer']);


	$form_email = stripslashes($_POST['wpsb_form_email']);


	$form_fields = is_array($_POST['wpsb_form_fld']) ? $_POST['wpsb_form_fld'] : array();


	$form_send = stripslashes($_POST['wpsb_form_send']);






	// Save to database


	update_option('wpsb_email_from', $email_from );


	update_option('wpsb_email_subject', $email_subject);


	update_option('wpsb_email_message', $email_message);


	update_option('wpsb_double_optin', $double_optin);


	update_option('wpsb_link_love', $link_love);


	update_option('wpsb_auto_delete', $auto_delete);






	update_option('wpsb_msg_bad', $msg_bad);


	update_option('wpsb_msg_dbl', $msg_dbl);


	update_option('wpsb_msg_fail', $msg_fail);


	update_option('wpsb_msg_sent', $msg_sent);


	update_option('wpsb_dbl_fail', $dbl_fail);


	update_option('wpsb_dbl_sent', $dbl_sent);






	update_option('wpsb_form_header', $form_header);


	update_option('wpsb_form_footer', $form_footer);


	update_option('wpsb_form_email', $form_email);


	update_option('wpsb_form_fields', ($form_fields));


	update_option('wpsb_form_send', $form_send);






	// Notify admin of change


	echo '<div id="message" class="updated fade"><p><strong>';


	_e('Options saved.', 'wpsb_domain');


	echo '</strong></p><>';


}


?>


<div class="wrap">


  <h2>Newsletter subscription Double Opt-in Options</h2>


<form method="post" action="">


    <fieldset class="options"> <legend>General settings</legend> 


    <table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">


      <tr valign="top"> 


        <th scope="row">Mailbox for managing subscriptions:</th>


        <td> 


          <p>


	    <input type="hidden" name="wpsb_hidden" value="SAb13c" />


            <input type="text" name="wpsb_email_from" id="wpsb_email_from" value="<?php echo $email_from; ?>" size="40" />


          </p>


          <p><em>Note for <a href="http://www.sendblaster.com" title="Free newsletter software">SendBlaster</a> 


            users</em>: this is the main parameter you have to insert inside <a href="http://www.sendblaster.com/bulk-email-software/wp-content/manage-subscriptions.gif">SendBlaster 


            Manage Subscription</a> section</p>


        </td>


      </tr>


      <tr valign="top"> 


        <th scope="row">Message to subscriber, subject:</th>


        <td> 


          <input type="text" name="wpsb_email_subject" id="wpsb_email_subject" value="<?php echo $email_subject; ?>" size="40" />


        </td>


      </tr>


      <tr valign="top"> 


        <th scope="row">Message to subscriber, content:</th>


        <td> 


          <p> 


            <textarea name="wpsb_email_message" id="wpsb_email_message" rows="4" cols="40"><?php echo $email_message; ?></textarea>


          </p>


          <p> Use the #link# placeholder where you want the URL for confirming 


            subscription to appear (only if double opt-in is checked). </p>


        </td>


      </tr>


      <tr valign="top"> 


        <th scope="row">Double Opt-in:</th>


        <td> 


          <input type="checkbox" name="wpsb_double_optin" id="wpsb_double_optin" value="1"<?php echo $double_optin ? " checked=\"checked\"" : "";?> />


          If checked you will receive subscribing emails only when user clicks 


          on the appropriate link inside confirmation message.</td>


      </tr>


      <tr valign="top"> 


        <th scope="row">Link Love:</th>


        <td> 


          <input type="checkbox" name="wpsb_link_love" id="wpsb_link_love" value="1"<?php echo $link_love ? " checked=\"checked\"" : "";?> />


          If unchecked removes Plugin credits from sidebar.</td>


      </tr>


      <tr valign="top">


        <th scope="row">Delete subscribed users:</th>


        <td>


          <input type="checkbox" name="wpsb_auto_delete" id="wpsb_auto_delete" value="1"<?php echo $auto_delete ? " checked=\"checked\"" : "";?> />


          If checked automatically removes users upon their subscription (use 


          only if you download your subscriptions daily)</td>


      </tr>


      <tr valign="top"> 


        <td colspan="2"> </td>


      </tr>


    </table>


    </fieldset> <fieldset class="options"> <legend>Front side messages</legend> 


    <table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">


      <tr valign="top"> 


        <th scope="row">Bad e-mail address:</th>


        <td> 


          <input type="text" name="wpsb_msg_bad" id="wpsb_msg_bad" value="<?php echo $msg_bad; ?>" size="40" />


        </td>


      </tr>


      <tr valign="top">


        <th scope="row">Duplicate e-mail address:</th>


        <td>


          <input type="text" name="wpsb_msg_dbl" id="wpsb_msg_dbl" value="<?php echo $msg_dbl; ?>" size="40" />


        </td>


      </tr>


      <tr valign="top"> 


        <th scope="row">Failed to send:</th>


        <td> 


          <input type="text" name="wpsb_msg_fail" id="wpsb_msg_fail" value="<?php echo $msg_fail; ?>" size="40" />


        </td>


      </tr>


      <tr valign="top"> 


        <th scope="row">Success:</th>


        <td> 


          <input type="text" name="wpsb_msg_sent" id="wpsb_msg_sent" value="<?php echo $msg_sent; ?>" size="40" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Unsubscribe success:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[wpsb_unsubscr_success]" id="wpsb_unsubscr_success" value="<?php echo $form_fields['wpsb_unsubscr_success']; ?>" size="40" />


        </td>


      </tr>


      <tr valign="top"> 


        <th scope="row">Double opt-in failure:</th>


        <td>


          <input type="text" name="wpsb_dbl_fail" id="wpsb_dbl_fail" value="<?php echo $dbl_fail; ?>" size="40" />


        </td>


      </tr>


      <tr valign="top"> 


        <th scope="row">Double opt-in success:</th>


        <td>


          <input type="text" name="wpsb_dbl_sent" id="wpsb_dbl_sent" value="<?php echo $dbl_sent; ?>" size="40" />


        </td>


      </tr>


    </table>


    </fieldset> <fieldset class="options"> 


    <legend>Front side form appearance and labels</legend>


    <table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">


      <tr valign="top"> 


        <th scope="row">Form header:</th>


        <td> 


          <textarea name="wpsb_form_header" id="wpsb_form_header" rows="4" cols="40"><?php echo $form_header; ?></textarea>


        </td>


      </tr>


      <tr valign="top"> 


        <th scope="row">Form footer:</th>


        <td> 


          <textarea name="wpsb_form_footer" id="wpsb_form_footer" rows="2" cols="40"><?php echo $form_footer; ?></textarea>


        </td>


      </tr>


      <tr valign="top"> 


        <th scope="row">E-mail (mandatory: field #1)</th>


        <td> <p> 


            <input type="text" name="wpsb_form_email" id="wpsb_form_email" value="<?php echo $form_email; ?>" size="40" maxlength="64" /></p><p>First field (E-mail) is mandatory and cannot be removed <br />


            Leave blank to <strong>disable</strong> other custom fields, <br />


            Writing label names will <strong>enable</strong> the custom fields.</p></td>


      </tr>


      <tr valign="top"> 


        <th scope="row">Custom field #2:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[2]" id="wpsb_form_fld2" value="<?php echo $form_fields[2]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #3:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[3]" id="wpsb_form_fld3" value="<?php echo $form_fields[3]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #4:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[4]" id="wpsb_form_fld4" value="<?php echo $form_fields[4]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #5:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[5]" id="wpsb_form_fld5" value="<?php echo $form_fields[5]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #6:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[6]" id="wpsb_form_fld6" value="<?php echo $form_fields[6]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #7:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[7]" id="wpsb_form_fld7" value="<?php echo $form_fields[7]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #8:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[8]" id="wpsb_form_fld8" value="<?php echo $form_fields[8]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #9:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[9]" id="wpsb_form_fld9" value="<?php echo $form_fields[9]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #10:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[10]" id="wpsb_form_fld10" value="<?php echo $form_fields[10]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #11:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[11]" id="wpsb_form_fld11" value="<?php echo $form_fields[11]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #12:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[12]" id="wpsb_form_fld12" value="<?php echo $form_fields[12]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #13:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[13]" id="wpsb_form_fld13" value="<?php echo $form_fields[13]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #14:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[14]" id="wpsb_form_fld14" value="<?php echo $form_fields[14]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Custom field #15:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[15]" id="wpsb_form_fld15" value="<?php echo $form_fields[15]; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Subscribe label:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[wpsb_radio_in]" id="wpsb_form_fld16" value="<?php echo $form_fields['wpsb_radio_in']; ?>" size="40" maxlength="64" />


        </td>


      </tr>


  <tr valign="top"> 


        <th scope="row">Unsubscribe label:</th>


        <td> 


          <input type="text" name="wpsb_form_fld[wpsb_radio_out]" id="wpsb_form_fld17" value="<?php echo $form_fields['wpsb_radio_out']; ?>" size="40" maxlength="64" />


        </td>


      </tr>


      <tr valign="top"> 


        <th scope="row">Submit button:</th>


        <td> 


          <input type="text" name="wpsb_form_send" id="wpsb_form_send" value="<?php echo $form_send; ?>" size="40" maxlength="64" />


        </td>


      </tr>


      <tr valign="top"> 


        <td colspan="2" scope="row"> </td>


      </tr>


    </table>


</fieldset>


<p class="submit">


<input type="submit" name="Submit" value="Update Options »" />


</p>


</form>


<>


<div class="wrap">


<h2>Temp Opted-in users backup</h2>


  <p>Delete users from this panel once you have downloaded subscriptions with 


    your mailing list software. <br />


</p>


<?php


if ($users = $wpdb->get_results("SELECT * FROM $table_users WHERE `msg_sent` = '1' ORDER BY `id` DESC")) {


?>


<h3>Bcc friendly format:</h3>


<p>


<?php


	$additional_user=0;


	foreach ($users as $user) {


		if ($user->msg_sent == "1") {


			if ($additional_user) {


				echo ', ';


			}


			$additional_user=1;


			echo $user->email;


		}


	}	


?>


</p>


<?php


}


if ($users = $wpdb->get_results("SELECT * FROM $table_users ORDER BY `id` DESC")) {


	$user_no=0;


	//$url = get_bloginfo('wpurl') . '/wp-admin/options-general.php?page=' . basename(dirname(__FILE__)). '/' . basename(__FILE__);


	$url = get_bloginfo('wpurl') . '/wp-admin/options-general.php?page=' . $_GET['page'];


?>


<table class="widefat">


<thead>    


<tr align="right"> 


      <td colspan="6">


    <script type="text/javascript"> 


		//<![CDATA[


		function confirm_purge (frm) {


			if(frm.purge.selectedIndex != 0 && confirm('Are you sure you want to proceed?')) {


				top.location.href='<?php echo $url; ?>&purge=' + frm.purge.options[frm.purge.selectedIndex].value;


			}


		}


		//]]>


	</script>


        <form method="get" action="">


	  <fieldset class="options">Purge non opted-in users: 


          <select name="purge" id="purge">


            <option value="0">Select...</option>


            <option value="1">All</option>


            <option value="2">Older than 1 week</option>


            <option value="3">Older than 2 weeks</option>


            <option value="4">Older than 1 month</option>


          </select>


          <input type="button" name="prg_btn" id="prg_btn" value="Go" onclick="confirm_purge(this.form)" />


	  </fieldset>


	</form>


  </td>


</tr>


<tr>


<th scope="col">ID</th>


<th scope="col">Date/Time</th>


<th scope="col">Opted-in</th>


<th scope="col">IP</th>


<th scope="col">E-mail</th>


<th scope="col">Action</th>


</tr>


</thead>


<tbody>


<?php


	$url = $url . '&user_id=';


	foreach ($users as $user) {


		if ($user_no&1) {


			echo "<tr class=\"alternate\">";


		} else {


			echo "<tr>";


		}


		$user_no=$user_no+1;


		echo "<td>$user->id</td>";


		echo "<td>" . date(get_option('date_format'), $user->time). " " . date(get_option('time_format'), $user->time) . "</td>";


		echo "<td>";


		echo $user->msg_sent ? "Yes" : "No";


		echo "</td>";


		echo "<td>$user->ip</td>";


		echo "<td>$user->email</td>";


		echo "<td><a href=\"$url$user->id\" onclick=\"if(confirm('Are you sure you want to delete user with ID $user->id?')) return; else return false;\">Delete</a></td>";


		echo "</tr>";


	}


?>


</tbody>


</table>


<p><em>ToolTip</em>: to insert the module in a page: 1) install the <a href="http://wordpress.org/extend/plugins/exec-php/">exec php</a> plugin; 2) insert this code in your pages: <?php wpsb_opt_in(); ?></p><>


<?php


}


}






function wpsb_widget_init() {


global $wp_version;






if (!function_exists('register_sidebar_widget')) {


	return;


}






function wpsb_widget($args) {


	extract($args);


	echo $before_widget . $before_title;


	echo get_option('wpsb_widget_title');


	echo $after_title;


	wpsb_opt_in();


	echo $after_widget;


}






function wpsb_widget_control() {


	$title = get_option('wpsb_widget_title');


	if ($_POST['wpsb_submit']) {


		$title = stripslashes($_POST['wpsb_widget_title']);


		update_option('wpsb_widget_title', $title );


	}


	echo '<p>Title:<input  style="width: 200px;" type="text" value="';


	echo $title . '" name="wpsb_widget_title" id="wpsb_widget_title" /></p>';


	echo '<input type="hidden" id="wpsb_submit" name="wpsb_submit" value="1" />';


}






$width = 300;


$height = 100;


if ( '2.2' == $wp_version || (!function_exists( 'wp_register_sidebar_widget' ))) {


	register_sidebar_widget('WP SendBlaster Opt-in', 'wpsb_widget');


	register_widget_control('WP SendBlaster Opt-in', 'wpsb_widget_control', $width, $height);


} else {


	// v2.2.1+


	$size = array('width' => $width, 'height' => $height);


	$class = array( 'classname' => 'wpsb_opt_in' ); // css classname


	wp_register_sidebar_widget('wpsb', 'WP SendBlaster Opt-in', 'wpsb_widget', $class);


	wp_register_widget_control('wpsb', 'WP SendBlaster Opt-in', 'wpsb_widget_control', $size);


}


if (function_exists('register_sidebar_module')) {


	$class = array( 'classname' => 'wpsb_opt_in' ); // css classname


	register_sidebar_module('WP SendBlaster Opt-in', 'wpsb_widget', '', $class);


	register_sidebar_module_control('WP SendBlaster Opt-in', 'wpsb_widget_control');






}


}






function wpsb_add_to_menu() {


add_options_page('WP SendBlaster Opt-in Options', 'WP SendBlaster Opt-in', 7, __FILE__, 'wpsb_options' );


}






function wpsb_insert ($cnt) {


 global $wpsb_ob;


 $cnt = str_replace("<!--wpsb-opt-in-->", $wpsb_ob, $cnt);


 return $cnt;


}










register_activation_hook(__FILE__, 'wpsb_install');


add_action('admin_menu', 'wpsb_add_to_menu');


add_action('init', 'wpsb_widget_init');






?>

 

 

So far, I have it the message removed from the sidebar and have the page redirecting the the appropriate page after they sign up for the mailing list. The only thing I need to do next is make it redirect properly when they confirm their e-mail address. Currently, it opens up a new page, then after that page loads, it appears to redirect to another page which then displays the conformation success message. How can I alter what page is displayed in this situation? I have the success message the way i want it. Here is a link to the actual page:

 

 

http://www.batyathebabycoach.com

 

 

You can test sign ups if you need to so you can see what the plugin currently does.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.