Subscribe2 - Version 8.3

Version Description

Download this release

Release Info

Developer MattyRob
Plugin Icon 128x128 Subscribe2
Version 8.3
Comparing to
See all releases

Code changes from version 8.2 to 8.3

ReadMe.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_butt
4
Tags: posts, subscription, email, subscribe, notify, notification
5
Requires at least: 3.1
6
Tested up to: 3.3.1
7
- Stable tag: 8.2
8
9
Sends a list of subscribers an email notification when new posts are published to your blog
10
@@ -29,25 +29,25 @@ If you want to send full content HTML emails to Public Subscribers too then upgr
29
30
AUTOMATIC INSTALLATION
31
1. Log in to your WordPress blog and visit Plugins->Add New.
32
- 2. Search for Subscribe2, click "Install Now" and then Activate the Plugin
33
- 3. Click the "Settings" admin menu link, and select "Subscribe2".
34
- 4. Configure the options to taste, including the email template and any categories which should be excluded from notification
35
- 5. Click the "Tools" admin menu link, and select "Subscribers".
36
- 6. Manually subscribe people as you see fit.
37
- 7. Create a [WordPress Page](http://codex.wordpress.org/Pages) to display the subscription form. When creating the page, you may click the "S2" button on the QuickBar to automatically insert the subscribe2 token. Or, if you prefer, you may manually insert the subscribe2 shortcode or token: [subscribe2] or the HTML invisible `<!--subscribe2-->` ***Ensure the token is on a line by itself and that it has a blank line above and below.***
38
This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary.
39
- 8. In the WordPress "Settings" area for Subscribe2 select the page name in the "Appearance" section that of the WordPress page created in step 7.
40
41
MANUAL INSTALLATION
42
1. Copy the entire /subscribe2/ directory into your /wp-content/plugins/ directory.
43
- 2. Activate the plugin.
44
- 3. Click the "Settings" admin menu link, and select "Subscribe2".
45
- 4. Configure the options to taste, including the email template and any categories which should be excluded from notification
46
- 5. Click the "Tools" admin menu link, and select "Subscribers".
47
- 6. Manually subscribe people as you see fit.
48
- 7. Create a [WordPress Page](http://codex.wordpress.org/Pages) to display the subscription form. When creating the page, you may click the "S2" button on the QuickBar to automatically insert the subscribe2 token. Or, if you prefer, you may manually insert the subscribe2 shortcode or token: [subscribe2] or the HTML invisible `<!--subscribe2-->` ***Ensure the token is on a line by itself and that it has a blank line above and below.***
49
This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary.
50
- 8. In the WordPress "Settings" area for Subscribe2 select the page name in the "Appearance" section that of the WordPress page created in step 7.
51
52
== Frequently Asked Questions ==
53
@@ -303,6 +303,19 @@ Secondly, make sure that the token ([subscribe2] or <!--subscribe2-->) is correc
303
304
== Changelog ==
305
306
= Version 8.2 by Matthew Robinson =
307
308
* Implemented use of Farbtastic as colour chooser in the Counter Widget because ColorPicker has been deprecated in WordPress
4
Tags: posts, subscription, email, subscribe, notify, notification
5
Requires at least: 3.1
6
Tested up to: 3.3.1
7
+ Stable tag: 8.3
8
9
Sends a list of subscribers an email notification when new posts are published to your blog
10
29
30
AUTOMATIC INSTALLATION
31
1. Log in to your WordPress blog and visit Plugins->Add New.
32
+ 1. Search for Subscribe2, click "Install Now" and then Activate the Plugin
33
+ 1. Click the "Settings" admin menu link, and select "Subscribe2".
34
+ 1. Configure the options to taste, including the email template and any categories which should be excluded from notification
35
+ 1. Click the "Tools" admin menu link, and select "Subscribers".
36
+ 1. Manually subscribe people as you see fit.
37
+ 1. Create a [WordPress Page](http://codex.wordpress.org/Pages) to display the subscription form. When creating the page, you may click the "S2" button on the QuickBar to automatically insert the subscribe2 token. Or, if you prefer, you may manually insert the subscribe2 shortcode or token: [subscribe2] or the HTML invisible `<!--subscribe2-->` ***Ensure the token is on a line by itself and that it has a blank line above and below.***
38
This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary.
39
+ 1. In the WordPress "Settings" area for Subscribe2 select the page name in the "Appearance" section that of the WordPress page created in step 7.
40
41
MANUAL INSTALLATION
42
1. Copy the entire /subscribe2/ directory into your /wp-content/plugins/ directory.
43
+ 1. Activate the plugin.
44
+ 1. Click the "Settings" admin menu link, and select "Subscribe2".
45
+ 1. Configure the options to taste, including the email template and any categories which should be excluded from notification
46
+ 1. Click the "Tools" admin menu link, and select "Subscribers".
47
+ 1. Manually subscribe people as you see fit.
48
+ 1. Create a [WordPress Page](http://codex.wordpress.org/Pages) to display the subscription form. When creating the page, you may click the "S2" button on the QuickBar to automatically insert the subscribe2 token. Or, if you prefer, you may manually insert the subscribe2 shortcode or token: [subscribe2] or the HTML invisible `<!--subscribe2-->` ***Ensure the token is on a line by itself and that it has a blank line above and below.***
49
This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary.
50
+ 1. In the WordPress "Settings" area for Subscribe2 select the page name in the "Appearance" section that of the WordPress page created in step 7.
51
52
== Frequently Asked Questions ==
53
303
304
== Changelog ==
305
306
+ = Version 8.3 by Matthew Robinson =
307
+
308
+ * Fixed a bunch of PHP messages - should not show anyway unless WP_DEBUG is true or PHP error reporting is on a high setting
309
+ * Fixed bulk category management so it applies to all users and not just the first record
310
+ * Update 'autosub' to no on one-click unsubscribe instead of erasing the value
311
+ * Return empty string is get_tracking_link() is passed and empty variable
312
+ * Fixed some typographical errors
313
+ * Fixed profile page to obey 'one click' display setting
314
+ * Fixed implode error seen when sending preview emails on some configurations
315
+ * Fixed a error in the admin user dropdown on installs (particularly Multisite) where there may be no administrator level users
316
+ * Added a button text filter for the Subscribe and Unsubscribe buttons - proposed by casben79
317
+ * Use wp_hash in place of MD5 to further obfuscate confirmation links - thanks to Otto and Ipstenu
318
+
319
= Version 8.2 by Matthew Robinson =
320
321
* Implemented use of Farbtastic as colour chooser in the Counter Widget because ColorPicker has been deprecated in WordPress
admin/send_email.php CHANGED
@@ -7,7 +7,7 @@ global $wpdb, $s2nonce, $current_user;
7
8
// was anything POSTed?
9
if ( isset($_POST['s2_admin']) && 'mail' == $_POST['s2_admin'] ) {
10
- check_admin_referer('subscribe2-write_subscribers' . $s2nonce);
11
$subject = html_entity_decode($this->substitute(stripslashes(strip_tags($_POST['subject']))), ENT_QUOTES);
12
$body = $this->substitute(stripslashes($_POST['content']));
13
if ( '' != $current_user->display_name || '' != $current_user->user_email ) {
@@ -38,6 +38,8 @@ if ( isset($_POST['s2_admin']) && 'mail' == $_POST['s2_admin'] ) {
38
$status = $this->mail($recipients, $subject, $body, 'text');
39
if ( $status ) {
40
$message = $this->mail_sent;
41
} else {
42
global $phpmailer;
43
$message = $this->mail_failed . $phpmailer->ErrorInfo;
@@ -51,7 +53,7 @@ echo "<div id=\"icon-edit\" class=\"icon32\"></div>";
51
echo "<h2>" . __('Send an email to subscribers', 'subscribe2') . "</h2>\r\n";
52
echo "<form method=\"post\" action=\"\">\r\n";
53
if ( function_exists('wp_nonce_field') ) {
54
- wp_nonce_field('subscribe2-write_subscribers' . $s2nonce);
55
}
56
if ( isset($_POST['subject']) ) {
57
$subject = stripslashes(esc_html($_POST['subject']));
7
8
// was anything POSTed?
9
if ( isset($_POST['s2_admin']) && 'mail' == $_POST['s2_admin'] ) {
10
+ check_admin_referer('subscribe2-write_subscribers', $s2nonce);
11
$subject = html_entity_decode($this->substitute(stripslashes(strip_tags($_POST['subject']))), ENT_QUOTES);
12
$body = $this->substitute(stripslashes($_POST['content']));
13
if ( '' != $current_user->display_name || '' != $current_user->user_email ) {
38
$status = $this->mail($recipients, $subject, $body, 'text');
39
if ( $status ) {
40
$message = $this->mail_sent;
41
+ } elseif ( empty($body) ) {
42
+ $message = __('Your email was empty', 'subscribe2');
43
} else {
44
global $phpmailer;
45
$message = $this->mail_failed . $phpmailer->ErrorInfo;
53
echo "<h2>" . __('Send an email to subscribers', 'subscribe2') . "</h2>\r\n";
54
echo "<form method=\"post\" action=\"\">\r\n";
55
if ( function_exists('wp_nonce_field') ) {
56
+ wp_nonce_field('subscribe2-write_subscribers', $s2nonce);
57
}
58
if ( isset($_POST['subject']) ) {
59
$subject = stripslashes(esc_html($_POST['subject']));
admin/settings.php CHANGED
@@ -15,10 +15,10 @@ if ( empty($id) ) {
15
// was anything POSTed?
16
if ( isset( $_POST['s2_admin']) ) {
17
check_admin_referer('subscribe2-options_subscribers' . $s2nonce);
18
- if ( $_POST['reset'] ) {
19
$this->reset();
20
echo "<div id=\"message\" class=\"updated fade\"><p><strong>$this->options_reset</strong></p></div>";
21
- } elseif ( $_POST['preview'] ) {
22
global $user_email;
23
$this->preview_email = true;
24
if ( 'never' == $this->subscribe2_options['email_freq'] ) {
@@ -28,14 +28,14 @@ if ( isset( $_POST['s2_admin']) ) {
28
$this->subscribe2_cron($user_email);
29
}
30
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Preview message(s) sent to logged in user', 'subscribe2') . "</strong></p></div>";
31
- } elseif ( $_POST['resend'] ) {
32
$status = $this->subscribe2_cron('', 'resend');
33
if ( $status === false ) {
34
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('The Digest Notification email contained no post information. No email was sent', 'subscribe2') . "</strong></p></div>";
35
} else {
36
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Attempt made to resend the Digest Notification email', 'subscribe2') . "</strong></p></div>";
37
}
38
- } elseif ( $_POST['submit'] ) {
39
// BCClimit
40
if ( is_numeric($_POST['bcc']) && $_POST['bcc'] >= 0 ) {
41
$this->subscribe2_options['bcclimit'] = $_POST['bcc'];
@@ -159,27 +159,27 @@ if ( isset( $_POST['s2_admin']) ) {
159
}
160
161
// show meta link?
162
- ( $_POST['show_meta'] == '1' ) ? $showmeta = '1' : $showmeta = '0';
163
$this->subscribe2_options['show_meta'] = $showmeta;
164
165
// show button?
166
- ( $_POST['show_button'] == '1' ) ? $showbutton = '1' : $showbutton = '0';
167
$this->subscribe2_options['show_button'] = $showbutton;
168
169
// enable AJAX style form
170
- ( $_POST['ajax'] == '1' ) ? $ajax = '1' : $ajax = '0';
171
$this->subscribe2_options['ajax'] = $ajax;
172
173
// show widget in Presentation->Widgets
174
- ( $_POST['widget'] == '1' ) ? $showwidget = '1' : $showwidget = '0';
175
$this->subscribe2_options['widget'] = $showwidget;
176
177
// show counterwidget in Presentation->Widgets
178
- ( $_POST['counterwidget'] == '1' ) ? $showcounterwidget = '1' : $showcounterwidget = '0';
179
$this->subscribe2_options['counterwidget'] = $showcounterwidget;
180
181
// Subscribe2 over ride postmeta checked by default
182
- ( $_POST['s2meta_default'] == '1' ) ? $s2meta_default = '1' : $s2meta_default = '0';
183
$this->subscribe2_options['s2meta_default'] = $s2meta_default;
184
185
//automatic subscription
15
// was anything POSTed?
16
if ( isset( $_POST['s2_admin']) ) {
17
check_admin_referer('subscribe2-options_subscribers' . $s2nonce);
18
+ if ( isset($_POST['reset']) ) {
19
$this->reset();
20
echo "<div id=\"message\" class=\"updated fade\"><p><strong>$this->options_reset</strong></p></div>";
21
+ } elseif ( isset($_POST['preview']) ) {
22
global $user_email;
23
$this->preview_email = true;
24
if ( 'never' == $this->subscribe2_options['email_freq'] ) {
28
$this->subscribe2_cron($user_email);
29
}
30
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Preview message(s) sent to logged in user', 'subscribe2') . "</strong></p></div>";
31
+ } elseif ( isset($_POST['resend']) ) {
32
$status = $this->subscribe2_cron('', 'resend');
33
if ( $status === false ) {
34
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('The Digest Notification email contained no post information. No email was sent', 'subscribe2') . "</strong></p></div>";
35
} else {
36
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Attempt made to resend the Digest Notification email', 'subscribe2') . "</strong></p></div>";
37
}
38
+ } elseif ( isset($_POST['submit']) ) {
39
// BCClimit
40
if ( is_numeric($_POST['bcc']) && $_POST['bcc'] >= 0 ) {
41
$this->subscribe2_options['bcclimit'] = $_POST['bcc'];
159
}
160
161
// show meta link?
162
+ ( isset($_POST['show_meta']) && $_POST['show_meta'] == '1' ) ? $showmeta = '1' : $showmeta = '0';
163
$this->subscribe2_options['show_meta'] = $showmeta;
164
165
// show button?
166
+ ( isset($_POST['show_button']) && $_POST['show_button'] == '1' ) ? $showbutton = '1' : $showbutton = '0';
167
$this->subscribe2_options['show_button'] = $showbutton;
168
169
// enable AJAX style form
170
+ ( isset($_POST['ajax']) && $_POST['ajax'] == '1' ) ? $ajax = '1' : $ajax = '0';
171
$this->subscribe2_options['ajax'] = $ajax;
172
173
// show widget in Presentation->Widgets
174
+ ( isset($_POST['widget']) && $_POST['widget'] == '1' ) ? $showwidget = '1' : $showwidget = '0';
175
$this->subscribe2_options['widget'] = $showwidget;
176
177
// show counterwidget in Presentation->Widgets
178
+ ( isset($_POST['counterwidget']) && $_POST['counterwidget'] == '1' ) ? $showcounterwidget = '1' : $showcounterwidget = '0';
179
$this->subscribe2_options['counterwidget'] = $showcounterwidget;
180
181
// Subscribe2 over ride postmeta checked by default
182
+ ( isset($_POST['s2meta_default']) && $_POST['s2meta_default'] == '1' ) ? $s2meta_default = '1' : $s2meta_default = '0';
183
$this->subscribe2_options['s2meta_default'] = $s2meta_default;
184
185
//automatic subscription
admin/subscribers.php CHANGED
@@ -12,7 +12,7 @@ $all_users = $this->get_all_registered();
12
// was anything POSTed ?
13
if ( isset($_POST['s2_admin']) ) {
14
check_admin_referer('subscribe2-manage_subscribers' . $s2nonce);
15
- if ( $_POST['addresses'] ) {
16
$sub_error = '';
17
$unsub_error = '';
18
foreach ( preg_split ("|[\s,]+|", $_POST['addresses']) as $email ) {
@@ -41,27 +41,27 @@ if ( isset($_POST['s2_admin']) ) {
41
}
42
echo $message;
43
$_POST['what'] = 'confirmed';
44
- } elseif ( $_POST['process'] ) {
45
- if ( $_POST['delete'] ) {
46
foreach ( $_POST['delete'] as $address ) {
47
$this->delete($address);
48
}
49
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Address(es) deleted!', 'subscribe2') . "</strong></p></div>";
50
}
51
- if ( $_POST['confirm'] ) {
52
foreach ( $_POST['confirm'] as $address ) {
53
$this->toggle($this->sanitize_email($address));
54
}
55
$message = "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Status changed!', 'subscribe2') . "</strong></p></div>";
56
}
57
- if ( $_POST['unconfirm'] ) {
58
foreach ( $_POST['unconfirm'] as $address ) {
59
$this->toggle($this->sanitize_email($address));
60
}
61
$message = "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Status changed!', 'subscribe2') . "</strong></p></div>";
62
}
63
echo $message;
64
- } elseif ( $_POST['searchterm'] ) {
65
$confirmed = $this->get_public();
66
$unconfirmed = $this->get_public(0);
67
$subscribers = array_merge((array)$confirmed, (array)$unconfirmed, (array)$all_users);
@@ -70,19 +70,19 @@ if ( isset($_POST['s2_admin']) ) {
70
$result[] = $subscriber;
71
}
72
}
73
- } elseif ( $_POST['remind'] ) {
74
$this->remind($_POST['reminderemails']);
75
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Reminder Email(s) Sent!', 'subscribe2') . "</strong></p></div>";
76
- } elseif ( $_POST['sub_categories'] && 'subscribe' == $_POST['manage'] ) {
77
$this->subscribe_registered_users($_POST['exportcsv'], $_POST['category']);
78
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Registered Users Subscribed!', 'subscribe2') . "</strong></p></div>";
79
- } elseif ( $_POST['sub_categories'] && 'unsubscribe' == $_POST['manage'] ) {
80
$this->unsubscribe_registered_users($_POST['exportcsv'], $_POST['category']);
81
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Registered Users Unsubscribed!', 'subscribe2') . "</strong></p></div>";
82
- } elseif ( $_POST['sub_format'] ) {
83
$this->format_change( $_POST['format'], $_POST['exportcsv'] );
84
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Format updated for Selected Registered Users!', 'subscribe2') . "</strong></p></div>";
85
- } elseif ( $_POST['sub_digest'] ) {
86
$this->digest_change( $_POST['sub_category'], $_POST['exportcsv'] );
87
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Digest Subscription updated for Selected Registered Users!', 'subscribe2') . "</strong></p></div>";
88
}
@@ -165,7 +165,7 @@ if ( isset($_POST['what']) ) {
165
$what = 'all';
166
$subscribers = array_merge((array)$confirmed, (array)$unconfirmed, (array)$all_users);
167
}
168
- if ( $_POST['searchterm'] ) {
169
$subscribers = &$result;
170
$what = 'public';
171
}
@@ -229,7 +229,7 @@ echo "<br /><br />";
229
// show the selected subscribers
230
$alternate = 'alternate';
231
echo "<table class=\"widefat\" cellpadding=\"2\" cellspacing=\"2\" width=\"100%\">";
232
- $searchterm = ( $_POST['searchterm'] ) ? stripslashes(esc_html($_POST['searchterm'])) : '';
233
echo "<tr class=\"alternate\"><td colspan=\"3\"><input type=\"text\" name=\"searchterm\" value=\"" . $searchterm . "\" /></td>\r\n";
234
echo "<td><input type=\"submit\" class=\"button-secondary\" name=\"search\" value=\"" . __('Search Subscribers', 'subscribe2') . "\" /></td>\r\n";
235
if ( $reminderform ) {
12
// was anything POSTed ?
13
if ( isset($_POST['s2_admin']) ) {
14
check_admin_referer('subscribe2-manage_subscribers' . $s2nonce);
15
+ if ( !empty($_POST['addresses']) ) {
16
$sub_error = '';
17
$unsub_error = '';
18
foreach ( preg_split ("|[\s,]+|", $_POST['addresses']) as $email ) {
41
}
42
echo $message;
43
$_POST['what'] = 'confirmed';
44
+ } elseif ( isset($_POST['process']) ) {
45
+ if ( isset($_POST['delete']) ) {
46
foreach ( $_POST['delete'] as $address ) {
47
$this->delete($address);
48
}
49
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Address(es) deleted!', 'subscribe2') . "</strong></p></div>";
50
}
51
+ if ( isset($_POST['confirm']) ) {
52
foreach ( $_POST['confirm'] as $address ) {
53
$this->toggle($this->sanitize_email($address));
54
}
55
$message = "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Status changed!', 'subscribe2') . "</strong></p></div>";
56
}
57
+ if ( isset($_POST['unconfirm']) ) {
58
foreach ( $_POST['unconfirm'] as $address ) {
59
$this->toggle($this->sanitize_email($address));
60
}
61
$message = "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Status changed!', 'subscribe2') . "</strong></p></div>";
62
}
63
echo $message;
64
+ } elseif ( !empty($_POST['searchterm']) ) {
65
$confirmed = $this->get_public();
66
$unconfirmed = $this->get_public(0);
67
$subscribers = array_merge((array)$confirmed, (array)$unconfirmed, (array)$all_users);
70
$result[] = $subscriber;
71
}
72
}
73
+ } elseif ( isset($_POST['remind']) ) {
74
$this->remind($_POST['reminderemails']);
75
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Reminder Email(s) Sent!', 'subscribe2') . "</strong></p></div>";
76
+ } elseif ( isset($_POST['sub_categories']) && 'subscribe' == $_POST['manage'] ) {
77
$this->subscribe_registered_users($_POST['exportcsv'], $_POST['category']);
78
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Registered Users Subscribed!', 'subscribe2') . "</strong></p></div>";
79
+ } elseif ( isset($_POST['sub_categories']) && 'unsubscribe' == $_POST['manage'] ) {
80
$this->unsubscribe_registered_users($_POST['exportcsv'], $_POST['category']);
81
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Registered Users Unsubscribed!', 'subscribe2') . "</strong></p></div>";
82
+ } elseif ( isset($_POST['sub_format']) ) {
83
$this->format_change( $_POST['format'], $_POST['exportcsv'] );
84
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Format updated for Selected Registered Users!', 'subscribe2') . "</strong></p></div>";
85
+ } elseif ( isset($_POST['sub_digest']) ) {
86
$this->digest_change( $_POST['sub_category'], $_POST['exportcsv'] );
87
echo "<div id=\"message\" class=\"updated fade\"><p><strong>" . __('Digest Subscription updated for Selected Registered Users!', 'subscribe2') . "</strong></p></div>";
88
}
165
$what = 'all';
166
$subscribers = array_merge((array)$confirmed, (array)$unconfirmed, (array)$all_users);
167
}
168
+ if ( !empty($_POST['searchterm']) ) {
169
$subscribers = &$result;
170
$what = 'public';
171
}
229
// show the selected subscribers
230
$alternate = 'alternate';
231
echo "<table class=\"widefat\" cellpadding=\"2\" cellspacing=\"2\" width=\"100%\">";
232
+ $searchterm = ( isset($_POST['searchterm']) ) ? stripslashes(esc_html($_POST['searchterm'])) : '';
233
echo "<tr class=\"alternate\"><td colspan=\"3\"><input type=\"text\" name=\"searchterm\" value=\"" . $searchterm . "\" /></td>\r\n";
234
echo "<td><input type=\"submit\" class=\"button-secondary\" name=\"search\" value=\"" . __('Search Subscribers', 'subscribe2') . "\" /></td>\r\n";
235
if ( $reminderform ) {
admin/your_subscriptions.php CHANGED
@@ -16,7 +16,7 @@ if ( isset($_GET['email']) ) {
16
if ( isset($_POST['s2_admin']) && 'user' == $_POST['s2_admin'] ) {
17
check_admin_referer('subscribe2-user_subscribers' . $s2nonce);
18
19
- if ( $_POST['submit'] ) {
20
if ( isset($_POST['s2_format']) ) {
21
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_format'), $_POST['s2_format']);
22
} else {
@@ -34,7 +34,7 @@ if ( isset($_POST['s2_admin']) && 'user' == $_POST['s2_admin'] ) {
34
}
35
}
36
37
- $cats = $_POST['category'];
38
39
if ( empty($cats) || $cats == '-1' ) {
40
$oldcats = explode(',', get_user_meta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), true));
@@ -74,16 +74,16 @@ if ( isset($_POST['s2_admin']) && 'user' == $_POST['s2_admin'] ) {
74
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $cats));
75
}
76
77
- $authors = $_POST['author'];
78
if ( is_array($authors) ) {
79
$authors = implode(',', $authors);
80
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_authors'), $authors);
81
} elseif ( empty($authors) ) {
82
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_authors'), '');
83
}
84
- } elseif ( $_POST['subscribe'] ) {
85
$this->one_click_handler($user_ID, 'subscribe');
86
- } elseif ( $_POST['unsubscribe'] ) {
87
$this->one_click_handler($user_ID, 'unsubscribe');
88
}
89
@@ -124,10 +124,12 @@ if ( $this->subscribe2_options['email_freq'] == 'never' ) {
124
echo "</p>";
125
}
126
127
- // One-click subscribe and unsubscribe buttons
128
- echo "<h2>" . __('One Click Subscription / Unsubscription', 'subscribe2') . "</h2>\r\n";
129
- echo "<p class=\"submit\"><input type=\"submit\" class=\"button-primary\" name=\"subscribe\" value=\"" . __("Subscribe to All", 'subscribe2') . "\" />&nbsp;&nbsp;";
130
- echo "<input type=\"submit\" class=\"button-primary\" name=\"unsubscribe\" value=\"" . __("Unsubscribe from All", 'subscribe2') . "\" /></p>";
131
132
// subscribed categories
133
if ( $this->s2_mu ) {
16
if ( isset($_POST['s2_admin']) && 'user' == $_POST['s2_admin'] ) {
17
check_admin_referer('subscribe2-user_subscribers' . $s2nonce);
18
19
+ if ( isset($_POST['submit']) ) {
20
if ( isset($_POST['s2_format']) ) {
21
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_format'), $_POST['s2_format']);
22
} else {
34
}
35
}
36
37
+ $cats = ( isset($_POST['category']) ) ? $_POST['category'] : '';
38
39
if ( empty($cats) || $cats == '-1' ) {
40
$oldcats = explode(',', get_user_meta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), true));
74
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), implode(',', $cats));
75
}
76
77
+ $authors = ( isset($_POST['author']) ) ? $_POST['author'] : '';
78
if ( is_array($authors) ) {
79
$authors = implode(',', $authors);
80
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_authors'), $authors);
81
} elseif ( empty($authors) ) {
82
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_authors'), '');
83
}
84
+ } elseif ( isset($_POST['subscribe']) ) {
85
$this->one_click_handler($user_ID, 'subscribe');
86
+ } elseif ( isset($_POST['unsubscribe']) ) {
87
$this->one_click_handler($user_ID, 'unsubscribe');
88
}
89
124
echo "</p>";
125
}
126
127
+ if ( $this->subscribe2_options['one_click_profile'] == 'yes' ) {
128
+ // One-click subscribe and unsubscribe buttons
129
+ echo "<h2>" . __('One Click Subscription / Unsubscription', 'subscribe2') . "</h2>\r\n";
130
+ echo "<p class=\"submit\"><input type=\"submit\" class=\"button-primary\" name=\"subscribe\" value=\"" . __("Subscribe to All", 'subscribe2') . "\" />&nbsp;&nbsp;";
131
+ echo "<input type=\"submit\" class=\"button-primary\" name=\"unsubscribe\" value=\"" . __("Unsubscribe from All", 'subscribe2') . "\" /></p>";
132
+ }
133
134
// subscribed categories
135
if ( $this->s2_mu ) {
classes/class-s2-admin.php CHANGED
@@ -21,7 +21,7 @@ class s2_admin extends s2class {
21
22
add_submenu_page('s2', __('Send Email', 'subscribe2'), __('Send Email', 'subscribe2'), apply_filters('s2_capability', "publish_posts", 'send'), 's2_posts', array(&$this, 'write_menu'));
23
24
- $s2nonce = md5('subscribe2');
25
} // end admin_menu()
26
27
/**
@@ -154,7 +154,7 @@ class s2_admin extends s2class {
154
function s2_meta_box() {
155
global $post_ID;
156
$s2mail = get_post_meta($post_ID, 's2mail', true);
157
- echo "<input type=\"hidden\" name=\"s2meta_nonce\" id=\"s2meta_nonce\" value=\"" . wp_create_nonce(md5(plugin_basename(__FILE__))) . "\" />";
158
echo __("Check here to disable sending of an email notification for this post/page", 'subscribe2');
159
echo "&nbsp;&nbsp;<input type=\"checkbox\" name=\"s2_meta_field\" value=\"no\"";
160
if ( $s2mail == 'no' || ($this->subscribe2_options['s2meta_default'] == "1" && $s2mail == "") ) {
@@ -167,7 +167,7 @@ class s2_admin extends s2class {
167
Meta box form handler
168
*/
169
function s2_meta_handler($post_id) {
170
- if ( !isset($_POST['s2meta_nonce']) || !wp_verify_nonce($_POST['s2meta_nonce'], md5(plugin_basename(__FILE__))) ) { return $post_id; }
171
172
if ( 'page' == $_POST['post_type'] ) {
173
if ( !current_user_can('edit_page', $post_id) ) { return $post_id; }
@@ -421,8 +421,12 @@ class s2_admin extends s2class {
421
422
$args = array('fields' => array('ID', 'display_name'), 'role' => 'administrator');
423
$wp_user_query = get_users( $args );
424
- foreach ($wp_user_query as $user) {
425
- $admins[] = $user;
426
}
427
428
if ( $inc_author ) {
@@ -527,7 +531,7 @@ class s2_admin extends s2class {
527
if ( '' == $emails || '' == $cats ) { return false; }
528
global $wpdb;
529
530
- $useremails = explode(",", $emails);
531
$useremails = implode("', '", $useremails);
532
533
$sql = "SELECT ID FROM $wpdb->users WHERE user_email IN ('$useremails')";
@@ -559,7 +563,7 @@ class s2_admin extends s2class {
559
if ( '' == $emails || '' == $cats ) { return false; }
560
global $wpdb;
561
562
- $useremails = explode(",", $emails);
563
$useremails = "'" . implode("', '", $useremails) . "'";
564
565
$sql = "SELECT ID FROM $wpdb->users WHERE user_email IN ($useremails)";
@@ -597,7 +601,7 @@ class s2_admin extends s2class {
597
$ids = $wpdb->get_col("SELECT ID FROM $wpdb->users WHERE user_email IN ($emails)");
598
$ids = implode(',', $ids);
599
$sql = "UPDATE $wpdb->usermeta SET meta_value='{$format}' WHERE meta_key='" . $this->get_usermeta_keyname('s2_format') . "' AND user_id IN ($ids)";
600
- $wpdb->get_results("UPDATE $wpdb->usermeta SET meta_value='{$format}' WHERE meta_key='" . $this->get_usermeta_keyname('s2_format') . "' AND user_id IN ($ids)");
601
} // end format_change()
602
603
/**
21
22
add_submenu_page('s2', __('Send Email', 'subscribe2'), __('Send Email', 'subscribe2'), apply_filters('s2_capability', "publish_posts", 'send'), 's2_posts', array(&$this, 'write_menu'));
23
24
+ $s2nonce = wp_hash('subscribe2');
25
} // end admin_menu()
26
27
/**
154
function s2_meta_box() {
155
global $post_ID;
156
$s2mail = get_post_meta($post_ID, 's2mail', true);
157
+ echo "<input type=\"hidden\" name=\"s2meta_nonce\" id=\"s2meta_nonce\" value=\"" . wp_create_nonce(wp_hash(plugin_basename(__FILE__))) . "\" />";
158
echo __("Check here to disable sending of an email notification for this post/page", 'subscribe2');
159
echo "&nbsp;&nbsp;<input type=\"checkbox\" name=\"s2_meta_field\" value=\"no\"";
160
if ( $s2mail == 'no' || ($this->subscribe2_options['s2meta_default'] == "1" && $s2mail == "") ) {
167
Meta box form handler
168
*/
169
function s2_meta_handler($post_id) {
170
+ if ( !isset($_POST['s2meta_nonce']) || !wp_verify_nonce($_POST['s2meta_nonce'], wp_hash(plugin_basename(__FILE__))) ) { return $post_id; }
171
172
if ( 'page' == $_POST['post_type'] ) {
173
if ( !current_user_can('edit_page', $post_id) ) { return $post_id; }
421
422
$args = array('fields' => array('ID', 'display_name'), 'role' => 'administrator');
423
$wp_user_query = get_users( $args );
424
+ if ( !empty($wp_user_query) ) {
425
+ foreach ($wp_user_query as $user) {
426
+ $admins[] = $user;
427
+ }
428
+ } else {
429
+ $admins = array();
430
}
431
432
if ( $inc_author ) {
531
if ( '' == $emails || '' == $cats ) { return false; }
532
global $wpdb;
533
534
+ $useremails = explode(",\r\n", $emails);
535
$useremails = implode("', '", $useremails);
536
537
$sql = "SELECT ID FROM $wpdb->users WHERE user_email IN ('$useremails')";
563
if ( '' == $emails || '' == $cats ) { return false; }
564
global $wpdb;
565
566
+ $useremails = explode(",\r\n", $emails);
567
$useremails = "'" . implode("', '", $useremails) . "'";
568
569
$sql = "SELECT ID FROM $wpdb->users WHERE user_email IN ($useremails)";
601
$ids = $wpdb->get_col("SELECT ID FROM $wpdb->users WHERE user_email IN ($emails)");
602
$ids = implode(',', $ids);
603
$sql = "UPDATE $wpdb->usermeta SET meta_value='{$format}' WHERE meta_key='" . $this->get_usermeta_keyname('s2_format') . "' AND user_id IN ($ids)";
604
+ $wpdb->get_results($sql);
605
} // end format_change()
606
607
/**
classes/class-s2-core.php CHANGED
@@ -413,6 +413,7 @@ class s2class {
413
Function to add UTM tracking details to links
414
*/
415
function get_tracking_link($link) {
416
if ( !empty($this->subscribe2_options['tracking']) ) {
417
$delimiter = '?';
418
if ( strpos($link, $delimiter) > 0 ) { $delimiter = '&'; }
@@ -512,6 +513,10 @@ class s2class {
512
// if not, no sense doing anything else
513
return $post;
514
}
515
}
516
517
// we set these class variables so that we can avoid
@@ -668,7 +673,7 @@ class s2class {
668
669
// generate the URL "?s2=ACTION+HASH+ID"
670
// ACTION = 1 to subscribe, 0 to unsubscribe
671
- // HASH = md5 hash of email address
672
// ID = user's ID in the subscribe2 table
673
// use home instead of siteurl incase index.php is not in core wordpress directory
674
$link = get_option('home') . "/?s2=";
@@ -678,7 +683,7 @@ class s2class {
678
} elseif ( 'del' == $what ) {
679
$link .= '0';
680
}
681
- $link .= md5($this->email);
682
$link .= $id;
683
684
// sort the headers now so we have all substitute information
@@ -769,14 +774,14 @@ class s2class {
769
if ( $confirm ) {
770
$wpdb->get_results("UPDATE $this->public SET active='1', ip='$this->ip' WHERE CAST(email as binary)='$email'");
771
} else {
772
- $wpdb->get_results("UPDATE $this->public SET date=NOW() WHERE CAST(email as binary)='$email'");
773
}
774
} else {
775
if ( $confirm ) {
776
global $current_user;
777
- $wpdb->get_results($wpdb->prepare("INSERT INTO $this->public (email, active, date, ip) VALUES (%s, %d, NOW(), %s)", $email, 1, $current_user->user_login));
778
} else {
779
- $wpdb->get_results($wpdb->prepare("INSERT INTO $this->public (email, active, date, ip) VALUES (%s, %d, NOW(), %s)", $email, 0, $this->ip));
780
}
781
}
782
} // end add()
@@ -1134,7 +1139,7 @@ class s2class {
1134
}
1135
1136
delete_user_meta($user_ID, $this->get_usermeta_keyname('s2_subscribed'));
1137
- delete_user_meta($user_ID, $this->get_usermeta_keyname('s2_autosub'));
1138
}
1139
} //end one_click_handler()
1140
@@ -1617,7 +1622,6 @@ class s2class {
1617
$this->load_strings();
1618
1619
// Is this WordPressMU or not?
1620
- $this->s2_mu = false;
1621
if ( isset($wpmu_version) || strpos($wp_version, 'wordpress-mu') ) {
1622
$this->s2_mu = true;
1623
}
@@ -1724,7 +1728,7 @@ class s2class {
1724
}
1725
1726
// capture CSV export
1727
- if ( isset($_POST['s2_admin']) && $_POST['csv'] ) {
1728
$date = date('Y-m-d');
1729
header("Content-Description: File Transfer");
1730
header("Content-type: application/octet-stream");
@@ -1774,11 +1778,16 @@ class s2class {
1774
var $post_time = '';
1775
var $myname = '';
1776
var $myemail = '';
1777
var $signup_dates = array();
1778
var $filtered = 0;
1779
var $preview_email = false;
1780
1781
// state variables used to affect processing
1782
var $action = '';
1783
var $email = '';
1784
var $message = '';
413
Function to add UTM tracking details to links
414
*/
415
function get_tracking_link($link) {
416
+ if ( empty($link) ) { return; }
417
if ( !empty($this->subscribe2_options['tracking']) ) {
418
$delimiter = '?';
419
if ( strpos($link, $delimiter) > 0 ) { $delimiter = '&'; }
513
// if not, no sense doing anything else
514
return $post;
515
}
516
+ } else {
517
+ // make sure we prime the taxonomy variable for preview posts
518
+ $s2_taxonomies = array('category');
519
+ $s2_taxonomies = apply_filters('s2_taxonomies', $s2_taxonomies);
520
}
521
522
// we set these class variables so that we can avoid
673
674
// generate the URL "?s2=ACTION+HASH+ID"
675
// ACTION = 1 to subscribe, 0 to unsubscribe
676
+ // HASH = wp_hash of email address
677
// ID = user's ID in the subscribe2 table
678
// use home instead of siteurl incase index.php is not in core wordpress directory
679
$link = get_option('home') . "/?s2=";
683
} elseif ( 'del' == $what ) {
684
$link .= '0';
685
}
686
+ $link .= wp_hash($this->email);
687
$link .= $id;
688
689
// sort the headers now so we have all substitute information
774
if ( $confirm ) {
775
$wpdb->get_results("UPDATE $this->public SET active='1', ip='$this->ip' WHERE CAST(email as binary)='$email'");
776
} else {
777
+ $wpdb->get_results("UPDATE $this->public SET date=CURDATE() WHERE CAST(email as binary)='$email'");
778
}
779
} else {
780
if ( $confirm ) {
781
global $current_user;
782
+ $wpdb->get_results($wpdb->prepare("INSERT INTO $this->public (email, active, date, ip) VALUES (%s, %d, CURDATE(), %s)", $email, 1, $current_user->user_login));
783
} else {
784
+ $wpdb->get_results($wpdb->prepare("INSERT INTO $this->public (email, active, date, ip) VALUES (%s, %d, CURDATE(), %s)", $email, 0, $this->ip));
785
}
786
}
787
} // end add()
1139
}
1140
1141
delete_user_meta($user_ID, $this->get_usermeta_keyname('s2_subscribed'));
1142
+ update_user_meta($user_ID, $this->get_usermeta_keyname('s2_autosub'), 'no');
1143
}
1144
} //end one_click_handler()
1145
1622
$this->load_strings();
1623
1624
// Is this WordPressMU or not?
1625
if ( isset($wpmu_version) || strpos($wp_version, 'wordpress-mu') ) {
1626
$this->s2_mu = true;
1627
}
1728
}
1729
1730
// capture CSV export
1731
+ if ( isset($_POST['s2_admin']) && isset($_POST['csv']) ) {
1732
$date = date('Y-m-d');
1733
header("Content-Description: File Transfer");
1734
header("Content-type: application/octet-stream");
1778
var $post_time = '';
1779
var $myname = '';
1780
var $myemail = '';
1781
+ var $authorname = '';
1782
+ var $post_cat_names = '';
1783
+ var $post_tag_names = '';
1784
+ var $post_count = '';
1785
var $signup_dates = array();
1786
var $filtered = 0;
1787
var $preview_email = false;
1788
1789
// state variables used to affect processing
1790
+ var $s2_mu = false;
1791
var $action = '';
1792
var $email = '';
1793
var $message = '';
classes/class-s2-frontend.php CHANGED
@@ -20,14 +20,18 @@ class s2_frontend extends s2class {
20
return $this->s2form;
21
}
22
23
// if a button is hidden, show only other
24
if ( $hide == 'subscribe' ) {
25
- $this->input_form_action = "<input type=\"submit\" name=\"unsubscribe\" value=\"" . __('Unsubscribe', 'subscribe2') . "\" />";
26
} elseif ( $hide == 'unsubscribe' ) {
27
- $this->input_form_action = "<input type=\"submit\" name=\"subscribe\" value=\"" . __('Subscribe', 'subscribe2') . "\" />";
28
} else {
29
// both form input actions
30
- $this->input_form_action = "<input type=\"submit\" name=\"subscribe\" value=\"" . __('Subscribe', 'subscribe2') . "\" />&nbsp;<input type=\"submit\" name=\"unsubscribe\" value=\"" . __('Unsubscribe', 'subscribe2') . "\" />";
31
}
32
// if ID is provided, get permalink
33
if ( $id ) {
@@ -166,7 +170,7 @@ class s2_frontend extends s2class {
166
$id = intval(substr($code, 33));
167
if ( $id ) {
168
$this->email = $this->sanitize_email($this->get_email($id));
169
- if ( !$this->email || $hash !== md5($this->email) ) {
170
return $this->no_such_email;
171
}
172
} else {
20
return $this->s2form;
21
}
22
23
+ // Apply filters to button text
24
+ $unsubscribe_button_value = apply_filters('s2_unsubscribe_button', __('Unsubscribe', 'subscribe2'));
25
+ $subscribe_button_value = apply_filters('s2_subscribe_button', __('Subscribe', 'subscribe2'));
26
+
27
// if a button is hidden, show only other
28
if ( $hide == 'subscribe' ) {
29
+ $this->input_form_action = "<input type=\"submit\" name=\"unsubscribe\" value=\"" . esc_attr($unsubscribe_button_value) . "\" />";
30
} elseif ( $hide == 'unsubscribe' ) {
31
+ $this->input_form_action = "<input type=\"submit\" name=\"subscribe\" value=\"" . esc_attr($subscribe_button_value) . "\" />";
32
} else {
33
// both form input actions
34
+ $this->input_form_action = "<input type=\"submit\" name=\"subscribe\" value=\"" . esc_attr($subscribe_button_value) . "\" />&nbsp;<input type=\"submit\" name=\"unsubscribe\" value=\"" . esc_attr($unsubscribe_button_value) . "\" />";
35
}
36
// if ID is provided, get permalink
37
if ( $id ) {
170
$id = intval(substr($code, 33));
171
if ( $id ) {
172
$this->email = $this->sanitize_email($this->get_email($id));
173
+ if ( !$this->email || $hash !== wp_hash($this->email) ) {
174
return $this->no_such_email;
175
}
176
} else {
subscribe2.php CHANGED
@@ -3,7 +3,7 @@
3
Plugin Name: Subscribe2
4
Plugin URI: http://subscribe2.wordpress.com
5
Description: Notifies an email list when new entries are posted.
6
- Version: 8.2
7
Author: Matthew Robinson
8
Author URI: http://subscribe2.wordpress.com
9
Licence: GPL3
@@ -43,7 +43,7 @@ if ( version_compare($GLOBALS['wp_version'], '3.1', '<') || !function_exists( 'a
43
44
// our version number. Don't touch this or any line below
45
// unless you know exactly what you are doing
46
- define( 'S2VERSION', '8.2' );
47
define( 'S2PATH', trailingslashit(dirname(__FILE__)) );
48
define( 'S2DIR', trailingslashit(dirname(plugin_basename(__FILE__))) );
49
define( 'S2URL', plugin_dir_url(dirname(__FILE__)) . S2DIR );
3
Plugin Name: Subscribe2
4
Plugin URI: http://subscribe2.wordpress.com
5
Description: Notifies an email list when new entries are posted.
6
+ Version: 8.3
7
Author: Matthew Robinson
8
Author URI: http://subscribe2.wordpress.com
9
Licence: GPL3
43
44
// our version number. Don't touch this or any line below
45
// unless you know exactly what you are doing
46
+ define( 'S2VERSION', '8.3' );
47
define( 'S2PATH', trailingslashit(dirname(__FILE__)) );
48
define( 'S2DIR', trailingslashit(dirname(plugin_basename(__FILE__))) );
49
define( 'S2URL', plugin_dir_url(dirname(__FILE__)) . S2DIR );
subscribe2.pot CHANGED
@@ -8,7 +8,7 @@ msgid ""
8
msgstr ""
9
"Project-Id-Version: PACKAGE VERSION\n"
10
"Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2012-04-18 20:21+0100\n"
12
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,27 +17,31 @@ msgstr ""
17
"Content-Type: text/plain; charset=CHARSET\n"
18
"Content-Transfer-Encoding: 8bit\n"
19
20
- #: admin/send_email.php:51
21
msgid "Send an email to subscribers"
22
msgstr ""
23
24
- #: admin/send_email.php:59
25
msgid "A message from"
26
msgstr ""
27
28
- #: admin/send_email.php:64
29
msgid "Subject"
30
msgstr ""
31
32
- #: admin/send_email.php:67
33
msgid "Recipients:"
34
msgstr ""
35
36
- #: admin/send_email.php:71
37
msgid "Preview"
38
msgstr ""
39
40
- #: admin/send_email.php:71
41
msgid "Send"
42
msgstr ""
43
@@ -115,7 +119,7 @@ msgstr ""
115
#: admin/settings.php:265 admin/settings.php:415 admin/settings.php:420
116
#: admin/settings.php:434 admin/settings.php:441 admin/settings.php:453
117
#: admin/subscribers.php:339 admin/your_subscriptions.php:121
118
- #: admin/your_subscriptions.php:159
119
msgid "Yes"
120
msgstr ""
121
@@ -123,7 +127,7 @@ msgstr ""
123
#: admin/settings.php:267 admin/settings.php:412 admin/settings.php:417
124
#: admin/settings.php:422 admin/settings.php:436 admin/settings.php:443
125
#: admin/settings.php:450 admin/settings.php:455 admin/subscribers.php:341
126
- #: admin/your_subscriptions.php:123 admin/your_subscriptions.php:163
127
msgid "No"
128
msgstr ""
129
@@ -518,14 +522,13 @@ msgid "Enter addresses, one per line or comma-separated"
518
msgstr ""
519
520
#: admin/subscribers.php:219 admin/subscribers.php:324
521
- #: admin/your_subscriptions.php:257 classes/class-s2-core.php:17
522
- #: classes/class-s2-frontend.php:27 classes/class-s2-frontend.php:30
523
msgid "Subscribe"
524
msgstr ""
525
526
#: admin/subscribers.php:220 admin/subscribers.php:325
527
- #: admin/your_subscriptions.php:236 classes/class-s2-frontend.php:25
528
- #: classes/class-s2-frontend.php:30
529
msgid "Unsubscribe"
530
msgstr ""
531
@@ -637,59 +640,59 @@ msgstr ""
637
msgid "Automatically subscribe me to newly created categories"
638
msgstr ""
639
640
- #: admin/your_subscriptions.php:128
641
msgid "One Click Subscription / Unsubscription"
642
msgstr ""
643
644
- #: admin/your_subscriptions.php:129
645
msgid "Subscribe to All"
646
msgstr ""
647
648
- #: admin/your_subscriptions.php:130
649
msgid "Unsubscribe from All"
650
msgstr ""
651
652
- #: admin/your_subscriptions.php:139
653
msgid "Unsubscribe me from this blog"
654
msgstr ""
655
656
- #: admin/your_subscriptions.php:143
657
msgid "Subscribe to all categories"
658
msgstr ""
659
660
- #: admin/your_subscriptions.php:145
661
msgid "Subscribed Categories on"
662
msgstr ""
663
664
- #: admin/your_subscriptions.php:147
665
msgid "Subscribed Categories"
666
msgstr ""
667
668
- #: admin/your_subscriptions.php:153
669
msgid "Receive periodic summaries of new posts?"
670
msgstr ""
671
672
- #: admin/your_subscriptions.php:169
673
msgid "Do not send notifications for post made by these authors"
674
msgstr ""
675
676
- #: admin/your_subscriptions.php:175
677
msgid "Update Preferences"
678
msgstr ""
679
680
- #: admin/your_subscriptions.php:225
681
msgid "Subscribed Blogs"
682
msgstr ""
683
684
- #: admin/your_subscriptions.php:230 admin/your_subscriptions.php:251
685
msgid "Viewing Settings Now"
686
msgstr ""
687
688
- #: admin/your_subscriptions.php:234 admin/your_subscriptions.php:255
689
msgid "View Settings"
690
msgstr ""
691
692
- #: admin/your_subscriptions.php:246
693
msgid "Subscribe to new blogs"
694
msgstr ""
695
@@ -750,63 +753,63 @@ msgstr ""
750
msgid "Registered Subscribers"
751
msgstr ""
752
753
- #: classes/class-s2-admin.php:429
754
msgid "Post Author"
755
msgstr ""
756
757
- #: classes/class-s2-admin.php:453
758
msgid ""
759
"The WordPress cron functions may be disabled on this server. Digest "
760
"notifications may not work."
761
msgstr ""
762
763
- #: classes/class-s2-admin.php:457
764
msgid "For each Post"
765
msgstr ""
766
767
- #: classes/class-s2-admin.php:471
768
msgid "Send Digest Notification at"
769
msgstr ""
770
771
- #: classes/class-s2-admin.php:483
772
msgid ""
773
"This option will be ignored if the time selected is not in the future in "
774
"relation to the current time"
775
msgstr ""
776
777
- #: classes/class-s2-admin.php:486
778
msgid "Current UTC time is"
779
msgstr ""
780
781
- #: classes/class-s2-admin.php:488
782
msgid "Current blog time is"
783
msgstr ""
784
785
- #: classes/class-s2-admin.php:490
786
msgid "Next email notification will be sent when your blog time is after"
787
msgstr ""
788
789
- #: classes/class-s2-admin.php:493
790
msgid "Attempt to resend the last Digest Notification email"
791
msgstr ""
792
793
- #: classes/class-s2-admin.php:494
794
msgid "Resend Digest"
795
msgstr ""
796
797
- #: classes/class-s2-admin.php:717
798
msgid "Email subscription"
799
msgstr ""
800
801
- #: classes/class-s2-admin.php:719
802
msgid "Subscribe / Unsubscribe"
803
msgstr ""
804
805
- #: classes/class-s2-admin.php:720
806
msgid "Receive notifications"
807
msgstr ""
808
809
- #: classes/class-s2-admin.php:721
810
msgid ""
811
"Check if you want to receive email notification when new posts are published"
812
msgstr ""
@@ -899,109 +902,109 @@ msgstr ""
899
msgid "Options reset!"
900
msgstr ""
901
902
- #: classes/class-s2-core.php:620
903
msgid "Plain Text Excerpt Preview"
904
msgstr ""
905
906
- #: classes/class-s2-core.php:622
907
msgid "Plain Text Full Preview"
908
msgstr ""
909
910
- #: classes/class-s2-core.php:624
911
msgid "HTML Excerpt Preview"
912
msgstr ""
913
914
- #: classes/class-s2-core.php:626
915
msgid "HTML Full Preview"
916
msgstr ""
917
918
- #: classes/class-s2-core.php:1205
919
msgid "Registered User"
920
msgstr ""
921
922
- #: classes/class-s2-core.php:1210
923
msgid "Confirmed Public Subscriber"
924
msgstr ""
925
926
- #: classes/class-s2-core.php:1212
927
msgid "Unconfirmed Public Subscriber"
928
msgstr ""
929
930
- #: classes/class-s2-core.php:1249
931
msgid "Check here to Subscribe to email notifications for new posts"
932
msgstr ""
933
934
- #: classes/class-s2-core.php:1255
935
msgid ""
936
"By registering with this blog you are also agreeing to receive email "
937
"notifications for new posts but you can unsubscribe at anytime"
938
msgstr ""
939
940
- #: classes/class-s2-core.php:1281
941
msgid "Check here to Subscribe to notifications for new posts"
942
msgstr ""
943
944
- #: classes/class-s2-core.php:1371
945
msgid "Weekly"
946
msgstr ""
947
948
- #: classes/class-s2-core.php:1494 classes/class-s2-core.php:1495
949
msgid "Author"
950
msgstr ""
951
952
- #: classes/class-s2-core.php:1503
953
msgid "Posted on"
954
msgstr ""
955
956
- #: classes/class-s2-core.php:1507 classes/class-s2-core.php:1508
957
msgid "Posted in"
958
msgstr ""
959
960
- #: classes/class-s2-core.php:1513 classes/class-s2-core.php:1514
961
msgid "Tagged as"
962
msgstr ""
963
964
- #: classes/class-s2-core.php:1578
965
msgid "Digest Email"
966
msgstr ""
967
968
- #: classes/class-s2-core.php:1588
969
msgid "Digest Preview"
970
msgstr ""
971
972
- #: classes/class-s2-frontend.php:42 classes/class-s2-frontend.php:44
973
msgid "Your email:"
974
msgstr ""
975
976
- #: classes/class-s2-frontend.php:44
977
msgid "Enter email address..."
978
msgstr ""
979
980
- #: classes/class-s2-frontend.php:149
981
msgid "Subscription Confirmation"
982
msgstr ""
983
984
- #: classes/class-s2-frontend.php:187
985
msgid "New Subscription"
986
msgstr ""
987
988
- #: classes/class-s2-frontend.php:189
989
msgid "subscribed to email notifications!"
990
msgstr ""
991
992
- #: classes/class-s2-frontend.php:210
993
msgid "New Unsubscription"
994
msgstr ""
995
996
- #: classes/class-s2-frontend.php:212
997
msgid "unsubscribed from email notifications!"
998
msgstr ""
999
1000
- #: classes/class-s2-frontend.php:238
1001
msgid "[Un]Subscribe to Posts"
1002
msgstr ""
1003
1004
- #: classes/class-s2-frontend.php:262 classes/class-s2-frontend.php:264
1005
msgid "Subscribe to this blog"
1006
msgstr ""
1007
8
msgstr ""
9
"Project-Id-Version: PACKAGE VERSION\n"
10
"Report-Msgid-Bugs-To: \n"
11
+ "POT-Creation-Date: 2012-06-15 08:28+0100\n"
12
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
17
"Content-Type: text/plain; charset=CHARSET\n"
18
"Content-Transfer-Encoding: 8bit\n"
19
20
+ #: admin/send_email.php:42
21
+ msgid "Your email was empty"
22
+ msgstr ""
23
+
24
+ #: admin/send_email.php:53
25
msgid "Send an email to subscribers"
26
msgstr ""
27
28
+ #: admin/send_email.php:61
29
msgid "A message from"
30
msgstr ""
31
32
+ #: admin/send_email.php:66
33
msgid "Subject"
34
msgstr ""
35
36
+ #: admin/send_email.php:69
37
msgid "Recipients:"
38
msgstr ""
39
40
+ #: admin/send_email.php:73
41
msgid "Preview"
42
msgstr ""
43
44
+ #: admin/send_email.php:73
45
msgid "Send"
46
msgstr ""
47
119
#: admin/settings.php:265 admin/settings.php:415 admin/settings.php:420
120
#: admin/settings.php:434 admin/settings.php:441 admin/settings.php:453
121
#: admin/subscribers.php:339 admin/your_subscriptions.php:121
122
+ #: admin/your_subscriptions.php:161
123
msgid "Yes"
124
msgstr ""
125
127
#: admin/settings.php:267 admin/settings.php:412 admin/settings.php:417
128
#: admin/settings.php:422 admin/settings.php:436 admin/settings.php:443
129
#: admin/settings.php:450 admin/settings.php:455 admin/subscribers.php:341
130
+ #: admin/your_subscriptions.php:123 admin/your_subscriptions.php:165
131
msgid "No"
132
msgstr ""
133
522
msgstr ""
523
524
#: admin/subscribers.php:219 admin/subscribers.php:324
525
+ #: admin/your_subscriptions.php:259 classes/class-s2-core.php:17
526
+ #: classes/class-s2-frontend.php:25
527
msgid "Subscribe"
528
msgstr ""
529
530
#: admin/subscribers.php:220 admin/subscribers.php:325
531
+ #: admin/your_subscriptions.php:238 classes/class-s2-frontend.php:24
532
msgid "Unsubscribe"
533
msgstr ""
534
640
msgid "Automatically subscribe me to newly created categories"
641
msgstr ""
642
643
+ #: admin/your_subscriptions.php:129
644
msgid "One Click Subscription / Unsubscription"
645
msgstr ""
646
647
+ #: admin/your_subscriptions.php:130
648
msgid "Subscribe to All"
649
msgstr ""
650
651
+ #: admin/your_subscriptions.php:131
652
msgid "Unsubscribe from All"
653
msgstr ""
654
655
+ #: admin/your_subscriptions.php:141
656
msgid "Unsubscribe me from this blog"
657
msgstr ""
658
659
+ #: admin/your_subscriptions.php:145
660
msgid "Subscribe to all categories"
661
msgstr ""
662
663
+ #: admin/your_subscriptions.php:147
664
msgid "Subscribed Categories on"
665
msgstr ""
666
667
+ #: admin/your_subscriptions.php:149
668
msgid "Subscribed Categories"
669
msgstr ""
670
671
+ #: admin/your_subscriptions.php:155
672
msgid "Receive periodic summaries of new posts?"
673
msgstr ""
674
675
+ #: admin/your_subscriptions.php:171
676
msgid "Do not send notifications for post made by these authors"
677
msgstr ""
678
679
+ #: admin/your_subscriptions.php:177
680
msgid "Update Preferences"
681
msgstr ""
682
683
+ #: admin/your_subscriptions.php:227
684
msgid "Subscribed Blogs"
685
msgstr ""
686
687
+ #: admin/your_subscriptions.php:232 admin/your_subscriptions.php:253
688
msgid "Viewing Settings Now"
689
msgstr ""
690
691
+ #: admin/your_subscriptions.php:236 admin/your_subscriptions.php:257
692
msgid "View Settings"
693
msgstr ""
694
695
+ #: admin/your_subscriptions.php:248
696
msgid "Subscribe to new blogs"
697
msgstr ""
698
753
msgid "Registered Subscribers"
754
msgstr ""
755
756
+ #: classes/class-s2-admin.php:433
757
msgid "Post Author"
758
msgstr ""
759
760
+ #: classes/class-s2-admin.php:457
761
msgid ""
762
"The WordPress cron functions may be disabled on this server. Digest "
763
"notifications may not work."
764
msgstr ""
765
766
+ #: classes/class-s2-admin.php:461
767
msgid "For each Post"
768
msgstr ""
769
770
+ #: classes/class-s2-admin.php:475
771
msgid "Send Digest Notification at"
772
msgstr ""
773
774
+ #: classes/class-s2-admin.php:487
775
msgid ""
776
"This option will be ignored if the time selected is not in the future in "
777
"relation to the current time"
778
msgstr ""
779
780
+ #: classes/class-s2-admin.php:490
781
msgid "Current UTC time is"
782
msgstr ""
783
784
+ #: classes/class-s2-admin.php:492
785
msgid "Current blog time is"
786
msgstr ""
787
788
+ #: classes/class-s2-admin.php:494
789
msgid "Next email notification will be sent when your blog time is after"
790
msgstr ""
791
792
+ #: classes/class-s2-admin.php:497
793
msgid "Attempt to resend the last Digest Notification email"
794
msgstr ""
795
796
+ #: classes/class-s2-admin.php:498
797
msgid "Resend Digest"
798
msgstr ""
799
800
+ #: classes/class-s2-admin.php:721
801
msgid "Email subscription"
802
msgstr ""
803
804
+ #: classes/class-s2-admin.php:723
805
msgid "Subscribe / Unsubscribe"
806
msgstr ""
807
808
+ #: classes/class-s2-admin.php:724
809
msgid "Receive notifications"
810
msgstr ""
811
812
+ #: classes/class-s2-admin.php:725
813
msgid ""
814
"Check if you want to receive email notification when new posts are published"
815
msgstr ""
902
msgid "Options reset!"
903
msgstr ""
904
905
+ #: classes/class-s2-core.php:625
906
msgid "Plain Text Excerpt Preview"
907
msgstr ""
908
909
+ #: classes/class-s2-core.php:627
910
msgid "Plain Text Full Preview"
911
msgstr ""
912
913
+ #: classes/class-s2-core.php:629
914
msgid "HTML Excerpt Preview"
915
msgstr ""
916
917
+ #: classes/class-s2-core.php:631
918
msgid "HTML Full Preview"
919
msgstr ""
920
921
+ #: classes/class-s2-core.php:1210
922
msgid "Registered User"
923
msgstr ""
924
925
+ #: classes/class-s2-core.php:1215
926
msgid "Confirmed Public Subscriber"
927
msgstr ""
928
929
+ #: classes/class-s2-core.php:1217
930
msgid "Unconfirmed Public Subscriber"
931
msgstr ""
932
933
+ #: classes/class-s2-core.php:1254
934
msgid "Check here to Subscribe to email notifications for new posts"
935
msgstr ""
936
937
+ #: classes/class-s2-core.php:1260
938
msgid ""
939
"By registering with this blog you are also agreeing to receive email "
940
"notifications for new posts but you can unsubscribe at anytime"
941
msgstr ""
942
943
+ #: classes/class-s2-core.php:1286
944
msgid "Check here to Subscribe to notifications for new posts"
945
msgstr ""
946
947
+ #: classes/class-s2-core.php:1376
948
msgid "Weekly"
949
msgstr ""
950
951
+ #: classes/class-s2-core.php:1499 classes/class-s2-core.php:1500
952
msgid "Author"
953
msgstr ""
954
955
+ #: classes/class-s2-core.php:1508
956
msgid "Posted on"
957
msgstr ""
958
959
+ #: classes/class-s2-core.php:1512 classes/class-s2-core.php:1513
960
msgid "Posted in"
961
msgstr ""
962
963
+ #: classes/class-s2-core.php:1518 classes/class-s2-core.php:1519
964
msgid "Tagged as"
965
msgstr ""
966
967
+ #: classes/class-s2-core.php:1583
968
msgid "Digest Email"
969
msgstr ""
970
971
+ #: classes/class-s2-core.php:1593
972
msgid "Digest Preview"
973
msgstr ""
974
975
+ #: classes/class-s2-frontend.php:46 classes/class-s2-frontend.php:48
976
msgid "Your email:"
977
msgstr ""
978
979
+ #: classes/class-s2-frontend.php:48
980
msgid "Enter email address..."
981
msgstr ""
982
983
+ #: classes/class-s2-frontend.php:153
984
msgid "Subscription Confirmation"
985
msgstr ""
986
987
+ #: classes/class-s2-frontend.php:191
988
msgid "New Subscription"
989
msgstr ""
990
991
+ #: classes/class-s2-frontend.php:193
992
msgid "subscribed to email notifications!"
993
msgstr ""
994
995
+ #: classes/class-s2-frontend.php:214
996
msgid "New Unsubscription"
997
msgstr ""
998
999
+ #: classes/class-s2-frontend.php:216
1000
msgid "unsubscribed from email notifications!"
1001
msgstr ""
1002
1003
+ #: classes/class-s2-frontend.php:242
1004
msgid "[Un]Subscribe to Posts"
1005
msgstr ""
1006
1007
+ #: classes/class-s2-frontend.php:266 classes/class-s2-frontend.php:268
1008
msgid "Subscribe to this blog"
1009
msgstr ""
1010