WordPress Email Marketing Plugin – WP Email Capture - Version 1.0

Version Description

Download this release

Release Info

Developer rhyswynne
Plugin Icon 128x128 WordPress Email Marketing Plugin – WP Email Capture
Version 1.0
Comparing to
See all releases

Code changes from version 2.0 to 1.0

inc/checks.php ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+
5
+ Validate an email address.
6
+
7
+ Provide email address (raw input)
8
+
9
+ Returns true if the email address has the email
10
+
11
+ address format and the domain exists.
12
+
13
+ */
14
+
15
+ if(!function_exists('checkdnsrr'))
16
+ {
17
+ function checkdnsrr($hostName, $recType = '')
18
+ {
19
+ if(!empty($hostName)) {
20
+ if( $recType == '' ) $recType = "MX";
21
+ exec("nslookup -type=$recType $hostName", $result);
22
+ // check each line to find the one that starts with the host
23
+ // name. If it exists then the function succeeded.
24
+ foreach ($result as $line) {
25
+ if(eregi("^$hostName",$line)) {
26
+ return true;
27
+ }
28
+ }
29
+ // otherwise there was no mail handler for the domain
30
+ return false;
31
+ }
32
+ return false;
33
+ }
34
+ }
35
+
36
+ function addLastCharacter($url)
37
+ {
38
+ $last = $url[strlen($url)-1];
39
+ if ($last != "/")
40
+ {
41
+ $url = $url . "/";
42
+ }
43
+ return $url;
44
+ }
45
+
46
+
47
+ function validEmail($email)
48
+
49
+ {
50
+
51
+ $isValid = true;
52
+
53
+ $atIndex = strrpos($email, "@");
54
+
55
+ if (is_bool($atIndex) && !$atIndex)
56
+
57
+ {
58
+
59
+ $isValid = false;
60
+
61
+ }
62
+
63
+ else
64
+
65
+ {
66
+
67
+ $domain = substr($email, $atIndex+1);
68
+
69
+ $local = substr($email, 0, $atIndex);
70
+
71
+ $localLen = strlen($local);
72
+
73
+ $domainLen = strlen($domain);
74
+
75
+ if ($localLen < 1 || $localLen > 64)
76
+
77
+ {
78
+
79
+ // local part length exceeded
80
+
81
+ $isValid = false;
82
+
83
+ }
84
+
85
+ else if ($domainLen < 1 || $domainLen > 255)
86
+
87
+ {
88
+
89
+ // domain part length exceeded
90
+
91
+ $isValid = false;
92
+
93
+ }
94
+
95
+ else if ($local[0] == '.' || $local[$localLen-1] == '.')
96
+
97
+ {
98
+
99
+ // local part starts or ends with '.'
100
+
101
+ $isValid = false;
102
+
103
+ }
104
+
105
+ else if (preg_match('/\\.\\./', $local))
106
+
107
+ {
108
+
109
+ // local part has two consecutive dots
110
+
111
+ $isValid = false;
112
+
113
+ }
114
+
115
+ else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
116
+
117
+ {
118
+
119
+ // character not valid in domain part
120
+
121
+ $isValid = false;
122
+
123
+ }
124
+
125
+ else if (preg_match('/\\.\\./', $domain))
126
+
127
+ {
128
+
129
+ // domain part has two consecutive dots
130
+
131
+ $isValid = false;
132
+
133
+ }
134
+
135
+ else if
136
+
137
+ (!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',
138
+
139
+ str_replace("\\\\","",$local)))
140
+
141
+ {
142
+
143
+ // character not valid in local part unless
144
+
145
+ // local part is quoted
146
+
147
+ if (!preg_match('/^"(\\\\"|[^"])+"$/',
148
+
149
+ str_replace("\\\\","",$local)))
150
+
151
+ {
152
+
153
+ $isValid = false;
154
+
155
+ }
156
+
157
+ }
158
+
159
+ if ($isValid && !(checkdnsrr($domain,"MX") ||
160
+
161
+ checkdnsrr($domain,"A")))
162
+
163
+ {
164
+
165
+ // domain not found in DNS
166
+
167
+ $isValid = false;
168
+
169
+ }
170
+
171
+ }
172
+
173
+ return $isValid;
174
+
175
+ }
176
+
177
+
178
+
179
+ ?>
inc/core.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/functions.php');
3
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/install.php');
4
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/pagedresults.php');
5
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/tabledata.php');
6
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/options.php');
7
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/exportcsv.php');
8
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/tempdata.php');
9
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/display.php');
10
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/process.php');
11
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/widget.php');
12
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/security.php');
13
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/dashboard.php');
14
+ require_once(WP_EMAIL_CAPTURE_PATH . '/inc/checks.php');
15
+ ?>
inc/dashboard.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ function wp_email_capture_dashboard_widget() {
4
+ // Display whatever it is you want to show
5
+ wp_email_capture_writetable(3, "<strong>Last Three Members To Join</strong><br/><br/>");
6
+ $tempemails = wp_email_capture_count_temp();
7
+ echo '<br/><br/><a name="list"></a><strong>Export</strong>';
8
+ echo '<form name="wp_email_capture_export" action="'. $_SERVER["REQUEST_URI"] . '#list" method="post">';
9
+ echo '<label>Use the button below to export your list as a CSV to use in software such as <a href="http://www.gospelrhys.co.uk/go/aweber.php" title="Email Marketing">Aweber</a>.</label>';
10
+ echo '<input type="hidden" name="wp_email_capture_export" />';
11
+ echo '<div class="submit"><input type="submit" value="Export List" /></div>';
12
+ echo "</form><br/><br/";
13
+ $tempemails = wp_email_capture_count_temp();
14
+ echo "<a name='truncate'></a><strong>Temporary e-mails</strong>\n";
15
+ echo '<form name="wp_email_capture_truncate" action="'. $_SERVER["REQUEST_URI"] . '#truncate" method="post">';
16
+ echo '<label>There are '. $tempemails . ' e-mail addresses that have been unconfirmed. Delete them to save space below.</label>';
17
+ echo '<input type="hidden" name="wp_email_capture_truncate"/>';
18
+ echo '<div class="submit"><input type="submit" value="Delete Unconfirmed e-mail Addresses" /></div>';
19
+ echo "</form>";
20
+
21
+ }
22
+
23
+ function wp_email_capture_add_dashboard_widgets() {
24
+ wp_add_dashboard_widget('wp_email_capture_dashboard_widget', 'WP Email Capture - At A Glance', 'wp_email_capture_dashboard_widget');
25
+ }
26
+
27
+
28
+ ?>
inc/display.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+
5
+ function wp_email_capture_form($error = 0)
6
+
7
+ {
8
+
9
+ $url = get_option('home');
10
+ $url = addLastCharacter($url);
11
+
12
+ ?> <div id="wp_email_capture"><form name="wp_email_capture" method="post" action="<?php echo $url; ?>">
13
+
14
+ <?php if (isset($_GET["wp_email_capture_error"])) {
15
+
16
+ $error = sanitize($_GET["wp_email_capture_error"]);
17
+
18
+ echo "<div style='width:80%;background-color: #FFCCCC; margin: 5px;font-weight'>Error: ". $error ."</div>";
19
+
20
+ } ?>
21
+
22
+ <label class="wp-email-capture-name">Name:</label> <input name="wp-email-capture-name" type="text" class="wp-email-capture-name"><br/>
23
+
24
+ <label class="wp-email-capture-email">Email:</label> <input name="wp-email-capture-email" type="text" class="wp-email-capture-email"><br/>
25
+
26
+ <input type="hidden" name="wp_capture_action" value="1">
27
+
28
+ <input name="Submit" type="submit" value="Submit" class="wp-email-capture-submit">
29
+
30
+ </form></div>
31
+
32
+ <?php if (get_option("wp_email_capture_link") == 1) {
33
+
34
+ echo "<p style='font-size:10px;'>Powered by <a href='http://www.gospelrhys.co.uk/plugins/wordpress-plugins/wordpress-email-capture-plugin' target='_blank'>WP Email Capture</a></p>\n";
35
+
36
+ }
37
+
38
+ }
39
+
40
+
41
+
42
+ function wp_email_capture_form_page($error = 0)
43
+
44
+ {
45
+
46
+ $url = get_option('home');
47
+ $url = addLastCharacter($url);
48
+
49
+ $display .= "<div id='wp_email_capture_2'><form name='wp_email_capture_display' method='post' action='" . $url ."'>\n";
50
+
51
+ if (isset($_GET["wp_email_capture_error"])) {
52
+
53
+ $error = sanitize($_GET["wp_email_capture_error"]);
54
+
55
+ $display .= "<div style='width:80%;background-color: #FFCCCC; margin: 5px;font-weight'>Error: ". $error ."</div>\n";
56
+
57
+ }
58
+
59
+ $display .= "<label class='wp-email-capture-name'>Name:</label> <input name='wp-email-capture-name' type='text' class='wp-email-capture-name'><br/>\n";
60
+
61
+ $display .= "<label class='wp-email-capture-email'>Email:</label> <input name='wp-email-capture-email' type='text' class='wp-email-capture-email'><br/>\n";
62
+
63
+ $display .= "<input type='hidden' name='wp_capture_action' value='1'>\n";
64
+
65
+ $display .= "<input name='Submit' type='submit' value='Submit' class='wp-email-capture-submit'></form></div>\n";
66
+
67
+ if (get_option("wp_email_capture_link") == 1) {
68
+
69
+ $display .= "<p style='font-size:10px;'>Powered by <a href='http://www.gospelrhys.co.uk/plugins/wordpress-plugins/wordpress-email-capture-plugin' target='_blank'>WP Email Capture</a></p>\n";
70
+
71
+ }
72
+
73
+ return $display;
74
+
75
+ }
76
+
77
+
78
+
79
+ function wp_email_capture_display_form_in_post($content)
80
+
81
+ {
82
+
83
+ $get_form = wp_email_capture_form_page();
84
+
85
+ $content = str_replace("[wp_email_capture_form]", $get_form, $content);
86
+
87
+ return $content;
88
+
89
+ }
90
+
91
+
92
+
93
+
94
+
95
+ ?>
inc/exportcsv.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ function wp_email_capture_export()
5
+ {
6
+ global $wpdb;
7
+
8
+ $csv_output .= "Name,Email";
9
+ $csv_output .= "\n";
10
+
11
+
12
+ $table_name = $wpdb->prefix . "wp_email_capture_registered_members";
13
+ $sql = "SELECT name, email FROM " . $table_name;
14
+ $results = $wpdb->get_results($wpdb->prepare($sql));
15
+ foreach ($results as $result) {
16
+ $csv_output .= $result->name ."," . $result->email ."\n";
17
+ }
18
+
19
+ $filename = $file."_".date("Y-m-d_H-i",time());
20
+ header("Content-type: application/vnd.ms-excel");
21
+ header("Content-disposition: csv" . date("Y-m-d") . ".csv");
22
+ header( "Content-disposition: filename=".$filename.".csv");
23
+ print $csv_output;
24
+ exit;
25
+ }
26
+
27
+ ?>
inc/functions.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ function sanitize($string)
3
+ {
4
+ $string = mysql_real_escape_string($string);
5
+ $string = htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
6
+ return $string;
7
+ }
8
+
9
+ function checkIfPresent($email){
10
+ global $wpdb;
11
+ $table_name = $wpdb->prefix . "wp_email_capture_temp_members";
12
+ $sql = 'SELECT COUNT(*)
13
+ FROM '. $table_name;
14
+ $prep = $wpdb->prepare($sql);
15
+ $result = $wpdb->get_var($prep);
16
+ if($count=='1')
17
+ {
18
+ return true;
19
+ }else{
20
+ return false;
21
+ }
22
+ }
23
+
24
+ ?>
inc/install.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ function wp_email_capture_install() {
4
+ global $wpdb;
5
+ global $wp_email_capture_db_version;
6
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
7
+ $table_name = $wpdb->prefix . "wp_email_capture_registered_members";
8
+ if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
9
+
10
+ $sql = "CREATE TABLE " . $table_name . " (
11
+ id INT( 255 ) NOT NULL AUTO_INCREMENT ,
12
+ name TINYTEXT NOT NULL ,
13
+ email TEXT NOT NULL ,
14
+ PRIMARY KEY (id)
15
+ );";
16
+ dbDelta($sql);
17
+ }
18
+ $table_name = $wpdb->prefix . "wp_email_capture_temp_members";
19
+ if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
20
+
21
+ $sql = "CREATE TABLE " . $table_name . " (
22
+ id INT( 255 ) NOT NULL AUTO_INCREMENT ,
23
+ name TINYTEXT NOT NULL ,
24
+ email TEXT NOT NULL ,
25
+
26
+ confirm_code TEXT NOT NULL,
27
+ PRIMARY KEY (id)
28
+ );";
29
+
30
+ dbDelta($sql);
31
+
32
+
33
+ }
34
+ add_option('wp_email_capture_link', 1);
35
+ add_option("wp_email_capture_db_version", $wp_email_capture_db_version);
36
+ }
37
+
38
+ ?>
inc/options.php ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ function wp_email_capture_menus() {
3
+ add_options_page('WP Email Capture Options', 'WP Email Capture', 8, 'wpemailcaptureoptions', 'wp_email_capture_options');
4
+ }
5
+
6
+ function wp_email_capture_options() {
7
+ echo '<div class="wrap">';
8
+ echo '<h2>WP Email Capture Options</h2>';
9
+ ?>
10
+ <h3>Recommendations</h3>
11
+ <p>We recommend <a href="http://www.gospelrhys.co.uk/go/aweber.php" title="Email Marketing">Aweber</a> to run your email campaigns. We have tested this plugin with it.
12
+ </p>
13
+ <table width="50%" border="0">
14
+ <tr>
15
+ <td><div style="text-align:center;">
16
+ <a href="http://www.gospelrhys.co.uk/go/aweber.php" title="Email Marketing">
17
+ <img src="http://www.aweber.com/banners/email_marketing_easy/726x90.gif" alt="AWeber - Email Marketing Made Easy" style="border:none;" /></a>
18
+ </div></td>
19
+ </tr>
20
+ </table>
21
+ <p>
22
+ <?php
23
+
24
+ echo '<h3>Options</h3>';
25
+ ?>
26
+
27
+ </p>
28
+ <form method="post" action="options.php">
29
+ <?php wp_nonce_field('update-options'); ?>
30
+ <?php settings_fields( 'wp-email-capture-group' ); ?>
31
+ <table class="form-table">
32
+ <tbody>
33
+ <tr valign="top">
34
+ <th scope="row">Page to redirect to on sign up</th>
35
+ <td><input type="text" name="wp_email_capture_signup" class="regular-text code" value="<?php echo get_option('wp_email_capture_signup'); ?>" /></td>
36
+ </tr>
37
+ <tr valign="top">
38
+ <th scope="row"><label>Page to redirect to on confirmation of email address</label></th>
39
+ <td><input type="text" name="wp_email_capture_redirection" class="regular-text code" value="<?php echo get_option('wp_email_capture_redirection'); ?>" /></td>
40
+ </tr>
41
+ <tr valign="top">
42
+ <th scope="row"><label>From Which Email Address</label></th>
43
+ <td><input type="text" name="wp_email_capture_from" class="regular-text code" value="<?php echo get_option('wp_email_capture_from'); ?>" /></td>
44
+ </tr>
45
+ <tr valign="top">
46
+ <th scope="row"><label>From Which Name</label></th>
47
+ <td><input type="text" name="wp_email_capture_from_name" class="regular-text code" value="<?php echo get_option('wp_email_capture_from_name'); ?>" /></td>
48
+ </tr>
49
+ <tr valign="top">
50
+ <th scope="row">Subject of Email</th>
51
+ <td><input type="text" name="wp_email_capture_subject" class="regular-text code" value="<?php echo get_option('wp_email_capture_subject'); ?>" /></td>
52
+ </tr>
53
+ <tr valign="top">
54
+ <th scope="row"><label>Body of Email</label></th>
55
+ <td><textarea name="wp_email_capture_body" style="width: 25em;"><?php echo get_option('wp_email_capture_body'); ?></textarea></td>
56
+ </tr>
57
+ <tr valign="top">
58
+ <th scope="row"><label>Link to us (optional, but appreciated)</label></th>
59
+ <td><input type="checkbox" name="wp_email_capture_link" value="1"
60
+ <?php
61
+ if (get_option('wp_email_capture_link') == 1) { echo "checked"; } ?>
62
+ ></td>
63
+ </tr>
64
+ </tbody>
65
+ </table>
66
+
67
+ <input type="hidden" name="action" value="update" />
68
+ <input type="hidden" name="page_options" value="wp_email_capture_redirection,wp_email_capture_from,wp_email_capture_subject,wp_email_capture_signup,wp_email_capture_body,wp_email_capture_from_name,wp_email_capture_link" />
69
+ <p class="submit">
70
+ <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
71
+ </p>
72
+ </form>
73
+
74
+ <?php
75
+ wp_email_capture_writetable();
76
+ echo '<a name="list"></a><h3>Export</h3>';
77
+ echo '<form name="wp_email_capture_export" action="'. $_SERVER["REQUEST_URI"] . '#list" method="post">';
78
+ echo '<label>Use the button below to export your list as a CSV to use in software such as <a href="http://www.gospelrhys.co.uk/go/aweber.php" title="Email Marketing">Aweber</a> or <a href="http://www.gospelrhys.co.uk/go/mailchimp.php">Mailchimp</a></label>';
79
+ echo '<input type="hidden" name="wp_email_capture_export" />';
80
+ echo '<div class="submit"><input type="submit" value="Export List" /></div>';
81
+ echo "</form>";
82
+ $tempemails = wp_email_capture_count_temp();
83
+ echo "<a name='truncate'></a><h3>Temporary e-mails</h3>\n";
84
+ echo '<form name="wp_email_capture_truncate" action="'. $_SERVER["REQUEST_URI"] . '#truncate" method="post">';
85
+ echo '<label>There are '. $tempemails . ' e-mail addresses that have been unconfirmed. Delete them to save space below.</label>';
86
+ echo '<input type="hidden" name="wp_email_capture_truncate"/>';
87
+ echo '<div class="submit"><input type="submit" value="Delete Unconfirmed e-mail Addresses" /></div>';
88
+ echo "</form>";
89
+ echo '</div>';
90
+ }
91
+
92
+ function wp_email_capture_options_process() { // whitelist options
93
+ register_setting( 'wp-email-capture-group', 'wp_email_capture_signup' );
94
+ register_setting( 'wp-email-capture-group', 'wp_email_capture_redirection' );
95
+ register_setting( 'wp-email-capture-group', 'wp_email_capture_from' );
96
+ register_setting( 'wp-email-capture-group', 'wp_email_capture_subject' );
97
+ register_setting( 'wp-email-capture-group', 'wp_email_capture_body' );
98
+ register_setting( 'wp-email-capture-group', 'wp_email_capture_link');
99
+ register_setting( 'wp-email-capture-group', 'wp_email_capture_from_name' );
100
+ if(isset($_REQUEST['wp_email_capture_export'])) {
101
+ wp_email_capture_export();
102
+ }
103
+
104
+
105
+ if(isset($_REQUEST['wp_email_capture_truncate'])) {
106
+
107
+ wp_email_capture_truncate();
108
+ }
109
+ }
110
+ ?>
inc/pagedresults.php ADDED
@@ -0,0 +1,183 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+
5
+ class MySQLPagedResultSet
6
+
7
+ {
8
+
9
+
10
+
11
+ var $results;
12
+
13
+ var $pageSize;
14
+
15
+ var $page;
16
+
17
+ var $row;
18
+
19
+
20
+
21
+ function MySQLPagedResultSet($query,$pageSize)
22
+
23
+ {
24
+
25
+
26
+
27
+ $resultpage = $_GET['resultpage'];
28
+
29
+
30
+
31
+ $this->results = mysql_query($query);
32
+
33
+ $this->pageSize = $pageSize;
34
+
35
+ if ((int)$resultpage <= 0) $resultpage = 1;
36
+
37
+ if ($resultpage > $this->getNumPages())
38
+
39
+ $resultpage = $this->getNumPages();
40
+
41
+ $this->setPageNum($resultpage);
42
+
43
+ }
44
+
45
+
46
+
47
+ function getNumPages()
48
+
49
+ {
50
+
51
+ if (!$this->results) return FALSE;
52
+
53
+
54
+
55
+ return ceil(mysql_num_rows($this->results) /
56
+
57
+ (float)$this->pageSize);
58
+
59
+ }
60
+
61
+
62
+
63
+ function setPageNum($pageNum)
64
+
65
+ {
66
+
67
+ if ($pageNum > $this->getNumPages() or
68
+
69
+ $pageNum <= 0) return FALSE;
70
+
71
+
72
+
73
+ $this->page = $pageNum;
74
+
75
+ $this->row = 0;
76
+
77
+ mysql_data_seek($this->results,($pageNum-1) * $this->pageSize);
78
+
79
+ }
80
+
81
+
82
+
83
+ function getPageNum()
84
+
85
+ {
86
+
87
+ return $this->page;
88
+
89
+ }
90
+
91
+
92
+
93
+ function isLastPage()
94
+
95
+ {
96
+
97
+ return ($this->page >= $this->getNumPages());
98
+
99
+ }
100
+
101
+
102
+
103
+ function isFirstPage()
104
+
105
+ {
106
+
107
+ return ($this->page <= 1);
108
+
109
+ }
110
+
111
+
112
+
113
+ function fetchArray()
114
+
115
+ {
116
+
117
+ if (!$this->results) return FALSE;
118
+
119
+ if ($this->row >= $this->pageSize) return FALSE;
120
+
121
+ $this->row++;
122
+
123
+ return mysql_fetch_array($this->results);
124
+
125
+ }
126
+
127
+
128
+
129
+ function getPageNav($queryvars = '')
130
+
131
+ {
132
+
133
+ $nav = '';
134
+
135
+ if (!$this->isFirstPage())
136
+
137
+ {
138
+
139
+ $nav .= "<a href=\"?resultpage=".
140
+
141
+ ($this->getPageNum()-1).'&'.$queryvars.'">Prev</a> ';
142
+
143
+ }
144
+
145
+ if ($this->getNumPages() > 1)
146
+
147
+ for ($i=1; $i<=$this->getNumPages(); $i++)
148
+
149
+ {
150
+
151
+ if ($i==$this->page)
152
+
153
+ $nav .= "$i ";
154
+
155
+ else
156
+
157
+ $nav .= "<a href=\"?resultpage={$i}&".
158
+
159
+ $queryvars."\">{$i}</a> ";
160
+
161
+ }
162
+
163
+ if (!$this->isLastPage())
164
+
165
+ {
166
+
167
+ $nav .= "<a href=\"?resultpage=".
168
+
169
+ ($this->getPageNum()+1).'&'.$queryvars.'">Next</a> ';
170
+
171
+ }
172
+
173
+
174
+
175
+ return $nav;
176
+
177
+ }
178
+
179
+ }
180
+
181
+
182
+
183
+ ?>
inc/process.php ADDED
@@ -0,0 +1,286 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+
5
+ function wp_email_capture_process()
6
+
7
+ {
8
+
9
+ if(isset($_REQUEST['wp_capture_action'])) {
10
+ wp_email_capture_signup();
11
+ }
12
+
13
+ if(isset($_GET['wp_email_confirm']) || isset($_REQUEST['wp_email_confirm'])) {
14
+ wp_capture_email_confirm();
15
+ }
16
+
17
+ }
18
+
19
+
20
+
21
+ function wp_email_capture_double_check_everything($name, $email)
22
+
23
+ {
24
+
25
+ if (wp_email_injection_chars($name) || wp_email_injection_chars($email) || wp_email_injection_chars($name) || wp_email_injection_chars($email))
26
+
27
+ {
28
+
29
+ return FALSE;
30
+
31
+ } else {
32
+
33
+ return TRUE;
34
+ }
35
+
36
+ }
37
+
38
+
39
+
40
+ function wp_email_capture_signup()
41
+
42
+ {
43
+
44
+ global $wpdb;
45
+
46
+
47
+
48
+ // Random confirmation code
49
+
50
+ $confirm_code=md5(uniqid(rand()));
51
+
52
+ $name = $_REQUEST['wp-email-capture-name'];
53
+
54
+ $email = $_REQUEST['wp-email-capture-email'];
55
+
56
+
57
+ if (!validEmail($email))
58
+
59
+ {
60
+
61
+ $url = $_SERVER['PHP_SELF'] . "?wp_email_capture_error=Not%20a%20valid%20email";
62
+
63
+ header("Location: $url");
64
+
65
+ die();
66
+
67
+ }
68
+
69
+
70
+
71
+ if (wp_email_capture_double_check_everything($name, $email))
72
+
73
+ {
74
+
75
+ // values sent from form
76
+
77
+ $name = sanitize($name);
78
+
79
+ $email= sanitize($email);
80
+
81
+ $name = wp_email_injection_test($name);
82
+
83
+ $email = wp_email_injection_test($email);
84
+
85
+ $name = wp_email_stripslashes($name);
86
+
87
+ $email = wp_email_stripslashes($email);
88
+
89
+
90
+
91
+ $sqlcheck = checkIfPresent($email);
92
+
93
+
94
+
95
+ if ($sqlcheck){
96
+
97
+
98
+
99
+ $url = $_SERVER['PHP_SELF'] . "?wp_email_capture_error=User%20already%20present";
100
+
101
+ header("Location: $url");
102
+
103
+ die();
104
+
105
+ }
106
+
107
+
108
+
109
+ // Insert data into database
110
+
111
+ $table_name = $wpdb->prefix . "wp_email_capture_temp_members";
112
+
113
+
114
+
115
+
116
+
117
+ $sql="INSERT INTO ".$table_name."(confirm_code, name, email)VALUES('$confirm_code', '$name', '$email')";
118
+
119
+ $result=$wpdb->query($wpdb->prepare($sql));
120
+
121
+
122
+
123
+ // if suceesfully inserted data into database, send confirmation link to email
124
+
125
+ if($result){
126
+
127
+
128
+
129
+ // ---------------- SEND MAIL FORM ----------------
130
+
131
+
132
+
133
+ // send e-mail to ...
134
+
135
+ $to=$email;
136
+
137
+ $siteurl = get_option('home');
138
+ $siteurl = addLastCharacter($siteurl);
139
+
140
+ // Your subject
141
+
142
+ $subject=get_option('wp_email_capture_subject');
143
+
144
+ // From
145
+
146
+ $header = "MIME-Version: 1.0\n" . "From: " . get_option('wp_email_capture_from_name') . "<" . get_option('wp_email_capture_from') . ">\n";
147
+
148
+ $header .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n";
149
+
150
+ // Your message
151
+
152
+ $message.= get_option('wp_email_capture_body') . "\n\n";
153
+
154
+ $message.= $siteurl ."?wp_email_confirm=1&wp_email_capture_passkey=$confirm_code";
155
+
156
+
157
+
158
+ // send email
159
+
160
+ $sentmail = wp_mail($to,$subject,$message,$header);
161
+
162
+ }
163
+
164
+ }
165
+
166
+
167
+
168
+ // if not found
169
+
170
+ else {
171
+
172
+ echo "Not found your email in our database";
173
+
174
+ }
175
+
176
+
177
+
178
+ // if your email succesfully sent
179
+
180
+ if($sentmail){
181
+
182
+ $halfreg = get_option('wp_email_capture_signup');
183
+
184
+ header("Location: $halfreg");
185
+
186
+ die();
187
+
188
+ }
189
+
190
+ else {
191
+
192
+ $url = $_SERVER['PHP_SELF'] . "?wp_email_capture_error=Email%20unable%20to%20be%sent";
193
+
194
+ header("Location: $url");
195
+
196
+ die();
197
+
198
+ //echo "<meta http-equiv='refresh' content='0;". $url . "?wp_email_capture_error=Email%20unable%20to%20be%sent'>";
199
+
200
+ }
201
+
202
+ }
203
+
204
+
205
+
206
+
207
+
208
+ function wp_capture_email_confirm()
209
+
210
+ {
211
+
212
+ global $wpdb;
213
+
214
+ // Passkey that got from link
215
+
216
+ $passkey=sanitize($_GET['wp_email_capture_passkey']);
217
+
218
+ $table_name = $wpdb->prefix . "wp_email_capture_temp_members";
219
+
220
+ $sql1="SELECT id FROM $table_name WHERE confirm_code ='$passkey'";
221
+
222
+ $result=$wpdb->get_var($wpdb->prepare($sql1));
223
+
224
+ if ($result != '')
225
+
226
+ {
227
+
228
+ $table_name2 = $wpdb->prefix . "wp_email_capture_registered_members";
229
+
230
+ $sql2="SELECT * FROM $table_name WHERE confirm_code ='$passkey'";
231
+
232
+ $rowresults = $wpdb->get_results($wpdb->prepare($sql2));
233
+
234
+ foreach ($rowresults as $rowresult) {
235
+
236
+ $name = $rowresult->name;
237
+
238
+ $email = $rowresult->email;
239
+
240
+ $sql3="INSERT INTO $table_name2(name, email)VALUES('$name', '$email')";
241
+
242
+ $result3=$wpdb->query($wpdb->prepare($sql3));
243
+
244
+ }
245
+
246
+ }
247
+
248
+ else {
249
+
250
+ $url = $url . "?wp_email_capture_error=Wrong%20confirmation%20code";
251
+
252
+ header("Location: $url");
253
+
254
+ }
255
+
256
+ // if successfully moved data from table"temp_members_db" to table "registered_members" displays message "Your account has been activated" and don't forget to delete confirmation code from table "temp_members_db"
257
+
258
+
259
+
260
+ if($result3){
261
+
262
+ $sql4="DELETE FROM $table_name WHERE confirm_code = '$passkey'";
263
+
264
+ $result4=$wpdb->query($wpdb->prepare($sql4));
265
+
266
+ $fullreg = get_option('wp_email_capture_redirection');
267
+
268
+
269
+
270
+ //echo "<meta http-equiv='refresh' content='0;". $fullreg ."'>";
271
+
272
+ header("Location: $fullreg");
273
+
274
+ }
275
+
276
+
277
+
278
+
279
+
280
+ }
281
+
282
+
283
+
284
+
285
+
286
+ ?>
inc/security.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+
5
+ /* Check for injection characters */
6
+
7
+ function wp_email_injection_chars($s) {
8
+
9
+ return (eregi("\r", $s) || eregi("\n", $s) || eregi("%0a", $s) || eregi("%0d", $s)) ? TRUE : FALSE;
10
+
11
+ }
12
+
13
+
14
+
15
+
16
+
17
+ /* Make output safe for the browser */
18
+
19
+ function wp_email_capture_bsafe($input) {
20
+
21
+ return htmlspecialchars(stripslashes($input));
22
+
23
+ }
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+ function wp_email_stripslashes($s) {
34
+
35
+ if (defined('TEMPLATEPATH') || (get_magic_quotes_gpc())) {
36
+
37
+ return stripslashes($s);
38
+
39
+ } else {
40
+
41
+ return $s;
42
+
43
+ }
44
+
45
+ }
46
+
47
+
48
+
49
+
50
+
51
+ function wp_email_injection_test($str) {
52
+
53
+ $tests = array("/bcc\:/i", "/Content\-Type\:/i", "/Mime\-Version\:/i", "/cc\:/i", "/from\:/i", "/to\:/i", "/Content\-Transfer\-Encoding\:/i");
54
+
55
+ return preg_replace($tests, "", $str);
56
+
57
+ }
58
+
59
+
60
+
61
+ ?>
inc/tabledata.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ function wp_email_capture_writetable($limit = 0, $header = '')
4
+ {
5
+ global $wpdb;
6
+ $table_name = $wpdb->prefix . "wp_email_capture_registered_members";
7
+ $sql = "SELECT id, name, email FROM " . $table_name;
8
+ if ($limit != 0) {
9
+ $sql .= " ORDER BY id DESC LIMIT 3";
10
+ }
11
+ $results = $wpdb->get_results($wpdb->prepare($sql));
12
+
13
+ if ($header == '') {
14
+ $header = "<h3>Members</h3>";
15
+ }
16
+ echo $header;
17
+ ?>
18
+ <table>
19
+ <tr><td><strong>Name</strong></td><td><strong>Email</strong></td></tr>
20
+ <?php foreach ($results as $result) {
21
+ echo "<tr><td style='width: 400px;'>" . $result->name ."</td><td style='width: 400px;'>" . $result->email ."</td></tr>";
22
+ }
23
+ ?>
24
+ </table>
25
+ <?php
26
+ }
27
+
28
+ ?>
inc/tempdata.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ function wp_email_capture_truncate()
3
+ {
4
+ global $wpdb;
5
+ $table_name = $wpdb->prefix . "wp_email_capture_temp_members";
6
+ $sql = "TRUNCATE " . $table_name;
7
+ $result = $wpdb->query($wpdb->prepare($sql));
8
+ }
9
+ function wp_email_capture_count_temp()
10
+ {
11
+ global $wpdb;
12
+ $table_name = $wpdb->prefix . "wp_email_capture_temp_members";
13
+ $sql = 'SELECT COUNT(*)
14
+ FROM '. $table_name;
15
+ $prep = $wpdb->prepare($sql);
16
+ $result = $wpdb->get_var($prep);
17
+ return $result;
18
+ }
19
+ ?>
inc/widget.php ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ function wp_email_capture_widget_init() {
4
+
5
+
6
+
7
+ // Check to see required Widget API functions are defined...
8
+
9
+ if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
10
+
11
+ return; // ...and if not, exit gracefully from the script.
12
+
13
+
14
+
15
+ // This function prints the sidebar widget--the cool stuff!
16
+
17
+ function wp_email_capture_widget($args) {
18
+
19
+
20
+
21
+ // $args is an array of strings which help your widget
22
+
23
+ // conform to the active theme: before_widget, before_title,
24
+
25
+ // after_widget, and after_title are the array keys.
26
+
27
+ extract($args);
28
+
29
+
30
+
31
+ // Collect our widget's options, or define their defaults.
32
+
33
+ $options = get_option('wp_email_capture_widget');
34
+
35
+ $title = empty($options['title']) ? 'My Widget' : $options['title'];
36
+
37
+ $text = empty($options['text']) ? 'Hello World!' : $options['text'];
38
+
39
+
40
+
41
+ // It's important to use the $before_widget, $before_title,
42
+
43
+ // $after_title and $after_widget variables in your output.
44
+
45
+ echo $before_widget;
46
+
47
+ echo $before_title . $title . $after_title;
48
+
49
+ echo $text;
50
+
51
+ wp_email_capture_form();
52
+
53
+ echo $after_widget;
54
+
55
+ }
56
+
57
+
58
+
59
+ // This is the function that outputs the form to let users edit
60
+
61
+ // the widget's title and so on. It's an optional feature, but
62
+
63
+ // we'll use it because we can!
64
+
65
+ function wp_email_capture_widget_control() {
66
+
67
+
68
+
69
+ // Collect our widget's options.
70
+
71
+ $options = get_option('wp_email_capture_widget');
72
+
73
+ $newoptions = get_option('wp_email_capture_widget');
74
+
75
+ // This is for handing the control form submission.
76
+
77
+ if ( $_POST['wp-email-capture-submit'] ) {
78
+
79
+ // Clean up control form submission options
80
+
81
+ $newoptions['title'] = strip_tags(stripslashes($_POST['wp-email-capture-title']));
82
+
83
+ $newoptions['text'] = strip_tags(stripslashes($_POST['wp-email-capture-text']));
84
+
85
+ }
86
+
87
+
88
+
89
+ // If original widget options do not match control form
90
+
91
+ // submission options, update them.
92
+
93
+ if ( $options != $newoptions ) {
94
+
95
+ $options = $newoptions;
96
+
97
+ update_option('wp_email_capture_widget', $options);
98
+
99
+ }
100
+
101
+
102
+
103
+ // Format options as valid HTML. Hey, why not.
104
+
105
+ $title = htmlspecialchars($options['title'], ENT_QUOTES);
106
+
107
+ $text = htmlspecialchars($options['text'], ENT_QUOTES);
108
+
109
+
110
+
111
+ // The HTML below is the control form for editing options.
112
+
113
+ ?>
114
+
115
+ <div>
116
+
117
+ <label for="wp-email-capture-title" style="line-height:35px;display:block;">Widget title: <input type="text" id="wp-email-capture-title" name="wp-email-capture-title" value="<?php echo $title; ?>" /></label>
118
+
119
+ <label for="wp-email-capture-text" style="line-height:35px;display:block;">Widget text: <input type="text" id="wp-email-capture-text" name="wp-email-capture-text" value="<?php echo $text; ?>" /></label>
120
+
121
+ <input type="hidden" name="wp-email-capture-submit" id="wp-email-capture-submit" value="1" />
122
+
123
+ </div>
124
+
125
+ <?php
126
+
127
+ // end of widget_mywidget_control()
128
+
129
+ }
130
+
131
+
132
+
133
+ // This registers the widget. About time.
134
+
135
+ register_sidebar_widget('WP Email Capture', 'wp_email_capture_widget');
136
+
137
+
138
+
139
+ // This registers the (optional!) widget control form.
140
+
141
+ register_widget_control('WP Email Capture', 'wp_email_capture_widget_control');
142
+
143
+ }
144
+
145
+
146
+
147
+ // Delays plugin execution until Dynamic Sidebar has loaded first.
148
+
149
+ add_action('plugins_loaded', 'wp_email_capture_widget_init');
150
+
151
+
152
+
153
+ ?>
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === WP Email Capture ===
2
  Tags: email, marketing, capture, form, affiliates, mailing lists, email marketing, widget ready
3
- Requires at least: 3.0
4
- Tested up to: 3.0.1
5
- Version: 2.0
6
- Stable tag: 2.0
7
  Contributors: rhyswynne
8
  Donate link: http://www.gospelrhys.co.uk/donations/
9
 
@@ -37,14 +37,14 @@ After having these, please then fill in the settings in the "Settings > WP Email
37
 
38
  The form can be inserted into the site at any location. However, to put the form anywhere, insert the following code into your template
39
 
40
- `<?php if (function_exists('wp_email_capture_form')) { wp_email_capture_form(); } ?>`
41
 
42
- If you want to insert the form within a page, insert into any page the string `[wp_email_capture_form]`. It will be replaced with a simple form.
43
 
44
  == Stylings ==
45
- To style your form, you need to add to your CSS file the following ID declarations. `wp_email_capture` is for sidebar & template widgets, `wp_email_capture_2` is for on page forms.
46
 
47
- `#wp_email_capture
48
  {
49
 
50
  }
@@ -72,7 +72,7 @@ To style your form, you need to add to your CSS file the following ID declaratio
72
  #wp_email_capture_2 input
73
  {
74
 
75
- }`
76
 
77
  == Screenshots ==
78
  1. It's appearance within the template
@@ -84,15 +84,6 @@ To style your form, you need to add to your CSS file the following ID declaratio
84
  = Does this piece of software send out email? =
85
  No. I feel that to do so would be counter productive, as sending out email could have a detrimental effect on your server. There are a number of services we recommend, such as Aweber, to send out lists built on WP Email Capture.
86
 
87
- = Does it work with Wordpress MU? =
88
- This plugin is unsupported for Wordpress MU. Some people have reported success in using it. Others haven't. I have been unable to figure out why (I've been unable to get it working for Wordpress MU).
89
-
90
- = Does it work with [theme_name]? =
91
- This plugin does use widgets, so probably yes :)
92
-
93
- = How do I include the name in my emails I send to people? =
94
- Wherever you put in %NAME% (spelt exactly like that, uppercase as well), it will be replaced with the name given by the user.
95
-
96
  == Bugs/Suggestions ==
97
  Please report any bugs to me (rhys@gospelrhys.co.uk)
98
 
@@ -102,61 +93,31 @@ To donate to this plugin, please visit:
102
  http://www.gospelrhys.co.uk/donations
103
 
104
  == Change Log ==
105
- = 2.0 (3/10/10) =
106
- * Switched functions to use the non depreciated functions
107
- * Compatible with Spam Free
108
- * Added a "Delete entire list" button in Wordpress.
109
-
110
- = 1.9 (20/01/10) =
111
- * Fixed a small bug that resulted in the display for [The plugin does not have a valid header.]
112
- * Fixed a small phpmail bug
113
-
114
- = 1.8.1 (13/01/10) =
115
- * Included more information in sent mail including IP, Date & Referral Page
116
-
117
- = 1.6 (18/10/09) =
118
- * You can now delete people from the confirmed members list (requested update!)
119
-
120
- = 1.5 (04/10/09) =
121
- * Fixed small error on the error checking form.
122
-
123
- = 1.4 (03/10/09) =
124
- * Added a check for duplicate emails.
125
-
126
- = 1.3 (30/09/09) =
127
- * Added a new feature where you can mention the name of the recipient of the email within the email by using the %NAME% string.
128
- * Better default title & text for the WP Email Capture Widget.
129
- * Fixed a bug that dropped the last character of the "From" name.
130
-
131
- = 1.2 (27/09/09) =
132
- * Fixed errors with the programme when using non pretty permalinks (they now work now)
133
- * Compatible with windows based PHP configurations (1.1 introduced a function that didn't work on windows boxes).
134
-
135
- = 1.1 revision 2 (24/09/09) =
136
  * Fixed compatability issue with All in One SEO.
137
  * Blogs which are on a subdomain now can use the plugin (http://www.domian.com/wordpress/)
138
 
139
- = 1.1 revision 1 (23/09/09) =
140
  * Fixed small upgrade bug
141
 
142
- = 1.1 (22/09/09) =
143
  * Fixed short tag problem in tempdata.php
144
  * Emails that are not valid emails aren't processed
145
 
146
- = 1.0 RC 1 (17/09/09) =
147
  * First Release!
148
  * Dashboard Widget added.
149
 
150
- = 0.4 (14/09/09) =
151
  * Used more secure internal wp_mail class for sending out mail
152
  * Implemented [wp_email_form] class for implementing plugin on form
153
 
154
- = 0.3 (12/09/09) =
155
  * Switch to headers, rather than meta refreshes for updating the page
156
 
157
- = 0.2 (09/09/09) =
158
  * Fixed small error in the plugin when using permalinks
159
  * Implemented more security to the plugin
160
 
161
- = 0.1 (07/09/09) =
162
  * Plugin Launched
1
  === WP Email Capture ===
2
  Tags: email, marketing, capture, form, affiliates, mailing lists, email marketing, widget ready
3
+ Requires at least: 2.8
4
+ Tested up to: 2.8.4
5
+ Version: 1.1 revision 2
6
+ Stable tag: 1.1 revision 2
7
  Contributors: rhyswynne
8
  Donate link: http://www.gospelrhys.co.uk/donations/
9
 
37
 
38
  The form can be inserted into the site at any location. However, to put the form anywhere, insert the following code into your template
39
 
40
+ <?php if (function_exists('wp_email_capture_form')) { wp_email_capture_form(); } ?>
41
 
42
+ If you want to insert the form within a page, insert into any page the string [wp_email_capture_form]. It will be replaced with a simple form.
43
 
44
  == Stylings ==
45
+ To style your form, you need to add to your CSS file the following ID declarations. "wp_email_capture" is for sidebar & template widgets, "wp_email_capture_2" is for on page forms.
46
 
47
+ #wp_email_capture
48
  {
49
 
50
  }
72
  #wp_email_capture_2 input
73
  {
74
 
75
+ }
76
 
77
  == Screenshots ==
78
  1. It's appearance within the template
84
  = Does this piece of software send out email? =
85
  No. I feel that to do so would be counter productive, as sending out email could have a detrimental effect on your server. There are a number of services we recommend, such as Aweber, to send out lists built on WP Email Capture.
86
 
 
 
 
 
 
 
 
 
 
87
  == Bugs/Suggestions ==
88
  Please report any bugs to me (rhys@gospelrhys.co.uk)
89
 
93
  http://www.gospelrhys.co.uk/donations
94
 
95
  == Change Log ==
96
+ 1.1 revision 2 (24/09/09)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  * Fixed compatability issue with All in One SEO.
98
  * Blogs which are on a subdomain now can use the plugin (http://www.domian.com/wordpress/)
99
 
100
+ 1.1 revision 1 (23/09/09)
101
  * Fixed small upgrade bug
102
 
103
+ 1.1 (22/09/09)
104
  * Fixed short tag problem in tempdata.php
105
  * Emails that are not valid emails aren't processed
106
 
107
+ 1.0 RC 1 (17/09/09)
108
  * First Release!
109
  * Dashboard Widget added.
110
 
111
+ 0.4 (14/09/09)
112
  * Used more secure internal wp_mail class for sending out mail
113
  * Implemented [wp_email_form] class for implementing plugin on form
114
 
115
+ 0.3 (12/09/09)
116
  * Switch to headers, rather than meta refreshes for updating the page
117
 
118
+ 0.2 (09/09/09)
119
  * Fixed small error in the plugin when using permalinks
120
  * Implemented more security to the plugin
121
 
122
+ 0.1 (07/09/09)
123
  * Plugin Launched
screenshot-1.jpg ADDED
Binary file
screenshot-2.jpg ADDED
Binary file
screenshot-3.jpg ADDED
Binary file
wp-email-capture.php CHANGED
@@ -8,7 +8,7 @@ Plugin URI: http://www.gospelrhys.co.uk/plugins/wordpress-plugins/wordpress-emai
8
 
9
  Description: Captures email addresses for insertion into software such as <a href="http://www.gospelrhys.co.uk/go/aweber.php" title="Email Marketing">Aweber</a> or <a href="http://www.gospelrhys.co.uk/go/mailchimp.php">Mailchimp</a>
10
 
11
- Version: 2.0
12
 
13
  Author: Rhys Wynne
14
 
8
 
9
  Description: Captures email addresses for insertion into software such as <a href="http://www.gospelrhys.co.uk/go/aweber.php" title="Email Marketing">Aweber</a> or <a href="http://www.gospelrhys.co.uk/go/mailchimp.php">Mailchimp</a>
10
 
11
+ Version: 1.1 revision 2
12
 
13
  Author: Rhys Wynne
14