Version Description
Download this release
Release Info
Developer | MattyRob |
Plugin | Subscribe2 |
Version | 8.9 |
Comparing to | |
See all releases |
Code changes from version 8.8 to 8.9
- ChangeLog.txt +11 -0
- ReadMe.txt +6 -6
- admin/subscribers.php +1 -1
- classes/class-s2-admin.php +1 -1
- classes/class-s2-core.php +43 -14
- classes/class-s2-frontend.php +11 -7
- classes/class-s2-list-table.php +22 -18
- classes/class-s2-upgrade.php +129 -35
- include/widget.php +4 -1
- subscribe2.php +3 -3
- subscribe2.pot +108 -51
- uninstall.php +24 -25
ChangeLog.txt
CHANGED
@@ -1,3 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
= Version 8.8 by Matthew Robinson =
|
2 |
|
3 |
* Added ability to filter both excerpt_length and word_wrap
|
1 |
+
= Version 8.9 by Matthew Robinson =
|
2 |
+
|
3 |
+
* Fix fatal error in the uninstall.php file
|
4 |
+
* Correct error using set_url_scheme() function in WordPress version prior to 3.5
|
5 |
+
* Allow the Widget to post form back to referring page by omitting action for parameter - thanks to Peter Gordon
|
6 |
+
* Fix for options being reset on Multisite installs - thanks to Luca
|
7 |
+
* Make sure translation strings are loaded during install(), upgrade() and reset() - thanks to Milan Dinić
|
8 |
+
* Fix internationalisation of subscribers list table - thanks to Milan Dinić
|
9 |
+
* Use mb_encode_mimeheader on email sender name - thanks to xl32
|
10 |
+
* Trim email addresses before sanitising them - thanks to byarts
|
11 |
+
|
12 |
= Version 8.8 by Matthew Robinson =
|
13 |
|
14 |
* Added ability to filter both excerpt_length and word_wrap
|
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.5.1
|
7 |
-
Stable tag: 8.
|
8 |
License: GPL3
|
9 |
|
10 |
Sends a list of subscribers an email notification when new posts are published to your blog
|
@@ -32,9 +32,9 @@ AUTOMATIC INSTALLATION
|
|
32 |
|
33 |
1. Log in to your WordPress blog and visit Plugins->Add New.
|
34 |
2. Search for Subscribe2, click "Install Now" and then Activate the Plugin
|
35 |
-
3.
|
36 |
4. Configure the options to taste, including the email template and any categories which should be excluded from notification
|
37 |
-
5.
|
38 |
6. Manually subscribe people as you see fit.
|
39 |
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.***
|
40 |
This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary.
|
@@ -44,9 +44,9 @@ MANUAL INSTALLATION
|
|
44 |
|
45 |
1. Copy the entire /subscribe2/ directory into your /wp-content/plugins/ directory.
|
46 |
2. Activate the plugin.
|
47 |
-
3.
|
48 |
4. Configure the options to taste, including the email template and any categories which should be excluded from notification
|
49 |
-
5.
|
50 |
6. Manually subscribe people as you see fit.
|
51 |
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.***
|
52 |
This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary.
|
@@ -310,7 +310,7 @@ By default Public Subscribers get plain text emails and only Registered Subscrib
|
|
310 |
|
311 |
WordPress 3.1 and up requires Subscribe2 from the 7.x or 8.x stable branch. The most recent version is hosted via [Wordpress.org](http://wordpress.org/extend/plugins/subscribe2/).
|
312 |
|
313 |
-
WordPress 2.8 and up requires Subscribe2 from the 6.x stable branch. The most
|
314 |
|
315 |
WordPress 2.3.x through to 2.7.x require Subscribe2 from the 4.x or 5.x stable branch. The most recent version is [5.9](http://downloads.wordpress.org/plugin/subscribe2.5.9.zip).
|
316 |
|
4 |
Tags: posts, subscription, email, subscribe, notify, notification
|
5 |
Requires at least: 3.1
|
6 |
Tested up to: 3.5.1
|
7 |
+
Stable tag: 8.9
|
8 |
License: GPL3
|
9 |
|
10 |
Sends a list of subscribers an email notification when new posts are published to your blog
|
32 |
|
33 |
1. Log in to your WordPress blog and visit Plugins->Add New.
|
34 |
2. Search for Subscribe2, click "Install Now" and then Activate the Plugin
|
35 |
+
3. Visit the "Subscribe2 -> Settings" menu.
|
36 |
4. Configure the options to taste, including the email template and any categories which should be excluded from notification
|
37 |
+
5. Visit the "Subscribe2 -> Subscribers" menu.
|
38 |
6. Manually subscribe people as you see fit.
|
39 |
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.***
|
40 |
This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary.
|
44 |
|
45 |
1. Copy the entire /subscribe2/ directory into your /wp-content/plugins/ directory.
|
46 |
2. Activate the plugin.
|
47 |
+
3. Visit the "Subscribe2 -> Settings" menu.
|
48 |
4. Configure the options to taste, including the email template and any categories which should be excluded from notification
|
49 |
+
5. Visit the "Subscribe2 -> Subscribers" menu.
|
50 |
6. Manually subscribe people as you see fit.
|
51 |
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.***
|
52 |
This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary.
|
310 |
|
311 |
WordPress 3.1 and up requires Subscribe2 from the 7.x or 8.x stable branch. The most recent version is hosted via [Wordpress.org](http://wordpress.org/extend/plugins/subscribe2/).
|
312 |
|
313 |
+
WordPress 2.8 and up requires Subscribe2 from the 6.x stable branch. The most recent version is [6.5](http://downloads.wordpress.org/plugin/subscribe2.6.5.zip).
|
314 |
|
315 |
WordPress 2.3.x through to 2.7.x require Subscribe2 from the 4.x or 5.x stable branch. The most recent version is [5.9](http://downloads.wordpress.org/plugin/subscribe2.5.9.zip).
|
316 |
|
admin/subscribers.php
CHANGED
@@ -143,7 +143,7 @@ $S2ListTable->prepare_items();
|
|
143 |
// show our form
|
144 |
echo "<div class=\"wrap\">";
|
145 |
echo "<div id=\"icon-tools\" class=\"icon32\"></div>";
|
146 |
-
$tabs = array('public' => 'Public Subscribers', 'registered' => 'Registered Subscribers');
|
147 |
echo "<h2 class=\"nav-tab-wrapper\">";
|
148 |
foreach ( $tabs as $tab_key => $tab_caption ) {
|
149 |
$active = ($current_tab == $tab_key) ? "nav-tab-active" : "";
|
143 |
// show our form
|
144 |
echo "<div class=\"wrap\">";
|
145 |
echo "<div id=\"icon-tools\" class=\"icon32\"></div>";
|
146 |
+
$tabs = array('public' => __('Public Subscribers', 'subscribe2'), 'registered' => __('Registered Subscribers', 'subscribe2'));
|
147 |
echo "<h2 class=\"nav-tab-wrapper\">";
|
148 |
foreach ( $tabs as $tab_key => $tab_caption ) {
|
149 |
$active = ($current_tab == $tab_key) ? "nav-tab-active" : "";
|
classes/class-s2-admin.php
CHANGED
@@ -612,7 +612,7 @@ class s2_admin extends s2class {
|
|
612 |
$ids = $wpdb->get_col("SELECT ID FROM $wpdb->users WHERE user_email IN ($useremails)");
|
613 |
$ids = implode(',', array_map(array($this, 'prepare_in_data'), $ids));
|
614 |
$sql = "UPDATE $wpdb->usermeta SET meta_value='{$format}' WHERE meta_key='" . $this->get_usermeta_keyname('s2_format') . "' AND user_id IN ($ids)";
|
615 |
-
$wpdb->
|
616 |
} // end format_change()
|
617 |
|
618 |
/**
|
612 |
$ids = $wpdb->get_col("SELECT ID FROM $wpdb->users WHERE user_email IN ($useremails)");
|
613 |
$ids = implode(',', array_map(array($this, 'prepare_in_data'), $ids));
|
614 |
$sql = "UPDATE $wpdb->usermeta SET meta_value='{$format}' WHERE meta_key='" . $this->get_usermeta_keyname('s2_format') . "' AND user_id IN ($ids)";
|
615 |
+
$wpdb->query($sql);
|
616 |
} // end format_change()
|
617 |
|
618 |
/**
|
classes/class-s2-core.php
CHANGED
@@ -67,6 +67,9 @@ class s2class {
|
|
67 |
Install our table
|
68 |
*/
|
69 |
function install() {
|
|
|
|
|
|
|
70 |
// include upgrade-functions for maybe_create_table;
|
71 |
if ( !function_exists('maybe_create_table') ) {
|
72 |
require_once(ABSPATH . 'wp-admin/install-helper.php');
|
@@ -109,6 +112,9 @@ class s2class {
|
|
109 |
Upgrade function for the database and settings
|
110 |
*/
|
111 |
function upgrade() {
|
|
|
|
|
|
|
112 |
require(S2PATH . "classes/class-s2-upgrade.php");
|
113 |
global $s2_upgrade;
|
114 |
$s2_upgrade = new s2class_upgrade;
|
@@ -124,30 +130,48 @@ class s2class {
|
|
124 |
$s2_upgrade->upgrade_core();
|
125 |
if ( version_compare($this->subscribe2_options['version'], '2.3', '<') ) {
|
126 |
$s2_upgrade->upgrade23();
|
|
|
|
|
127 |
}
|
128 |
if ( version_compare($this->subscribe2_options['version'], '5.1', '<') ) {
|
129 |
$s2_upgrade->upgrade51();
|
|
|
|
|
130 |
}
|
131 |
if ( version_compare($this->subscribe2_options['version'], '5.6', '<') ) {
|
132 |
$s2_upgrade->upgrade56();
|
|
|
|
|
133 |
}
|
134 |
if ( version_compare($this->subscribe2_options['version'], '5.9', '<') ) {
|
135 |
$s2_upgrade->upgrade59();
|
|
|
|
|
136 |
}
|
137 |
if ( version_compare($this->subscribe2_options['version'], '6.4', '<') ) {
|
138 |
$s2_upgrade->upgrade64();
|
|
|
|
|
139 |
}
|
140 |
if ( version_compare($this->subscribe2_options['version'], '7.0', '<') ) {
|
141 |
$s2_upgrade->upgrade70();
|
|
|
|
|
142 |
}
|
143 |
if ( version_compare($this->subscribe2_options['version'], '8.5', '<') ) {
|
144 |
$s2_upgrade->upgrade85();
|
|
|
|
|
145 |
}
|
146 |
if ( version_compare($this->subscribe2_options['version'], '8.6', '<') ) {
|
147 |
$s2_upgrade->upgrade86();
|
|
|
|
|
148 |
}
|
149 |
if ( version_compare($this->subscribe2_options['version'], '8.8', '<') ) {
|
150 |
$s2_upgrade->upgrade88();
|
|
|
|
|
151 |
}
|
152 |
|
153 |
$this->subscribe2_options['version'] = S2VERSION;
|
@@ -160,11 +184,15 @@ class s2class {
|
|
160 |
Reset our options
|
161 |
*/
|
162 |
function reset() {
|
|
|
|
|
|
|
163 |
delete_option('subscribe2_options');
|
164 |
wp_clear_scheduled_hook('s2_digest_cron');
|
165 |
unset($this->subscribe2_options);
|
166 |
require(S2PATH . "include/options.php");
|
167 |
-
|
|
|
168 |
} // end reset()
|
169 |
|
170 |
/* ===== mail handling ===== */
|
@@ -207,6 +235,10 @@ class s2class {
|
|
207 |
function mail($recipients = array(), $subject = '', $message = '', $type = 'text') {
|
208 |
if ( empty($recipients) || '' == $message ) { return; }
|
209 |
|
|
|
|
|
|
|
|
|
210 |
if ( 'html' == $type ) {
|
211 |
$headers = $this->headers('html');
|
212 |
if ( 'yes' == $this->subscribe2_options['stylesheet'] ) {
|
@@ -222,10 +254,6 @@ class s2class {
|
|
222 |
$mailtext = apply_filters('s2_plain_email', $message);
|
223 |
}
|
224 |
|
225 |
-
// Replace any escaped html symbols in subject then apply filter
|
226 |
-
$subject = strip_tags(html_entity_decode($subject, ENT_QUOTES));
|
227 |
-
$subject = apply_filters('s2_email_subject', $subject);
|
228 |
-
|
229 |
// Construct BCC headers for sending or send individual emails
|
230 |
$bcc = '';
|
231 |
natcasesort($recipients);
|
@@ -323,8 +351,8 @@ class s2class {
|
|
323 |
}
|
324 |
}
|
325 |
|
326 |
-
$header['From'] = $this->myname . " <" . $this->myemail . ">";
|
327 |
-
$header['Reply-To'] = $this->myname . " <" . $this->myemail . ">";
|
328 |
$header['Return-path'] = "<" . $this->myemail . ">";
|
329 |
$header['Precedence'] = "list\nList-Id: " . html_entity_decode(get_option('blogname'), ENT_QUOTES) . "";
|
330 |
if ( $type == 'html' ) {
|
@@ -727,16 +755,16 @@ class s2class {
|
|
727 |
$check = $wpdb->get_var($wpdb->prepare("SELECT user_email FROM $wpdb->users WHERE user_email=%s", $this->email));
|
728 |
if ( $check ) { return; }
|
729 |
if ( $confirm ) {
|
730 |
-
$wpdb->
|
731 |
} else {
|
732 |
-
$wpdb->
|
733 |
}
|
734 |
} else {
|
735 |
if ( $confirm ) {
|
736 |
global $current_user;
|
737 |
-
$wpdb->
|
738 |
} else {
|
739 |
-
$wpdb->
|
740 |
}
|
741 |
}
|
742 |
} // end add()
|
@@ -748,7 +776,7 @@ class s2class {
|
|
748 |
global $wpdb;
|
749 |
|
750 |
if ( !is_email($email) ) { return false; }
|
751 |
-
$wpdb->
|
752 |
} // end delete()
|
753 |
|
754 |
/**
|
@@ -764,9 +792,9 @@ class s2class {
|
|
764 |
if ( false === $status ) { return false; }
|
765 |
|
766 |
if ( '0' == $status ) {
|
767 |
-
$wpdb->
|
768 |
} else {
|
769 |
-
$wpdb->
|
770 |
}
|
771 |
} // end toggle()
|
772 |
|
@@ -992,6 +1020,7 @@ class s2class {
|
|
992 |
Function to ensure email is compliant with internet messaging standards
|
993 |
*/
|
994 |
function sanitize_email($email) {
|
|
|
995 |
if ( !is_email($email) ) { return; }
|
996 |
|
997 |
// ensure that domain is in lowercase as per internet email standards http://www.ietf.org/rfc/rfc5321.txt
|
67 |
Install our table
|
68 |
*/
|
69 |
function install() {
|
70 |
+
// load our translations and strings
|
71 |
+
$this->load_translations();
|
72 |
+
|
73 |
// include upgrade-functions for maybe_create_table;
|
74 |
if ( !function_exists('maybe_create_table') ) {
|
75 |
require_once(ABSPATH . 'wp-admin/install-helper.php');
|
112 |
Upgrade function for the database and settings
|
113 |
*/
|
114 |
function upgrade() {
|
115 |
+
// load our translations and strings
|
116 |
+
$this->load_translations();
|
117 |
+
|
118 |
require(S2PATH . "classes/class-s2-upgrade.php");
|
119 |
global $s2_upgrade;
|
120 |
$s2_upgrade = new s2class_upgrade;
|
130 |
$s2_upgrade->upgrade_core();
|
131 |
if ( version_compare($this->subscribe2_options['version'], '2.3', '<') ) {
|
132 |
$s2_upgrade->upgrade23();
|
133 |
+
$this->subscribe2_options['version'] = '2.3';
|
134 |
+
update_option('subscribe2_options', $this->subscribe2_options);
|
135 |
}
|
136 |
if ( version_compare($this->subscribe2_options['version'], '5.1', '<') ) {
|
137 |
$s2_upgrade->upgrade51();
|
138 |
+
$this->subscribe2_options['version'] = '5.1';
|
139 |
+
update_option('subscribe2_options', $this->subscribe2_options);
|
140 |
}
|
141 |
if ( version_compare($this->subscribe2_options['version'], '5.6', '<') ) {
|
142 |
$s2_upgrade->upgrade56();
|
143 |
+
$this->subscribe2_options['version'] = '5.6';
|
144 |
+
update_option('subscribe2_options', $this->subscribe2_options);
|
145 |
}
|
146 |
if ( version_compare($this->subscribe2_options['version'], '5.9', '<') ) {
|
147 |
$s2_upgrade->upgrade59();
|
148 |
+
$this->subscribe2_options['version'] = '5.9';
|
149 |
+
update_option('subscribe2_options', $this->subscribe2_options);
|
150 |
}
|
151 |
if ( version_compare($this->subscribe2_options['version'], '6.4', '<') ) {
|
152 |
$s2_upgrade->upgrade64();
|
153 |
+
$this->subscribe2_options['version'] = '6.4';
|
154 |
+
update_option('subscribe2_options', $this->subscribe2_options);
|
155 |
}
|
156 |
if ( version_compare($this->subscribe2_options['version'], '7.0', '<') ) {
|
157 |
$s2_upgrade->upgrade70();
|
158 |
+
$this->subscribe2_options['version'] = '7.0';
|
159 |
+
update_option('subscribe2_options', $this->subscribe2_options);
|
160 |
}
|
161 |
if ( version_compare($this->subscribe2_options['version'], '8.5', '<') ) {
|
162 |
$s2_upgrade->upgrade85();
|
163 |
+
$this->subscribe2_options['version'] = '8.5';
|
164 |
+
update_option('subscribe2_options', $this->subscribe2_options);
|
165 |
}
|
166 |
if ( version_compare($this->subscribe2_options['version'], '8.6', '<') ) {
|
167 |
$s2_upgrade->upgrade86();
|
168 |
+
$this->subscribe2_options['version'] = '8.6';
|
169 |
+
update_option('subscribe2_options', $this->subscribe2_options);
|
170 |
}
|
171 |
if ( version_compare($this->subscribe2_options['version'], '8.8', '<') ) {
|
172 |
$s2_upgrade->upgrade88();
|
173 |
+
$this->subscribe2_options['version'] = '8.8';
|
174 |
+
update_option('subscribe2_options', $this->subscribe2_options);
|
175 |
}
|
176 |
|
177 |
$this->subscribe2_options['version'] = S2VERSION;
|
184 |
Reset our options
|
185 |
*/
|
186 |
function reset() {
|
187 |
+
// load our translations and strings
|
188 |
+
$this->load_translations();
|
189 |
+
|
190 |
delete_option('subscribe2_options');
|
191 |
wp_clear_scheduled_hook('s2_digest_cron');
|
192 |
unset($this->subscribe2_options);
|
193 |
require(S2PATH . "include/options.php");
|
194 |
+
$this->subscribe2_options['version'] = S2VERSION;
|
195 |
+
update_option('subscribe2_options', $this->subscribe2_options);
|
196 |
} // end reset()
|
197 |
|
198 |
/* ===== mail handling ===== */
|
235 |
function mail($recipients = array(), $subject = '', $message = '', $type = 'text') {
|
236 |
if ( empty($recipients) || '' == $message ) { return; }
|
237 |
|
238 |
+
// Replace any escaped html symbols in subject then apply filter
|
239 |
+
$subject = strip_tags(html_entity_decode($subject, ENT_QUOTES));
|
240 |
+
$subject = apply_filters('s2_email_subject', $subject);
|
241 |
+
|
242 |
if ( 'html' == $type ) {
|
243 |
$headers = $this->headers('html');
|
244 |
if ( 'yes' == $this->subscribe2_options['stylesheet'] ) {
|
254 |
$mailtext = apply_filters('s2_plain_email', $message);
|
255 |
}
|
256 |
|
|
|
|
|
|
|
|
|
257 |
// Construct BCC headers for sending or send individual emails
|
258 |
$bcc = '';
|
259 |
natcasesort($recipients);
|
351 |
}
|
352 |
}
|
353 |
|
354 |
+
$header['From'] = mb_encode_mimeheader($this->myname, 'UTF-8', 'Q') . " <" . $this->myemail . ">";
|
355 |
+
$header['Reply-To'] = mb_encode_mimeheader($this->myname, 'UTF-8', 'Q') . " <" . $this->myemail . ">";
|
356 |
$header['Return-path'] = "<" . $this->myemail . ">";
|
357 |
$header['Precedence'] = "list\nList-Id: " . html_entity_decode(get_option('blogname'), ENT_QUOTES) . "";
|
358 |
if ( $type == 'html' ) {
|
755 |
$check = $wpdb->get_var($wpdb->prepare("SELECT user_email FROM $wpdb->users WHERE user_email=%s", $this->email));
|
756 |
if ( $check ) { return; }
|
757 |
if ( $confirm ) {
|
758 |
+
$wpdb->query($wpdb->prepare("UPDATE $this->public SET active='1', ip=%s WHERE CAST(email as binary)=%s", $this->ip, $email));
|
759 |
} else {
|
760 |
+
$wpdb->query($wpdb->prepare("UPDATE $this->public SET date=CURDATE(), time=CURTIME() WHERE CAST(email as binary)=%s", $email));
|
761 |
}
|
762 |
} else {
|
763 |
if ( $confirm ) {
|
764 |
global $current_user;
|
765 |
+
$wpdb->query($wpdb->prepare("INSERT INTO $this->public (email, active, date, time, ip) VALUES (%s, %d, CURDATE(), CURTIME(), %s)", $email, 1, $current_user->user_login));
|
766 |
} else {
|
767 |
+
$wpdb->query($wpdb->prepare("INSERT INTO $this->public (email, active, date, time, ip) VALUES (%s, %d, CURDATE(), CURTIME(), %s)", $email, 0, $this->ip));
|
768 |
}
|
769 |
}
|
770 |
} // end add()
|
776 |
global $wpdb;
|
777 |
|
778 |
if ( !is_email($email) ) { return false; }
|
779 |
+
$wpdb->query($wpdb->prepare("DELETE FROM $this->public WHERE CAST(email as binary)=%s", $email));
|
780 |
} // end delete()
|
781 |
|
782 |
/**
|
792 |
if ( false === $status ) { return false; }
|
793 |
|
794 |
if ( '0' == $status ) {
|
795 |
+
$wpdb->query($wpdb->prepare("UPDATE $this->public SET active='1', conf_date=CURDATE(), conf_time=CURTIME(), conf_ip=%s WHERE CAST(email as binary)=%s", $this->ip, $email));
|
796 |
} else {
|
797 |
+
$wpdb->query($wpdb->prepare("UPDATE $this->public SET active='0', conf_date=CURDATE(), conf_time=CURTIME(), conf_ip=%s WHERE CAST(email as binary)=%s", $this->ip, $email));
|
798 |
}
|
799 |
} // end toggle()
|
800 |
|
1020 |
Function to ensure email is compliant with internet messaging standards
|
1021 |
*/
|
1022 |
function sanitize_email($email) {
|
1023 |
+
$email = trim($email);
|
1024 |
if ( !is_email($email) ) { return; }
|
1025 |
|
1026 |
// ensure that domain is in lowercase as per internet email standards http://www.ietf.org/rfc/rfc5321.txt
|
classes/class-s2-frontend.php
CHANGED
@@ -34,13 +34,17 @@ class s2_frontend extends s2class {
|
|
34 |
// both form input actions
|
35 |
$this->input_form_action = "<input type=\"submit\" name=\"subscribe\" value=\"" . esc_attr($subscribe_button_value) . "\" /> <input type=\"submit\" name=\"unsubscribe\" value=\"" . esc_attr($unsubscribe_button_value) . "\" />";
|
36 |
}
|
|
|
37 |
// if ID is provided, get permalink
|
38 |
-
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
40 |
} elseif ( $this->subscribe2_options['s2page'] > 0 ) {
|
41 |
-
$
|
42 |
-
} else {
|
43 |
-
$url = get_site_url();
|
44 |
}
|
45 |
|
46 |
// allow remote setting of email in form
|
@@ -54,9 +58,9 @@ class s2_frontend extends s2class {
|
|
54 |
|
55 |
// build default form
|
56 |
if ( $nojs == 'true' ) {
|
57 |
-
$this->form = "<form method=\"post\"
|
58 |
} else {
|
59 |
-
$this->form = "<form method=\"post\"
|
60 |
}
|
61 |
$this->s2form = $this->form;
|
62 |
|
34 |
// both form input actions
|
35 |
$this->input_form_action = "<input type=\"submit\" name=\"subscribe\" value=\"" . esc_attr($subscribe_button_value) . "\" /> <input type=\"submit\" name=\"unsubscribe\" value=\"" . esc_attr($unsubscribe_button_value) . "\" />";
|
36 |
}
|
37 |
+
|
38 |
// if ID is provided, get permalink
|
39 |
+
$action = '';
|
40 |
+
if ( is_numeric($id) ) {
|
41 |
+
$action = " action=\"" . get_permalink( $id ) . "\"";
|
42 |
+
} elseif ( $id === 'home' ) {
|
43 |
+
$action = " action=\"" . get_site_url() . "\"";
|
44 |
+
} elseif ( $id === 'self' ) {
|
45 |
+
$action = '';
|
46 |
} elseif ( $this->subscribe2_options['s2page'] > 0 ) {
|
47 |
+
$action = " action=\"" . get_permalink( $this->subscribe2_options['s2page'] ) . "\"";
|
|
|
|
|
48 |
}
|
49 |
|
50 |
// allow remote setting of email in form
|
58 |
|
59 |
// build default form
|
60 |
if ( $nojs == 'true' ) {
|
61 |
+
$this->form = "<form method=\"post\"" . $action . "><input type=\"hidden\" name=\"ip\" value=\"" . $_SERVER['REMOTE_ADDR'] . "\" /><p><label for=\"s2email\">" . __('Your email:', 'subscribe2') . "</label><br /><input type=\"text\" name=\"email\" id=\"s2email\" value=\"" . $value . "\" size=\"" . $size . "\" /></p><p>" . $this->input_form_action . "</p></form>";
|
62 |
} else {
|
63 |
+
$this->form = "<form method=\"post\"" . $action . "><input type=\"hidden\" name=\"ip\" value=\"" . $_SERVER['REMOTE_ADDR'] . "\" /><p><label for=\"s2email\">" . __('Your email:', 'subscribe2') . "</label><br /><input type=\"text\" name=\"email\" id=\"s2email\" value=\"" . $value . "\" size=\"" . $size . "\" onfocus=\"if (this.value == '" . $value . "') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '" . $value . "';}\" /></p><p>" . $this->input_form_action . "</p></form>\r\n";
|
64 |
}
|
65 |
$this->s2form = $this->form;
|
66 |
|
classes/class-s2-list-table.php
CHANGED
@@ -33,7 +33,7 @@ class Subscribe2_List_Table extends WP_List_Table {
|
|
33 |
function column_email($item) {
|
34 |
global $current_tab;
|
35 |
if ( $current_tab == 'registered' ) {
|
36 |
-
$actions = array('edit' => sprintf('<a href="?page=%s&email=%s"
|
37 |
return sprintf('%1$s %2$s', $item['email'], $this->row_actions($actions));
|
38 |
} else {
|
39 |
global $mysubscribe2;
|
@@ -52,12 +52,12 @@ class Subscribe2_List_Table extends WP_List_Table {
|
|
52 |
function get_columns() {
|
53 |
global $current_tab;
|
54 |
if ( $current_tab == 'registered' ) {
|
55 |
-
$columns = array('email' => 'Email');
|
56 |
} else {
|
57 |
$columns = array(
|
58 |
-
'cb'
|
59 |
-
'email'
|
60 |
-
'date'
|
61 |
);
|
62 |
}
|
63 |
return $columns;
|
@@ -95,7 +95,7 @@ class Subscribe2_List_Table extends WP_List_Table {
|
|
95 |
|
96 |
extract( $this->_pagination_args, EXTR_SKIP );
|
97 |
|
98 |
-
$output = '<span class="displaying-num">' . sprintf( _n( '1 item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
|
99 |
|
100 |
if ( isset($_POST['what']) ) {
|
101 |
$current = 1;
|
@@ -103,7 +103,11 @@ class Subscribe2_List_Table extends WP_List_Table {
|
|
103 |
$current = $this->get_pagenum();
|
104 |
}
|
105 |
|
106 |
-
|
|
|
|
|
|
|
|
|
107 |
|
108 |
$current_url = remove_query_arg( array('hotkeys_highlight_last', 'hotkeys_highlight_first'), $current_url );
|
109 |
|
@@ -123,14 +127,14 @@ class Subscribe2_List_Table extends WP_List_Table {
|
|
123 |
|
124 |
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
125 |
'first-page' . $disable_first,
|
126 |
-
esc_attr__(
|
127 |
esc_url( remove_query_arg( 'paged', $current_url ) ),
|
128 |
'«'
|
129 |
);
|
130 |
|
131 |
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
132 |
'prev-page' . $disable_first,
|
133 |
-
esc_attr__(
|
134 |
esc_url( add_query_arg( 'paged', max( 1, $current-1 ), $current_url ) ),
|
135 |
'‹'
|
136 |
);
|
@@ -139,24 +143,24 @@ class Subscribe2_List_Table extends WP_List_Table {
|
|
139 |
$html_current_page = $current;
|
140 |
else
|
141 |
$html_current_page = sprintf( "<input class='current-page' title='%s' type='text' name='paged' value='%s' size='%d' />",
|
142 |
-
esc_attr__(
|
143 |
$current,
|
144 |
strlen( $total_pages )
|
145 |
);
|
146 |
|
147 |
$html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
|
148 |
-
$page_links[] = '<span class="paging-input">' . sprintf( _x(
|
149 |
|
150 |
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
151 |
'next-page' . $disable_last,
|
152 |
-
esc_attr__(
|
153 |
esc_url( add_query_arg( 'paged', min( $total_pages, $current+1 ), $current_url ) ),
|
154 |
'›'
|
155 |
);
|
156 |
|
157 |
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
158 |
'last-page' . $disable_last,
|
159 |
-
esc_attr__(
|
160 |
esc_url( add_query_arg( 'paged', $total_pages, $current_url ) ),
|
161 |
'»'
|
162 |
);
|
@@ -191,11 +195,11 @@ class Subscribe2_List_Table extends WP_List_Table {
|
|
191 |
|
192 |
$data = array();
|
193 |
if ( $current_tab == 'public' ) {
|
194 |
-
foreach($subscribers as $email) {
|
195 |
$data[] = array('email' => $email, 'date' => $mysubscribe2->signup_date($email));
|
196 |
}
|
197 |
} else {
|
198 |
-
foreach($subscribers as $email) {
|
199 |
$data[] = array('email' => $email);
|
200 |
}
|
201 |
}
|
@@ -218,9 +222,9 @@ class Subscribe2_List_Table extends WP_List_Table {
|
|
218 |
$this->items = $data;
|
219 |
|
220 |
$this->set_pagination_args( array(
|
221 |
-
'total_items'
|
222 |
-
'per_page'
|
223 |
-
'total_pages'
|
224 |
) );
|
225 |
}
|
226 |
}
|
33 |
function column_email($item) {
|
34 |
global $current_tab;
|
35 |
if ( $current_tab == 'registered' ) {
|
36 |
+
$actions = array('edit' => sprintf('<a href="?page=%s&email=%s">%s</a>', 's2', $item['email'], __('Edit', 'subscribe2')));
|
37 |
return sprintf('%1$s %2$s', $item['email'], $this->row_actions($actions));
|
38 |
} else {
|
39 |
global $mysubscribe2;
|
52 |
function get_columns() {
|
53 |
global $current_tab;
|
54 |
if ( $current_tab == 'registered' ) {
|
55 |
+
$columns = array('email' => _x('Email', 'column name', 'subscribe2'));
|
56 |
} else {
|
57 |
$columns = array(
|
58 |
+
'cb' => '<input type="checkbox" />',
|
59 |
+
'email' => _x('Email', 'column name', 'subscribe2'),
|
60 |
+
'date' => _x('Date', 'column name', 'subscribe2')
|
61 |
);
|
62 |
}
|
63 |
return $columns;
|
95 |
|
96 |
extract( $this->_pagination_args, EXTR_SKIP );
|
97 |
|
98 |
+
$output = '<span class="displaying-num">' . sprintf( _n( '1 item', '%s items', $total_items, 'subscribe2' ), number_format_i18n( $total_items ) ) . '</span>';
|
99 |
|
100 |
if ( isset($_POST['what']) ) {
|
101 |
$current = 1;
|
103 |
$current = $this->get_pagenum();
|
104 |
}
|
105 |
|
106 |
+
if ( version_compare($GLOBALS['wp_version'], '3.5', '<') ) {
|
107 |
+
$current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
|
108 |
+
} else {
|
109 |
+
$current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
|
110 |
+
}
|
111 |
|
112 |
$current_url = remove_query_arg( array('hotkeys_highlight_last', 'hotkeys_highlight_first'), $current_url );
|
113 |
|
127 |
|
128 |
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
129 |
'first-page' . $disable_first,
|
130 |
+
esc_attr__('Go to the first page', 'subscribe2'),
|
131 |
esc_url( remove_query_arg( 'paged', $current_url ) ),
|
132 |
'«'
|
133 |
);
|
134 |
|
135 |
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
136 |
'prev-page' . $disable_first,
|
137 |
+
esc_attr__('Go to the previous page', 'subscribe2'),
|
138 |
esc_url( add_query_arg( 'paged', max( 1, $current-1 ), $current_url ) ),
|
139 |
'‹'
|
140 |
);
|
143 |
$html_current_page = $current;
|
144 |
else
|
145 |
$html_current_page = sprintf( "<input class='current-page' title='%s' type='text' name='paged' value='%s' size='%d' />",
|
146 |
+
esc_attr__('Current page', 'subscribe2'),
|
147 |
$current,
|
148 |
strlen( $total_pages )
|
149 |
);
|
150 |
|
151 |
$html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
|
152 |
+
$page_links[] = '<span class="paging-input">' . sprintf( _x('%1$s of %2$s', 'paging', 'subscribe2'), $html_current_page, $html_total_pages ) . '</span>';
|
153 |
|
154 |
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
155 |
'next-page' . $disable_last,
|
156 |
+
esc_attr__('Go to the next page', 'subscribe2'),
|
157 |
esc_url( add_query_arg( 'paged', min( $total_pages, $current+1 ), $current_url ) ),
|
158 |
'›'
|
159 |
);
|
160 |
|
161 |
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
162 |
'last-page' . $disable_last,
|
163 |
+
esc_attr__('Go to the last page', 'subscribe2'),
|
164 |
esc_url( add_query_arg( 'paged', $total_pages, $current_url ) ),
|
165 |
'»'
|
166 |
);
|
195 |
|
196 |
$data = array();
|
197 |
if ( $current_tab == 'public' ) {
|
198 |
+
foreach((array)$subscribers as $email) {
|
199 |
$data[] = array('email' => $email, 'date' => $mysubscribe2->signup_date($email));
|
200 |
}
|
201 |
} else {
|
202 |
+
foreach((array)$subscribers as $email) {
|
203 |
$data[] = array('email' => $email);
|
204 |
}
|
205 |
}
|
222 |
$this->items = $data;
|
223 |
|
224 |
$this->set_pagination_args( array(
|
225 |
+
'total_items' => $total_items,
|
226 |
+
'per_page' => $per_page,
|
227 |
+
'total_pages' => ceil($total_items/$per_page)
|
228 |
) );
|
229 |
}
|
230 |
}
|
classes/class-s2-upgrade.php
CHANGED
@@ -49,7 +49,6 @@ class s2class_upgrade {
|
|
49 |
delete_option($option);
|
50 |
}
|
51 |
}
|
52 |
-
return;
|
53 |
} // end upgrade23()
|
54 |
|
55 |
function upgrade51() {
|
@@ -86,7 +85,6 @@ class s2class_upgrade {
|
|
86 |
$wpdb->get_results($wpdb->prepare("UPDATE $mysubscribe2->public SET email=%s WHERE CAST(email as binary)=%s", $new_email, $email));
|
87 |
}
|
88 |
}
|
89 |
-
return;
|
90 |
} // end upgrade59()
|
91 |
|
92 |
function upgrade64() {
|
@@ -103,24 +101,88 @@ class s2class_upgrade {
|
|
103 |
$mysubscribe2->subscribe2_options['remind_email'] = preg_replace($regex, $replace, $mysubscribe2->subscribe2_options['remind_email']);
|
104 |
$mysubscribe2->subscribe2_options['remind_subject'] = preg_replace($regex, $replace, $mysubscribe2->subscribe2_options['remind_subject']);
|
105 |
|
106 |
-
|
107 |
-
|
108 |
-
$
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
}
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
}
|
125 |
}
|
126 |
|
@@ -171,19 +233,33 @@ class s2class_upgrade {
|
|
171 |
}
|
172 |
}
|
173 |
}
|
174 |
-
return;
|
175 |
} // end upgrade64()
|
176 |
|
177 |
function upgrade70() {
|
178 |
global $mysubscribe2;
|
179 |
-
|
|
|
180 |
foreach ( $users as $user_ID ) {
|
181 |
-
|
182 |
-
|
183 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
}
|
185 |
}
|
186 |
-
return;
|
187 |
} // end upgrade70()
|
188 |
|
189 |
function upgrade85() {
|
@@ -197,7 +273,6 @@ class s2class_upgrade {
|
|
197 |
|
198 |
// update postmeta field to a protected name, from version 8.5
|
199 |
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '_s2mail' WHERE meta_key = 's2mail'" );
|
200 |
-
return;
|
201 |
} // end upgrade85()
|
202 |
|
203 |
function upgrade86() {
|
@@ -213,26 +288,45 @@ class s2class_upgrade {
|
|
213 |
|
214 |
// remove unnecessary table data
|
215 |
$wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key = 's2_cat'" );
|
216 |
-
|
|
|
|
|
|
|
217 |
// make sure we remove leading ',' from this setting
|
|
|
218 |
$old_cats = explode(',', $subscribed);
|
219 |
unset($old_cats[0]);
|
220 |
$cats = implode(',', $old_cats);
|
221 |
-
update_user_meta($
|
222 |
}
|
223 |
-
return;
|
224 |
} // end upgrade86()
|
225 |
|
226 |
function upgrade88() {
|
227 |
// to ensure compulsory category collects all users we need there to be s2_subscribed meta-keys for all users
|
228 |
global $mysubscribe2;
|
229 |
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
$
|
234 |
-
|
235 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
}
|
237 |
}
|
238 |
}
|
49 |
delete_option($option);
|
50 |
}
|
51 |
}
|
|
|
52 |
} // end upgrade23()
|
53 |
|
54 |
function upgrade51() {
|
85 |
$wpdb->get_results($wpdb->prepare("UPDATE $mysubscribe2->public SET email=%s WHERE CAST(email as binary)=%s", $new_email, $email));
|
86 |
}
|
87 |
}
|
|
|
88 |
} // end upgrade59()
|
89 |
|
90 |
function upgrade64() {
|
101 |
$mysubscribe2->subscribe2_options['remind_email'] = preg_replace($regex, $replace, $mysubscribe2->subscribe2_options['remind_email']);
|
102 |
$mysubscribe2->subscribe2_options['remind_subject'] = preg_replace($regex, $replace, $mysubscribe2->subscribe2_options['remind_subject']);
|
103 |
|
104 |
+
if ( version_compare($mysubscribe2->wp_release, '3.5', '<') ) {
|
105 |
+
$users = $mysubscribe2->get_all_registered('ID');
|
106 |
+
foreach ( $users as $user_ID ) {
|
107 |
+
$check_format = get_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_format'), true);
|
108 |
+
// if user is already registered update format remove 's2_excerpt' field and update 's2_format'
|
109 |
+
if ( 'html' == $check_format ) {
|
110 |
+
delete_user_meta($user_ID, 's2_excerpt');
|
111 |
+
} elseif ( 'text' == $check_format ) {
|
112 |
+
update_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_format'), get_user_meta($user_ID, 's2_excerpt'));
|
113 |
+
delete_user_meta($user_ID, 's2_excerpt');
|
114 |
+
}
|
115 |
+
$subscribed = get_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), true);
|
116 |
+
if ( strstr($subscribed, '-1') ) {
|
117 |
+
// make sure we remove '-1' from any settings
|
118 |
+
$old_cats = explode(',', $subscribed);
|
119 |
+
$pos = array_search('-1', $old_cats);
|
120 |
+
unset($old_cats[$pos]);
|
121 |
+
$cats = implode(',', $old_cats);
|
122 |
+
update_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), $cats);
|
123 |
+
}
|
124 |
+
}
|
125 |
+
} else {
|
126 |
+
$args = array(
|
127 |
+
'relation' => 'AND',
|
128 |
+
'meta_query' => array(
|
129 |
+
array('key' => $mysubscribe2->get_usermeta_keyname('s2_format'),
|
130 |
+
'value' => 'html')
|
131 |
+
),
|
132 |
+
'meta_query' => array(
|
133 |
+
array('key' => 's2_excerpt',
|
134 |
+
'compare' => 'EXISTS')
|
135 |
+
)
|
136 |
+
);
|
137 |
+
|
138 |
+
$user_query = new WP_User_Query( $args );
|
139 |
+
$users = $user_query->get_results();
|
140 |
+
if ( !empty($users) ) {
|
141 |
+
foreach ($users as $user) {
|
142 |
+
delete_user_meta($user->ID, 's2_excerpt');
|
143 |
+
}
|
144 |
}
|
145 |
+
|
146 |
+
$args = array(
|
147 |
+
'relation' => 'AND',
|
148 |
+
'meta_query' => array(
|
149 |
+
array('key' => $mysubscribe2->get_usermeta_keyname('s2_format'),
|
150 |
+
'value' => 'text')
|
151 |
+
),
|
152 |
+
'meta_query' => array(
|
153 |
+
array('key' => 's2_excerpt',
|
154 |
+
'compare' => 'EXISTS')
|
155 |
+
)
|
156 |
+
);
|
157 |
+
|
158 |
+
$user_query = new WP_User_Query( $args );
|
159 |
+
$users = $user_query->get_results();
|
160 |
+
if ( !empty($users) ) {
|
161 |
+
foreach ($users as $user) {
|
162 |
+
update_user_meta($user->ID, $mysubscribe2->get_usermeta_keyname('s2_format'), get_user_meta($user->ID, 's2_excerpt'));
|
163 |
+
delete_user_meta($user->ID, 's2_excerpt');
|
164 |
+
}
|
165 |
+
}
|
166 |
+
|
167 |
+
$args = array(
|
168 |
+
'meta_query' => array(
|
169 |
+
array('key' => $mysubscribe2->get_usermeta_keyname('s2_subscribed'),
|
170 |
+
'value' => '-1',
|
171 |
+
'compare' => 'LIKE')
|
172 |
+
)
|
173 |
+
);
|
174 |
+
|
175 |
+
$user_query = new WP_User_Query( $args );
|
176 |
+
$users = $user_query->get_results();
|
177 |
+
if ( !empty($users) ) {
|
178 |
+
foreach ($users as $user) {
|
179 |
+
$subscribed = get_user_meta($user->ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), true);
|
180 |
+
$old_cats = explode(',', $subscribed);
|
181 |
+
$pos = array_search('-1', $old_cats);
|
182 |
+
unset($old_cats[$pos]);
|
183 |
+
$cats = implode(',', $old_cats);
|
184 |
+
update_user_meta($user->ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), $cats);
|
185 |
+
}
|
186 |
}
|
187 |
}
|
188 |
|
233 |
}
|
234 |
}
|
235 |
}
|
|
|
236 |
} // end upgrade64()
|
237 |
|
238 |
function upgrade70() {
|
239 |
global $mysubscribe2;
|
240 |
+
if ( version_compare($mysubscribe2->wp_release, '3.5', '<') ) {
|
241 |
+
$users = $mysubscribe2->get_all_registered('ID');
|
242 |
foreach ( $users as $user_ID ) {
|
243 |
+
$check_authors = get_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_authors'), true);
|
244 |
+
if ( empty($check_authors) ) {
|
245 |
+
update_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_authors'), '');
|
246 |
+
}
|
247 |
+
}
|
248 |
+
} else {
|
249 |
+
$args = array(
|
250 |
+
'meta_query' => array(
|
251 |
+
array('key' => $mysubscribe2->get_usermeta_keyname('s2_authors'), 'compare' => 'NOT EXISTS')
|
252 |
+
)
|
253 |
+
);
|
254 |
+
|
255 |
+
$user_query = new WP_User_Query( $args );
|
256 |
+
$users = $user_query->get_results();
|
257 |
+
if ( !empty($users) ) {
|
258 |
+
foreach ($users as $user) {
|
259 |
+
update_user_meta($user->ID, $mysubscribe2->get_usermeta_keyname('s2_authors'), '');
|
260 |
+
}
|
261 |
}
|
262 |
}
|
|
|
263 |
} // end upgrade70()
|
264 |
|
265 |
function upgrade85() {
|
273 |
|
274 |
// update postmeta field to a protected name, from version 8.5
|
275 |
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '_s2mail' WHERE meta_key = 's2mail'" );
|
|
|
276 |
} // end upgrade85()
|
277 |
|
278 |
function upgrade86() {
|
288 |
|
289 |
// remove unnecessary table data
|
290 |
$wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key = 's2_cat'" );
|
291 |
+
|
292 |
+
$sql = "SELECT ID FROM $wpdb->users INNER JOIN $wpdb->usermeta ON ( $wpdb->users.ID = $wpdb->usermeta.user_id) WHERE ( $wpdb->usermeta.meta_key = '" . $this->get_usermeta_keyname('s2_subscribed') . "' AND $wpdb->usermeta.meta_value LIKE ',%' )";
|
293 |
+
$users = $wpdb->get_results($sql);
|
294 |
+
foreach ( $users as $user ) {
|
295 |
// make sure we remove leading ',' from this setting
|
296 |
+
$subscribed = get_user_meta($user->ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), true);
|
297 |
$old_cats = explode(',', $subscribed);
|
298 |
unset($old_cats[0]);
|
299 |
$cats = implode(',', $old_cats);
|
300 |
+
update_user_meta($user->ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), $cats);
|
301 |
}
|
|
|
302 |
} // end upgrade86()
|
303 |
|
304 |
function upgrade88() {
|
305 |
// to ensure compulsory category collects all users we need there to be s2_subscribed meta-keys for all users
|
306 |
global $mysubscribe2;
|
307 |
|
308 |
+
if ( version_compare($mysubscribe2->wp_release, '3.5', '<') ) {
|
309 |
+
$all_registered = $mysubscribe2->get_all_registered('ID');
|
310 |
+
if ( !empty($all_registered) ) {
|
311 |
+
foreach ( $all_registered as $user_ID ) {
|
312 |
+
$check_subscribed = get_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), true);
|
313 |
+
if ( empty($check_subscribed) ) {
|
314 |
+
update_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), '');
|
315 |
+
}
|
316 |
+
}
|
317 |
+
}
|
318 |
+
} else {
|
319 |
+
$args = array(
|
320 |
+
'meta_query' => array(
|
321 |
+
array('key' => $mysubscribe2->get_usermeta_keyname('s2_subscribed'), 'compare' => 'NOT EXISTS')
|
322 |
+
)
|
323 |
+
);
|
324 |
+
|
325 |
+
$user_query = new WP_User_Query( $args );
|
326 |
+
$users = $user_query->get_results();
|
327 |
+
if ( !empty($users) ) {
|
328 |
+
foreach ($users as $user) {
|
329 |
+
update_user_meta($user->ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), '');
|
330 |
}
|
331 |
}
|
332 |
}
|
include/widget.php
CHANGED
@@ -29,7 +29,7 @@ class S2_Form_widget extends WP_Widget {
|
|
29 |
$hide = " link=\"" . __('(Un)Subscribe to Posts', 'subscribe2') . "\"";
|
30 |
}
|
31 |
$postid = '';
|
32 |
-
if ( !empty($postto)
|
33 |
$postid = " id=\"" . $postto . "\"";
|
34 |
}
|
35 |
$size = " size=\"" . $textbox_size . "\"";
|
@@ -122,6 +122,9 @@ class S2_Form_widget extends WP_Widget {
|
|
122 |
echo "<option value=\"home\"";
|
123 |
if ( $postto === 'home' ) { echo " selected=\"selected\""; }
|
124 |
echo ">" . __('Use Home Page', 'subscribe2') . "</option>\r\n";
|
|
|
|
|
|
|
125 |
$mysubscribe2->pages_dropdown($postto);
|
126 |
echo "</select></label></p>\r\n";
|
127 |
echo "<p><label for=\"" . $this->get_field_id('js') . "\">" . __('Disable JavaScript', 'subscribe2') . ":\r\n";
|
29 |
$hide = " link=\"" . __('(Un)Subscribe to Posts', 'subscribe2') . "\"";
|
30 |
}
|
31 |
$postid = '';
|
32 |
+
if ( !empty($postto) ) {
|
33 |
$postid = " id=\"" . $postto . "\"";
|
34 |
}
|
35 |
$size = " size=\"" . $textbox_size . "\"";
|
122 |
echo "<option value=\"home\"";
|
123 |
if ( $postto === 'home' ) { echo " selected=\"selected\""; }
|
124 |
echo ">" . __('Use Home Page', 'subscribe2') . "</option>\r\n";
|
125 |
+
echo "<option value=\"self\"";
|
126 |
+
if ( $postto === 'self' ) { echo " selected=\"selected\""; }
|
127 |
+
echo ">" . __('Use Referring Page', 'subscribe2') . "</option>\r\n";
|
128 |
$mysubscribe2->pages_dropdown($postto);
|
129 |
echo "</select></label></p>\r\n";
|
130 |
echo "<p><label for=\"" . $this->get_field_id('js') . "\">" . __('Disable JavaScript', 'subscribe2') . ":\r\n";
|
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.
|
7 |
Author: Matthew Robinson
|
8 |
Author URI: http://subscribe2.wordpress.com
|
9 |
Licence: GPL3
|
@@ -48,13 +48,13 @@ if ( !function_exists( 'is_plugin_active_for_network' ) ) {
|
|
48 |
|
49 |
if ( is_plugin_active_for_network(plugin_basename(__FILE__)) ) {
|
50 |
deactivate_plugins( plugin_basename(__FILE__) );
|
51 |
-
$exit_msg = __('Subscribe2 cannot be
|
52 |
exit($exit_msg);
|
53 |
}
|
54 |
|
55 |
// our version number. Don't touch this or any line below
|
56 |
// unless you know exactly what you are doing
|
57 |
-
define( 'S2VERSION', '8.
|
58 |
define( 'S2PATH', trailingslashit(dirname(__FILE__)) );
|
59 |
define( 'S2DIR', trailingslashit(dirname(plugin_basename(__FILE__))) );
|
60 |
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.9
|
7 |
Author: Matthew Robinson
|
8 |
Author URI: http://subscribe2.wordpress.com
|
9 |
Licence: GPL3
|
48 |
|
49 |
if ( is_plugin_active_for_network(plugin_basename(__FILE__)) ) {
|
50 |
deactivate_plugins( plugin_basename(__FILE__) );
|
51 |
+
$exit_msg = __('Subscribe2 cannot be activated as a network plugin. Please activate it at on a site level', 'subscribe2');
|
52 |
exit($exit_msg);
|
53 |
}
|
54 |
|
55 |
// our version number. Don't touch this or any line below
|
56 |
// unless you know exactly what you are doing
|
57 |
+
define( 'S2VERSION', '8.9' );
|
58 |
define( 'S2PATH', trailingslashit(dirname(__FILE__)) );
|
59 |
define( 'S2DIR', trailingslashit(dirname(plugin_basename(__FILE__))) );
|
60 |
define( 'S2URL', plugin_dir_url(dirname(__FILE__)) . S2DIR );
|
subscribe2.pot
CHANGED
@@ -1,21 +1,16 @@
|
|
1 |
-
#
|
2 |
-
#
|
3 |
-
# This file is distributed under the same license as the PACKAGE package.
|
4 |
-
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5 |
-
#
|
6 |
-
#, fuzzy
|
7 |
msgid ""
|
8 |
msgstr ""
|
9 |
-
"Project-Id-Version:
|
10 |
-
"Report-Msgid-Bugs-To: \n"
|
11 |
-
"POT-Creation-Date: 2013-
|
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"
|
15 |
-
"Language: \n"
|
16 |
"MIME-Version: 1.0\n"
|
17 |
-
"Content-Type: text/plain; charset=
|
18 |
"Content-Transfer-Encoding: 8bit\n"
|
|
|
|
|
|
|
19 |
|
20 |
#: admin/send_email.php:46
|
21 |
msgid "Preview message sent!"
|
@@ -94,6 +89,7 @@ msgid "Restrict the number of recipients per email to (0 for unlimited)"
|
|
94 |
msgstr ""
|
95 |
|
96 |
#: admin/settings.php:165 admin/settings.php:397
|
|
|
97 |
msgid "Edit"
|
98 |
msgstr ""
|
99 |
|
@@ -545,6 +541,14 @@ msgstr ""
|
|
545 |
msgid "Digest Subscription updated for Selected Registered Users!"
|
546 |
msgstr ""
|
547 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
548 |
#: admin/subscribers.php:158 admin/subscribers.php:180
|
549 |
msgid "Add/Remove Subscribers"
|
550 |
msgstr ""
|
@@ -702,6 +706,8 @@ msgstr ""
|
|
702 |
msgid "Subscribe to new blogs"
|
703 |
msgstr ""
|
704 |
|
|
|
|
|
705 |
#: classes/class-s2-admin.php:8 include/widget.php:17
|
706 |
msgid "Subscribe2"
|
707 |
msgstr ""
|
@@ -744,10 +750,6 @@ msgstr ""
|
|
744 |
msgid "All Users and Subscribers"
|
745 |
msgstr ""
|
746 |
|
747 |
-
#: classes/class-s2-admin.php:354
|
748 |
-
msgid "Public Subscribers"
|
749 |
-
msgstr ""
|
750 |
-
|
751 |
#: classes/class-s2-admin.php:355
|
752 |
msgid "Confirmed"
|
753 |
msgstr ""
|
@@ -760,10 +762,6 @@ msgstr ""
|
|
760 |
msgid "All Registered Users"
|
761 |
msgstr ""
|
762 |
|
763 |
-
#: classes/class-s2-admin.php:358
|
764 |
-
msgid "Registered Subscribers"
|
765 |
-
msgstr ""
|
766 |
-
|
767 |
#: classes/class-s2-admin.php:444
|
768 |
msgid "Post Author"
|
769 |
msgstr ""
|
@@ -913,116 +911,126 @@ msgstr ""
|
|
913 |
msgid "Options reset!"
|
914 |
msgstr ""
|
915 |
|
916 |
-
#: classes/class-s2-core.php:
|
917 |
msgid "Plain Text Excerpt Preview"
|
918 |
msgstr ""
|
919 |
|
920 |
-
#: classes/class-s2-core.php:
|
921 |
msgid "Plain Text Full Preview"
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: classes/class-s2-core.php:
|
925 |
msgid "HTML Excerpt Preview"
|
926 |
msgstr ""
|
927 |
|
928 |
-
#: classes/class-s2-core.php:
|
929 |
msgid "HTML Full Preview"
|
930 |
msgstr ""
|
931 |
|
932 |
-
#: classes/class-s2-core.php:
|
933 |
msgid "Registered User"
|
934 |
msgstr ""
|
935 |
|
936 |
-
#: classes/class-s2-core.php:
|
937 |
msgid "Confirmed Public Subscriber"
|
938 |
msgstr ""
|
939 |
|
940 |
-
#: classes/class-s2-core.php:
|
941 |
msgid "Unconfirmed Public Subscriber"
|
942 |
msgstr ""
|
943 |
|
944 |
-
#: classes/class-s2-core.php:
|
945 |
msgid "Check here to Subscribe to email notifications for new posts"
|
946 |
msgstr ""
|
947 |
|
948 |
-
#: classes/class-s2-core.php:
|
949 |
msgid ""
|
950 |
"By registering with this blog you are also agreeing to receive email "
|
951 |
"notifications for new posts but you can unsubscribe at anytime"
|
952 |
msgstr ""
|
953 |
|
954 |
-
#: classes/class-s2-core.php:
|
955 |
msgid "Check here to Subscribe to notifications for new posts"
|
956 |
msgstr ""
|
957 |
|
958 |
-
#: classes/class-s2-core.php:
|
959 |
msgid "Weekly"
|
960 |
msgstr ""
|
961 |
|
962 |
-
#: classes/class-s2-core.php:
|
963 |
msgid "Author"
|
964 |
msgstr ""
|
965 |
|
966 |
-
#: classes/class-s2-core.php:
|
967 |
msgid "Posted on"
|
968 |
msgstr ""
|
969 |
|
970 |
-
#: classes/class-s2-core.php:
|
971 |
msgid "Posted in"
|
972 |
msgstr ""
|
973 |
|
974 |
-
#: classes/class-s2-core.php:
|
975 |
msgid "Tagged as"
|
976 |
msgstr ""
|
977 |
|
978 |
-
#: classes/class-s2-core.php:
|
979 |
msgid "Digest Email"
|
980 |
msgstr ""
|
981 |
|
982 |
-
#: classes/class-s2-core.php:
|
983 |
msgid "Digest Preview"
|
984 |
msgstr ""
|
985 |
|
986 |
-
#: classes/class-s2-frontend.php:
|
987 |
msgid "Enter email address..."
|
988 |
msgstr ""
|
989 |
|
990 |
-
#: classes/class-s2-frontend.php:
|
991 |
msgid "Your email:"
|
992 |
msgstr ""
|
993 |
|
994 |
-
#: classes/class-s2-frontend.php:
|
995 |
msgid "Subscription Confirmation"
|
996 |
msgstr ""
|
997 |
|
998 |
-
#: classes/class-s2-frontend.php:
|
999 |
msgid "Unsubscription Confirmation"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
-
#: classes/class-s2-frontend.php:
|
1003 |
msgid "New Subscription"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
-
#: classes/class-s2-frontend.php:
|
1007 |
msgid "subscribed to email notifications!"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
-
#: classes/class-s2-frontend.php:
|
1011 |
msgid "New Unsubscription"
|
1012 |
msgstr ""
|
1013 |
|
1014 |
-
#: classes/class-s2-frontend.php:
|
1015 |
msgid "unsubscribed from email notifications!"
|
1016 |
msgstr ""
|
1017 |
|
1018 |
-
#: classes/class-s2-frontend.php:
|
1019 |
msgid "[Un]Subscribe to Posts"
|
1020 |
msgstr ""
|
1021 |
|
1022 |
-
#: classes/class-s2-frontend.php:
|
1023 |
msgid "Subscribe to this blog"
|
1024 |
msgstr ""
|
1025 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1026 |
#: classes/class-s2-list-table.php:85
|
1027 |
msgid "Delete"
|
1028 |
msgstr ""
|
@@ -1031,6 +1039,37 @@ msgstr ""
|
|
1031 |
msgid "Toggle"
|
1032 |
msgstr ""
|
1033 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1034 |
#: include/counterwidget.php:7
|
1035 |
msgid "Subscriber Counter widget for Subscribe2"
|
1036 |
msgstr ""
|
@@ -1189,6 +1228,10 @@ msgid "Use Home Page"
|
|
1189 |
msgstr ""
|
1190 |
|
1191 |
#: include/widget.php:127
|
|
|
|
|
|
|
|
|
1192 |
msgid "Disable JavaScript"
|
1193 |
msgstr ""
|
1194 |
|
@@ -1197,7 +1240,6 @@ msgid "I'm just a plugin, please don't call me directly"
|
|
1197 |
msgstr ""
|
1198 |
|
1199 |
#: subscribe2.php:39
|
1200 |
-
#, php-format
|
1201 |
msgid ""
|
1202 |
"This version of Subscribe2 requires WordPress 3.1 or greater. Please update "
|
1203 |
"%1$s or use an older version of %2$s."
|
@@ -1205,6 +1247,21 @@ msgstr ""
|
|
1205 |
|
1206 |
#: subscribe2.php:51
|
1207 |
msgid ""
|
1208 |
-
"Subscribe2 cannot be
|
1209 |
"a site level"
|
1210 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright (C) 2013 Subscribe2
|
2 |
+
# This file is distributed under the same license as the Subscribe2 package.
|
|
|
|
|
|
|
|
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Subscribe2 8.9\n"
|
6 |
+
"Report-Msgid-Bugs-To: http://wordpress.org/tag/Subscribe2\n"
|
7 |
+
"POT-Creation-Date: 2013-03-19 20:24:19+00:00\n"
|
|
|
|
|
|
|
|
|
8 |
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
|
12 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
15 |
#: admin/send_email.php:46
|
16 |
msgid "Preview message sent!"
|
89 |
msgstr ""
|
90 |
|
91 |
#: admin/settings.php:165 admin/settings.php:397
|
92 |
+
#: classes/class-s2-list-table.php:36
|
93 |
msgid "Edit"
|
94 |
msgstr ""
|
95 |
|
541 |
msgid "Digest Subscription updated for Selected Registered Users!"
|
542 |
msgstr ""
|
543 |
|
544 |
+
#: admin/subscribers.php:146 classes/class-s2-admin.php:354
|
545 |
+
msgid "Public Subscribers"
|
546 |
+
msgstr ""
|
547 |
+
|
548 |
+
#: admin/subscribers.php:146 classes/class-s2-admin.php:358
|
549 |
+
msgid "Registered Subscribers"
|
550 |
+
msgstr ""
|
551 |
+
|
552 |
#: admin/subscribers.php:158 admin/subscribers.php:180
|
553 |
msgid "Add/Remove Subscribers"
|
554 |
msgstr ""
|
706 |
msgid "Subscribe to new blogs"
|
707 |
msgstr ""
|
708 |
|
709 |
+
#. #-#-#-#-# Subscribe2.pot (Subscribe2 8.9) #-#-#-#-#
|
710 |
+
#. Plugin Name of the plugin/theme
|
711 |
#: classes/class-s2-admin.php:8 include/widget.php:17
|
712 |
msgid "Subscribe2"
|
713 |
msgstr ""
|
750 |
msgid "All Users and Subscribers"
|
751 |
msgstr ""
|
752 |
|
|
|
|
|
|
|
|
|
753 |
#: classes/class-s2-admin.php:355
|
754 |
msgid "Confirmed"
|
755 |
msgstr ""
|
762 |
msgid "All Registered Users"
|
763 |
msgstr ""
|
764 |
|
|
|
|
|
|
|
|
|
765 |
#: classes/class-s2-admin.php:444
|
766 |
msgid "Post Author"
|
767 |
msgstr ""
|
911 |
msgid "Options reset!"
|
912 |
msgstr ""
|
913 |
|
914 |
+
#: classes/class-s2-core.php:608
|
915 |
msgid "Plain Text Excerpt Preview"
|
916 |
msgstr ""
|
917 |
|
918 |
+
#: classes/class-s2-core.php:610
|
919 |
msgid "Plain Text Full Preview"
|
920 |
msgstr ""
|
921 |
|
922 |
+
#: classes/class-s2-core.php:612
|
923 |
msgid "HTML Excerpt Preview"
|
924 |
msgstr ""
|
925 |
|
926 |
+
#: classes/class-s2-core.php:614
|
927 |
msgid "HTML Full Preview"
|
928 |
msgstr ""
|
929 |
|
930 |
+
#: classes/class-s2-core.php:1216
|
931 |
msgid "Registered User"
|
932 |
msgstr ""
|
933 |
|
934 |
+
#: classes/class-s2-core.php:1221
|
935 |
msgid "Confirmed Public Subscriber"
|
936 |
msgstr ""
|
937 |
|
938 |
+
#: classes/class-s2-core.php:1223
|
939 |
msgid "Unconfirmed Public Subscriber"
|
940 |
msgstr ""
|
941 |
|
942 |
+
#: classes/class-s2-core.php:1260
|
943 |
msgid "Check here to Subscribe to email notifications for new posts"
|
944 |
msgstr ""
|
945 |
|
946 |
+
#: classes/class-s2-core.php:1266
|
947 |
msgid ""
|
948 |
"By registering with this blog you are also agreeing to receive email "
|
949 |
"notifications for new posts but you can unsubscribe at anytime"
|
950 |
msgstr ""
|
951 |
|
952 |
+
#: classes/class-s2-core.php:1292
|
953 |
msgid "Check here to Subscribe to notifications for new posts"
|
954 |
msgstr ""
|
955 |
|
956 |
+
#: classes/class-s2-core.php:1382
|
957 |
msgid "Weekly"
|
958 |
msgstr ""
|
959 |
|
960 |
+
#: classes/class-s2-core.php:1516 classes/class-s2-core.php:1517
|
961 |
msgid "Author"
|
962 |
msgstr ""
|
963 |
|
964 |
+
#: classes/class-s2-core.php:1523
|
965 |
msgid "Posted on"
|
966 |
msgstr ""
|
967 |
|
968 |
+
#: classes/class-s2-core.php:1541 classes/class-s2-core.php:1542
|
969 |
msgid "Posted in"
|
970 |
msgstr ""
|
971 |
|
972 |
+
#: classes/class-s2-core.php:1547 classes/class-s2-core.php:1548
|
973 |
msgid "Tagged as"
|
974 |
msgstr ""
|
975 |
|
976 |
+
#: classes/class-s2-core.php:1614
|
977 |
msgid "Digest Email"
|
978 |
msgstr ""
|
979 |
|
980 |
+
#: classes/class-s2-core.php:1624
|
981 |
msgid "Digest Preview"
|
982 |
msgstr ""
|
983 |
|
984 |
+
#: classes/class-s2-frontend.php:56
|
985 |
msgid "Enter email address..."
|
986 |
msgstr ""
|
987 |
|
988 |
+
#: classes/class-s2-frontend.php:61 classes/class-s2-frontend.php:63
|
989 |
msgid "Your email:"
|
990 |
msgstr ""
|
991 |
|
992 |
+
#: classes/class-s2-frontend.php:171
|
993 |
msgid "Subscription Confirmation"
|
994 |
msgstr ""
|
995 |
|
996 |
+
#: classes/class-s2-frontend.php:173
|
997 |
msgid "Unsubscription Confirmation"
|
998 |
msgstr ""
|
999 |
|
1000 |
+
#: classes/class-s2-frontend.php:212
|
1001 |
msgid "New Subscription"
|
1002 |
msgstr ""
|
1003 |
|
1004 |
+
#: classes/class-s2-frontend.php:214
|
1005 |
msgid "subscribed to email notifications!"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
+
#: classes/class-s2-frontend.php:235
|
1009 |
msgid "New Unsubscription"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
+
#: classes/class-s2-frontend.php:237
|
1013 |
msgid "unsubscribed from email notifications!"
|
1014 |
msgstr ""
|
1015 |
|
1016 |
+
#: classes/class-s2-frontend.php:263
|
1017 |
msgid "[Un]Subscribe to Posts"
|
1018 |
msgstr ""
|
1019 |
|
1020 |
+
#: classes/class-s2-frontend.php:293 classes/class-s2-frontend.php:295
|
1021 |
msgid "Subscribe to this blog"
|
1022 |
msgstr ""
|
1023 |
|
1024 |
+
#: classes/class-s2-list-table.php:55 classes/class-s2-list-table.php:59
|
1025 |
+
msgctxt "column name"
|
1026 |
+
msgid "Email"
|
1027 |
+
msgstr ""
|
1028 |
+
|
1029 |
+
#: classes/class-s2-list-table.php:60
|
1030 |
+
msgctxt "column name"
|
1031 |
+
msgid "Date"
|
1032 |
+
msgstr ""
|
1033 |
+
|
1034 |
#: classes/class-s2-list-table.php:85
|
1035 |
msgid "Delete"
|
1036 |
msgstr ""
|
1039 |
msgid "Toggle"
|
1040 |
msgstr ""
|
1041 |
|
1042 |
+
#: classes/class-s2-list-table.php:98
|
1043 |
+
msgid "1 item"
|
1044 |
+
msgid_plural "%s items"
|
1045 |
+
msgstr[0] ""
|
1046 |
+
msgstr[1] ""
|
1047 |
+
|
1048 |
+
#: classes/class-s2-list-table.php:130
|
1049 |
+
msgid "Go to the first page"
|
1050 |
+
msgstr ""
|
1051 |
+
|
1052 |
+
#: classes/class-s2-list-table.php:137
|
1053 |
+
msgid "Go to the previous page"
|
1054 |
+
msgstr ""
|
1055 |
+
|
1056 |
+
#: classes/class-s2-list-table.php:146
|
1057 |
+
msgid "Current page"
|
1058 |
+
msgstr ""
|
1059 |
+
|
1060 |
+
#: classes/class-s2-list-table.php:152
|
1061 |
+
msgctxt "paging"
|
1062 |
+
msgid "%1$s of %2$s"
|
1063 |
+
msgstr ""
|
1064 |
+
|
1065 |
+
#: classes/class-s2-list-table.php:156
|
1066 |
+
msgid "Go to the next page"
|
1067 |
+
msgstr ""
|
1068 |
+
|
1069 |
+
#: classes/class-s2-list-table.php:163
|
1070 |
+
msgid "Go to the last page"
|
1071 |
+
msgstr ""
|
1072 |
+
|
1073 |
#: include/counterwidget.php:7
|
1074 |
msgid "Subscriber Counter widget for Subscribe2"
|
1075 |
msgstr ""
|
1228 |
msgstr ""
|
1229 |
|
1230 |
#: include/widget.php:127
|
1231 |
+
msgid "Use Referring Page"
|
1232 |
+
msgstr ""
|
1233 |
+
|
1234 |
+
#: include/widget.php:130
|
1235 |
msgid "Disable JavaScript"
|
1236 |
msgstr ""
|
1237 |
|
1240 |
msgstr ""
|
1241 |
|
1242 |
#: subscribe2.php:39
|
|
|
1243 |
msgid ""
|
1244 |
"This version of Subscribe2 requires WordPress 3.1 or greater. Please update "
|
1245 |
"%1$s or use an older version of %2$s."
|
1247 |
|
1248 |
#: subscribe2.php:51
|
1249 |
msgid ""
|
1250 |
+
"Subscribe2 cannot be activated as a network plugin. Please activate it at on "
|
1251 |
"a site level"
|
1252 |
msgstr ""
|
1253 |
+
|
1254 |
+
#. #-#-#-#-# Subscribe2.pot (Subscribe2 8.9) #-#-#-#-#
|
1255 |
+
#. Plugin URI of the plugin/theme
|
1256 |
+
#. #-#-#-#-# Subscribe2.pot (Subscribe2 8.9) #-#-#-#-#
|
1257 |
+
#. Author URI of the plugin/theme
|
1258 |
+
msgid "http://subscribe2.wordpress.com"
|
1259 |
+
msgstr ""
|
1260 |
+
|
1261 |
+
#. Description of the plugin/theme
|
1262 |
+
msgid "Notifies an email list when new entries are posted."
|
1263 |
+
msgstr ""
|
1264 |
+
|
1265 |
+
#. Author of the plugin/theme
|
1266 |
+
msgid "Matthew Robinson"
|
1267 |
+
msgstr ""
|
uninstall.php
CHANGED
@@ -22,30 +22,29 @@ if ( !defined('ABSPATH') && !defined('WP_UNINSTALL_PLUGIN') ) {
|
|
22 |
} else {
|
23 |
s2_uninstall();
|
24 |
}
|
25 |
-
|
26 |
-
function s2_uninstall() {
|
27 |
-
global $wpdb;
|
28 |
-
// get name of subscribe2 table
|
29 |
-
$public = $wpdb->prefix . "subscribe2";
|
30 |
-
// delete entry from wp_options table
|
31 |
-
delete_option('subscribe2_options');
|
32 |
-
// delete legacy entry from wp-options table
|
33 |
-
delete_option('s2_future_posts');
|
34 |
-
// remove and scheduled events
|
35 |
-
wp_clear_scheduled_hook('s2_digest_cron');
|
36 |
-
// delete usermeta data for registered users
|
37 |
-
// use LIKE and % wildcard as meta_key names are prepended on WPMU
|
38 |
-
// and s2_cat is appended with category ID integer
|
39 |
-
$wpdb->query("DELETE from $wpdb->usermeta WHERE meta_key LIKE '%s2_cat%'");
|
40 |
-
$wpdb->query("DELETE from $wpdb->usermeta WHERE meta_key LIKE '%s2_subscribed'");
|
41 |
-
$wpdb->query("DELETE from $wpdb->usermeta WHERE meta_key LIKE '%s2_format'");
|
42 |
-
$wpdb->query("DELETE from $wpdb->usermeta WHERE meta_key LIKE '%s2_autosub'");
|
43 |
-
// delete any postmeta data that supressed notifications
|
44 |
-
$wpdb->query("DELETE from $wpdb->postmeta WHERE meta_key = 's2mail'");
|
45 |
-
|
46 |
-
// drop the subscribe2 table
|
47 |
-
$sql = "DROP TABLE IF EXISTS `" . $public . "`";
|
48 |
-
$wpdb->query($sql);
|
49 |
-
} // end s2_uninstall()
|
50 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
?>
|
22 |
} else {
|
23 |
s2_uninstall();
|
24 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
}
|
26 |
+
function s2_uninstall() {
|
27 |
+
global $wpdb;
|
28 |
+
// get name of subscribe2 table
|
29 |
+
$public = $wpdb->prefix . "subscribe2";
|
30 |
+
// delete entry from wp_options table
|
31 |
+
delete_option('subscribe2_options');
|
32 |
+
// delete legacy entry from wp-options table
|
33 |
+
delete_option('s2_future_posts');
|
34 |
+
// remove and scheduled events
|
35 |
+
wp_clear_scheduled_hook('s2_digest_cron');
|
36 |
+
// delete usermeta data for registered users
|
37 |
+
// use LIKE and % wildcard as meta_key names are prepended on WPMU
|
38 |
+
// and s2_cat is appended with category ID integer
|
39 |
+
$wpdb->query("DELETE from $wpdb->usermeta WHERE meta_key LIKE '%s2_cat%'");
|
40 |
+
$wpdb->query("DELETE from $wpdb->usermeta WHERE meta_key LIKE '%s2_subscribed'");
|
41 |
+
$wpdb->query("DELETE from $wpdb->usermeta WHERE meta_key LIKE '%s2_format'");
|
42 |
+
$wpdb->query("DELETE from $wpdb->usermeta WHERE meta_key LIKE '%s2_autosub'");
|
43 |
+
// delete any postmeta data that supressed notifications
|
44 |
+
$wpdb->query("DELETE from $wpdb->postmeta WHERE meta_key = 's2mail'");
|
45 |
+
|
46 |
+
// drop the subscribe2 table
|
47 |
+
$sql = "DROP TABLE IF EXISTS `" . $public . "`";
|
48 |
+
$wpdb->query($sql);
|
49 |
+
} // end s2_uninstall()
|
50 |
?>
|