Version Description
Download this release
Release Info
Developer | MattyRob |
Plugin | Subscribe2 |
Version | 8.7 |
Comparing to | |
See all releases |
Code changes from version 8.6 to 8.7
- ChangeLog.txt +747 -0
- ReadMe.txt +1 -729
- admin/send_email.php +5 -0
- admin/settings.php +5 -5
- admin/subscribers.php +5 -138
- admin/your_subscriptions.php +2 -1
- classes/class-s2-admin.php +1 -1
- classes/class-s2-core.php +95 -157
- classes/class-s2-frontend.php +2 -4
- classes/class-s2-list-table.php +138 -0
- classes/class-s2-upgrade.php +226 -0
- include/widget.php +30 -19
- subscribe2.php +5 -5
- subscribe2.pot +99 -95
ChangeLog.txt
ADDED
@@ -0,0 +1,747 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
= Version 8.7 by Matthew Robinson =
|
2 |
+
|
3 |
+
* Enabled {TITLE} as a keyword in URL Tracking in free version
|
4 |
+
* Moved Subscribers page class code to a new external class file to avoid fatal PHP errors on some sites
|
5 |
+
* Fixed a glitch in the {TABLELINK} tag caused by adding support for {TINYLINK} to the digest email
|
6 |
+
* Fixed and repaired addition of extra comma to s2_subscribed table values and also addition of null s2cat values
|
7 |
+
* Fixed incomplete table creation on new installs - thanks to niclaslockner
|
8 |
+
* Fix for PHP Warning about an undefined $value variable on form submission - thanks to annewinterbottom
|
9 |
+
* Rename public subscriber variables internally for consistency
|
10 |
+
* Implement variable caching for Registered users in the same way as for Public subscribers
|
11 |
+
* Widen Subject boxes on the Subscribe2->Settings:Templates page - props Orion42
|
12 |
+
* Allow easier customisation of the word wrap length in plain text emails - props Orion42
|
13 |
+
* Abstracted the upgrade() code and made it incremental so that only necessary code is executed
|
14 |
+
* Fixed a bug in the Send Email page that failed to send emails to Public Subscribers when All Users was selected - thanks to Gui
|
15 |
+
* Added an option to disable JavaScript within the Widget
|
16 |
+
* Minor code improvements
|
17 |
+
|
18 |
+
= Version 8.6 by Matthew Robinson =
|
19 |
+
|
20 |
+
* Minor layout update to Widget Settings
|
21 |
+
* Fix for non-sending notifications for pages - proposed by ctcdesign
|
22 |
+
* Fix for a translation domain error in admin/settings.php - proposed by monpelaud
|
23 |
+
* Fix for deprecated is_blog_user() function on Multisite installs - proposed by hallcp
|
24 |
+
* Extend Subscribe2 database table to collect additional data to meet DreamHost privacy policy - thanks to matt, joshukraine and Dreamhost
|
25 |
+
* Refresh Subscribers page in admin, tables now sortable on present columns
|
26 |
+
* Order CSS files better by applying CSSComb
|
27 |
+
* Reuse $value variable in the 'frontend' class to reduce translation strings
|
28 |
+
* Improve AJAX form to obey the shortcode hide parameter - proposed by bwsl
|
29 |
+
* Correct spelling error in the Settings page - proposed by dimadin
|
30 |
+
* Call translation code via a hook to allow greater dynamic control - proposed by dimadin
|
31 |
+
* Look in more locations for translation files, can place in core languages folder now for upgrade protection
|
32 |
+
* Refresh Settings page in admin to a tabbed interface
|
33 |
+
* Strip HTML from email subject to improve compatibility with other plugins and WordPress 3.5
|
34 |
+
* Fixed bug in the display of compulsory categories in the Settings page
|
35 |
+
* Add option to manually send emails to All Registered Users and Public Subscribers - proposed by TigWeb
|
36 |
+
* Enable TinyURL link shortening for Digest Notification Emails if {TINYLINK} is present in the Email Template
|
37 |
+
* Fixed bug in TinyURL error handling and fallback when link generation fails
|
38 |
+
* Fixed bug where {DATE} was left blank in the subject field for future scheduled post notifications - thanks to Steve Savoy
|
39 |
+
* Added a filter to allow on-the-fly alteration of the size of the {IMAGE} in the paid version
|
40 |
+
* Fixed a warning message for a core function ready for WordPress 3.6
|
41 |
+
* Enabled {TITLE} as a keyword in URL Tracking in HTML version
|
42 |
+
|
43 |
+
= Version 8.5 by Matthew Robinson =
|
44 |
+
|
45 |
+
* Fixed width of a page select drop down in the Widget settings - thanks to Balky79
|
46 |
+
* Added option to check the comment subscription box by default - proposed by Doug Lerner
|
47 |
+
* Improved off-domain error message in Settings page and address checking if Blogname is selected
|
48 |
+
* Fixed an issue on Multisite installs displaying the wrong link to profiles pages for other blog sites - thanks to MadtownLems
|
49 |
+
* Fixed an issue with Image and Shortcode replacement in the visual editor (TinyMCE) - thanks to Dave Firman
|
50 |
+
* Fixed unique IDs for 2 possible error messages in the Settings page - thanks to MadtownLems
|
51 |
+
* Fixed several HTML5 validation error in the admin pages
|
52 |
+
* Improved regex replacedment of s strike and del HTML tags in plaintext emails - thanks to jimshell
|
53 |
+
* Use wp_kses() rather than strip_tags() on email subject lines so that single angle brackets are allowed - thanks to eightize and esmi
|
54 |
+
* Allow remote definition of email address in form - thanks to orion42
|
55 |
+
* Added ability to have compulsory categories - proposed by iClimb
|
56 |
+
* Apply WordPress the_author filter to the author names to improve plugin compatibility - proposed by SpaciousMind
|
57 |
+
* Added the ability to track the post ID in the tracking Parameter field - proposed by Laga
|
58 |
+
* Protect the 's2email' post meta key - proposed by Nally123
|
59 |
+
* Strip excess white space within the Digest email when images are removed
|
60 |
+
* Add a time column to the public subscriber table for hosting provider spam policy compliance - proposed by Erik N
|
61 |
+
* Change plugin folder name to suppress update prompts for the HTML version
|
62 |
+
* Rename js files consistently with core ticket 21633
|
63 |
+
* Add width parameter to comment form text to fix issues with some themes - proposed by mharpen
|
64 |
+
* Added option to include Sticky Posts at the top of all Digest Notifications - proposed by pkhatmedia
|
65 |
+
* Fixed some Markdown errors in the ReadMe
|
66 |
+
|
67 |
+
= Version 8.4 by Matthew Robinson =
|
68 |
+
|
69 |
+
* Fixed an error in the 'Send Mail' page that blocked emails from being sent
|
70 |
+
* Added tracking features to Digest title links in HTML version - thanks to Jeremy Schultz
|
71 |
+
* Provide clearer user feedback for Send and Preview buttons in "Send Email" window
|
72 |
+
* Add new option to the Widget to return users to the home page on submission
|
73 |
+
* Added warning to Settings page if selected sender email address is "off-domain"
|
74 |
+
* Fixed numerous minor SQL injections vectors - thanks to Tom Adams (holizz)
|
75 |
+
* Removed auto-embed iframes from HTML emails - thanks to Doug Lerner
|
76 |
+
* Add more intuitive user messages for Public Subscribers when Unsubscribing - thanks to Doug Lerner
|
77 |
+
|
78 |
+
= Version 8.3 by Matthew Robinson =
|
79 |
+
|
80 |
+
* Fixed a bunch of PHP messages - should not show anyway unless WP_DEBUG is true or PHP error reporting is on a high setting
|
81 |
+
* Fixed bulk category management so it applies to all users and not just the first record
|
82 |
+
* Update 'autosub' to no on one-click unsubscribe instead of erasing the value
|
83 |
+
* Return empty string is get_tracking_link() is passed and empty variable
|
84 |
+
* Fixed some typographical errors
|
85 |
+
* Fixed profile page to obey 'one click' display setting
|
86 |
+
* Fixed implode error seen when sending preview emails on some configurations
|
87 |
+
* Fixed a error in the admin user dropdown on installs (particularly Multisite) where there may be no administrator level users
|
88 |
+
* Added a button text filter for the Subscribe and Unsubscribe buttons - proposed by casben79
|
89 |
+
* Use wp_hash in place of MD5 to further obfuscate confirmation links - thanks to Charlie Eriksen, Otto and Ipstenu
|
90 |
+
|
91 |
+
= Version 8.2 by Matthew Robinson =
|
92 |
+
|
93 |
+
* Implemented use of Farbtastic as colour chooser in the Counter Widget because ColorPicker has been deprecated in WordPress
|
94 |
+
* Fixed one hook call in WordPress to pass $this variable by reference to save a little more RAM
|
95 |
+
* Fixed Subscribe2 implementation of custom taxonomies
|
96 |
+
* Fixed Bulk Management Format Change code to apply for all users
|
97 |
+
* Fix for low impact security vulnerability
|
98 |
+
|
99 |
+
= Version 8.1 by Matthew Robinson =
|
100 |
+
|
101 |
+
* Fixed redirect errors and crash affecting multisite installs on upgrade to 8.0 - thanks in particular to Ed Cooper
|
102 |
+
* Fixed several other multisite bugs affecting links and styling - thanks to Mark Olbert
|
103 |
+
* Fixed empty CSV exports - thanks to Gil Namur
|
104 |
+
|
105 |
+
= Version 8.0 by Matthew Robinson =
|
106 |
+
|
107 |
+
* Split the main plugin file into separate classes for more efficient (60% less RAM) server resource usage - huge thanks to Milan Petrovic
|
108 |
+
* Ensure notifications for posts are sent to all active registered users
|
109 |
+
* Fixed bug in Bulk Management code to include all filtered Registered Subscribers, not just those on current screen - thanks to samandiriel
|
110 |
+
* Fixed some PHP messages regarding use of deprecated clean_url() function and WordPress version checking - thanks to anmari
|
111 |
+
* Improved white space trimming in the code so it respects tabs and line breaks - thanks to belg4mit
|
112 |
+
* Updated screenshots to Subscribe2 8.0 and WordPress 3.3.1 screen layouts
|
113 |
+
* Implemented one-click buttons to subscribe and unsubscribe - thanks to dimadin for code patch
|
114 |
+
* Changed some default settings, sender to BLOGNAME and number of recipients per email to 1
|
115 |
+
* Implemented a change so that categories are not displayed in the filter dropdowns when using Subscribe2 in digest mode
|
116 |
+
* Ensure an action is specified for HTML5 validity - thanks to Franco Carinato
|
117 |
+
* Introduced 4 new hooks to filter per-post subscribers for each of the 4 email types - thanks to Nicolas Noé
|
118 |
+
|
119 |
+
= Version 7.2 by Matthew Robinson =
|
120 |
+
|
121 |
+
* Fix for non-sending Preview emails when sender details match recipient details exactly
|
122 |
+
* Remove some HTML tags (DEL, S and STRIKE) from plain text content to avoid confusing reading - props cpo
|
123 |
+
* Improved removal of excess white space within the content of the plain text emails
|
124 |
+
* Introduced 'size' parameter to the shortcode to allow sizing of the email text input box
|
125 |
+
* Fix for non-sending emails to newly Registered Subscribers - thanks to Gengar003 and WebEndev
|
126 |
+
* Fix for commenter subscriptions on systems without moderation in place - thanks to elarson
|
127 |
+
* Improved the TinyMCE plugin code that handles placement of the Subscribe2 shortcode in the rich text editor
|
128 |
+
* Tidied up some public subscribe functions removing unnecessary code
|
129 |
+
|
130 |
+
= Version 7.1 by Matthew Robinson =
|
131 |
+
|
132 |
+
* Fix for Opt-out by Author for Registered Users that resulted in posts being sent even though a user had opted out
|
133 |
+
* Workaround implemented for core WordPress glitch that reults in blank sender details in digest emails when using "Post Author" as sender
|
134 |
+
* Introduced DIV HTML tags to the administrion menu screens to allow jQuery custom hiding by plugins - proposed by madtownlems
|
135 |
+
* Reduced code overhead when collecting admin level users
|
136 |
+
* Fix for non-sending emails when published via XML RPC interface (like the iOS app and Windows Live Writer) - thanks to bellarush & Marc Williams
|
137 |
+
* Removed the X-Mailer header ready for core PHPMailer update
|
138 |
+
* Removed single use of split() function which is deprecated in PHP 5.3.0
|
139 |
+
* Added additional parameters to the 's2_html_email' hook - props Milan Dinić
|
140 |
+
* Added a check on wp-cron.php to warn digest email users - props Dave Bergschneider
|
141 |
+
|
142 |
+
= Version 7.0.1 by Matthew Robinson =
|
143 |
+
|
144 |
+
* Fixed a typo in the include/options file that caused failed installs and upgrades
|
145 |
+
* Fix for get_registered() function for fringe situations
|
146 |
+
|
147 |
+
= Version 7.0 by Matthew Robinson =
|
148 |
+
|
149 |
+
* NOTE Subscribe2 now requires WordPress 3.1 or higher
|
150 |
+
* Implemented top level menu to make Subscribe2 menu access easier
|
151 |
+
* Introduced the ability to add UTM Tracking parameters to email links - Thanks to Sander de Boer
|
152 |
+
* Introduced Opt-out by Author for Registered Users (on sites where there is more than one author)
|
153 |
+
* Improved table layout code on user management page
|
154 |
+
* Make use of core checked() function to save code space
|
155 |
+
* Show user name for Registered Users when mouse is hovered over email address in Subscribe2->Subscribers
|
156 |
+
* Move IP address display on hover from date of signup to email address for Public Subscribers so consistent with above change
|
157 |
+
* Introduced the 's2_capability' filter to allow API amendments to page access for different user capabilities
|
158 |
+
* Added support to exclude 'post formats' from generating emails provided 'post formats' are supported by the current active theme
|
159 |
+
* Implemented use of core WordPress functions to place the authoring button shortcuts, removed reliance on buttonsnap.php so this library is now dropped
|
160 |
+
* Implement use of wp_register_scripts() function
|
161 |
+
* Display custom post types added using the API in the Settings page as confirmation things are working
|
162 |
+
* Added two missed strings to the translation domain and corrected a typo - thanks to Stig Ulfsby
|
163 |
+
* Added a filter for the outgoing email subject line
|
164 |
+
* Added an option to AJAXify the form, read the FAQs for how to use this new feature
|
165 |
+
|
166 |
+
= Version 6.5 by Matthew Robinson =
|
167 |
+
|
168 |
+
* Fix for Multisite / MU detection for WordPress versions prior to 3.0
|
169 |
+
* Fix in the upgrade() function to insert database entires for Registered Users on first time install
|
170 |
+
* Fix for the uninstaller script to allow use on regular and Multisite WordPress
|
171 |
+
* Updated uninstaller to remove any postmeta entries on uninstall
|
172 |
+
* Fix for blank post detail on HTML Excerpt notifications when the post content is brief
|
173 |
+
* Fix for some PHP notices
|
174 |
+
* Fix to remove all cron settings when options are reverted to per-post
|
175 |
+
* Minor code layout changes and comment updates
|
176 |
+
* Dropped use of WP_CONTENT_DIR to fix issues on site where wp-content/ folder has been moved
|
177 |
+
|
178 |
+
= Version 6.4 by Matthew Robinson =
|
179 |
+
|
180 |
+
* Wrapped all KEYWORDS in curly brackets {} so capitalised keywords can be used in content without being replaced
|
181 |
+
* Added support for Custom Taxonomies - thanks to Ian Dunn
|
182 |
+
* Added feature to allow commenters on your blog to subscribe when commenting (requires WordPress 2.9+)
|
183 |
+
* Improved and updated some of the jQuery ready for WordPress 3.2
|
184 |
+
* Introduced 's2_registered_subscribers' filter to allow other plugins to dynamically add or remove email addresses to the 'registered' array - thanks to Allan Tan
|
185 |
+
* Improved handling of [gallery] shortcode where no post id is defined for HTML emails - thanks to Chris Grady
|
186 |
+
* Removed trailing semi colons from the maybe_add_column function calls
|
187 |
+
* Fixed a type on the Settings page - thanks to Deborah Hanchey
|
188 |
+
* Updated editor buttons to insert shortcode instead of token
|
189 |
+
* Fixed some PHP notices about undeclared variables
|
190 |
+
* Compressed some of the javascript code includes to reduce download time
|
191 |
+
* Fixes to the Counter Widget ColorPicker jQuery code
|
192 |
+
* Fixes to the Counter Widget label tags
|
193 |
+
* Fixed a bug in the new_category function that was introduced in version 6.3 - thanks to crashtest
|
194 |
+
* Improved the user experience when clicking Subscribe and Unsubscribe links in the WordPress MultiSite interface - thanks to Huyz
|
195 |
+
* Improved the Bulk Manage section to take into account the digest notification setting
|
196 |
+
* Updated the uninstall script
|
197 |
+
* Updated some of the code comments to aid reviewing
|
198 |
+
* Other minor improvements and fixes
|
199 |
+
|
200 |
+
= Version 6.3 by Matthew Robinson =
|
201 |
+
|
202 |
+
* Stopped using deprecated get_usermeta(), update_usermeta() and delete_usermeta() functions in WordPress 3.1
|
203 |
+
* Use WP_User_Query class and functions in WordPress 3.1
|
204 |
+
* Stop using buggy is_blog_user() multisite function
|
205 |
+
* Fixed a bug where the creating of a new category would re-subscribed digest email users incorrectly
|
206 |
+
|
207 |
+
= Version 6.2 by Matthew Robinson =
|
208 |
+
|
209 |
+
* Pass email address to add() function explicitly
|
210 |
+
* Fix typos in the ReadMe
|
211 |
+
* Added warning on the Options page to avoid using the Subscribe2 KEYWORDS in posts as they will get substituted
|
212 |
+
* Added HTML LABEL tags to the Subscribe2 form to support WCAG
|
213 |
+
* SSL friendly with WordPress admin areas
|
214 |
+
* Added filter to allow on-the-fly manipulation of the digest email
|
215 |
+
* Added option choice to have emails send from the global admin email and addressed from the name of the blog
|
216 |
+
* Change sending details for Preview emails so they can be more easily identified by type
|
217 |
+
* Fixed a typo in a screen message to WordPressMU users
|
218 |
+
|
219 |
+
= Version 6.1 by Matthew Robinson =
|
220 |
+
|
221 |
+
* Fixed a glitch in the HTML tags in the Subscribe2 Widget that affected drag and drop functions in WordPress - thanks to Marty McOmber
|
222 |
+
* Improved detection of Multisite installs - thanks to Nada Oneal
|
223 |
+
* Fixed precontent and postcontent in the Widget to retain entered HTML tags - reported by Rob Saxe
|
224 |
+
* Fixed a few small typos in the inline code comments and email subjects
|
225 |
+
* Fixed a bug where Bulk Management changes to move all users to Plain Text Full content would result in blank settings - reported by Sean @ GetSatisfaction
|
226 |
+
* Fixed issued with TIME and AUTHORNAME keywords in digest emails - thanks to Robert @ GetSatisfaction
|
227 |
+
* Introduced a more flexible Subscribe2 shortcode - thanks to Milan for the patch code
|
228 |
+
|
229 |
+
= Version 6.0 by Matthew Robinson =
|
230 |
+
|
231 |
+
* Improved case sensitive SQL queries to avoid issues on some server configurations
|
232 |
+
* Introduced option to check the notification override button by default at Settings->Subscribe2 - Appearance
|
233 |
+
* Extend support for for multiuser sites to include WordPress 3.0
|
234 |
+
* Converted both Widgets to the WordPress 2.8 API - check your widgets are installation
|
235 |
+
* Improved the Colour Picker in the Counter Widget
|
236 |
+
* Integrated the Counter Widget into the Settings page
|
237 |
+
* Removed several functions from the code for WordPress versions prior to 2.8 (2.8 is now a minimum requirement for Subscribe2)
|
238 |
+
* Removed legacy tinymce files that are no longer required
|
239 |
+
* Added code to prevent duplicate Public Subscriber entries
|
240 |
+
* Introduced TABLELINKS keyword for digest type notifications
|
241 |
+
|
242 |
+
= Version 5.9 by Matthew Robinson =
|
243 |
+
|
244 |
+
* Added support for WordPress 3.0 Custom Post Types
|
245 |
+
* Fix for failed save of "entries per page" setting
|
246 |
+
* Correct Digest display issue associated with use of AUTHORNAME keyword
|
247 |
+
* Fixed issue where posts were not included in Digest notifications despite settings
|
248 |
+
* Fixed possible issue where a page is not included in Digest notifications if a certain category is excluded
|
249 |
+
* Fixed issue where successful emailing from Post->Mail Subscribers would report as failed if Subscribe2 is set to email one user per email - Thanks to Meini from Utech Computer Solutions (www.utechworld.com)
|
250 |
+
* Added a preview button in the Email Subscribers screen that will send current content of the window to the logged in user
|
251 |
+
* Avoid duplicating the MIME-Version header in the emails
|
252 |
+
* Removed direct links to Support forum
|
253 |
+
* Ensure that Subscribe2 sanitises email addresses to RFC5322 and RFC5321 - Thanks to Vital
|
254 |
+
* Improved the 'Save Emails to CSV' function to include additional information - Thanks to John Griffiths (www.luadesign.co.uk)
|
255 |
+
* Report that there is no digest notification to resend rather than success if there are no posts in the email
|
256 |
+
|
257 |
+
= Version 5.8 by Matthew Robinson =
|
258 |
+
|
259 |
+
* Reverted erroneous use of a WordPress 3.0 function
|
260 |
+
|
261 |
+
= Version 5.7 by Matthew Robinson =
|
262 |
+
|
263 |
+
* Corrected some missed strings to allow i18n translation
|
264 |
+
* Added AUTHORNAME to digest notification in the same was a TAGS and CATS (i.e. a fixed location in email independent of location in template)
|
265 |
+
* Ensure digest email sending times are not updated when resend is invoked
|
266 |
+
* Error check options for number of users displayed per page and if not an integer use default setting of 25
|
267 |
+
* Better name for cron 'define' and improved 'define' and 'defined' statements
|
268 |
+
* Revert to using WordPress capability when adding menus rather than user_level, latter is deprecated
|
269 |
+
* Added DATE and TIME keywords for per-post notifications
|
270 |
+
|
271 |
+
= Version 5.6 by Matthew Robinson =
|
272 |
+
|
273 |
+
* Fixed a critical bug in the digest function - a typo resulting failed notifications
|
274 |
+
* Added ability to resend the last digest email again
|
275 |
+
* Improved Bulk Management to apply to filtered users only (provided they are still Registered and not Public Subscribers)
|
276 |
+
* Fix for HTML Excerpt mails not using email template
|
277 |
+
|
278 |
+
= Version 5.5 by Matthew Robinson =
|
279 |
+
|
280 |
+
* Made the email header function pluggable to allow custom changes that persist through versions
|
281 |
+
* Fix for failed upgrades
|
282 |
+
* Ensure HTML entities in blogname are decoded for emails
|
283 |
+
* Add safety checking for options at install to protect against randomly resetting options
|
284 |
+
|
285 |
+
= Version 5.4 by Matthew Robinson =
|
286 |
+
|
287 |
+
* Fixed a bug introduced in 5.3 that produced in malformed email headers resulting in failed emails
|
288 |
+
* Fixed an upgrade error that could result in an incomplete table update which blocked new subscriptions
|
289 |
+
|
290 |
+
= Version 5.3 by Matthew Robinson =
|
291 |
+
|
292 |
+
* Added an HTML Excerpt notification type which sends an HTML formatted excerpt of the post
|
293 |
+
* Issue an error message in Settings->Subscribe2 if there is no WordPress page published on the blog site
|
294 |
+
* Improved usage of time dropdown in Settings->Subscribe2 so it works for periodic emails that are on a less than daily frequency
|
295 |
+
* Sorted categories by slugname for better presentation in the category selection area
|
296 |
+
* Make sure Preview emails skip the mail queue if WPMQ is used
|
297 |
+
* Fixed issue where blog posts made by email generated duplicate notifications
|
298 |
+
* Added fixes with the hope of stopping the random settings reset glitch many thanks to Barbara Wiebel
|
299 |
+
* Fixed AJAX bugs caused by deprecated jQuery function
|
300 |
+
* Fixed an issue where Registered Users who have requests a password reset disappear from Subscribe2
|
301 |
+
* Amended code for IP address collection to work around IIS servers
|
302 |
+
* Added COUNT keyword
|
303 |
+
* Ensure that BLOGNAME is not used in digest emails if it is empty
|
304 |
+
|
305 |
+
= Version 5.2 by Matthew Robinson =
|
306 |
+
|
307 |
+
* Added screen_icon() to each Subscribe2 admin page
|
308 |
+
* Improved addition of links to the Plugins admin page
|
309 |
+
* Improved XHTML validity of admin pages
|
310 |
+
* Improved display of category hierarchy display in the category form
|
311 |
+
* Added ability to use TAGS & CATS keywords in digest mails (position is static irrespective of keyword location)
|
312 |
+
* Use PHP variable for Subscribe2 folder to allow for easier renaming (if needed)
|
313 |
+
* Fixed a bug in TinyURL encoding introduced when links were click enabled
|
314 |
+
* Removed BurnURL from the plugin as it appears to be no longer operational
|
315 |
+
* Added urlencode to email addresses in Tools->Subscribers when editing other user preferences
|
316 |
+
* Restored several FAQs to the ReadMe file and the [WordPress.org FAQ section](http://wordpress.org/extend/plugins/subscribe2/faq/)
|
317 |
+
|
318 |
+
= Version 5.1 by Matthew Robinson =
|
319 |
+
|
320 |
+
* Add widget options to add custom text before and a after the dynamic Subscribe2 output - thank to Lee Willis
|
321 |
+
* Add protection against SQL injection attacks to the data entered into the Subscribe2 table
|
322 |
+
* Applied a fix for WP_User_Search on PHP4 installations
|
323 |
+
* Collect IP address of subscribers either at initial submission or at confirmation as required by some hosts to allow relaxation of email restrictions. IP details are in the database or available when the mouse pointer is held over the sign up date in Tools->Subscribers
|
324 |
+
* Fix for script execution time limit code for sites that have safe mode on or that have disable ini_set()
|
325 |
+
* Display category slugs when mouse pointer is held over the name in the category form area
|
326 |
+
* Fixed display of HTML entities in the subject of emails by using html_entity_decode()
|
327 |
+
* Fixed substitution of the MYNAME keyword in notification emails
|
328 |
+
* Added option to use BurnURL as an alternative to TinyURL to create shorter link URLs
|
329 |
+
|
330 |
+
= Version 5.0 by Matthew Robinson =
|
331 |
+
|
332 |
+
* Change version number to reflect change in the on going support of the plugin which is now a searchable forum or a paid service
|
333 |
+
* Added links to online Subscribe2 resources into the Options->Subscribe2 page
|
334 |
+
* Fixed Digest Time Dropdown to recall Cron Task scheduled time
|
335 |
+
* Fixed code using updated [Admin Menu Plugin](http://wordpress.org/extend/plugins/ozh-admin-drop-down-menu/) API
|
336 |
+
* Fixed foreach() error in widget rename function
|
337 |
+
* Improved layout of widget control boxes
|
338 |
+
* Improved identification of Administrator level users on blogs where usermeta table entries for user_level are low or missing
|
339 |
+
* Removed avatar plugin support on WPMU due to processing overhead
|
340 |
+
* Improved the layout of the digest email with respect to inclusion of unnecessary white space
|
341 |
+
* Extended maximum script runtime for servers not using PHP in safe mode
|
342 |
+
|
343 |
+
= Version 4.18 by Matthew Robinson =
|
344 |
+
|
345 |
+
* Option to sort digest posts in ascending or descending order
|
346 |
+
* Check that plugin options array exists before calling upgrade functions
|
347 |
+
* Improved reliability of the Preview function
|
348 |
+
* Extended Preview function to digest emails
|
349 |
+
* Fixed a code glitch that stopped CATS and TAGS from working
|
350 |
+
* Fixed incorrect sender information is emails are set to come from Post Author
|
351 |
+
* Simplified email notification format options in Users->Subscriptions for per-post notifications
|
352 |
+
* Added Bulk Manage option to update email notification format
|
353 |
+
* Simplified the usermeta database entries from two format variables down to one
|
354 |
+
* Removed trailing spaces from some strings for improved i18n support
|
355 |
+
* Improved Bulk Subscribe and Unsubscribe routines to avoid database artefacts
|
356 |
+
* Moved Select/Deselect All check box to the top of the category list in admin pages
|
357 |
+
* Fixed small layout glitch in Manage->Subscribers screen
|
358 |
+
* Added ChangeLog section to ReadMe to support WordPress.org/extend development
|
359 |
+
|
360 |
+
= Version 4.17 by Matthew Robinson =
|
361 |
+
|
362 |
+
* Tested for compatibility with WordPress 2.8.x
|
363 |
+
* Added TAGS and CATS keyword for per-post notification templates
|
364 |
+
* Fixed bug where confirmation emails may have an empty sender field if notifications come from post author
|
365 |
+
* Fixed a bug in WPMU CSS
|
366 |
+
* Added option to exclude new categories by default
|
367 |
+
* Fixed a bug where emails may not be sent to subscribers when a user subscribes or unsubscribes
|
368 |
+
* Improved accessing of 'Admin' level users on blogs where user_level is set below 10
|
369 |
+
* Added ability to send email previews to currently logged in user from Settings->Subscribe2
|
370 |
+
* Styled admin menu form buttons to fit with WordPress theme
|
371 |
+
* Improved handling of confirmation sending to reduce errors
|
372 |
+
|
373 |
+
= Version 4.16 by Matthew Robinson =
|
374 |
+
|
375 |
+
* Correct minor layout issue in Settings->Subscribe2
|
376 |
+
* Allow users to define the div class name for the widget for styling purposes
|
377 |
+
* Select from a greater number of notification senders via dropdown list in Settings
|
378 |
+
* Improved efficiency of newly added WordPressMU code
|
379 |
+
* Added ability to manage across-blog subscriptions when using WordPressMU
|
380 |
+
* Fixed bug whereby Public Subscribers may not have got notification emails for posts if Private Posts were blocked
|
381 |
+
* Added ability to define email Subject contents in Settings->Subscribe2
|
382 |
+
* Sanity checks of email subject and body templates to ensure they are not empty
|
383 |
+
* Introduced s2_html_email and s2_plain_email filters to allow manipulation of email messages after construction
|
384 |
+
* Amended handling of database entries to simplify code and database needs
|
385 |
+
* Improved the layout of the Subscriber drop down menu
|
386 |
+
* Added bullet points to the TABLE of posts
|
387 |
+
* Ensure database remains clean when categories are deleted
|
388 |
+
* Added new option to manage how auto-subscribe handles excluded categories
|
389 |
+
|
390 |
+
= Version 4.15 by Matthew Robinson =
|
391 |
+
|
392 |
+
* Fixed E_DEPRECATE warning caused by a variable being passed by reference to the ksort() function
|
393 |
+
* Fixed called to undefined function caused by typo
|
394 |
+
* Fixed a syntax error in the SQL code constructors affecting some users
|
395 |
+
|
396 |
+
= Version 4.14 by Matthew Robinson =
|
397 |
+
|
398 |
+
* Reordered some functions to improve grouping
|
399 |
+
* Stop s2mail custom variable being added if empty
|
400 |
+
* Localised 'Send Digest Notification at' string
|
401 |
+
* Add support for template tags in Post->Mail Subscribers emails
|
402 |
+
* Improve handling of translation files for more recent version of WordPress
|
403 |
+
* Implemented <label> tags in the admin pages so text descriptors are click enabled
|
404 |
+
* Improved subscription preferences for WordPress MU (Huge thanks to Benedikt Forchhammer)
|
405 |
+
* Added TINYLINK tag to allow TinyURL insertion in place of PERMALINK
|
406 |
+
* Improved layout of Tools->Subscriber page (Thanks to Anne-Marie Redpath)
|
407 |
+
* Enhancements to Subscription form layout (Thanks to Anne-Marie Redpath and Andy Steinmark)
|
408 |
+
* Sender details now uses current user information from Write->Mail Subscribers
|
409 |
+
* Introduced 's2_template_filter' to allow other plugins to amend the email template on-the-fly
|
410 |
+
|
411 |
+
= Version 4.13 by Matthew Robinson =
|
412 |
+
|
413 |
+
* Update weekly description
|
414 |
+
* Improve layout in the Subscribe2 form
|
415 |
+
* Fixed bug where registering users would not be subscribed to categories if using the checkbox on the registration page
|
416 |
+
* Improved buttonsnap function checking to reduce PHP notices
|
417 |
+
* Fixed typo when including CSS information in HTML emails
|
418 |
+
* Fix 'edit' links in the Tools->Subscribers page for blogs where the WordPress files are not in root
|
419 |
+
* Improved Tools->Subscribers page layout by hiding some buttons when they are not needed
|
420 |
+
* Fixed glitch in default options settings file
|
421 |
+
* Added option to include or exclude a link back to the blog theme CSS information within the HTML emails
|
422 |
+
* Improve per-post exceptions to sending emails by introducing a separate meta-box rather than relying on a custom field
|
423 |
+
* Fix for Gallery code in emails sending entire media library
|
424 |
+
* Updated screen shots
|
425 |
+
|
426 |
+
= Version 4.12 by Matthew Robinson =
|
427 |
+
|
428 |
+
* Added new option to remove Auto Subscribe option from Users->Your Subscriptions
|
429 |
+
* New POSTTIME token for digest email notifications
|
430 |
+
* Preserve mail after sending from Write->Mail Subscribers
|
431 |
+
* Introduced the Subscriber Counter Widget
|
432 |
+
* Use Rich Text Editor in Write->Mail Subscribers for the Paid HTML version
|
433 |
+
* Per User management in Admin
|
434 |
+
* Added support Uninstall API in WordPress 2.7
|
435 |
+
* Add support for 'Meta Widget' links
|
436 |
+
* Subscribers are sorted alphabetically before sending notifications
|
437 |
+
* Added ability to bulk unsubscribe a list of emails pasted into manage window
|
438 |
+
* Define number of subscribers in Manage window
|
439 |
+
* Added options for admin emails when public users subscribe or unsubscribe
|
440 |
+
* Fixed bug that prevented sending of Reminder emails from Manage->Subscribers
|
441 |
+
* Amended confirmation code so that only one email is sent no matter how many times users click on (un)subscribe links
|
442 |
+
|
443 |
+
= Version 4.11 by Matthew Robinson =
|
444 |
+
|
445 |
+
* Works in WordPress 2.7-almost-beta!
|
446 |
+
* Fixed a bug in the mail() function that meant emails were not sent to recipients if the BCCLimit setting was greater than the total number of recipients for that mail type
|
447 |
+
* Ensured that the array of recipients was cast correctly in the reminder function
|
448 |
+
* Fixed display of html entities in the reminder emails
|
449 |
+
* Fixed a bug in the SQL statements for WordPress MU installations
|
450 |
+
* Corrected a typo in the message displayed on the WordPress registration page if subscriptions are automatic
|
451 |
+
* Several layout and inline comment changes
|
452 |
+
|
453 |
+
= Version 4.10 by Matthew Robinson =
|
454 |
+
|
455 |
+
* Fixed Registration form action from WordPress registrations
|
456 |
+
* Repositioned the button to send reminder emails
|
457 |
+
* Implemented WP_CONTENT_URL and WP_CONTENT_DIR
|
458 |
+
* Added filter for <a href="http://planetozh.com/blog/2008/08/admin-drop-down-menu-more-goodness-an-api/">Admin Drop Down Menu</a>
|
459 |
+
* Improve functioning of Process button in Manage admin pane
|
460 |
+
* Improved form compliance with XHTML
|
461 |
+
* Fixed bug with cron time being changed every time options are changed
|
462 |
+
|
463 |
+
= Version 4.9 by Matthew Robinson =
|
464 |
+
|
465 |
+
* Send email direct to recipient if BCC is set as 1
|
466 |
+
* Fix issue where WordPress shortcodes were not stripped out of emails
|
467 |
+
* Amended Manage page to resolve issues with IE and Opera not passing form information correctly
|
468 |
+
* Amended Manage page to allow for bulk management of public users
|
469 |
+
* Amended WordPress API usage for translation files to 2.6 compatible syntax
|
470 |
+
* Allow Editor and Author users to send emails from Write->Mail Subscribers
|
471 |
+
* Post collection for CRON function is more dynamic
|
472 |
+
* CRON function sanity to checks for post content before sending a notification
|
473 |
+
* Fixed get_register() function to allow for user_activation field
|
474 |
+
* Corrected typos in options.php
|
475 |
+
* Added a search box to the Manage->Subscribers window
|
476 |
+
* Strip tags and HTML entities from email subjects
|
477 |
+
* Improved message feedback in Write->Mail
|
478 |
+
* Added html_entity_decode to sender name fields
|
479 |
+
* Change Menu string for User menu to make it clearer whose preferences are being edited
|
480 |
+
|
481 |
+
= Version 4.8 by Matthew Robinson =
|
482 |
+
|
483 |
+
* Removed unnecessary return statement at end of publish() function
|
484 |
+
* Ensured posts in digest are listed in date order
|
485 |
+
* Improved compatibility with other plugins by only inserting JavaScript code into Subscribe2's own admin pages
|
486 |
+
* Added BCCLIMIT and S2PAGE to options page with AJAX editing
|
487 |
+
* Improved setting of CRON task base time
|
488 |
+
* Improved handling of option values in the options form
|
489 |
+
* Full XHTML compliance on all Subscribe2 admin pages
|
490 |
+
* Decode HTML entity codes in notification email subjects
|
491 |
+
* Added Subscribe2 support for blogging via email
|
492 |
+
* Work-around fix implemented for WordPress the_title bug
|
493 |
+
|
494 |
+
= Version 4.7 by Matthew Robinson =
|
495 |
+
|
496 |
+
* Added admin control over default auto subscribe to new category option
|
497 |
+
* Improved Cron code to reduce the chance of duplicate emails
|
498 |
+
* Fixed a string that was missed from the translation files
|
499 |
+
* Improved time variable handling for cron functions, especially when UTC is different from both server time and blog time
|
500 |
+
* Completed code changes to allow WPMU compatibility
|
501 |
+
* Fixed some issues with the email headers now that Subscribe2 is using wp_mail() again
|
502 |
+
|
503 |
+
= Version 4.6 by Matthew Robinson =
|
504 |
+
|
505 |
+
* Fixed mis-reporting of server error when unsubscribing
|
506 |
+
* Fixed fatal errors involving buttonsnap library
|
507 |
+
* Improved database entry management for new subscribers
|
508 |
+
* Fixed issue where Subscribe2 grabbed the first page from the database even if it wasn't published
|
509 |
+
* Fixed upgrade reporting for Debug and Uninstaller plugins
|
510 |
+
|
511 |
+
= Version 4.5 by Matthew Robinson =
|
512 |
+
|
513 |
+
* Added Support for WordPress 2.5!
|
514 |
+
* Fixed HTML typo in admin submission message
|
515 |
+
* Fixed time display for cron jobs in Options->Subscribe2 when displayed on blogs using a time offset
|
516 |
+
* Added Debug plugin to the download package
|
517 |
+
* Improved descriptions of email template keywords in Options->Subscribe2
|
518 |
+
* Display subscribers in batches of 50 in Manage->Subscribers
|
519 |
+
* Fixed some XHTML validation errors
|
520 |
+
* Improved admin menu layout for compliance with WordPress 2.5
|
521 |
+
* Reverted to using wp_mail instead of mail to ensure proper header encoding
|
522 |
+
* Improved mail header formatting - thanks to Chris Carlson
|
523 |
+
* Add ability to skip email notification using a Custom Field (s2mail set as "no")
|
524 |
+
* Improved CSV export - thanks to Aaron Axelsen
|
525 |
+
* Added some compatibility for WPMU - thanks to Aaron Axelsen
|
526 |
+
* Added some error feedback to blog users if mails fail to send
|
527 |
+
* Moved Buttonsnap due to far to many fatal error complaints
|
528 |
+
* Added option to send notifications for Private posts
|
529 |
+
* Improved handling of notification for Password Protected Posts
|
530 |
+
|
531 |
+
= Version 4.4 by Matthew Robinson =
|
532 |
+
|
533 |
+
* Fixed non-substitution of TABLE keyword
|
534 |
+
* Fixed bug in usermeta update calls in unsubscribe_registered_users function
|
535 |
+
* Fixed bug in array handling in cron function that may have stopped emails sending
|
536 |
+
* Improved array handling in the Digest function
|
537 |
+
* Added an Un-installer to completely removed Subscribe2 from your WordPress install
|
538 |
+
|
539 |
+
= Version 4.3 by Matthew Robinson =
|
540 |
+
|
541 |
+
* Fixed bug where digest emails were sent to unsubscribed users - Thanks to Mr Papa
|
542 |
+
* Stripped slashes from Subject when sending from Write->Mail Subscribers - Thanks to James
|
543 |
+
* Ensured all admin pages created by Subscribe2 are valid XHTML 1.0 Transitional code
|
544 |
+
* Added default mail templates and other missed string values to i18n files to allow easier first time translation - thanks to Kjell
|
545 |
+
* Added option to set the hour for digest email notifications provided the schedule interval is one day or greater
|
546 |
+
* Moved option variable declaration to ensure better caching
|
547 |
+
* Fixed bug where cron tasks were not removed when options were reset
|
548 |
+
* Fixed email notifications for future dated posts
|
549 |
+
* Fixed QuickTag Icons and mouse-over floating text
|
550 |
+
|
551 |
+
= Version 4.2 by Matthew Robinson =
|
552 |
+
|
553 |
+
* Added translation capability to user feedback strings - thanks to Lise
|
554 |
+
* Corrected some other translation strings
|
555 |
+
* Fixed bug in notification emails to admins when new users subscribe
|
556 |
+
* Updated default options code
|
557 |
+
|
558 |
+
= Version 4.1 by Matthew Robinson =
|
559 |
+
|
560 |
+
* Fixed sending of notifications for Pages
|
561 |
+
* Fixed password protected post bug for Digest email notifications
|
562 |
+
* Fixed blank email headers if admin data is not at ID 1
|
563 |
+
|
564 |
+
= Version 4.0 by Matthew Robinson =
|
565 |
+
|
566 |
+
* Compatible with WordPress 2.3
|
567 |
+
* Widget Code now integrated into the main plugin and added as an option
|
568 |
+
* More Options for Email Notifications
|
569 |
+
* Category Lists fixed for WordPress 2.3 and now show empty categories
|
570 |
+
|
571 |
+
= Version 3.8 by Matthew Robinson =
|
572 |
+
|
573 |
+
* Fixed User Menu Settings when Digests enabled
|
574 |
+
* Changed Registered Subscribers to Registered Users in drop down to avoid confusion
|
575 |
+
* Minor code revisions for admin menu layout
|
576 |
+
|
577 |
+
= Version 3.7 by Matthew Robinson =
|
578 |
+
|
579 |
+
* Change from deprecated get_settings -> get_option
|
580 |
+
* Fix for confirmation links not working for custom installs
|
581 |
+
* Abandoned wp_mail due to core bugs
|
582 |
+
* Added Digest Table feature (untested)
|
583 |
+
* Added icons to manage window (Thanks to http://www.famfamfam.com/lab/icons/)
|
584 |
+
* Fixed Bulk Manage bug when using i18n files
|
585 |
+
* Fixed bug in cron emails if <!--more--> tag present
|
586 |
+
|
587 |
+
= Version 3.6 by Matthew Robinson =
|
588 |
+
|
589 |
+
* Fixed a typo in Content-Type mail headers
|
590 |
+
* Fixed Auto Register functions to obey Excluded Categories
|
591 |
+
* Added option to check WP-Register checkbox by default
|
592 |
+
|
593 |
+
= Version 3.5 by Matthew Robinson =
|
594 |
+
|
595 |
+
* Fixed a bug in the upgrade function that was messing up the options settings
|
596 |
+
* Updated the include.php file to preset recently introduced option settings
|
597 |
+
|
598 |
+
= Version 3.4 by Matthew Robinson =
|
599 |
+
|
600 |
+
* QuickTag button now displays a Marker! (HUGE thanks to Raven!)
|
601 |
+
* Fix for excluded categories in User Menu
|
602 |
+
* BCCLIMIT typo corrected in Mail function
|
603 |
+
* Call to translation files moved to avoid call to undefined function
|
604 |
+
* Options added to send mails for pages and password protected posts
|
605 |
+
* Option added to display subscription checkbox in WordPress Register screen
|
606 |
+
* Small typo and layout amendments
|
607 |
+
|
608 |
+
= Version 3.3 by Matthew Robinson =
|
609 |
+
|
610 |
+
* QuickTag button added! Works with Visual and Standard Editor. __Look in Code for token addition if using RTE.__
|
611 |
+
* Current Server time displayed for Cron tasks
|
612 |
+
* Fixed bug so Registered users now identified correctly
|
613 |
+
* Upgrade function called via WordPress hook to prevent calls to undefined functions
|
614 |
+
* Fixed a bug affecting Registered Users not appearing in the drop down list
|
615 |
+
* Improved handling of the Subscribe2 option array
|
616 |
+
|
617 |
+
= Version 3.2 by Matthew Robinson =
|
618 |
+
|
619 |
+
* Fixed a bug affecting Registered Users not appearing in the drop down list
|
620 |
+
* Improved handling of the Subscribe2 option array
|
621 |
+
|
622 |
+
= Version 3.1 by Matthew Robinson =
|
623 |
+
|
624 |
+
* Amended code to use core cron functionality for future posts and digest notifications, no longer need WP-Cron
|
625 |
+
* Improved HTML code generated for admin pages
|
626 |
+
* Removed sending of emails for WordPress Pages
|
627 |
+
* Fixed display issues if S2PAGE is not defined
|
628 |
+
|
629 |
+
= Version 3.0 by Matthew Robinson =
|
630 |
+
|
631 |
+
* Updated for WordPress 2.1 Branch
|
632 |
+
|
633 |
+
= Version 2.22 by Matthew Robinson =
|
634 |
+
|
635 |
+
* Fixed User Menu Settings when Digests enabled
|
636 |
+
* Changed Registered Subscribers to Registered Users in drop down to avoid confusion
|
637 |
+
* Minor code revisions for admin menu layout
|
638 |
+
|
639 |
+
= Version 2.21 by Matthew Robinson =
|
640 |
+
|
641 |
+
* Change from deprecated get_settings -> get_option
|
642 |
+
* Fixed bug in cron emails if <!--more--> tag present
|
643 |
+
|
644 |
+
= Version 2.20 by Matthew Robinson =
|
645 |
+
|
646 |
+
* Fixed a typo in Content-Type mail headers
|
647 |
+
* Fixed Auto Register functions to obey Excluded Categories
|
648 |
+
|
649 |
+
= Version 2.19 by Matthew Robinson =
|
650 |
+
|
651 |
+
* Fixed a bug in the upgrade function that was messing up the options settings
|
652 |
+
|
653 |
+
= Version 2.18 by Matthew Robinson =
|
654 |
+
|
655 |
+
* BCCLIMIT typo corrected in Mail function
|
656 |
+
* Call to translation files moved to avoid call to undefined function
|
657 |
+
* Small typo and layout amendments
|
658 |
+
|
659 |
+
= Version 2.17 by Matthew Robinson =
|
660 |
+
|
661 |
+
* Current Server time displayed for Cron tasks
|
662 |
+
* Fixed bug so Registered users now identified correctly
|
663 |
+
* Upgrade function called via WordPress hook to prevent calls to undefined functions
|
664 |
+
|
665 |
+
= Version 2.16 by Matthew Robinson =
|
666 |
+
|
667 |
+
* Fixed a bug affecting Registered Users not appearing in the drop down list
|
668 |
+
* Improved handling of the Subscribe2 option array
|
669 |
+
|
670 |
+
= Version 2.15 by Matthew Robinson =
|
671 |
+
|
672 |
+
* Improved HTML code generated for admin pages
|
673 |
+
* Fixed display issues if S2PAGE is not defined
|
674 |
+
|
675 |
+
= Version 2.14 by Matthew Robinson =
|
676 |
+
|
677 |
+
* Amended DREAMHOST setting to BCCLIMIT as more hosts are limiting emails
|
678 |
+
* Fixed oversight in upgrade() function
|
679 |
+
|
680 |
+
= Version 2.13 by Matthew Robinson =
|
681 |
+
|
682 |
+
* Added WordPress nonce functionality to improve admin security
|
683 |
+
|
684 |
+
= Version 2.12 by Matthew Robinson =
|
685 |
+
|
686 |
+
* Fix for missing Quicktags (probably since version 2.2.10)
|
687 |
+
* Fix for occasional email issue where excerpts are incomplete
|
688 |
+
|
689 |
+
= Version 2.11 by Matthew Robinson =
|
690 |
+
|
691 |
+
* Fixed bug that would cause all subscribers to get digest emails
|
692 |
+
* Added Select All check box to category listing
|
693 |
+
|
694 |
+
= Version 2.10 by Matthew Robinson =
|
695 |
+
|
696 |
+
* Improved sign up process by double checking email address
|
697 |
+
* Fix for submenu issues encountered in WP 2.0.6
|
698 |
+
|
699 |
+
= Version 2.9 by Matthew Robinson =
|
700 |
+
|
701 |
+
* Fixed get_userdata call issue
|
702 |
+
* Added CSV export
|
703 |
+
* Reworked options storage routines
|
704 |
+
|
705 |
+
= Version 2.8 by Matthew Robinson =
|
706 |
+
|
707 |
+
* Fixed missing line return in email headers that was causing failed emails
|
708 |
+
* Added user feedback messages to profile area
|
709 |
+
* Added 'Authorname' to the list of message substitutions in email messages
|
710 |
+
* Fixed name and email substitution in Digest Mails
|
711 |
+
* Fixed stripslashes issue in email subjects
|
712 |
+
* Added new 'Action' token for confirmation emails
|
713 |
+
|
714 |
+
= Version 2.7 by Matthew Robinson =
|
715 |
+
|
716 |
+
* Link to post in HTML emails is now functional
|
717 |
+
* Fixed bug in Bulk Management so it works when first loaded
|
718 |
+
* Ability to auto subscribe newly registering users
|
719 |
+
* Added additional email header information
|
720 |
+
|
721 |
+
= Version 2.6 by Matthew Robinson =
|
722 |
+
|
723 |
+
* Fixed email headers to comply with RFC2822 standard (after breaking them in the first place)
|
724 |
+
* Impoved XHTML compliance of user feedback messages and subscription form when presented on a blog
|
725 |
+
* Tidied up presentation of the code a little
|
726 |
+
* Cached some additional variables
|
727 |
+
|
728 |
+
= Version 2.5 by Matthew Robinson =
|
729 |
+
|
730 |
+
* Added functionality to Bulk Manage registered users subscriptions
|
731 |
+
|
732 |
+
= Version 2.4 by Matthew Robinson =
|
733 |
+
|
734 |
+
* Added functionality to block user specified domains from public subscription
|
735 |
+
|
736 |
+
= Version 2.3 by Matthew Robinson =
|
737 |
+
|
738 |
+
* Added functionality to allow for Subscribe2 Sidebar Widget
|
739 |
+
* Added functionality to block public email subscriptins from domains defined under Options
|
740 |
+
* Added functionality to send an email reminder to all unconfirmed public subscriber
|
741 |
+
* Added removal of html entities (for example ©) from plaintext emails
|
742 |
+
* Replaced spaces with tabs in Plugin format
|
743 |
+
* Minor changes to admin layout to match WordPress admin function layout
|
744 |
+
|
745 |
+
= Version 2.2 =
|
746 |
+
|
747 |
+
* By Scott Merrill, see http://www.skippy.net/blog/category/wordpress/plugins/subscribe2/
|
ReadMe.txt
CHANGED
@@ -332,735 +332,7 @@ Secondly, make sure that the token ([subscribe2] or <!--subscribe2-->) is correc
|
|
332 |
|
333 |
== Changelog ==
|
334 |
|
335 |
-
|
336 |
-
|
337 |
-
* Minor layout update to Widget Settings
|
338 |
-
* Fix for non-sending notifications for pages - proposed by ctcdesign
|
339 |
-
* Fix for a translation domain error in admin/settings.php - proposed by monpelaud
|
340 |
-
* Fix for deprecated is_blog_user() function on Multisite installs - proposed by hallcp
|
341 |
-
* Extend Subscribe2 database table to collect additional data to meet DreamHost privacy policy - thanks to matt, joshukraine and Dreamhost
|
342 |
-
* Refresh Subscribers page in admin, tables now sortable on present columns
|
343 |
-
* Order CSS files better by applying CSSComb
|
344 |
-
* Reuse $value variable in the 'frontend' class to reduce translation strings
|
345 |
-
* Improve AJAX form to obey the shortcode hide parameter - proposed by bwsl
|
346 |
-
* Correct spelling error in the Settings page - proposed by dimadin
|
347 |
-
* Call translation code via a hook to allow greater dynamic control - proposed by dimadin
|
348 |
-
* Look in more locations for translation files, can place in core languages folder now for upgrade protection
|
349 |
-
* Refresh Settings page in admin to a tabbed interface
|
350 |
-
* Strip HTML from email subject to improve compatibility with other plugins and WordPress 3.5
|
351 |
-
* Fixed bug in the display of compulsory categories in the Settings page
|
352 |
-
* Add option to manually send emails to All Registered Users and Public Subscribers - proposed by TigWeb
|
353 |
-
* Enable TinyURL link shortening for Digest Notification Emails if {TINYLINK} is present in the Email Template
|
354 |
-
* Fixed bug in TinyURL error handling and fallback when link generation fails
|
355 |
-
* Fixed bug where {DATE} was left blank in the subject field for future scheduled post notifications - thanks to Steve Savoy
|
356 |
-
* Added a filter to allow on-the-fly alteration of the size of the {IMAGE} in the paid version
|
357 |
-
* Fixed a warning message for a core function ready for WordPress 3.6
|
358 |
-
|
359 |
-
= Version 8.5 by Matthew Robinson =
|
360 |
-
|
361 |
-
* Fixed width of a page select drop down in the Widget settings - thanks to Balky79
|
362 |
-
* Added option to check the comment subscription box by default - proposed by Doug Lerner
|
363 |
-
* Improved off-domain error message in Settings page and address checking if Blogname is selected
|
364 |
-
* Fixed an issue on Multisite installs displaying the wrong link to profiles pages for other blog sites - thanks to MadtownLems
|
365 |
-
* Fixed an issue with Image and Shortcode replacement in the visual editor (TinyMCE) - thanks to Dave Firman
|
366 |
-
* Fixed unique IDs for 2 possible error messages in the Settings page - thanks to MadtownLems
|
367 |
-
* Fixed several HTML5 validation error in the admin pages
|
368 |
-
* Improved regex replacedment of s strike and del HTML tags in plaintext emails - thanks to jimshell
|
369 |
-
* Use wp_kses() rather than strip_tags() on email subject lines so that single angle brackets are allowed - thanks to eightize and esmi
|
370 |
-
* Allow remote definition of email address in form - thanks to orion42
|
371 |
-
* Added ability to have compulsory categories - proposed by iClimb
|
372 |
-
* Apply WordPress the_author filter to the author names to improve plugin compatibility - proposed by SpaciousMind
|
373 |
-
* Added the ability to track the post ID in the tracking Parameter field - proposed by Laga
|
374 |
-
* Protect the 's2email' post meta key - proposed by Nally123
|
375 |
-
* Strip excess white space within the Digest email when images are removed
|
376 |
-
* Add a time column to the public subscriber table for hosting provider spam policy compliance - proposed by Erik N
|
377 |
-
* Change plugin folder name to suppress update prompts for the HTML version
|
378 |
-
* Rename js files consistently with core ticket 21633
|
379 |
-
* Add width parameter to comment form text to fix issues with some themes - proposed by mharpen
|
380 |
-
* Added option to include Sticky Posts at the top of all Digest Notifications - proposed by pkhatmedia
|
381 |
-
* Fixed some Markdown errors in the ReadMe
|
382 |
-
|
383 |
-
= Version 8.4 by Matthew Robinson =
|
384 |
-
|
385 |
-
* Fixed an error in the 'Send Mail' page that blocked emails from being sent
|
386 |
-
* Added tracking features to Digest title links in HTML version - thanks to Jeremy Schultz
|
387 |
-
* Provide clearer user feedback for Send and Preview buttons in "Send Email" window
|
388 |
-
* Add new option to the Widget to return users to the home page on submission
|
389 |
-
* Added warning to Settings page if selected sender email address is "off-domain"
|
390 |
-
* Fixed numerous minor SQL injections vectors - thanks to Tom Adams (holizz)
|
391 |
-
* Removed auto-embed iframes from HTML emails - thanks to Doug Lerner
|
392 |
-
* Add more intuitive user messages for Public Subscribers when Unsubscribing - thanks to Doug Lerner
|
393 |
-
|
394 |
-
= Version 8.3 by Matthew Robinson =
|
395 |
-
|
396 |
-
* Fixed a bunch of PHP messages - should not show anyway unless WP_DEBUG is true or PHP error reporting is on a high setting
|
397 |
-
* Fixed bulk category management so it applies to all users and not just the first record
|
398 |
-
* Update 'autosub' to no on one-click unsubscribe instead of erasing the value
|
399 |
-
* Return empty string is get_tracking_link() is passed and empty variable
|
400 |
-
* Fixed some typographical errors
|
401 |
-
* Fixed profile page to obey 'one click' display setting
|
402 |
-
* Fixed implode error seen when sending preview emails on some configurations
|
403 |
-
* Fixed a error in the admin user dropdown on installs (particularly Multisite) where there may be no administrator level users
|
404 |
-
* Added a button text filter for the Subscribe and Unsubscribe buttons - proposed by casben79
|
405 |
-
* Use wp_hash in place of MD5 to further obfuscate confirmation links - thanks to Charlie Eriksen, Otto and Ipstenu
|
406 |
-
|
407 |
-
= Version 8.2 by Matthew Robinson =
|
408 |
-
|
409 |
-
* Implemented use of Farbtastic as colour chooser in the Counter Widget because ColorPicker has been deprecated in WordPress
|
410 |
-
* Fixed one hook call in WordPress to pass $this variable by reference to save a little more RAM
|
411 |
-
* Fixed Subscribe2 implementation of custom taxonomies
|
412 |
-
* Fixed Bulk Management Format Change code to apply for all users
|
413 |
-
* Fix for low impact security vulnerability
|
414 |
-
|
415 |
-
= Version 8.1 by Matthew Robinson =
|
416 |
-
|
417 |
-
* Fixed redirect errors and crash affecting multisite installs on upgrade to 8.0 - thanks in particular to Ed Cooper
|
418 |
-
* Fixed several other multisite bugs affecting links and styling - thanks to Mark Olbert
|
419 |
-
* Fixed empty CSV exports - thanks to Gil Namur
|
420 |
-
|
421 |
-
= Version 8.0 by Matthew Robinson =
|
422 |
-
|
423 |
-
* Split the main plugin file into separate classes for more efficient (60% less RAM) server resource usage - huge thanks to Milan Petrovic
|
424 |
-
* Ensure notifications for posts are sent to all active registered users
|
425 |
-
* Fixed bug in Bulk Management code to include all filtered Registered Subscribers, not just those on current screen - thanks to samandiriel
|
426 |
-
* Fixed some PHP messages regarding use of deprecated clean_url() function and WordPress version checking - thanks to anmari
|
427 |
-
* Improved white space trimming in the code so it respects tabs and line breaks - thanks to belg4mit
|
428 |
-
* Updated screenshots to Subscribe2 8.0 and WordPress 3.3.1 screen layouts
|
429 |
-
* Implemented one-click buttons to subscribe and unsubscribe - thanks to dimadin for code patch
|
430 |
-
* Changed some default settings, sender to BLOGNAME and number of recipients per email to 1
|
431 |
-
* Implemented a change so that categories are not displayed in the filter dropdowns when using Subscribe2 in digest mode
|
432 |
-
* Ensure an action is specified for HTML5 validity - thanks to Franco Carinato
|
433 |
-
* Introduced 4 new hooks to filter per-post subscribers for each of the 4 email types - thanks to Nicolas Noé
|
434 |
-
|
435 |
-
= Version 7.2 by Matthew Robinson =
|
436 |
-
|
437 |
-
* Fix for non-sending Preview emails when sender details match recipient details exactly
|
438 |
-
* Remove some HTML tags (DEL, S and STRIKE) from plain text content to avoid confusing reading - props cpo
|
439 |
-
* Improved removal of excess white space within the content of the plain text emails
|
440 |
-
* Introduced 'size' parameter to the shortcode to allow sizing of the email text input box
|
441 |
-
* Fix for non-sending emails to newly Registered Subscribers - thanks to Gengar003 and WebEndev
|
442 |
-
* Fix for commenter subscriptions on systems without moderation in place - thanks to elarson
|
443 |
-
* Improved the TinyMCE plugin code that handles placement of the Subscribe2 shortcode in the rich text editor
|
444 |
-
* Tidied up some public subscribe functions removing unnecessary code
|
445 |
-
|
446 |
-
= Version 7.1 by Matthew Robinson =
|
447 |
-
|
448 |
-
* Fix for Opt-out by Author for Registered Users that resulted in posts being sent even though a user had opted out
|
449 |
-
* Workaround implemented for core WordPress glitch that reults in blank sender details in digest emails when using "Post Author" as sender
|
450 |
-
* Introduced DIV HTML tags to the administrion menu screens to allow jQuery custom hiding by plugins - proposed by madtownlems
|
451 |
-
* Reduced code overhead when collecting admin level users
|
452 |
-
* Fix for non-sending emails when published via XML RPC interface (like the iOS app and Windows Live Writer) - thanks to bellarush & Marc Williams
|
453 |
-
* Removed the X-Mailer header ready for core PHPMailer update
|
454 |
-
* Removed single use of split() function which is deprecated in PHP 5.3.0
|
455 |
-
* Added additional parameters to the 's2_html_email' hook - props Milan Dinić
|
456 |
-
* Added a check on wp-cron.php to warn digest email users - props Dave Bergschneider
|
457 |
-
|
458 |
-
= Version 7.0.1 by Matthew Robinson =
|
459 |
-
|
460 |
-
* Fixed a typo in the include/options file that caused failed installs and upgrades
|
461 |
-
* Fix for get_registered() function for fringe situations
|
462 |
-
|
463 |
-
= Version 7.0 by Matthew Robinson =
|
464 |
-
|
465 |
-
* NOTE Subscribe2 now requires WordPress 3.1 or higher
|
466 |
-
* Implemented top level menu to make Subscribe2 menu access easier
|
467 |
-
* Introduced the ability to add UTM Tracking parameters to email links - Thanks to Sander de Boer
|
468 |
-
* Introduced Opt-out by Author for Registered Users (on sites where there is more than one author)
|
469 |
-
* Improved table layout code on user management page
|
470 |
-
* Make use of core checked() function to save code space
|
471 |
-
* Show user name for Registered Users when mouse is hovered over email address in Subscribe2->Subscribers
|
472 |
-
* Move IP address display on hover from date of signup to email address for Public Subscribers so consistent with above change
|
473 |
-
* Introduced the 's2_capability' filter to allow API amendments to page access for different user capabilities
|
474 |
-
* Added support to exclude 'post formats' from generating emails provided 'post formats' are supported by the current active theme
|
475 |
-
* Implemented use of core WordPress functions to place the authoring button shortcuts, removed reliance on buttonsnap.php so this library is now dropped
|
476 |
-
* Implement use of wp_register_scripts() function
|
477 |
-
* Display custom post types added using the API in the Settings page as confirmation things are working
|
478 |
-
* Added two missed strings to the translation domain and corrected a typo - thanks to Stig Ulfsby
|
479 |
-
* Added a filter for the outgoing email subject line
|
480 |
-
* Added an option to AJAXify the form, read the FAQs for how to use this new feature
|
481 |
-
|
482 |
-
= Version 6.5 by Matthew Robinson =
|
483 |
-
|
484 |
-
* Fix for Multisite / MU detection for WordPress versions prior to 3.0
|
485 |
-
* Fix in the upgrade() function to insert database entires for Registered Users on first time install
|
486 |
-
* Fix for the uninstaller script to allow use on regular and Multisite WordPress
|
487 |
-
* Updated uninstaller to remove any postmeta entries on uninstall
|
488 |
-
* Fix for blank post detail on HTML Excerpt notifications when the post content is brief
|
489 |
-
* Fix for some PHP notices
|
490 |
-
* Fix to remove all cron settings when options are reverted to per-post
|
491 |
-
* Minor code layout changes and comment updates
|
492 |
-
* Dropped use of WP_CONTENT_DIR to fix issues on site where wp-content/ folder has been moved
|
493 |
-
|
494 |
-
= Version 6.4 by Matthew Robinson =
|
495 |
-
|
496 |
-
* Wrapped all KEYWORDS in curly brackets {} so capitalised keywords can be used in content without being replaced
|
497 |
-
* Added support for Custom Taxonomies - thanks to Ian Dunn
|
498 |
-
* Added feature to allow commenters on your blog to subscribe when commenting (requires WordPress 2.9+)
|
499 |
-
* Improved and updated some of the jQuery ready for WordPress 3.2
|
500 |
-
* Introduced 's2_registered_subscribers' filter to allow other plugins to dynamically add or remove email addresses to the 'registered' array - thanks to Allan Tan
|
501 |
-
* Improved handling of [gallery] shortcode where no post id is defined for HTML emails - thanks to Chris Grady
|
502 |
-
* Removed trailing semi colons from the maybe_add_column function calls
|
503 |
-
* Fixed a type on the Settings page - thanks to Deborah Hanchey
|
504 |
-
* Updated editor buttons to insert shortcode instead of token
|
505 |
-
* Fixed some PHP notices about undeclared variables
|
506 |
-
* Compressed some of the javascript code includes to reduce download time
|
507 |
-
* Fixes to the Counter Widget ColorPicker jQuery code
|
508 |
-
* Fixes to the Counter Widget label tags
|
509 |
-
* Fixed a bug in the new_category function that was introduced in version 6.3 - thanks to crashtest
|
510 |
-
* Improved the user experience when clicking Subscribe and Unsubscribe links in the WordPress MultiSite interface - thanks to Huyz
|
511 |
-
* Improved the Bulk Manage section to take into account the digest notification setting
|
512 |
-
* Updated the uninstall script
|
513 |
-
* Updated some of the code comments to aid reviewing
|
514 |
-
* Other minor improvements and fixes
|
515 |
-
|
516 |
-
= Version 6.3 by Matthew Robinson =
|
517 |
-
|
518 |
-
* Stopped using deprecated get_usermeta(), update_usermeta() and delete_usermeta() functions in WordPress 3.1
|
519 |
-
* Use WP_User_Query class and functions in WordPress 3.1
|
520 |
-
* Stop using buggy is_blog_user() multisite function
|
521 |
-
* Fixed a bug where the creating of a new category would re-subscribed digest email users incorrectly
|
522 |
-
|
523 |
-
= Version 6.2 by Matthew Robinson =
|
524 |
-
|
525 |
-
* Pass email address to add() function explicitly
|
526 |
-
* Fix typos in the ReadMe
|
527 |
-
* Added warning on the Options page to avoid using the Subscribe2 KEYWORDS in posts as they will get substituted
|
528 |
-
* Added HTML LABEL tags to the Subscribe2 form to support WCAG
|
529 |
-
* SSL friendly with WordPress admin areas
|
530 |
-
* Added filter to allow on-the-fly manipulation of the digest email
|
531 |
-
* Added option choice to have emails send from the global admin email and addressed from the name of the blog
|
532 |
-
* Change sending details for Preview emails so they can be more easily identified by type
|
533 |
-
* Fixed a typo in a screen message to WordPressMU users
|
534 |
-
|
535 |
-
= Version 6.1 by Matthew Robinson =
|
536 |
-
|
537 |
-
* Fixed a glitch in the HTML tags in the Subscribe2 Widget that affected drag and drop functions in WordPress - thanks to Marty McOmber
|
538 |
-
* Improved detection of Multisite installs - thanks to Nada Oneal
|
539 |
-
* Fixed precontent and postcontent in the Widget to retain entered HTML tags - reported by Rob Saxe
|
540 |
-
* Fixed a few small typos in the inline code comments and email subjects
|
541 |
-
* Fixed a bug where Bulk Management changes to move all users to Plain Text Full content would result in blank settings - reported by Sean @ GetSatisfaction
|
542 |
-
* Fixed issued with TIME and AUTHORNAME keywords in digest emails - thanks to Robert @ GetSatisfaction
|
543 |
-
* Introduced a more flexible Subscribe2 shortcode - thanks to Milan for the patch code
|
544 |
-
|
545 |
-
= Version 6.0 by Matthew Robinson =
|
546 |
-
|
547 |
-
* Improved case sensitive SQL queries to avoid issues on some server configurations
|
548 |
-
* Introduced option to check the notification override button by default at Settings->Subscribe2 - Appearance
|
549 |
-
* Extend support for for multiuser sites to include WordPress 3.0
|
550 |
-
* Converted both Widgets to the WordPress 2.8 API - check your widgets are installation
|
551 |
-
* Improved the Colour Picker in the Counter Widget
|
552 |
-
* Integrated the Counter Widget into the Settings page
|
553 |
-
* Removed several functions from the code for WordPress versions prior to 2.8 (2.8 is now a minimum requirement for Subscribe2)
|
554 |
-
* Removed legacy tinymce files that are no longer required
|
555 |
-
* Added code to prevent duplicate Public Subscriber entries
|
556 |
-
* Introduced TABLELINKS keyword for digest type notifications
|
557 |
-
|
558 |
-
= Version 5.9 by Matthew Robinson =
|
559 |
-
|
560 |
-
* Added support for WordPress 3.0 Custom Post Types
|
561 |
-
* Fix for failed save of "entries per page" setting
|
562 |
-
* Correct Digest display issue associated with use of AUTHORNAME keyword
|
563 |
-
* Fixed issue where posts were not included in Digest notifications despite settings
|
564 |
-
* Fixed possible issue where a page is not included in Digest notifications if a certain category is excluded
|
565 |
-
* Fixed issue where successful emailing from Post->Mail Subscribers would report as failed if Subscribe2 is set to email one user per email - Thanks to Meini from Utech Computer Solutions (www.utechworld.com)
|
566 |
-
* Added a preview button in the Email Subscribers screen that will send current content of the window to the logged in user
|
567 |
-
* Avoid duplicating the MIME-Version header in the emails
|
568 |
-
* Removed direct links to Support forum
|
569 |
-
* Ensure that Subscribe2 sanitises email addresses to RFC5322 and RFC5321 - Thanks to Vital
|
570 |
-
* Improved the 'Save Emails to CSV' function to include additional information - Thanks to John Griffiths (www.luadesign.co.uk)
|
571 |
-
* Report that there is no digest notification to resend rather than success if there are no posts in the email
|
572 |
-
|
573 |
-
= Version 5.8 by Matthew Robinson =
|
574 |
-
|
575 |
-
* Reverted erroneous use of a WordPress 3.0 function
|
576 |
-
|
577 |
-
= Version 5.7 by Matthew Robinson =
|
578 |
-
|
579 |
-
* Corrected some missed strings to allow i18n translation
|
580 |
-
* Added AUTHORNAME to digest notification in the same was a TAGS and CATS (i.e. a fixed location in email independent of location in template)
|
581 |
-
* Ensure digest email sending times are not updated when resend is invoked
|
582 |
-
* Error check options for number of users displayed per page and if not an integer use default setting of 25
|
583 |
-
* Better name for cron 'define' and improved 'define' and 'defined' statements
|
584 |
-
* Revert to using WordPress capability when adding menus rather than user_level, latter is deprecated
|
585 |
-
* Added DATE and TIME keywords for per-post notifications
|
586 |
-
|
587 |
-
= Version 5.6 by Matthew Robinson =
|
588 |
-
|
589 |
-
* Fixed a critical bug in the digest function - a typo resulting failed notifications
|
590 |
-
* Added ability to resend the last digest email again
|
591 |
-
* Improved Bulk Management to apply to filtered users only (provided they are still Registered and not Public Subscribers)
|
592 |
-
* Fix for HTML Excerpt mails not using email template
|
593 |
-
|
594 |
-
= Version 5.5 by Matthew Robinson =
|
595 |
-
|
596 |
-
* Made the email header function pluggable to allow custom changes that persist through versions
|
597 |
-
* Fix for failed upgrades
|
598 |
-
* Ensure HTML entities in blogname are decoded for emails
|
599 |
-
* Add safety checking for options at install to protect against randomly resetting options
|
600 |
-
|
601 |
-
= Version 5.4 by Matthew Robinson =
|
602 |
-
|
603 |
-
* Fixed a bug introduced in 5.3 that produced in malformed email headers resulting in failed emails
|
604 |
-
* Fixed an upgrade error that could result in an incomplete table update which blocked new subscriptions
|
605 |
-
|
606 |
-
= Version 5.3 by Matthew Robinson =
|
607 |
-
|
608 |
-
* Added an HTML Excerpt notification type which sends an HTML formatted excerpt of the post
|
609 |
-
* Issue an error message in Settings->Subscribe2 if there is no WordPress page published on the blog site
|
610 |
-
* Improved usage of time dropdown in Settings->Subscribe2 so it works for periodic emails that are on a less than daily frequency
|
611 |
-
* Sorted categories by slugname for better presentation in the category selection area
|
612 |
-
* Make sure Preview emails skip the mail queue if WPMQ is used
|
613 |
-
* Fixed issue where blog posts made by email generated duplicate notifications
|
614 |
-
* Added fixes with the hope of stopping the random settings reset glitch many thanks to Barbara Wiebel
|
615 |
-
* Fixed AJAX bugs caused by deprecated jQuery function
|
616 |
-
* Fixed an issue where Registered Users who have requests a password reset disappear from Subscribe2
|
617 |
-
* Amended code for IP address collection to work around IIS servers
|
618 |
-
* Added COUNT keyword
|
619 |
-
* Ensure that BLOGNAME is not used in digest emails if it is empty
|
620 |
-
|
621 |
-
= Version 5.2 by Matthew Robinson =
|
622 |
-
|
623 |
-
* Added screen_icon() to each Subscribe2 admin page
|
624 |
-
* Improved addition of links to the Plugins admin page
|
625 |
-
* Improved XHTML validity of admin pages
|
626 |
-
* Improved display of category hierarchy display in the category form
|
627 |
-
* Added ability to use TAGS & CATS keywords in digest mails (position is static irrespective of keyword location)
|
628 |
-
* Use PHP variable for Subscribe2 folder to allow for easier renaming (if needed)
|
629 |
-
* Fixed a bug in TinyURL encoding introduced when links were click enabled
|
630 |
-
* Removed BurnURL from the plugin as it appears to be no longer operational
|
631 |
-
* Added urlencode to email addresses in Tools->Subscribers when editing other user preferences
|
632 |
-
* Restored several FAQs to the ReadMe file and the [WordPress.org FAQ section](http://wordpress.org/extend/plugins/subscribe2/faq/)
|
633 |
-
|
634 |
-
= Version 5.1 by Matthew Robinson =
|
635 |
-
|
636 |
-
* Add widget options to add custom text before and a after the dynamic Subscribe2 output - thank to Lee Willis
|
637 |
-
* Add protection against SQL injection attacks to the data entered into the Subscribe2 table
|
638 |
-
* Applied a fix for WP_User_Search on PHP4 installations
|
639 |
-
* Collect IP address of subscribers either at initial submission or at confirmation as required by some hosts to allow relaxation of email restrictions. IP details are in the database or available when the mouse pointer is held over the sign up date in Tools->Subscribers
|
640 |
-
* Fix for script execution time limit code for sites that have safe mode on or that have disable ini_set()
|
641 |
-
* Display category slugs when mouse pointer is held over the name in the category form area
|
642 |
-
* Fixed display of HTML entities in the subject of emails by using html_entity_decode()
|
643 |
-
* Fixed substitution of the MYNAME keyword in notification emails
|
644 |
-
* Added option to use BurnURL as an alternative to TinyURL to create shorter link URLs
|
645 |
-
|
646 |
-
= Version 5.0 by Matthew Robinson =
|
647 |
-
|
648 |
-
* Change version number to reflect change in the on going support of the plugin which is now a searchable forum or a paid service
|
649 |
-
* Added links to online Subscribe2 resources into the Options->Subscribe2 page
|
650 |
-
* Fixed Digest Time Dropdown to recall Cron Task scheduled time
|
651 |
-
* Fixed code using updated [Admin Menu Plugin](http://wordpress.org/extend/plugins/ozh-admin-drop-down-menu/) API
|
652 |
-
* Fixed foreach() error in widget rename function
|
653 |
-
* Improved layout of widget control boxes
|
654 |
-
* Improved identification of Administrator level users on blogs where usermeta table entries for user_level are low or missing
|
655 |
-
* Removed avatar plugin support on WPMU due to processing overhead
|
656 |
-
* Improved the layout of the digest email with respect to inclusion of unnecessary white space
|
657 |
-
* Extended maximum script runtime for servers not using PHP in safe mode
|
658 |
-
|
659 |
-
= Version 4.18 by Matthew Robinson =
|
660 |
-
|
661 |
-
* Option to sort digest posts in ascending or descending order
|
662 |
-
* Check that plugin options array exists before calling upgrade functions
|
663 |
-
* Improved reliability of the Preview function
|
664 |
-
* Extended Preview function to digest emails
|
665 |
-
* Fixed a code glitch that stopped CATS and TAGS from working
|
666 |
-
* Fixed incorrect sender information is emails are set to come from Post Author
|
667 |
-
* Simplified email notification format options in Users->Subscriptions for per-post notifications
|
668 |
-
* Added Bulk Manage option to update email notification format
|
669 |
-
* Simplified the usermeta database entries from two format variables down to one
|
670 |
-
* Removed trailing spaces from some strings for improved i18n support
|
671 |
-
* Improved Bulk Subscribe and Unsubscribe routines to avoid database artefacts
|
672 |
-
* Moved Select/Deselect All check box to the top of the category list in admin pages
|
673 |
-
* Fixed small layout glitch in Manage->Subscribers screen
|
674 |
-
* Added ChangeLog section to ReadMe to support WordPress.org/extend development
|
675 |
-
|
676 |
-
= Version 4.17 by Matthew Robinson =
|
677 |
-
|
678 |
-
* Tested for compatibility with WordPress 2.8.x
|
679 |
-
* Added TAGS and CATS keyword for per-post notification templates
|
680 |
-
* Fixed bug where confirmation emails may have an empty sender field if notifications come from post author
|
681 |
-
* Fixed a bug in WPMU CSS
|
682 |
-
* Added option to exclude new categories by default
|
683 |
-
* Fixed a bug where emails may not be sent to subscribers when a user subscribes or unsubscribes
|
684 |
-
* Improved accessing of 'Admin' level users on blogs where user_level is set below 10
|
685 |
-
* Added ability to send email previews to currently logged in user from Settings->Subscribe2
|
686 |
-
* Styled admin menu form buttons to fit with WordPress theme
|
687 |
-
* Improved handling of confirmation sending to reduce errors
|
688 |
-
|
689 |
-
= Version 4.16 by Matthew Robinson =
|
690 |
-
|
691 |
-
* Correct minor layout issue in Settings->Subscribe2
|
692 |
-
* Allow users to define the div class name for the widget for styling purposes
|
693 |
-
* Select from a greater number of notification senders via dropdown list in Settings
|
694 |
-
* Improved efficiency of newly added WordPressMU code
|
695 |
-
* Added ability to manage across-blog subscriptions when using WordPressMU
|
696 |
-
* Fixed bug whereby Public Subscribers may not have got notification emails for posts if Private Posts were blocked
|
697 |
-
* Added ability to define email Subject contents in Settings->Subscribe2
|
698 |
-
* Sanity checks of email subject and body templates to ensure they are not empty
|
699 |
-
* Introduced s2_html_email and s2_plain_email filters to allow manipulation of email messages after construction
|
700 |
-
* Amended handling of database entries to simplify code and database needs
|
701 |
-
* Improved the layout of the Subscriber drop down menu
|
702 |
-
* Added bullet points to the TABLE of posts
|
703 |
-
* Ensure database remains clean when categories are deleted
|
704 |
-
* Added new option to manage how auto-subscribe handles excluded categories
|
705 |
-
|
706 |
-
= Version 4.15 by Matthew Robinson =
|
707 |
-
|
708 |
-
* Fixed E_DEPRECATE warning caused by a variable being passed by reference to the ksort() function
|
709 |
-
* Fixed called to undefined function caused by typo
|
710 |
-
* Fixed a syntax error in the SQL code constructors affecting some users
|
711 |
-
|
712 |
-
= Version 4.14 by Matthew Robinson =
|
713 |
-
|
714 |
-
* Reordered some functions to improve grouping
|
715 |
-
* Stop s2mail custom variable being added if empty
|
716 |
-
* Localised 'Send Digest Notification at' string
|
717 |
-
* Add support for template tags in Post->Mail Subscribers emails
|
718 |
-
* Improve handling of translation files for more recent version of WordPress
|
719 |
-
* Implemented <label> tags in the admin pages so text descriptors are click enabled
|
720 |
-
* Improved subscription preferences for WordPress MU (Huge thanks to Benedikt Forchhammer)
|
721 |
-
* Added TINYLINK tag to allow TinyURL insertion in place of PERMALINK
|
722 |
-
* Improved layout of Tools->Subscriber page (Thanks to Anne-Marie Redpath)
|
723 |
-
* Enhancements to Subscription form layout (Thanks to Anne-Marie Redpath and Andy Steinmark)
|
724 |
-
* Sender details now uses current user information from Write->Mail Subscribers
|
725 |
-
* Introduced 's2_template_filter' to allow other plugins to amend the email template on-the-fly
|
726 |
-
|
727 |
-
= Version 4.13 by Matthew Robinson =
|
728 |
-
|
729 |
-
* Update weekly description
|
730 |
-
* Improve layout in the Subscribe2 form
|
731 |
-
* Fixed bug where registering users would not be subscribed to categories if using the checkbox on the registration page
|
732 |
-
* Improved buttonsnap function checking to reduce PHP notices
|
733 |
-
* Fixed typo when including CSS information in HTML emails
|
734 |
-
* Fix 'edit' links in the Tools->Subscribers page for blogs where the WordPress files are not in root
|
735 |
-
* Improved Tools->Subscribers page layout by hiding some buttons when they are not needed
|
736 |
-
* Fixed glitch in default options settings file
|
737 |
-
* Added option to include or exclude a link back to the blog theme CSS information within the HTML emails
|
738 |
-
* Improve per-post exceptions to sending emails by introducing a separate meta-box rather than relying on a custom field
|
739 |
-
* Fix for Gallery code in emails sending entire media library
|
740 |
-
* Updated screen shots
|
741 |
-
|
742 |
-
= Version 4.12 by Matthew Robinson =
|
743 |
-
|
744 |
-
* Added new option to remove Auto Subscribe option from Users->Your Subscriptions
|
745 |
-
* New POSTTIME token for digest email notifications
|
746 |
-
* Preserve mail after sending from Write->Mail Subscribers
|
747 |
-
* Introduced the Subscriber Counter Widget
|
748 |
-
* Use Rich Text Editor in Write->Mail Subscribers for the Paid HTML version
|
749 |
-
* Per User management in Admin
|
750 |
-
* Added support Uninstall API in WordPress 2.7
|
751 |
-
* Add support for 'Meta Widget' links
|
752 |
-
* Subscribers are sorted alphabetically before sending notifications
|
753 |
-
* Added ability to bulk unsubscribe a list of emails pasted into manage window
|
754 |
-
* Define number of subscribers in Manage window
|
755 |
-
* Added options for admin emails when public users subscribe or unsubscribe
|
756 |
-
* Fixed bug that prevented sending of Reminder emails from Manage->Subscribers
|
757 |
-
* Amended confirmation code so that only one email is sent no matter how many times users click on (un)subscribe links
|
758 |
-
|
759 |
-
= Version 4.11 by Matthew Robinson =
|
760 |
-
|
761 |
-
* Works in WordPress 2.7-almost-beta!
|
762 |
-
* Fixed a bug in the mail() function that meant emails were not sent to recipients if the BCCLimit setting was greater than the total number of recipients for that mail type
|
763 |
-
* Ensured that the array of recipients was cast correctly in the reminder function
|
764 |
-
* Fixed display of html entities in the reminder emails
|
765 |
-
* Fixed a bug in the SQL statements for WordPress MU installations
|
766 |
-
* Corrected a typo in the message displayed on the WordPress registration page if subscriptions are automatic
|
767 |
-
* Several layout and inline comment changes
|
768 |
-
|
769 |
-
= Version 4.10 by Matthew Robinson =
|
770 |
-
|
771 |
-
* Fixed Registration form action from WordPress registrations
|
772 |
-
* Repositioned the button to send reminder emails
|
773 |
-
* Implemented WP_CONTENT_URL and WP_CONTENT_DIR
|
774 |
-
* Added filter for <a href="http://planetozh.com/blog/2008/08/admin-drop-down-menu-more-goodness-an-api/">Admin Drop Down Menu</a>
|
775 |
-
* Improve functioning of Process button in Manage admin pane
|
776 |
-
* Improved form compliance with XHTML
|
777 |
-
* Fixed bug with cron time being changed every time options are changed
|
778 |
-
|
779 |
-
= Version 4.9 by Matthew Robinson =
|
780 |
-
|
781 |
-
* Send email direct to recipient if BCC is set as 1
|
782 |
-
* Fix issue where WordPress shortcodes were not stripped out of emails
|
783 |
-
* Amended Manage page to resolve issues with IE and Opera not passing form information correctly
|
784 |
-
* Amended Manage page to allow for bulk management of public users
|
785 |
-
* Amended WordPress API usage for translation files to 2.6 compatible syntax
|
786 |
-
* Allow Editor and Author users to send emails from Write->Mail Subscribers
|
787 |
-
* Post collection for CRON function is more dynamic
|
788 |
-
* CRON function sanity to checks for post content before sending a notification
|
789 |
-
* Fixed get_register() function to allow for user_activation field
|
790 |
-
* Corrected typos in options.php
|
791 |
-
* Added a search box to the Manage->Subscribers window
|
792 |
-
* Strip tags and HTML entities from email subjects
|
793 |
-
* Improved message feedback in Write->Mail
|
794 |
-
* Added html_entity_decode to sender name fields
|
795 |
-
* Change Menu string for User menu to make it clearer whose preferences are being edited
|
796 |
-
|
797 |
-
= Version 4.8 by Matthew Robinson =
|
798 |
-
|
799 |
-
* Removed unnecessary return statement at end of publish() function
|
800 |
-
* Ensured posts in digest are listed in date order
|
801 |
-
* Improved compatibility with other plugins by only inserting JavaScript code into Subscribe2's own admin pages
|
802 |
-
* Added BCCLIMIT and S2PAGE to options page with AJAX editing
|
803 |
-
* Improved setting of CRON task base time
|
804 |
-
* Improved handling of option values in the options form
|
805 |
-
* Full XHTML compliance on all Subscribe2 admin pages
|
806 |
-
* Decode HTML entity codes in notification email subjects
|
807 |
-
* Added Subscribe2 support for blogging via email
|
808 |
-
* Work-around fix implemented for WordPress the_title bug
|
809 |
-
|
810 |
-
= Version 4.7 by Matthew Robinson =
|
811 |
-
|
812 |
-
* Added admin control over default auto subscribe to new category option
|
813 |
-
* Improved Cron code to reduce the chance of duplicate emails
|
814 |
-
* Fixed a string that was missed from the translation files
|
815 |
-
* Improved time variable handling for cron functions, especially when UTC is different from both server time and blog time
|
816 |
-
* Completed code changes to allow WPMU compatibility
|
817 |
-
* Fixed some issues with the email headers now that Subscribe2 is using wp_mail() again
|
818 |
-
|
819 |
-
= Version 4.6 by Matthew Robinson =
|
820 |
-
|
821 |
-
* Fixed mis-reporting of server error when unsubscribing
|
822 |
-
* Fixed fatal errors involving buttonsnap library
|
823 |
-
* Improved database entry management for new subscribers
|
824 |
-
* Fixed issue where Subscribe2 grabbed the first page from the database even if it wasn't published
|
825 |
-
* Fixed upgrade reporting for Debug and Uninstaller plugins
|
826 |
-
|
827 |
-
= Version 4.5 by Matthew Robinson =
|
828 |
-
|
829 |
-
* Added Support for WordPress 2.5!
|
830 |
-
* Fixed HTML typo in admin submission message
|
831 |
-
* Fixed time display for cron jobs in Options->Subscribe2 when displayed on blogs using a time offset
|
832 |
-
* Added Debug plugin to the download package
|
833 |
-
* Improved descriptions of email template keywords in Options->Subscribe2
|
834 |
-
* Display subscribers in batches of 50 in Manage->Subscribers
|
835 |
-
* Fixed some XHTML validation errors
|
836 |
-
* Improved admin menu layout for compliance with WordPress 2.5
|
837 |
-
* Reverted to using wp_mail instead of mail to ensure proper header encoding
|
838 |
-
* Improved mail header formatting - thanks to Chris Carlson
|
839 |
-
* Add ability to skip email notification using a Custom Field (s2mail set as "no")
|
840 |
-
* Improved CSV export - thanks to Aaron Axelsen
|
841 |
-
* Added some compatibility for WPMU - thanks to Aaron Axelsen
|
842 |
-
* Added some error feedback to blog users if mails fail to send
|
843 |
-
* Moved Buttonsnap due to far to many fatal error complaints
|
844 |
-
* Added option to send notifications for Private posts
|
845 |
-
* Improved handling of notification for Password Protected Posts
|
846 |
-
|
847 |
-
= Version 4.4 by Matthew Robinson =
|
848 |
-
|
849 |
-
* Fixed non-substitution of TABLE keyword
|
850 |
-
* Fixed bug in usermeta update calls in unsubscribe_registered_users function
|
851 |
-
* Fixed bug in array handling in cron function that may have stopped emails sending
|
852 |
-
* Improved array handling in the Digest function
|
853 |
-
* Added an Un-installer to completely removed Subscribe2 from your WordPress install
|
854 |
-
|
855 |
-
= Version 4.3 by Matthew Robinson =
|
856 |
-
|
857 |
-
* Fixed bug where digest emails were sent to unsubscribed users - Thanks to Mr Papa
|
858 |
-
* Stripped slashes from Subject when sending from Write->Mail Subscribers - Thanks to James
|
859 |
-
* Ensured all admin pages created by Subscribe2 are valid XHTML 1.0 Transitional code
|
860 |
-
* Added default mail templates and other missed string values to i18n files to allow easier first time translation - thanks to Kjell
|
861 |
-
* Added option to set the hour for digest email notifications provided the schedule interval is one day or greater
|
862 |
-
* Moved option variable declaration to ensure better caching
|
863 |
-
* Fixed bug where cron tasks were not removed when options were reset
|
864 |
-
* Fixed email notifications for future dated posts
|
865 |
-
* Fixed QuickTag Icons and mouse-over floating text
|
866 |
-
|
867 |
-
= Version 4.2 by Matthew Robinson =
|
868 |
-
|
869 |
-
* Added translation capability to user feedback strings - thanks to Lise
|
870 |
-
* Corrected some other translation strings
|
871 |
-
* Fixed bug in notification emails to admins when new users subscribe
|
872 |
-
* Updated default options code
|
873 |
-
|
874 |
-
= Version 4.1 by Matthew Robinson =
|
875 |
-
|
876 |
-
* Fixed sending of notifications for Pages
|
877 |
-
* Fixed password protected post bug for Digest email notifications
|
878 |
-
* Fixed blank email headers if admin data is not at ID 1
|
879 |
-
|
880 |
-
= Version 4.0 by Matthew Robinson =
|
881 |
-
|
882 |
-
* Compatible with WordPress 2.3
|
883 |
-
* Widget Code now integrated into the main plugin and added as an option
|
884 |
-
* More Options for Email Notifications
|
885 |
-
* Category Lists fixed for WordPress 2.3 and now show empty categories
|
886 |
-
|
887 |
-
= Version 3.8 by Matthew Robinson =
|
888 |
-
|
889 |
-
* Fixed User Menu Settings when Digests enabled
|
890 |
-
* Changed Registered Subscribers to Registered Users in drop down to avoid confusion
|
891 |
-
* Minor code revisions for admin menu layout
|
892 |
-
|
893 |
-
= Version 3.7 by Matthew Robinson =
|
894 |
-
|
895 |
-
* Change from deprecated get_settings -> get_option
|
896 |
-
* Fix for confirmation links not working for custom installs
|
897 |
-
* Abandoned wp_mail due to core bugs
|
898 |
-
* Added Digest Table feature (untested)
|
899 |
-
* Added icons to manage window (Thanks to http://www.famfamfam.com/lab/icons/)
|
900 |
-
* Fixed Bulk Manage bug when using i18n files
|
901 |
-
* Fixed bug in cron emails if <!--more--> tag present
|
902 |
-
|
903 |
-
= Version 3.6 by Matthew Robinson =
|
904 |
-
|
905 |
-
* Fixed a typo in Content-Type mail headers
|
906 |
-
* Fixed Auto Register functions to obey Excluded Categories
|
907 |
-
* Added option to check WP-Register checkbox by default
|
908 |
-
|
909 |
-
= Version 3.5 by Matthew Robinson =
|
910 |
-
|
911 |
-
* Fixed a bug in the upgrade function that was messing up the options settings
|
912 |
-
* Updated the include.php file to preset recently introduced option settings
|
913 |
-
|
914 |
-
= Version 3.4 by Matthew Robinson =
|
915 |
-
|
916 |
-
* QuickTag button now displays a Marker! (HUGE thanks to Raven!)
|
917 |
-
* Fix for excluded categories in User Menu
|
918 |
-
* BCCLIMIT typo corrected in Mail function
|
919 |
-
* Call to translation files moved to avoid call to undefined function
|
920 |
-
* Options added to send mails for pages and password protected posts
|
921 |
-
* Option added to display subscription checkbox in WordPress Register screen
|
922 |
-
* Small typo and layout amendments
|
923 |
-
|
924 |
-
= Version 3.3 by Matthew Robinson =
|
925 |
-
|
926 |
-
* QuickTag button added! Works with Visual and Standard Editor. __Look in Code for token addition if using RTE.__
|
927 |
-
* Current Server time displayed for Cron tasks
|
928 |
-
* Fixed bug so Registered users now identified correctly
|
929 |
-
* Upgrade function called via WordPress hook to prevent calls to undefined functions
|
930 |
-
* Fixed a bug affecting Registered Users not appearing in the drop down list
|
931 |
-
* Improved handling of the Subscribe2 option array
|
932 |
-
|
933 |
-
= Version 3.2 by Matthew Robinson =
|
934 |
-
|
935 |
-
* Fixed a bug affecting Registered Users not appearing in the drop down list
|
936 |
-
* Improved handling of the Subscribe2 option array
|
937 |
-
|
938 |
-
= Version 3.1 by Matthew Robinson =
|
939 |
-
|
940 |
-
* Amended code to use core cron functionality for future posts and digest notifications, no longer need WP-Cron
|
941 |
-
* Improved HTML code generated for admin pages
|
942 |
-
* Removed sending of emails for WordPress Pages
|
943 |
-
* Fixed display issues if S2PAGE is not defined
|
944 |
-
|
945 |
-
= Version 3.0 by Matthew Robinson =
|
946 |
-
|
947 |
-
* Updated for WordPress 2.1 Branch
|
948 |
-
|
949 |
-
= Version 2.22 by Matthew Robinson =
|
950 |
-
|
951 |
-
* Fixed User Menu Settings when Digests enabled
|
952 |
-
* Changed Registered Subscribers to Registered Users in drop down to avoid confusion
|
953 |
-
* Minor code revisions for admin menu layout
|
954 |
-
|
955 |
-
= Version 2.21 by Matthew Robinson =
|
956 |
-
|
957 |
-
* Change from deprecated get_settings -> get_option
|
958 |
-
* Fixed bug in cron emails if <!--more--> tag present
|
959 |
-
|
960 |
-
= Version 2.20 by Matthew Robinson =
|
961 |
-
|
962 |
-
* Fixed a typo in Content-Type mail headers
|
963 |
-
* Fixed Auto Register functions to obey Excluded Categories
|
964 |
-
|
965 |
-
= Version 2.19 by Matthew Robinson =
|
966 |
-
|
967 |
-
* Fixed a bug in the upgrade function that was messing up the options settings
|
968 |
-
|
969 |
-
= Version 2.18 by Matthew Robinson =
|
970 |
-
|
971 |
-
* BCCLIMIT typo corrected in Mail function
|
972 |
-
* Call to translation files moved to avoid call to undefined function
|
973 |
-
* Small typo and layout amendments
|
974 |
-
|
975 |
-
= Version 2.17 by Matthew Robinson =
|
976 |
-
|
977 |
-
* Current Server time displayed for Cron tasks
|
978 |
-
* Fixed bug so Registered users now identified correctly
|
979 |
-
* Upgrade function called via WordPress hook to prevent calls to undefined functions
|
980 |
-
|
981 |
-
= Version 2.16 by Matthew Robinson =
|
982 |
-
|
983 |
-
* Fixed a bug affecting Registered Users not appearing in the drop down list
|
984 |
-
* Improved handling of the Subscribe2 option array
|
985 |
-
|
986 |
-
= Version 2.15 by Matthew Robinson =
|
987 |
-
|
988 |
-
* Improved HTML code generated for admin pages
|
989 |
-
* Fixed display issues if S2PAGE is not defined
|
990 |
-
|
991 |
-
= Version 2.14 by Matthew Robinson =
|
992 |
-
|
993 |
-
* Amended DREAMHOST setting to BCCLIMIT as more hosts are limiting emails
|
994 |
-
* Fixed oversight in upgrade() function
|
995 |
-
|
996 |
-
= Version 2.13 by Matthew Robinson =
|
997 |
-
|
998 |
-
* Added WordPress nonce functionality to improve admin security
|
999 |
-
|
1000 |
-
= Version 2.12 by Matthew Robinson =
|
1001 |
-
|
1002 |
-
* Fix for missing Quicktags (probably since version 2.2.10)
|
1003 |
-
* Fix for occasional email issue where excerpts are incomplete
|
1004 |
-
|
1005 |
-
= Version 2.11 by Matthew Robinson =
|
1006 |
-
|
1007 |
-
* Fixed bug that would cause all subscribers to get digest emails
|
1008 |
-
* Added Select All check box to category listing
|
1009 |
-
|
1010 |
-
= Version 2.10 by Matthew Robinson =
|
1011 |
-
|
1012 |
-
* Improved sign up process by double checking email address
|
1013 |
-
* Fix for submenu issues encountered in WP 2.0.6
|
1014 |
-
|
1015 |
-
= Version 2.9 by Matthew Robinson =
|
1016 |
-
|
1017 |
-
* Fixed get_userdata call issue
|
1018 |
-
* Added CSV export
|
1019 |
-
* Reworked options storage routines
|
1020 |
-
|
1021 |
-
= Version 2.8 by Matthew Robinson =
|
1022 |
-
|
1023 |
-
* Fixed missing line return in email headers that was causing failed emails
|
1024 |
-
* Added user feedback messages to profile area
|
1025 |
-
* Added 'Authorname' to the list of message substitutions in email messages
|
1026 |
-
* Fixed name and email substitution in Digest Mails
|
1027 |
-
* Fixed stripslashes issue in email subjects
|
1028 |
-
* Added new 'Action' token for confirmation emails
|
1029 |
-
|
1030 |
-
= Version 2.7 by Matthew Robinson =
|
1031 |
-
|
1032 |
-
* Link to post in HTML emails is now functional
|
1033 |
-
* Fixed bug in Bulk Management so it works when first loaded
|
1034 |
-
* Ability to auto subscribe newly registering users
|
1035 |
-
* Added additional email header information
|
1036 |
-
|
1037 |
-
= Version 2.6 by Matthew Robinson =
|
1038 |
-
|
1039 |
-
* Fixed email headers to comply with RFC2822 standard (after breaking them in the first place)
|
1040 |
-
* Impoved XHTML compliance of user feedback messages and subscription form when presented on a blog
|
1041 |
-
* Tidied up presentation of the code a little
|
1042 |
-
* Cached some additional variables
|
1043 |
-
|
1044 |
-
= Version 2.5 by Matthew Robinson =
|
1045 |
-
|
1046 |
-
* Added functionality to Bulk Manage registered users subscriptions
|
1047 |
-
|
1048 |
-
= Version 2.4 by Matthew Robinson =
|
1049 |
-
|
1050 |
-
* Added functionality to block user specified domains from public subscription
|
1051 |
-
|
1052 |
-
= Version 2.3 by Matthew Robinson =
|
1053 |
-
|
1054 |
-
* Added functionality to allow for Subscribe2 Sidebar Widget
|
1055 |
-
* Added functionality to block public email subscriptins from domains defined under Options
|
1056 |
-
* Added functionality to send an email reminder to all unconfirmed public subscriber
|
1057 |
-
* Added removal of html entities (for example ©) from plaintext emails
|
1058 |
-
* Replaced spaces with tabs in Plugin format
|
1059 |
-
* Minor changes to admin layout to match WordPress admin function layout
|
1060 |
-
|
1061 |
-
= Version 2.2 =
|
1062 |
-
|
1063 |
-
* By Scott Merrill, see http://www.skippy.net/blog/category/wordpress/plugins/subscribe2/
|
1064 |
|
1065 |
== Upgrade Notice ==
|
1066 |
|
332 |
|
333 |
== Changelog ==
|
334 |
|
335 |
+
See [ChangeLog.txt](http://plugins.svn.wordpress.org/subscribe2/trunk/ChangeLog.txt)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
336 |
|
337 |
== Upgrade Notice ==
|
338 |
|
admin/send_email.php
CHANGED
@@ -28,6 +28,11 @@ if ( isset($_POST['s2_admin']) && 'mail' == $_POST['s2_admin'] ) {
|
|
28 |
$recipients = $this->get_registered("cats=$cat");
|
29 |
} elseif ( 'all_users' == $_POST['what'] ) {
|
30 |
$recipients = $this->get_all_registered();
|
|
|
|
|
|
|
|
|
|
|
31 |
} else {
|
32 |
$recipients = $this->get_registered();
|
33 |
}
|
28 |
$recipients = $this->get_registered("cats=$cat");
|
29 |
} elseif ( 'all_users' == $_POST['what'] ) {
|
30 |
$recipients = $this->get_all_registered();
|
31 |
+
} elseif ( 'all' == $_POST['what'] ) {
|
32 |
+
$confirmed = $this->get_public();
|
33 |
+
$unconfirmed = $this->get_public(0);
|
34 |
+
$registered = $this->get_all_registered();
|
35 |
+
$recipients = array_merge((array)$confirmed, (array)$unconfirmed, (array)$registered);
|
36 |
} else {
|
37 |
$recipients = $this->get_registered();
|
38 |
}
|
admin/settings.php
CHANGED
@@ -48,7 +48,7 @@ if ( isset( $_POST['s2_admin']) ) {
|
|
48 |
}
|
49 |
}
|
50 |
} elseif ( in_array($key, array('notification_subject', 'mailtext', 'confirm_subject', 'confirm_email', 'remind_subject', 'remind_email')) && !empty($_POST[$key]) ) {
|
51 |
-
|
52 |
$this->subscribe2_options[$key] = $_POST[$key];
|
53 |
} elseif ( in_array($key, array('compulsory', 'exclude', 'format')) ) {
|
54 |
sort($_POST[$key]);
|
@@ -228,7 +228,7 @@ switch ($current_tab) {
|
|
228 |
}
|
229 |
echo __('Add Tracking Parameters to the Permalink', 'subscribe2') . ": ";
|
230 |
echo "<input type=\"text\" name=\"tracking\" value=\"" . stripslashes($this->subscribe2_options['tracking']) . "\" size=\"50\" /> ";
|
231 |
-
echo "<br />" . __('eg. utm_source=subscribe2&utm_medium=email&utm_campaign=postnotify&utm_id={ID}', 'subscribe2') . "\r\n";
|
232 |
echo "</p>\r\n";
|
233 |
echo "</div>\r\n";
|
234 |
break;
|
@@ -241,7 +241,7 @@ switch ($current_tab) {
|
|
241 |
echo "<tr><td style=\"vertical-align: top; height: 350px; min-height: 350px;\">";
|
242 |
echo __('New Post email (must not be empty)', 'subscribe2') . ":<br />\r\n";
|
243 |
echo __('Subject Line', 'subscribe2') . ": ";
|
244 |
-
echo "<input type=\"text\" name=\"notification_subject\" value=\"" . stripslashes($this->subscribe2_options['notification_subject']) . "\" size=\"
|
245 |
echo "<br />\r\n";
|
246 |
echo "<textarea rows=\"9\" cols=\"60\" name=\"mailtext\">" . stripslashes($this->subscribe2_options['mailtext']) . "</textarea>\r\n";
|
247 |
echo "</td><td style=\"vertical-align: top;\" rowspan=\"3\">";
|
@@ -271,12 +271,12 @@ switch ($current_tab) {
|
|
271 |
echo "</dl></td></tr><tr><td style=\"vertical-align: top; height: 350px; min-height: 350px;\">";
|
272 |
echo __('Subscribe / Unsubscribe confirmation email', 'subscribe2') . ":<br />\r\n";
|
273 |
echo __('Subject Line', 'subscribe2') . ": ";
|
274 |
-
echo "<input type=\"text\" name=\"confirm_subject\" value=\"" . stripslashes($this->subscribe2_options['confirm_subject']) . "\" size=\"
|
275 |
echo "<textarea rows=\"9\" cols=\"60\" name=\"confirm_email\">" . stripslashes($this->subscribe2_options['confirm_email']) . "</textarea>\r\n";
|
276 |
echo "</td></tr><tr><td style=\"vertical-align: top; height: 350px; min-height: 350px;\">";
|
277 |
echo __('Reminder email to Unconfirmed Subscribers', 'subscribe2') . ":<br />\r\n";
|
278 |
echo __('Subject Line', 'subscribe2') . ": ";
|
279 |
-
echo "<input type=\"text\" name=\"remind_subject\" value=\"" . stripslashes($this->subscribe2_options['remind_subject']) . "\" size=\"
|
280 |
echo "<textarea rows=\"9\" cols=\"60\" name=\"remind_email\">" . stripslashes($this->subscribe2_options['remind_email']) . "</textarea><br /><br />\r\n";
|
281 |
echo "</td></tr></table>\r\n";
|
282 |
echo "</div>\r\n";
|
48 |
}
|
49 |
}
|
50 |
} elseif ( in_array($key, array('notification_subject', 'mailtext', 'confirm_subject', 'confirm_email', 'remind_subject', 'remind_email')) && !empty($_POST[$key]) ) {
|
51 |
+
// email subject and body templates
|
52 |
$this->subscribe2_options[$key] = $_POST[$key];
|
53 |
} elseif ( in_array($key, array('compulsory', 'exclude', 'format')) ) {
|
54 |
sort($_POST[$key]);
|
228 |
}
|
229 |
echo __('Add Tracking Parameters to the Permalink', 'subscribe2') . ": ";
|
230 |
echo "<input type=\"text\" name=\"tracking\" value=\"" . stripslashes($this->subscribe2_options['tracking']) . "\" size=\"50\" /> ";
|
231 |
+
echo "<br />" . __('eg. utm_source=subscribe2&utm_medium=email&utm_campaign=postnotify&utm_id={ID}&utm_title={TITLE}', 'subscribe2') . "\r\n";
|
232 |
echo "</p>\r\n";
|
233 |
echo "</div>\r\n";
|
234 |
break;
|
241 |
echo "<tr><td style=\"vertical-align: top; height: 350px; min-height: 350px;\">";
|
242 |
echo __('New Post email (must not be empty)', 'subscribe2') . ":<br />\r\n";
|
243 |
echo __('Subject Line', 'subscribe2') . ": ";
|
244 |
+
echo "<input type=\"text\" name=\"notification_subject\" value=\"" . stripslashes($this->subscribe2_options['notification_subject']) . "\" size=\"45\" />";
|
245 |
echo "<br />\r\n";
|
246 |
echo "<textarea rows=\"9\" cols=\"60\" name=\"mailtext\">" . stripslashes($this->subscribe2_options['mailtext']) . "</textarea>\r\n";
|
247 |
echo "</td><td style=\"vertical-align: top;\" rowspan=\"3\">";
|
271 |
echo "</dl></td></tr><tr><td style=\"vertical-align: top; height: 350px; min-height: 350px;\">";
|
272 |
echo __('Subscribe / Unsubscribe confirmation email', 'subscribe2') . ":<br />\r\n";
|
273 |
echo __('Subject Line', 'subscribe2') . ": ";
|
274 |
+
echo "<input type=\"text\" name=\"confirm_subject\" value=\"" . stripslashes($this->subscribe2_options['confirm_subject']) . "\" size=\"45\" /><br />\r\n";
|
275 |
echo "<textarea rows=\"9\" cols=\"60\" name=\"confirm_email\">" . stripslashes($this->subscribe2_options['confirm_email']) . "</textarea>\r\n";
|
276 |
echo "</td></tr><tr><td style=\"vertical-align: top; height: 350px; min-height: 350px;\">";
|
277 |
echo __('Reminder email to Unconfirmed Subscribers', 'subscribe2') . ":<br />\r\n";
|
278 |
echo __('Subject Line', 'subscribe2') . ": ";
|
279 |
+
echo "<input type=\"text\" name=\"remind_subject\" value=\"" . stripslashes($this->subscribe2_options['remind_subject']) . "\" size=\"45\" /><br />\r\n";
|
280 |
echo "<textarea rows=\"9\" cols=\"60\" name=\"remind_email\">" . stripslashes($this->subscribe2_options['remind_email']) . "</textarea><br /><br />\r\n";
|
281 |
echo "</td></tr></table>\r\n";
|
282 |
echo "</div>\r\n";
|
admin/subscribers.php
CHANGED
@@ -129,9 +129,13 @@ if ( !empty($_POST['s']) ) {
|
|
129 |
$subscribers = $result;
|
130 |
}
|
131 |
|
132 |
-
if ( !class_exists('WP_List_Table') ){
|
133 |
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
|
134 |
}
|
|
|
|
|
|
|
|
|
135 |
// Instantiate and prepare our table data - this also runs the bulk actions
|
136 |
$S2ListTable = new Subscribe2_List_Table();
|
137 |
$S2ListTable->prepare_items();
|
@@ -246,141 +250,4 @@ echo "</form></div>\r\n";
|
|
246 |
include(ABSPATH . 'wp-admin/admin-footer.php');
|
247 |
// just to be sure
|
248 |
die;
|
249 |
-
|
250 |
-
class Subscribe2_List_Table extends WP_List_Table {
|
251 |
-
function __construct(){
|
252 |
-
global $status, $page;
|
253 |
-
|
254 |
-
parent::__construct( array(
|
255 |
-
'singular' => 'subscriber',
|
256 |
-
'plural' => 'subscribers',
|
257 |
-
'ajax' => false
|
258 |
-
) );
|
259 |
-
}
|
260 |
-
|
261 |
-
function column_default($item, $column_name){
|
262 |
-
global $current_tab;
|
263 |
-
if ( $current_tab == 'registered' ) {
|
264 |
-
switch($column_name){
|
265 |
-
case 'email':
|
266 |
-
return $item[$column_name];
|
267 |
-
default:
|
268 |
-
return print_r($item,true);
|
269 |
-
}
|
270 |
-
} else {
|
271 |
-
switch($column_name){
|
272 |
-
case 'email':
|
273 |
-
case 'date':
|
274 |
-
return $item[$column_name];
|
275 |
-
default:
|
276 |
-
return print_r($item,true);
|
277 |
-
}
|
278 |
-
}
|
279 |
-
}
|
280 |
-
|
281 |
-
function column_email($item){
|
282 |
-
global $current_tab;
|
283 |
-
if ( $current_tab == 'registered' ) {
|
284 |
-
$actions = array('edit' => sprintf('<a href="?page=%s&email=%s">Edit</a>', 's2', $item['email']));
|
285 |
-
return sprintf('%1$s %2$s', $item['email'], $this->row_actions($actions));
|
286 |
-
} else {
|
287 |
-
global $mysubscribe2;
|
288 |
-
if ( '0' === $mysubscribe2->is_public($item['email']) ) {
|
289 |
-
return sprintf('<span style="color:#FF0000">%1$s</span>', $item['email']);
|
290 |
-
} else {
|
291 |
-
return sprintf('%1$s', $item['email']);
|
292 |
-
}
|
293 |
-
}
|
294 |
-
}
|
295 |
-
|
296 |
-
function column_cb($item){
|
297 |
-
return sprintf('<input type="checkbox" name="%1$s[]" value="%2$s" />', $this->_args['singular'], $item['email']);
|
298 |
-
}
|
299 |
-
|
300 |
-
function get_columns(){
|
301 |
-
global $current_tab;
|
302 |
-
if ( $current_tab == 'registered' ) {
|
303 |
-
$columns = array('email' => 'Email');
|
304 |
-
} else {
|
305 |
-
$columns = array(
|
306 |
-
'cb' => '<input type="checkbox" />',
|
307 |
-
'email' => 'Email',
|
308 |
-
'date' => 'Date'
|
309 |
-
);
|
310 |
-
}
|
311 |
-
return $columns;
|
312 |
-
}
|
313 |
-
|
314 |
-
function get_sortable_columns() {
|
315 |
-
global $current_tab;
|
316 |
-
if ( $current_tab == 'registered' ) {
|
317 |
-
$sortable_columns = array('email' => array('email', true));
|
318 |
-
} else {
|
319 |
-
$sortable_columns = array(
|
320 |
-
'email' => array('email', true),
|
321 |
-
'date' => array('date', false)
|
322 |
-
);
|
323 |
-
}
|
324 |
-
return $sortable_columns;
|
325 |
-
}
|
326 |
-
|
327 |
-
function get_bulk_actions() {
|
328 |
-
global $current_tab;
|
329 |
-
if ( $current_tab == 'registered' ) {
|
330 |
-
return array();
|
331 |
-
} else {
|
332 |
-
$actions = array(
|
333 |
-
'delete' => __('Delete', 'subscribe2'),
|
334 |
-
'toggle' => __('Toggle', 'subscribe2')
|
335 |
-
);
|
336 |
-
return $actions;
|
337 |
-
}
|
338 |
-
}
|
339 |
-
|
340 |
-
function prepare_items() {
|
341 |
-
|
342 |
-
global $mysubscribe2;
|
343 |
-
if ( is_int($mysubscribe2->subscribe2_options['entries']) ) {
|
344 |
-
$per_page = $mysubscribe2->subscribe2_options['entries'];
|
345 |
-
} else {
|
346 |
-
$per_page = 25;
|
347 |
-
}
|
348 |
-
|
349 |
-
$columns = $this->get_columns();
|
350 |
-
$hidden = array();
|
351 |
-
$sortable = $this->get_sortable_columns();
|
352 |
-
$this->_column_headers = array($columns, $hidden, $sortable);
|
353 |
-
|
354 |
-
global $mysubscribe2, $subscribers, $current_tab;
|
355 |
-
$data = array();
|
356 |
-
if ( $current_tab == 'public' ) {
|
357 |
-
foreach($subscribers as $email) {
|
358 |
-
$data[] = array('email' => $email, 'date' => $mysubscribe2->signup_date($email));
|
359 |
-
}
|
360 |
-
} else {
|
361 |
-
foreach($subscribers as $email) {
|
362 |
-
$data[] = array('email' => $email);
|
363 |
-
}
|
364 |
-
}
|
365 |
-
|
366 |
-
function usort_reorder($a,$b){
|
367 |
-
$orderby = (!empty($_REQUEST['orderby'])) ? $_REQUEST['orderby'] : 'email';
|
368 |
-
$order = (!empty($_REQUEST['order'])) ? $_REQUEST['order'] : 'asc';
|
369 |
-
$result = strcmp($a[$orderby], $b[$orderby]);
|
370 |
-
return ($order==='asc') ? $result : -$result;
|
371 |
-
}
|
372 |
-
usort($data, 'usort_reorder');
|
373 |
-
|
374 |
-
$current_page = $this->get_pagenum();
|
375 |
-
$total_items = count($data);
|
376 |
-
$data = array_slice($data,(($current_page-1)*$per_page),$per_page);
|
377 |
-
$this->items = $data;
|
378 |
-
|
379 |
-
$this->set_pagination_args( array(
|
380 |
-
'total_items' => $total_items,
|
381 |
-
'per_page' => $per_page,
|
382 |
-
'total_pages' => ceil($total_items/$per_page)
|
383 |
-
) );
|
384 |
-
}
|
385 |
-
}
|
386 |
?>
|
129 |
$subscribers = $result;
|
130 |
}
|
131 |
|
132 |
+
if ( !class_exists('WP_List_Table') ) {
|
133 |
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
|
134 |
}
|
135 |
+
if ( !class_exists('Subscribe2_List_Table') ) {
|
136 |
+
require_once( S2PATH . 'classes/class-s2-list-table.php' );
|
137 |
+
}
|
138 |
+
|
139 |
// Instantiate and prepare our table data - this also runs the bulk actions
|
140 |
$S2ListTable = new Subscribe2_List_Table();
|
141 |
$S2ListTable->prepare_items();
|
250 |
include(ABSPATH . 'wp-admin/admin-footer.php');
|
251 |
// just to be sure
|
252 |
die;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
253 |
?>
|
admin/your_subscriptions.php
CHANGED
@@ -148,7 +148,8 @@ if ( $this->subscribe2_options['email_freq'] == 'never' ) {
|
|
148 |
} else {
|
149 |
echo "<h2>" . __('Subscribed Categories', 'subscribe2') . "</h2>\r\n";
|
150 |
}
|
151 |
-
|
|
|
152 |
} else {
|
153 |
// we're doing daily digests, so just show
|
154 |
// subscribe / unnsubscribe
|
148 |
} else {
|
149 |
echo "<h2>" . __('Subscribed Categories', 'subscribe2') . "</h2>\r\n";
|
150 |
}
|
151 |
+
('' == $this->subscribe2_options['compulsory']) ? $compulsory = array() : $compulsory = explode(',', $this->subscribe2_options['compulsory']);
|
152 |
+
$this->display_category_form(explode(',', get_user_meta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), true)), $this->subscribe2_options['reg_override'], $compulsory);
|
153 |
} else {
|
154 |
// we're doing daily digests, so just show
|
155 |
// subscribe / unnsubscribe
|
classes/class-s2-admin.php
CHANGED
@@ -234,7 +234,7 @@ class s2_admin extends s2class {
|
|
234 |
echo " checked=\"checked\"";
|
235 |
}
|
236 |
if ( in_array($cat->term_id, $compulsory) && $name === 'category' ) {
|
237 |
-
echo "
|
238 |
}
|
239 |
echo " /> <abbr title=\"" . $cat->slug . "\">" . $catName . "</abbr></label><br />\r\n";
|
240 |
}
|
234 |
echo " checked=\"checked\"";
|
235 |
}
|
236 |
if ( in_array($cat->term_id, $compulsory) && $name === 'category' ) {
|
237 |
+
echo " DISABLED";
|
238 |
}
|
239 |
echo " /> <abbr title=\"" . $cat->slug . "\">" . $catName . "</abbr></label><br />\r\n";
|
240 |
}
|
classes/class-s2-core.php
CHANGED
@@ -78,161 +78,77 @@ class s2class {
|
|
78 |
active tinyint(1) default 0,
|
79 |
date DATE default '$date' NOT NULL,
|
80 |
ip char(64) NOT NULL default 'admin',
|
|
|
|
|
|
|
|
|
81 |
PRIMARY KEY (id) )";
|
82 |
|
83 |
// create the table, as needed
|
84 |
maybe_create_table($this->public, $sql);
|
85 |
|
86 |
-
//
|
87 |
-
if ( !is_array($this->subscribe2_options) ) {
|
88 |
-
$this->reset();
|
89 |
-
}
|
90 |
-
} // end install()
|
91 |
-
|
92 |
-
/**
|
93 |
-
Upgrade function for the database and settings
|
94 |
-
*/
|
95 |
-
function upgrade() {
|
96 |
-
global $wpdb, $wp_version, $wpmu_version;
|
97 |
-
// include upgrade-functions for maybe_add_column;
|
98 |
-
if ( !function_exists('maybe_add_column') ) {
|
99 |
-
require_once(ABSPATH . 'wp-admin/install-helper.php');
|
100 |
-
}
|
101 |
-
$date = date('Y-m-d');
|
102 |
-
maybe_add_column($this->public, 'date', "ALTER TABLE $this->public ADD date DATE DEFAULT '$date' NOT NULL AFTER active");
|
103 |
-
maybe_add_column($this->public, 'ip', "ALTER TABLE $this->public ADD ip char(64) DEFAULT 'admin' NOT NULL AFTER date");
|
104 |
-
maybe_add_column($this->public, 'time', "ALTER TABLE $this->public ADD time TIME DEFAULT '00:00:00' NOT NULL AFTER date");
|
105 |
-
maybe_add_column($this->public, 'conf_date', "ALTER TABLE $this->public ADD conf_date DATE AFTER ip");
|
106 |
-
maybe_add_column($this->public, 'conf_time', "ALTER TABLE $this->public ADD conf_time TIME AFTER conf_date");
|
107 |
-
maybe_add_column($this->public, 'conf_ip', "ALTER TABLE $this->public ADD conf_ip char(64) AFTER conf_time");
|
108 |
-
|
109 |
-
// let's take the time to check process registered users
|
110 |
-
// existing public subscribers are subscribed to all categories
|
111 |
$users = $this->get_all_registered('ID');
|
112 |
if ( !empty($users) ) {
|
113 |
foreach ( $users as $user_ID ) {
|
114 |
$check_format = get_user_meta($user_ID, $this->get_usermeta_keyname('s2_format'), true);
|
115 |
-
|
116 |
-
if ( 'html' == $check_format ) {
|
117 |
-
delete_user_meta($user_ID, 's2_excerpt');
|
118 |
-
} elseif ( 'text' == $check_format ) {
|
119 |
-
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_format'), get_user_meta($user_ID, 's2_excerpt'));
|
120 |
-
delete_user_meta($user_ID, 's2_excerpt');
|
121 |
-
} elseif ( empty($check_format) ) {
|
122 |
// no prior settings so create them
|
123 |
$this->register($user_ID);
|
124 |
}
|
125 |
-
$subscribed = get_user_meta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), true);
|
126 |
-
if ( strstr($subscribed, '-1') ) {
|
127 |
-
// make sure we remove '-1' from any settings
|
128 |
-
$old_cats = explode(',', $subscribed);
|
129 |
-
$pos = array_search('-1', $old_cats);
|
130 |
-
unset($old_cats[$pos]);
|
131 |
-
$cats = implode(',', $old_cats);
|
132 |
-
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_subscribed'), $cats);
|
133 |
-
}
|
134 |
-
$check_authors = get_user_meta($user_ID, $this->get_usermeta_keyname('s2_authors'), true);
|
135 |
-
if ( empty($check_authors) ) {
|
136 |
-
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_authors'), '');
|
137 |
-
}
|
138 |
}
|
139 |
}
|
140 |
-
// update the options table to serialized format
|
141 |
-
$old_options = $wpdb->get_col("SELECT option_name from $wpdb->options where option_name LIKE 's2%' AND option_name != 's2_future_posts'");
|
142 |
|
143 |
-
if
|
144 |
-
|
145 |
-
|
146 |
-
$option_array = substr($option, 3);
|
147 |
-
$this->subscribe2_options[$option_array] = $value;
|
148 |
-
delete_option($option);
|
149 |
-
}
|
150 |
}
|
151 |
-
|
152 |
-
// ensure that the options are in the database
|
153 |
-
require(S2PATH . "include/options.php");
|
154 |
-
// correct autoformat to upgrade from pre 5.6
|
155 |
-
if ( $this->subscribe2_options['autoformat'] == 'text' ) {
|
156 |
-
$this->subscribe2_options['autoformat'] = 'excerpt';
|
157 |
-
}
|
158 |
-
if ( $this->subscribe2_options['autoformat'] == 'full' ) {
|
159 |
-
$this->subscribe2_options['autoformat'] = 'post';
|
160 |
-
}
|
161 |
-
// change old CAPITALISED keywords to those in {PARENTHESES}; since version 6.4
|
162 |
-
$keywords = array('BLOGNAME', 'BLOGLINK', 'TITLE', 'POST', 'POSTTIME', 'TABLE', 'TABLELINKS', 'PERMALINK', 'TINYLINK', 'DATE', 'TIME', 'MYNAME', 'EMAIL', 'AUTHORNAME', 'LINK', 'CATS', 'TAGS', 'COUNT', 'ACTION');
|
163 |
-
$keyword = implode('|', $keywords);
|
164 |
-
$regex = '/(?<!\{)\b('.$keyword.')\b(?!\{)/xm';
|
165 |
-
$replace = '{\1}';
|
166 |
-
$this->subscribe2_options['mailtext'] = preg_replace($regex, $replace, $this->subscribe2_options['mailtext']);
|
167 |
-
$this->subscribe2_options['notification_subject'] = preg_replace($regex, $replace, $this->subscribe2_options['notification_subject']);
|
168 |
-
$this->subscribe2_options['confirm_email'] = preg_replace($regex, $replace, $this->subscribe2_options['confirm_email']);
|
169 |
-
$this->subscribe2_options['confirm_subject'] = preg_replace($regex, $replace, $this->subscribe2_options['confirm_subject']);
|
170 |
-
$this->subscribe2_options['remind_email'] = preg_replace($regex, $replace, $this->subscribe2_options['remind_email']);
|
171 |
-
$this->subscribe2_options['remind_subject'] = preg_replace($regex, $replace, $this->subscribe2_options['remind_subject']);
|
172 |
-
update_option('subscribe2_options', $this->subscribe2_options);
|
173 |
-
|
174 |
-
// upgrade old wpmu user meta data to new
|
175 |
-
if ( $this->s2_mu === true ) {
|
176 |
-
global $s2class_multisite;
|
177 |
-
$s2class_multisite->namechange_subscribe2_widget();
|
178 |
-
// loop through all users
|
179 |
-
foreach ( $users as $user_ID ) {
|
180 |
-
// get categories which the user is subscribed to (old ones)
|
181 |
-
$categories = get_user_meta($user_ID, 's2_subscribed', true);
|
182 |
-
$categories = explode(',', $categories);
|
183 |
-
$format = get_user_meta($user_ID, 's2_format', true);
|
184 |
-
$autosub = get_user_meta($user_ID, 's2_autosub', true);
|
185 |
-
|
186 |
-
// load blogs of user (only if we need them)
|
187 |
-
$blogs = array();
|
188 |
-
if ( count($categories) > 0 && !in_array('-1', $categories) ) {
|
189 |
-
$blogs = get_blogs_of_user($user_ID, true);
|
190 |
-
}
|
191 |
-
|
192 |
-
foreach ( $blogs as $blog ) {
|
193 |
-
switch_to_blog($blog->userblog_id);
|
194 |
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
}
|
203 |
-
if ( !empty($format) ) {
|
204 |
-
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_format'), $format);
|
205 |
-
}
|
206 |
-
if ( !empty($autosub) ) {
|
207 |
-
update_user_meta($user_ID, $this->get_usermeta_keyname('s2_autosub'), $autosub);
|
208 |
-
}
|
209 |
-
restore_current_blog();
|
210 |
-
}
|
211 |
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
delete_user_meta($user_ID, 's2_cat' . $cat);
|
218 |
-
}
|
219 |
-
}
|
220 |
}
|
221 |
|
222 |
-
// ensure
|
223 |
-
$
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
$
|
229 |
-
|
230 |
-
|
231 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
}
|
233 |
|
234 |
-
|
235 |
-
|
236 |
|
237 |
return;
|
238 |
} // end upgrade()
|
@@ -299,7 +215,7 @@ class s2class {
|
|
299 |
$headers = $this->headers();
|
300 |
$message = preg_replace('|&[^a][^m][^p].{0,3};|', '', $message);
|
301 |
$message = preg_replace('|&|', '&', $message);
|
302 |
-
$message = wordwrap(strip_tags($message),
|
303 |
$mailtext = apply_filters('s2_plain_email', $message);
|
304 |
}
|
305 |
|
@@ -434,12 +350,17 @@ class s2class {
|
|
434 |
if ( empty($link) ) { return; }
|
435 |
if ( !empty($this->subscribe2_options['tracking']) ) {
|
436 |
(strpos($link, '?') > 0) ? $delimiter .= '&' : $delimiter = '?';
|
437 |
-
|
|
|
|
|
|
|
|
|
|
|
438 |
$id = url_to_postid($link);
|
439 |
-
$
|
440 |
-
|
441 |
}
|
442 |
-
return $link . $delimiter . $
|
443 |
} else {
|
444 |
return $link;
|
445 |
}
|
@@ -751,10 +672,10 @@ class s2class {
|
|
751 |
function get_public($confirmed = 1) {
|
752 |
global $wpdb;
|
753 |
if ( 1 == $confirmed ) {
|
754 |
-
if ( '' == $this->
|
755 |
-
$this->
|
756 |
}
|
757 |
-
return $this->
|
758 |
} else {
|
759 |
if ( '' == $this->all_unconfirmed ) {
|
760 |
$this->all_unconfirmed = $wpdb->get_col("SELECT email FROM $this->public WHERE active='0'");
|
@@ -965,15 +886,27 @@ class s2class {
|
|
965 |
|
966 |
if ( $this->s2_mu ) {
|
967 |
if ( $return === 'ID' ) {
|
968 |
-
|
|
|
|
|
|
|
969 |
} else {
|
970 |
-
|
|
|
|
|
|
|
971 |
}
|
972 |
} else {
|
973 |
if ( $return === 'ID' ) {
|
974 |
-
|
|
|
|
|
|
|
975 |
} else {
|
976 |
-
|
|
|
|
|
|
|
977 |
}
|
978 |
}
|
979 |
} // end get_all_registered()
|
@@ -1549,15 +1482,17 @@ class s2class {
|
|
1549 |
$message_posttime .= __('Posted on', 'subscribe2') . ": " . mysql2date($datetime, $post->post_date) . "\r\n";
|
1550 |
if ( strstr($mailtext, "{TINYLINK}") ) {
|
1551 |
$tinylink = file_get_contents('http://tinyurl.com/api-create.php?url=' . urlencode($this->get_tracking_link(get_permalink($post->ID))));
|
1552 |
-
|
1553 |
-
|
1554 |
-
|
1555 |
-
|
1556 |
-
|
1557 |
-
|
1558 |
-
|
1559 |
-
|
1560 |
-
|
|
|
|
|
1561 |
}
|
1562 |
|
1563 |
if ( strstr($mailtext, "{CATS}") ) {
|
@@ -1575,7 +1510,7 @@ class s2class {
|
|
1575 |
$message_post .= "\r\n";
|
1576 |
$message_posttime .= "\r\n";
|
1577 |
|
1578 |
-
$excerpt = $post->post_excerpt;
|
1579 |
if ( '' == $excerpt ) {
|
1580 |
// no excerpt, is there a <!--more--> ?
|
1581 |
if ( false !== strpos($post->post_content, '<!--more-->') ) {
|
@@ -1697,7 +1632,7 @@ class s2class {
|
|
1697 |
$this->public = $table_prefix . "subscribe2";
|
1698 |
if ( $wpdb->get_var($wpdb->prepare("SHOW TABLES LIKE %s", $this->public)) != $this->public ) { $this->install(); }
|
1699 |
//do we need to upgrade anything?
|
1700 |
-
if ( is_array($this->subscribe2_options) && $this->subscribe2_options['version'] !== S2VERSION ) {
|
1701 |
add_action('shutdown', array(&$this, 'upgrade'));
|
1702 |
}
|
1703 |
|
@@ -1822,8 +1757,10 @@ class s2class {
|
|
1822 |
/* ===== our variables ===== */
|
1823 |
// cache variables
|
1824 |
var $subscribe2_options = array();
|
1825 |
-
var $
|
1826 |
var $all_unconfirmed = '';
|
|
|
|
|
1827 |
var $all_authors = '';
|
1828 |
var $excluded_cats = '';
|
1829 |
var $post_title = '';
|
@@ -1845,6 +1782,7 @@ class s2class {
|
|
1845 |
var $action = '';
|
1846 |
var $email = '';
|
1847 |
var $message = '';
|
|
|
1848 |
var $excerpt_length = 55;
|
1849 |
|
1850 |
// some messages
|
78 |
active tinyint(1) default 0,
|
79 |
date DATE default '$date' NOT NULL,
|
80 |
ip char(64) NOT NULL default 'admin',
|
81 |
+
time TIME DEFAULT '00:00:00' NOT NULL,
|
82 |
+
conf_date DATE,
|
83 |
+
conf_time TIME,
|
84 |
+
conf_ip char(64),
|
85 |
PRIMARY KEY (id) )";
|
86 |
|
87 |
// create the table, as needed
|
88 |
maybe_create_table($this->public, $sql);
|
89 |
|
90 |
+
// create table entries for registered users
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
$users = $this->get_all_registered('ID');
|
92 |
if ( !empty($users) ) {
|
93 |
foreach ( $users as $user_ID ) {
|
94 |
$check_format = get_user_meta($user_ID, $this->get_usermeta_keyname('s2_format'), true);
|
95 |
+
if ( empty($check_format) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
// no prior settings so create them
|
97 |
$this->register($user_ID);
|
98 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
}
|
100 |
}
|
|
|
|
|
101 |
|
102 |
+
// safety check if options exist and if not create them
|
103 |
+
if ( !is_array($this->subscribe2_options) ) {
|
104 |
+
$this->reset();
|
|
|
|
|
|
|
|
|
105 |
}
|
106 |
+
} // end install()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
|
108 |
+
/**
|
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;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
|
116 |
+
// ensure that the options are in the database
|
117 |
+
require(S2PATH . "include/options.php");
|
118 |
+
// catch older versions that didn't use serialised options
|
119 |
+
if ( !isset($this->subscribe2_options['version']) ) {
|
120 |
+
$this->subscribe2_options['version'] = '2.0';
|
|
|
|
|
|
|
121 |
}
|
122 |
|
123 |
+
// let's take the time to ensure that database entries exist for all registered users
|
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 |
|
150 |
+
$this->subscribe2_options['version'] = S2VERSION;
|
151 |
+
update_option('subscribe2_options', $this->subscribe2_options);
|
152 |
|
153 |
return;
|
154 |
} // end upgrade()
|
215 |
$headers = $this->headers();
|
216 |
$message = preg_replace('|&[^a][^m][^p].{0,3};|', '', $message);
|
217 |
$message = preg_replace('|&|', '&', $message);
|
218 |
+
$message = wordwrap(strip_tags($message), $this->word_wrap, "\n");
|
219 |
$mailtext = apply_filters('s2_plain_email', $message);
|
220 |
}
|
221 |
|
350 |
if ( empty($link) ) { return; }
|
351 |
if ( !empty($this->subscribe2_options['tracking']) ) {
|
352 |
(strpos($link, '?') > 0) ? $delimiter .= '&' : $delimiter = '?';
|
353 |
+
$tracking = $this->subscribe2_options['tracking'];
|
354 |
+
if ( strpos($tracking, "{ID}") ) {
|
355 |
+
$id = url_to_postid($link);
|
356 |
+
$tracking = str_replace("{ID}", $id, $tracking);
|
357 |
+
}
|
358 |
+
if ( strpos($tracking, "{TITLE}") ) {
|
359 |
$id = url_to_postid($link);
|
360 |
+
$title = urlencode(htmlentities(get_the_title($id),1));
|
361 |
+
$tracking = str_replace("{TITLE}", $title, $tracking);
|
362 |
}
|
363 |
+
return $link . $delimiter . $tracking;
|
364 |
} else {
|
365 |
return $link;
|
366 |
}
|
672 |
function get_public($confirmed = 1) {
|
673 |
global $wpdb;
|
674 |
if ( 1 == $confirmed ) {
|
675 |
+
if ( '' == $this->all_confirmed ) {
|
676 |
+
$this->all_confirmed = $wpdb->get_col("SELECT email FROM $this->public WHERE active='1'");
|
677 |
}
|
678 |
+
return $this->all_confirmed;
|
679 |
} else {
|
680 |
if ( '' == $this->all_unconfirmed ) {
|
681 |
$this->all_unconfirmed = $wpdb->get_col("SELECT email FROM $this->public WHERE active='0'");
|
886 |
|
887 |
if ( $this->s2_mu ) {
|
888 |
if ( $return === 'ID' ) {
|
889 |
+
if ( $this->all_registered_id === '' ) {
|
890 |
+
$this->all_registered_id = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key='" . $wpdb->prefix . "capabilities'");
|
891 |
+
}
|
892 |
+
return $this->all_registered_id;
|
893 |
} else {
|
894 |
+
if ( $this->all_registered_email === '' ) {
|
895 |
+
$this->all_registered_email = $wpdb->get_col("SELECT a.user_email FROM $wpdb->users AS a INNER JOIN $wpdb->usermeta AS b ON a.ID = b.user_id WHERE b.meta_key='" . $wpdb->prefix . "capabilities'");
|
896 |
+
}
|
897 |
+
return $this->all_registered_email;
|
898 |
}
|
899 |
} else {
|
900 |
if ( $return === 'ID' ) {
|
901 |
+
if ( $this->all_registered_id === '' ) {
|
902 |
+
$this->all_registered_id = $wpdb->get_col("SELECT ID FROM $wpdb->users");
|
903 |
+
}
|
904 |
+
return $this->all_registered_id;
|
905 |
} else {
|
906 |
+
if ( $this->all_registered_email === '' ) {
|
907 |
+
$this->all_registered_email = $wpdb->get_col("SELECT user_email FROM $wpdb->users");
|
908 |
+
}
|
909 |
+
return $this->all_registered_email;
|
910 |
}
|
911 |
}
|
912 |
} // end get_all_registered()
|
1482 |
$message_posttime .= __('Posted on', 'subscribe2') . ": " . mysql2date($datetime, $post->post_date) . "\r\n";
|
1483 |
if ( strstr($mailtext, "{TINYLINK}") ) {
|
1484 |
$tinylink = file_get_contents('http://tinyurl.com/api-create.php?url=' . urlencode($this->get_tracking_link(get_permalink($post->ID))));
|
1485 |
+
} else {
|
1486 |
+
$tinylink = false;
|
1487 |
+
}
|
1488 |
+
if ( strstr($mailtext, "{TINYLINK}") && $tinylink !== 'Error' && $tinylink !== false ) {
|
1489 |
+
$tablelinks .= "\r\n" . $tinylink . "\r\n";
|
1490 |
+
$message_post .= $tinylink . "\r\n";
|
1491 |
+
$message_posttime .= $tinylink . "\r\n";
|
1492 |
+
} else {
|
1493 |
+
$tablelinks .= "\r\n" . $this->get_tracking_link(get_permalink($post->ID)) . "\r\n";
|
1494 |
+
$message_post .= $this->get_tracking_link(get_permalink($post->ID)) . "\r\n";
|
1495 |
+
$message_posttime .= $this->get_tracking_link(get_permalink($post->ID)) . "\r\n";
|
1496 |
}
|
1497 |
|
1498 |
if ( strstr($mailtext, "{CATS}") ) {
|
1510 |
$message_post .= "\r\n";
|
1511 |
$message_posttime .= "\r\n";
|
1512 |
|
1513 |
+
( !empty($post->post_excerpt) ) ? $excerpt = $post->post_excerpt : $excerpt = '';
|
1514 |
if ( '' == $excerpt ) {
|
1515 |
// no excerpt, is there a <!--more--> ?
|
1516 |
if ( false !== strpos($post->post_content, '<!--more-->') ) {
|
1632 |
$this->public = $table_prefix . "subscribe2";
|
1633 |
if ( $wpdb->get_var($wpdb->prepare("SHOW TABLES LIKE %s", $this->public)) != $this->public ) { $this->install(); }
|
1634 |
//do we need to upgrade anything?
|
1635 |
+
if ( $this->subscribe2_options === false || is_array($this->subscribe2_options) && $this->subscribe2_options['version'] !== S2VERSION ) {
|
1636 |
add_action('shutdown', array(&$this, 'upgrade'));
|
1637 |
}
|
1638 |
|
1757 |
/* ===== our variables ===== */
|
1758 |
// cache variables
|
1759 |
var $subscribe2_options = array();
|
1760 |
+
var $all_confirmed = '';
|
1761 |
var $all_unconfirmed = '';
|
1762 |
+
var $all_registered_id = '';
|
1763 |
+
var $all_registered_email = '';
|
1764 |
var $all_authors = '';
|
1765 |
var $excluded_cats = '';
|
1766 |
var $post_title = '';
|
1782 |
var $action = '';
|
1783 |
var $email = '';
|
1784 |
var $message = '';
|
1785 |
+
var $word_wrap = 80;
|
1786 |
var $excerpt_length = 55;
|
1787 |
|
1788 |
// some messages
|
classes/class-s2-frontend.php
CHANGED
@@ -44,10 +44,8 @@ class s2_frontend extends s2class {
|
|
44 |
}
|
45 |
|
46 |
// allow remote setting of email in form
|
47 |
-
if ( isset($_REQUEST['email']) ) {
|
48 |
-
|
49 |
-
$value = $this->sanitize_email($_REQUEST['email']);
|
50 |
-
}
|
51 |
} elseif ( $nojs == 'true' ) {
|
52 |
$value = '';
|
53 |
} else {
|
44 |
}
|
45 |
|
46 |
// allow remote setting of email in form
|
47 |
+
if ( isset($_REQUEST['email']) && is_email($_REQUEST['email']) ) {
|
48 |
+
$value = $this->sanitize_email($_REQUEST['email']);
|
|
|
|
|
49 |
} elseif ( $nojs == 'true' ) {
|
50 |
$value = '';
|
51 |
} else {
|
classes/class-s2-list-table.php
ADDED
@@ -0,0 +1,138 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Subscribe2_List_Table extends WP_List_Table {
|
3 |
+
function __construct(){
|
4 |
+
global $status, $page;
|
5 |
+
|
6 |
+
parent::__construct( array(
|
7 |
+
'singular' => 'subscriber',
|
8 |
+
'plural' => 'subscribers',
|
9 |
+
'ajax' => false
|
10 |
+
) );
|
11 |
+
}
|
12 |
+
|
13 |
+
function column_default($item, $column_name){
|
14 |
+
global $current_tab;
|
15 |
+
if ( $current_tab == 'registered' ) {
|
16 |
+
switch($column_name){
|
17 |
+
case 'email':
|
18 |
+
return $item[$column_name];
|
19 |
+
default:
|
20 |
+
return print_r($item,true);
|
21 |
+
}
|
22 |
+
} else {
|
23 |
+
switch($column_name){
|
24 |
+
case 'email':
|
25 |
+
case 'date':
|
26 |
+
return $item[$column_name];
|
27 |
+
default:
|
28 |
+
return print_r($item,true);
|
29 |
+
}
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
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">Edit</a>', 's2', $item['email']));
|
37 |
+
return sprintf('%1$s %2$s', $item['email'], $this->row_actions($actions));
|
38 |
+
} else {
|
39 |
+
global $mysubscribe2;
|
40 |
+
if ( '0' === $mysubscribe2->is_public($item['email']) ) {
|
41 |
+
return sprintf('<span style="color:#FF0000">%1$s</span>', $item['email']);
|
42 |
+
} else {
|
43 |
+
return sprintf('%1$s', $item['email']);
|
44 |
+
}
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
function column_cb($item){
|
49 |
+
return sprintf('<input type="checkbox" name="%1$s[]" value="%2$s" />', $this->_args['singular'], $item['email']);
|
50 |
+
}
|
51 |
+
|
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' => '<input type="checkbox" />',
|
59 |
+
'email' => 'Email',
|
60 |
+
'date' => 'Date'
|
61 |
+
);
|
62 |
+
}
|
63 |
+
return $columns;
|
64 |
+
}
|
65 |
+
|
66 |
+
function get_sortable_columns() {
|
67 |
+
global $current_tab;
|
68 |
+
if ( $current_tab == 'registered' ) {
|
69 |
+
$sortable_columns = array('email' => array('email', true));
|
70 |
+
} else {
|
71 |
+
$sortable_columns = array(
|
72 |
+
'email' => array('email', true),
|
73 |
+
'date' => array('date', false)
|
74 |
+
);
|
75 |
+
}
|
76 |
+
return $sortable_columns;
|
77 |
+
}
|
78 |
+
|
79 |
+
function get_bulk_actions() {
|
80 |
+
global $current_tab;
|
81 |
+
if ( $current_tab == 'registered' ) {
|
82 |
+
return array();
|
83 |
+
} else {
|
84 |
+
$actions = array(
|
85 |
+
'delete' => __('Delete', 'subscribe2'),
|
86 |
+
'toggle' => __('Toggle', 'subscribe2')
|
87 |
+
);
|
88 |
+
return $actions;
|
89 |
+
}
|
90 |
+
}
|
91 |
+
|
92 |
+
function prepare_items() {
|
93 |
+
|
94 |
+
global $mysubscribe2;
|
95 |
+
if ( is_int($mysubscribe2->subscribe2_options['entries']) ) {
|
96 |
+
$per_page = $mysubscribe2->subscribe2_options['entries'];
|
97 |
+
} else {
|
98 |
+
$per_page = 25;
|
99 |
+
}
|
100 |
+
|
101 |
+
$columns = $this->get_columns();
|
102 |
+
$hidden = array();
|
103 |
+
$sortable = $this->get_sortable_columns();
|
104 |
+
$this->_column_headers = array($columns, $hidden, $sortable);
|
105 |
+
|
106 |
+
global $mysubscribe2, $subscribers, $current_tab;
|
107 |
+
$data = array();
|
108 |
+
if ( $current_tab == 'public' ) {
|
109 |
+
foreach($subscribers as $email) {
|
110 |
+
$data[] = array('email' => $email, 'date' => $mysubscribe2->signup_date($email));
|
111 |
+
}
|
112 |
+
} else {
|
113 |
+
foreach($subscribers as $email) {
|
114 |
+
$data[] = array('email' => $email);
|
115 |
+
}
|
116 |
+
}
|
117 |
+
|
118 |
+
function usort_reorder($a,$b){
|
119 |
+
$orderby = (!empty($_REQUEST['orderby'])) ? $_REQUEST['orderby'] : 'email';
|
120 |
+
$order = (!empty($_REQUEST['order'])) ? $_REQUEST['order'] : 'asc';
|
121 |
+
$result = strcmp($a[$orderby], $b[$orderby]);
|
122 |
+
return ($order==='asc') ? $result : -$result;
|
123 |
+
}
|
124 |
+
usort($data, 'usort_reorder');
|
125 |
+
|
126 |
+
$current_page = $this->get_pagenum();
|
127 |
+
$total_items = count($data);
|
128 |
+
$data = array_slice($data,(($current_page-1)*$per_page),$per_page);
|
129 |
+
$this->items = $data;
|
130 |
+
|
131 |
+
$this->set_pagination_args( array(
|
132 |
+
'total_items' => $total_items,
|
133 |
+
'per_page' => $per_page,
|
134 |
+
'total_pages' => ceil($total_items/$per_page)
|
135 |
+
) );
|
136 |
+
}
|
137 |
+
}
|
138 |
+
?>
|
classes/class-s2-upgrade.php
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class s2class_upgrade {
|
3 |
+
function upgrade_core() {
|
4 |
+
// let's take the time to double check data for registered users
|
5 |
+
global $mysubscribe2;
|
6 |
+
if ( version_compare($mysubscribe2->wp_release, '3.5', '<') ) {
|
7 |
+
global $wpdb;
|
8 |
+
$users = $wpdb->get_col($wpdb->prepare("SELECT ID from $wpdb->users WHERE ID NOT IN (SELECT user_id FROM $wpdb->usermeta WHERE meta_key=%s)", $mysubscribe2->get_usermeta_keyname('s2_format')));
|
9 |
+
if ( !empty($users) ) {
|
10 |
+
foreach ($users as $user_ID) {
|
11 |
+
$mysubscribe2->register($user_ID);
|
12 |
+
}
|
13 |
+
}
|
14 |
+
} else {
|
15 |
+
$args = array(
|
16 |
+
'meta_query' => array(
|
17 |
+
array('key' => $mysubscribe2->get_usermeta_keyname('s2_format'), 'compare' => 'NOT EXISTS')
|
18 |
+
)
|
19 |
+
);
|
20 |
+
|
21 |
+
$user_query = new WP_User_Query( $args );
|
22 |
+
$users = $user_query->get_results();
|
23 |
+
if ( !empty($users) ) {
|
24 |
+
foreach ($users as $user) {
|
25 |
+
$mysubscribe2->register($user->ID);
|
26 |
+
}
|
27 |
+
}
|
28 |
+
}
|
29 |
+
} // end upgrade_core()
|
30 |
+
|
31 |
+
function upgrade23() {
|
32 |
+
global $mysubscribe2, $wpdb;
|
33 |
+
|
34 |
+
// include upgrade-functions for maybe_add_column;
|
35 |
+
if ( !function_exists('maybe_add_column') ) {
|
36 |
+
require_once(ABSPATH . 'wp-admin/install-helper.php');
|
37 |
+
}
|
38 |
+
$date = date('Y-m-d');
|
39 |
+
maybe_add_column($mysubscribe2->public, 'date', "ALTER TABLE $mysubscribe2->public ADD date DATE DEFAULT '$date' NOT NULL AFTER active");
|
40 |
+
|
41 |
+
// update the options table to serialized format
|
42 |
+
$old_options = $wpdb->get_col("SELECT option_name from $wpdb->options where option_name LIKE 's2%' AND option_name != 's2_future_posts'");
|
43 |
+
|
44 |
+
if ( !empty($old_options) ) {
|
45 |
+
foreach ( $old_options as $option ) {
|
46 |
+
$value = get_option($option);
|
47 |
+
$option_array = substr($option, 3);
|
48 |
+
$mysubscribe2->subscribe2_options[$option_array] = $value;
|
49 |
+
delete_option($option);
|
50 |
+
}
|
51 |
+
}
|
52 |
+
return;
|
53 |
+
} // end upgrade23()
|
54 |
+
|
55 |
+
function upgrade51() {
|
56 |
+
global $mysubscribe2;
|
57 |
+
|
58 |
+
// include upgrade-functions for maybe_add_column;
|
59 |
+
if ( !function_exists('maybe_add_column') ) {
|
60 |
+
require_once(ABSPATH . 'wp-admin/install-helper.php');
|
61 |
+
}
|
62 |
+
maybe_add_column($mysubscribe2->public, 'ip', "ALTER TABLE $mysubscribe2->public ADD ip char(64) DEFAULT 'admin' NOT NULL AFTER date");
|
63 |
+
} // end upgrade51()
|
64 |
+
|
65 |
+
function upgrade56(){
|
66 |
+
global $mysubscribe2;
|
67 |
+
// correct autoformat to upgrade from pre 5.6
|
68 |
+
if ( $mysubscribe2->subscribe2_options['autoformat'] == 'text' ) {
|
69 |
+
$mysubscribe2->subscribe2_options['autoformat'] = 'excerpt';
|
70 |
+
}
|
71 |
+
if ( $mysubscribe2->subscribe2_options['autoformat'] == 'full' ) {
|
72 |
+
$mysubscribe2->subscribe2_options['autoformat'] = 'post';
|
73 |
+
}
|
74 |
+
} // end upgrade56()
|
75 |
+
|
76 |
+
function upgrade59() {
|
77 |
+
global $mysubscribe2, $wpdb;
|
78 |
+
// ensure existing public subscriber emails are all sanitized
|
79 |
+
$confirmed = $mysubscribe2->get_public();
|
80 |
+
$unconfirmed = $mysubscribe2->get_public(0);
|
81 |
+
$public_subscribers = array_merge((array)$confirmed, (array)$unconfirmed);
|
82 |
+
|
83 |
+
foreach ( $public_subscribers as $email ) {
|
84 |
+
$new_email = $mysubscribe2->sanitize_email($email);
|
85 |
+
if ( $email !== $new_email ) {
|
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() {
|
93 |
+
global $mysubscribe2;
|
94 |
+
// change old CAPITALISED keywords to those in {PARENTHESES}; since version 6.4
|
95 |
+
$keywords = array('BLOGNAME', 'BLOGLINK', 'TITLE', 'POST', 'POSTTIME', 'TABLE', 'TABLELINKS', 'PERMALINK', 'TINYLINK', 'DATE', 'TIME', 'MYNAME', 'EMAIL', 'AUTHORNAME', 'LINK', 'CATS', 'TAGS', 'COUNT', 'ACTION');
|
96 |
+
$keyword = implode('|', $keywords);
|
97 |
+
$regex = '/(?<!\{)\b('.$keyword.')\b(?!\{)/xm';
|
98 |
+
$replace = '{\1}';
|
99 |
+
$mysubscribe2->subscribe2_options['mailtext'] = preg_replace($regex, $replace, $mysubscribe2->subscribe2_options['mailtext']);
|
100 |
+
$mysubscribe2->subscribe2_options['notification_subject'] = preg_replace($regex, $replace, $mysubscribe2->subscribe2_options['notification_subject']);
|
101 |
+
$mysubscribe2->subscribe2_options['confirm_email'] = preg_replace($regex, $replace, $mysubscribe2->subscribe2_options['confirm_email']);
|
102 |
+
$mysubscribe2->subscribe2_options['confirm_subject'] = preg_replace($regex, $replace, $mysubscribe2->subscribe2_options['confirm_subject']);
|
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 |
+
$users = $mysubscribe2->get_all_registered('ID');
|
107 |
+
foreach ( $users as $user_ID ) {
|
108 |
+
$check_format = get_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_format'), true);
|
109 |
+
// if user is already registered update format remove 's2_excerpt' field and update 's2_format'
|
110 |
+
if ( 'html' == $check_format ) {
|
111 |
+
delete_user_meta($user_ID, 's2_excerpt');
|
112 |
+
} elseif ( 'text' == $check_format ) {
|
113 |
+
update_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_format'), get_user_meta($user_ID, 's2_excerpt'));
|
114 |
+
delete_user_meta($user_ID, 's2_excerpt');
|
115 |
+
}
|
116 |
+
$subscribed = get_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), true);
|
117 |
+
if ( strstr($subscribed, '-1') ) {
|
118 |
+
// make sure we remove '-1' from any settings
|
119 |
+
$old_cats = explode(',', $subscribed);
|
120 |
+
$pos = array_search('-1', $old_cats);
|
121 |
+
unset($old_cats[$pos]);
|
122 |
+
$cats = implode(',', $old_cats);
|
123 |
+
update_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), $cats);
|
124 |
+
}
|
125 |
+
}
|
126 |
+
|
127 |
+
// upgrade old wpmu user meta data to new
|
128 |
+
if ( $mysubscribe2->s2_mu === true ) {
|
129 |
+
global $s2class_multisite, $wpdb;
|
130 |
+
$s2class_multisite->namechange_subscribe2_widget();
|
131 |
+
// loop through all users
|
132 |
+
foreach ( $users as $user_ID ) {
|
133 |
+
// get categories which the user is subscribed to (old ones)
|
134 |
+
$categories = get_user_meta($user_ID, 's2_subscribed', true);
|
135 |
+
$categories = explode(',', $categories);
|
136 |
+
$format = get_user_meta($user_ID, 's2_format', true);
|
137 |
+
$autosub = get_user_meta($user_ID, 's2_autosub', true);
|
138 |
+
|
139 |
+
// load blogs of user (only if we need them)
|
140 |
+
$blogs = array();
|
141 |
+
if ( count($categories) > 0 && !in_array('-1', $categories) ) {
|
142 |
+
$blogs = get_blogs_of_user($user_ID, true);
|
143 |
+
}
|
144 |
+
|
145 |
+
foreach ( $blogs as $blog ) {
|
146 |
+
switch_to_blog($blog->userblog_id);
|
147 |
+
|
148 |
+
$blog_categories = (array)$wpdb->get_col("SELECT term_id FROM $wpdb->term_taxonomy WHERE taxonomy = 'category'");
|
149 |
+
$subscribed_categories = array_intersect($categories, $blog_categories);
|
150 |
+
if ( !empty($subscribed_categories) ) {
|
151 |
+
foreach ( $subscribed_categories as $subscribed_category ) {
|
152 |
+
update_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_cat') . $subscribed_category, $subscribed_category);
|
153 |
+
}
|
154 |
+
update_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), implode(',', $subscribed_categories));
|
155 |
+
}
|
156 |
+
if ( !empty($format) ) {
|
157 |
+
update_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_format'), $format);
|
158 |
+
}
|
159 |
+
if ( !empty($autosub) ) {
|
160 |
+
update_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_autosub'), $autosub);
|
161 |
+
}
|
162 |
+
restore_current_blog();
|
163 |
+
}
|
164 |
+
|
165 |
+
// delete old user meta keys
|
166 |
+
delete_user_meta($user_ID, 's2_subscribed');
|
167 |
+
delete_user_meta($user_ID, 's2_format');
|
168 |
+
delete_user_meta($user_ID, 's2_autosub');
|
169 |
+
foreach ( $categories as $cat ) {
|
170 |
+
delete_user_meta($user_ID, 's2_cat' . $cat);
|
171 |
+
}
|
172 |
+
}
|
173 |
+
}
|
174 |
+
return;
|
175 |
+
} // end upgrade64()
|
176 |
+
|
177 |
+
function upgrade70() {
|
178 |
+
global $mysubscribe2;
|
179 |
+
$users = $mysubscribe2->get_all_registered('ID');
|
180 |
+
foreach ( $users as $user_ID ) {
|
181 |
+
$check_authors = get_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_authors'), true);
|
182 |
+
if ( empty($check_authors) ) {
|
183 |
+
update_user_meta($user_ID, $mysubscribe2->get_usermeta_keyname('s2_authors'), '');
|
184 |
+
}
|
185 |
+
}
|
186 |
+
return;
|
187 |
+
} // end upgrade70()
|
188 |
+
|
189 |
+
function upgrade85() {
|
190 |
+
global $wpdb;
|
191 |
+
|
192 |
+
// include upgrade-functions for maybe_add_column;
|
193 |
+
if ( !function_exists('maybe_add_column') ) {
|
194 |
+
require_once(ABSPATH . 'wp-admin/install-helper.php');
|
195 |
+
}
|
196 |
+
maybe_add_column($mysubscribe2->public, 'time', "ALTER TABLE $mysubscribe2->public ADD time TIME DEFAULT '00:00:00' NOT NULL AFTER date");
|
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() {
|
204 |
+
global $mysubscribe2, $wpdb;
|
205 |
+
|
206 |
+
// include upgrade-functions for maybe_add_column;
|
207 |
+
if ( !function_exists('maybe_add_column') ) {
|
208 |
+
require_once(ABSPATH . 'wp-admin/install-helper.php');
|
209 |
+
}
|
210 |
+
maybe_add_column($mysubscribe2->public, 'conf_date', "ALTER TABLE $mysubscribe2->public ADD conf_date DATE AFTER ip");
|
211 |
+
maybe_add_column($mysubscribe2->public, 'conf_time', "ALTER TABLE $mysubscribe2->public ADD conf_time TIME AFTER conf_date");
|
212 |
+
maybe_add_column($mysubscribe2->public, 'conf_ip', "ALTER TABLE $mysubscribe2->public ADD conf_ip char(64) AFTER conf_time");
|
213 |
+
|
214 |
+
// remove unnecessary table data
|
215 |
+
$wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key = 's2_cat'" );
|
216 |
+
if ( strpos($subscribed, ',') === 0 ) {
|
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($user_ID, $mysubscribe2->get_usermeta_keyname('s2_subscribed'), $cats);
|
222 |
+
}
|
223 |
+
return;
|
224 |
+
} // end upgrade86()
|
225 |
+
}
|
226 |
+
?>
|
include/widget.php
CHANGED
@@ -18,9 +18,10 @@ class S2_Form_widget extends WP_Widget {
|
|
18 |
$div = empty($instance['div']) ? 'search' : $instance['div'];
|
19 |
$widgetprecontent = empty($instance['widgetprecontent']) ? '' : $instance['widgetprecontent'];
|
20 |
$widgetpostcontent = empty($instance['widgetpostcontent']) ? '' : $instance['widgetpostcontent'];
|
|
|
21 |
$hidebutton = empty($instance['hidebutton']) ? 'none' : $instance['hidebutton'];
|
22 |
$postto = empty($instance['postto']) ? '' : $instance['postto'];
|
23 |
-
$
|
24 |
$hide = '';
|
25 |
if ( $hidebutton == 'subscribe' || $hidebutton == 'unsubscribe' ) {
|
26 |
$hide = " hide=\"" . $hidebutton . "\"";
|
@@ -32,7 +33,11 @@ class S2_Form_widget extends WP_Widget {
|
|
32 |
$postid = " id=\"" . $postto . "\"";
|
33 |
}
|
34 |
$size = " size=\"" . $textbox_size . "\"";
|
35 |
-
$
|
|
|
|
|
|
|
|
|
36 |
echo $before_widget;
|
37 |
echo $before_title . $title . $after_title;
|
38 |
echo "<div class=\"" . $div . "\">";
|
@@ -57,9 +62,10 @@ class S2_Form_widget extends WP_Widget {
|
|
57 |
$instance['div'] = strip_tags(stripslashes($new_instance['div']));
|
58 |
$instance['widgetprecontent'] = stripslashes($new_instance['widgetprecontent']);
|
59 |
$instance['widgetpostcontent'] = stripslashes($new_instance['widgetpostcontent']);
|
|
|
60 |
$instance['hidebutton'] = strip_tags(stripslashes($new_instance['hidebutton']));
|
61 |
$instance['postto'] = stripslashes($new_instance['postto']);
|
62 |
-
$instance['
|
63 |
|
64 |
return $instance;
|
65 |
}
|
@@ -71,9 +77,9 @@ class S2_Form_widget extends WP_Widget {
|
|
71 |
// set some defaults, getting any old options first
|
72 |
$options = get_option('widget_subscribe2widget');
|
73 |
if ( $options === false ) {
|
74 |
-
$defaults = array('title' => 'Subscribe2', 'div' => 'search', 'widgetprecontent' => '', 'widgetpostcontent' => '', 'hidebutton' => 'none', 'postto' => '', '
|
75 |
} else {
|
76 |
-
$defaults = array('title' => $options['title'], 'div' => $options['div'], 'widgetprecontent' => $options['widgetprecontent'], 'widgetpostcontent' => $options['widgetpostcontent'], 'hidebutton' => $options['hidebutton'], 'postto' => $options['postto'], '
|
77 |
delete_option('widget_subscribe2widget');
|
78 |
}
|
79 |
// code to obtain old settings too
|
@@ -83,39 +89,44 @@ class S2_Form_widget extends WP_Widget {
|
|
83 |
$div = htmlspecialchars($instance['div'], ENT_QUOTES);
|
84 |
$widgetprecontent = htmlspecialchars($instance['widgetprecontent'], ENT_QUOTES);
|
85 |
$widgetpostcontent = htmlspecialchars($instance['widgetpostcontent'], ENT_QUOTES);
|
|
|
86 |
$hidebutton = htmlspecialchars($instance['hidebutton'], ENT_QUOTES);
|
87 |
$postto = htmlspecialchars($instance['postto'], ENT_QUOTES);
|
88 |
-
$
|
89 |
|
90 |
global $wpdb, $mysubscribe2;
|
91 |
$sql = "SELECT ID, post_title FROM $wpdb->posts WHERE post_type='page' AND post_status='publish'";
|
92 |
|
93 |
echo "<div>\r\n";
|
94 |
-
echo "<p><label for=\"" . $this->
|
95 |
echo "<input class=\"widefat\" id=\"" . $this->get_field_id('title') . "\" name=\"" . $this->get_field_name('title') . "\" type=\"text\" value=\"" . $title . "\" /></label></p>\r\n";
|
96 |
-
echo "<p><label for=\"" . $this->
|
97 |
echo "<input class=\"widefat\" id=\"" . $this->get_field_id('div') . "\" name=\"" . $this->get_field_name('div') . "\" type=\"text\" value=\"" . $div . "\" /></label></p>\r\n";
|
98 |
-
echo "<p><label for=\"" . $this->
|
99 |
-
echo "<textarea class=\"widefat\" id=\"" . $this->
|
100 |
-
echo "<p><label for=\"" . $this->
|
101 |
echo "<textarea class=\"widefat\" id=\"" . $this->get_field_id('widgetpostcontent') . "\" name=\"" . $this->get_field_name('widgetpostcontent') . "\" rows=\"2\" cols=\"25\">" . $widgetpostcontent . "</textarea></label></p>\r\n";
|
102 |
-
echo "<p><label for=\"" . $this->
|
103 |
-
echo "<input class=\"widefat\" id=\"" . $this->get_field_id('size') . "\" name=\"" . $this->get_field_name('size') . "\" type=\"text\" value=\"" . $size . "\" /></label></
|
104 |
-
echo "<p
|
105 |
-
echo "<
|
|
|
|
|
106 |
if ( '1' == $mysubscribe2->subscribe2_options['ajax'] ) {
|
107 |
-
echo "<br /><input name=\"" . $this->get_field_name('hidebutton') . "\" type=\"radio\" value=\"link\"". checked('link', $hidebutton, false) . "/>" . __('Show as link', 'subscribe2');
|
108 |
}
|
109 |
-
echo "</
|
110 |
-
echo "<p><label for=\"" . $this->
|
111 |
echo "<select class=\"widefat\" id=\"" . $this->get_field_id('postto') . "\" name=\"" . $this->get_field_name('postto') . "\">\r\n";
|
112 |
-
global $mysubscribe2;
|
113 |
echo "<option value=\"" . $mysubscribe2->subscribe2_options['s2page'] . "\">" . __('Use Subscribe2 Default', 'subscribe2') . "</option>\r\n";
|
114 |
echo "<option value=\"home\"";
|
115 |
if ( $postto === 'home' ) { echo " selected=\"selected\""; }
|
116 |
echo ">" . __('Use Home Page', 'subscribe2') . "</option>\r\n";
|
117 |
$mysubscribe2->pages_dropdown($postto);
|
118 |
echo "</select></label></p>\r\n";
|
|
|
|
|
|
|
119 |
echo "</div>\r\n";
|
120 |
}
|
121 |
} // End S2_Form_widget class
|
18 |
$div = empty($instance['div']) ? 'search' : $instance['div'];
|
19 |
$widgetprecontent = empty($instance['widgetprecontent']) ? '' : $instance['widgetprecontent'];
|
20 |
$widgetpostcontent = empty($instance['widgetpostcontent']) ? '' : $instance['widgetpostcontent'];
|
21 |
+
$textbox_size = empty($instance['size']) ? 20 : $instance['size'];
|
22 |
$hidebutton = empty($instance['hidebutton']) ? 'none' : $instance['hidebutton'];
|
23 |
$postto = empty($instance['postto']) ? '' : $instance['postto'];
|
24 |
+
$js = empty($instance['js']) ? '' : $instance['js'];
|
25 |
$hide = '';
|
26 |
if ( $hidebutton == 'subscribe' || $hidebutton == 'unsubscribe' ) {
|
27 |
$hide = " hide=\"" . $hidebutton . "\"";
|
33 |
$postid = " id=\"" . $postto . "\"";
|
34 |
}
|
35 |
$size = " size=\"" . $textbox_size . "\"";
|
36 |
+
$nojs = '';
|
37 |
+
if ( $js ) {
|
38 |
+
$nojs = " nojs=\"true\"";
|
39 |
+
}
|
40 |
+
$shortcode = "[subscribe2" . $hide . $postid . $size . $nojs . "]";
|
41 |
echo $before_widget;
|
42 |
echo $before_title . $title . $after_title;
|
43 |
echo "<div class=\"" . $div . "\">";
|
62 |
$instance['div'] = strip_tags(stripslashes($new_instance['div']));
|
63 |
$instance['widgetprecontent'] = stripslashes($new_instance['widgetprecontent']);
|
64 |
$instance['widgetpostcontent'] = stripslashes($new_instance['widgetpostcontent']);
|
65 |
+
$instance['size'] = intval(stripslashes($new_instance['size']));
|
66 |
$instance['hidebutton'] = strip_tags(stripslashes($new_instance['hidebutton']));
|
67 |
$instance['postto'] = stripslashes($new_instance['postto']);
|
68 |
+
$instance['js'] = stripslashes($new_instance['js']);
|
69 |
|
70 |
return $instance;
|
71 |
}
|
77 |
// set some defaults, getting any old options first
|
78 |
$options = get_option('widget_subscribe2widget');
|
79 |
if ( $options === false ) {
|
80 |
+
$defaults = array('title' => 'Subscribe2', 'div' => 'search', 'widgetprecontent' => '', 'widgetpostcontent' => '', 'size' => 20, 'hidebutton' => 'none', 'postto' => '', 'js' => '');
|
81 |
} else {
|
82 |
+
$defaults = array('title' => $options['title'], 'div' => $options['div'], 'widgetprecontent' => $options['widgetprecontent'], 'widgetpostcontent' => $options['widgetpostcontent'], 'size' => $options['size'], 'hidebutton' => $options['hidebutton'], 'postto' => $options['postto'], 'js' => $options['js']);
|
83 |
delete_option('widget_subscribe2widget');
|
84 |
}
|
85 |
// code to obtain old settings too
|
89 |
$div = htmlspecialchars($instance['div'], ENT_QUOTES);
|
90 |
$widgetprecontent = htmlspecialchars($instance['widgetprecontent'], ENT_QUOTES);
|
91 |
$widgetpostcontent = htmlspecialchars($instance['widgetpostcontent'], ENT_QUOTES);
|
92 |
+
$size = htmlspecialchars($instance['size'], ENT_QUOTES);
|
93 |
$hidebutton = htmlspecialchars($instance['hidebutton'], ENT_QUOTES);
|
94 |
$postto = htmlspecialchars($instance['postto'], ENT_QUOTES);
|
95 |
+
$js = htmlspecialchars($instance['js'], ENT_QUOTES);
|
96 |
|
97 |
global $wpdb, $mysubscribe2;
|
98 |
$sql = "SELECT ID, post_title FROM $wpdb->posts WHERE post_type='page' AND post_status='publish'";
|
99 |
|
100 |
echo "<div>\r\n";
|
101 |
+
echo "<p><label for=\"" . $this->get_field_id('title') . "\">" . __('Title', 'subscribe2') . ":\r\n";
|
102 |
echo "<input class=\"widefat\" id=\"" . $this->get_field_id('title') . "\" name=\"" . $this->get_field_name('title') . "\" type=\"text\" value=\"" . $title . "\" /></label></p>\r\n";
|
103 |
+
echo "<p><label for=\"" . $this->get_field_id('div') . "\">" . __('Div class name', 'subscribe2') . ":\r\n";
|
104 |
echo "<input class=\"widefat\" id=\"" . $this->get_field_id('div') . "\" name=\"" . $this->get_field_name('div') . "\" type=\"text\" value=\"" . $div . "\" /></label></p>\r\n";
|
105 |
+
echo "<p><label for=\"" . $this->get_field_id('widgetprecontent') . "\">" . __('Pre-Content', 'subscribe2') . ":\r\n";
|
106 |
+
echo "<textarea class=\"widefat\" id=\"" . $this->get_field_id('widgetprecontent') . "\" name=\"" . $this->get_field_name('widgetprecontent') . "\" rows=\"2\" cols=\"25\">" . $widgetprecontent . "</textarea></label></p>\r\n";
|
107 |
+
echo "<p><label for=\"" . $this->get_field_id('widgetpostcontent') . "\">" . __('Post-Content', 'subscribe2') . ":\r\n";
|
108 |
echo "<textarea class=\"widefat\" id=\"" . $this->get_field_id('widgetpostcontent') . "\" name=\"" . $this->get_field_name('widgetpostcontent') . "\" rows=\"2\" cols=\"25\">" . $widgetpostcontent . "</textarea></label></p>\r\n";
|
109 |
+
echo "<p><label for=\"" . $this->get_field_id('size') . "\">" . __('Text Box Size', 'subscribe2') . ":\r\n";
|
110 |
+
echo "<input class=\"widefat\" id=\"" . $this->get_field_id('size') . "\" name=\"" . $this->get_field_name('size') . "\" type=\"text\" value=\"" . $size . "\" /></label></p>\r\n";
|
111 |
+
echo "<p>" . __('Display options', 'subscribe2') . ":<br />\r\n";
|
112 |
+
echo "<label for=\"" . $this->get_field_id('hidebutton') . "complete\"><input id=\"" . $this->get_field_id('hidebutton') . "complete\" name=\"" . $this->get_field_name('hidebutton') . "\" type=\"radio\" value=\"none\"". checked('none', $hidebutton, false) . "/> " . __('Show complete form', 'subscribe2') . "</label>\r\n";
|
113 |
+
echo "<br /><label for=\"" . $this->get_field_id('hidebutton') . "subscribe\"><input id=\"" . $this->get_field_id('hidebutton') . "subscribe\" name=\"" . $this->get_field_name('hidebutton') . "\" type=\"radio\" value=\"subscribe\"". checked('subscribe', $hidebutton, false) . "/> " . __('Hide Subscribe button', 'subscribe2') . "</label>\r\n";
|
114 |
+
echo "<br /><label for=\"" . $this->get_field_id('hidebutton') . "unsubscribe\"><input id=\"" . $this->get_field_id('hidebutton') . "unsubscribe\" name=\"" . $this->get_field_name('hidebutton') . "\" type=\"radio\" value=\"unsubscribe\"". checked('unsubscribe', $hidebutton, false) . "/> " . __('Hide Unsubscribe button', 'subscribe2') . "</label>\r\n";
|
115 |
if ( '1' == $mysubscribe2->subscribe2_options['ajax'] ) {
|
116 |
+
echo "<br /><label for=\"" . $this->get_field_id('hidebutton') . "ajax\"><input id=\"" . $this->get_field_id('hidebutton') . "ajax\" name=\"" . $this->get_field_name('hidebutton') . "\" type=\"radio\" value=\"link\"". checked('link', $hidebutton, false) . "/>" . __('Show as link', 'subscribe2') . "</label>\r\n";
|
117 |
}
|
118 |
+
echo "</p>\r\n";
|
119 |
+
echo "<p><label for=\"" . $this->get_field_id('postto') . "\">" . __('Post form content to page', 'subscribe2') . ":\r\n";
|
120 |
echo "<select class=\"widefat\" id=\"" . $this->get_field_id('postto') . "\" name=\"" . $this->get_field_name('postto') . "\">\r\n";
|
|
|
121 |
echo "<option value=\"" . $mysubscribe2->subscribe2_options['s2page'] . "\">" . __('Use Subscribe2 Default', 'subscribe2') . "</option>\r\n";
|
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";
|
128 |
+
echo "<input id=\"" . $this->get_field_id('js') . "\" name =\"" . $this->get_field_name('js') . "\" value=\"true\" type=\"checkbox\"" . checked('true', $js, false) . "/>";
|
129 |
+
echo "</label></p>\r\n";
|
130 |
echo "</div>\r\n";
|
131 |
}
|
132 |
} // End S2_Form_widget class
|
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
|
@@ -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.
|
47 |
define( 'S2PATH', trailingslashit(dirname(__FILE__)) );
|
48 |
define( 'S2DIR', trailingslashit(dirname(plugin_basename(__FILE__))) );
|
49 |
define( 'S2URL', plugin_dir_url(dirname(__FILE__)) . S2DIR );
|
@@ -54,14 +54,14 @@ if ( !in_array(ini_get('safe_mode'), $safe_mode) && ini_get('max_execution_time'
|
|
54 |
@ini_set('max_execution_time', 300);
|
55 |
}
|
56 |
|
57 |
-
require_once(S2PATH . 'classes/class-s2-core.php');
|
58 |
if ( is_admin() ) {
|
59 |
-
require_once(S2PATH . 'classes/class-s2-admin.php');
|
60 |
global $mysubscribe2;
|
61 |
$mysubscribe2 = new s2_admin;
|
62 |
$mysubscribe2->s2init();
|
63 |
} else {
|
64 |
-
require_once(S2PATH . 'classes/class-s2-frontend.php');
|
65 |
global $mysubscribe2;
|
66 |
$mysubscribe2 = new s2_frontend;
|
67 |
$mysubscribe2->s2init();
|
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
|
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.7' );
|
47 |
define( 'S2PATH', trailingslashit(dirname(__FILE__)) );
|
48 |
define( 'S2DIR', trailingslashit(dirname(plugin_basename(__FILE__))) );
|
49 |
define( 'S2URL', plugin_dir_url(dirname(__FILE__)) . S2DIR );
|
54 |
@ini_set('max_execution_time', 300);
|
55 |
}
|
56 |
|
57 |
+
require_once( S2PATH . 'classes/class-s2-core.php' );
|
58 |
if ( is_admin() ) {
|
59 |
+
require_once( S2PATH . 'classes/class-s2-admin.php' );
|
60 |
global $mysubscribe2;
|
61 |
$mysubscribe2 = new s2_admin;
|
62 |
$mysubscribe2->s2init();
|
63 |
} else {
|
64 |
+
require_once( S2PATH . 'classes/class-s2-frontend.php' );
|
65 |
global $mysubscribe2;
|
66 |
$mysubscribe2 = new s2_frontend;
|
67 |
$mysubscribe2->s2init();
|
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:
|
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,35 +17,35 @@ msgstr ""
|
|
17 |
"Content-Type: text/plain; charset=CHARSET\n"
|
18 |
"Content-Transfer-Encoding: 8bit\n"
|
19 |
|
20 |
-
#: admin/send_email.php:
|
21 |
msgid "Preview message sent!"
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: admin/send_email.php:
|
25 |
msgid "Your email was empty"
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: admin/send_email.php:
|
29 |
msgid "Send an email to subscribers"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: admin/send_email.php:
|
33 |
msgid "A message from"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: admin/send_email.php:
|
37 |
msgid "Subject"
|
38 |
msgstr ""
|
39 |
|
40 |
-
#: admin/send_email.php:
|
41 |
msgid "Recipients:"
|
42 |
msgstr ""
|
43 |
|
44 |
-
#: admin/send_email.php:
|
45 |
msgid "Preview"
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: admin/send_email.php:
|
49 |
msgid "Send"
|
50 |
msgstr ""
|
51 |
|
@@ -132,8 +132,8 @@ msgstr ""
|
|
132 |
#: admin/settings.php:183 admin/settings.php:189 admin/settings.php:203
|
133 |
#: admin/settings.php:208 admin/settings.php:213 admin/settings.php:333
|
134 |
#: admin/settings.php:338 admin/settings.php:352 admin/settings.php:359
|
135 |
-
#: admin/settings.php:371 admin/settings.php:376 admin/subscribers.php:
|
136 |
-
#: admin/your_subscriptions.php:121 admin/your_subscriptions.php:
|
137 |
msgid "Yes"
|
138 |
msgstr ""
|
139 |
|
@@ -141,8 +141,8 @@ msgstr ""
|
|
141 |
#: admin/settings.php:210 admin/settings.php:215 admin/settings.php:330
|
142 |
#: admin/settings.php:335 admin/settings.php:340 admin/settings.php:354
|
143 |
#: admin/settings.php:361 admin/settings.php:368 admin/settings.php:373
|
144 |
-
#: admin/settings.php:378 admin/subscribers.php:
|
145 |
-
#: admin/your_subscriptions.php:123 admin/your_subscriptions.php:
|
146 |
msgid "No"
|
147 |
msgstr ""
|
148 |
|
@@ -194,7 +194,7 @@ msgstr ""
|
|
194 |
#: admin/settings.php:231
|
195 |
msgid ""
|
196 |
"eg. utm_source=subscribe2&utm_medium=email&"
|
197 |
-
"utm_campaign=postnotify&utm_id={ID}"
|
198 |
msgstr ""
|
199 |
|
200 |
#: admin/settings.php:242
|
@@ -367,22 +367,22 @@ msgstr ""
|
|
367 |
msgid "Auto-subscribe users to receive email as"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: admin/settings.php:343 admin/subscribers.php:
|
371 |
#: admin/your_subscriptions.php:110
|
372 |
msgid "HTML - Full"
|
373 |
msgstr ""
|
374 |
|
375 |
-
#: admin/settings.php:345 admin/subscribers.php:
|
376 |
#: admin/your_subscriptions.php:112
|
377 |
msgid "HTML - Excerpt"
|
378 |
msgstr ""
|
379 |
|
380 |
-
#: admin/settings.php:347 admin/subscribers.php:
|
381 |
#: admin/your_subscriptions.php:114
|
382 |
msgid "Plain Text - Full"
|
383 |
msgstr ""
|
384 |
|
385 |
-
#: admin/settings.php:349 admin/subscribers.php:
|
386 |
#: admin/your_subscriptions.php:116
|
387 |
msgid "Plain Text - Excerpt"
|
388 |
msgstr ""
|
@@ -545,95 +545,87 @@ msgstr ""
|
|
545 |
msgid "Digest Subscription updated for Selected Registered Users!"
|
546 |
msgstr ""
|
547 |
|
548 |
-
#: admin/subscribers.php:
|
549 |
msgid "Add/Remove Subscribers"
|
550 |
msgstr ""
|
551 |
|
552 |
-
#: admin/subscribers.php:
|
553 |
msgid "Enter addresses, one per line or comma-separated"
|
554 |
msgstr ""
|
555 |
|
556 |
-
#: admin/subscribers.php:
|
557 |
-
#: admin/your_subscriptions.php:
|
558 |
#: classes/class-s2-frontend.php:26
|
559 |
msgid "Subscribe"
|
560 |
msgstr ""
|
561 |
|
562 |
-
#: admin/subscribers.php:
|
563 |
-
#: admin/your_subscriptions.php:
|
564 |
msgid "Unsubscribe"
|
565 |
msgstr ""
|
566 |
|
567 |
-
#: admin/subscribers.php:
|
568 |
msgid "Current Subscribers"
|
569 |
msgstr ""
|
570 |
|
571 |
-
#: admin/subscribers.php:
|
572 |
msgid "Add Registered User"
|
573 |
msgstr ""
|
574 |
|
575 |
-
#: admin/subscribers.php:
|
576 |
msgid "Filter"
|
577 |
msgstr ""
|
578 |
|
579 |
-
#: admin/subscribers.php:
|
580 |
msgid "Send Reminder Email"
|
581 |
msgstr ""
|
582 |
|
583 |
-
#: admin/subscribers.php:
|
584 |
msgid "Save Emails to CSV File"
|
585 |
msgstr ""
|
586 |
|
587 |
-
#: admin/subscribers.php:
|
588 |
msgid "Search"
|
589 |
msgstr ""
|
590 |
|
591 |
-
#: admin/subscribers.php:
|
592 |
msgid "Bulk Management"
|
593 |
msgstr ""
|
594 |
|
595 |
-
#: admin/subscribers.php:
|
596 |
msgid ""
|
597 |
"Preferences for Registered Users selected in the filter above can be changed "
|
598 |
"using this section."
|
599 |
msgstr ""
|
600 |
|
601 |
-
#: admin/subscribers.php:
|
602 |
msgid "Consider User Privacy as changes cannot be undone"
|
603 |
msgstr ""
|
604 |
|
605 |
-
#: admin/subscribers.php:
|
606 |
msgid "Action to perform"
|
607 |
msgstr ""
|
608 |
|
609 |
-
#: admin/subscribers.php:
|
610 |
msgid "Bulk Update Categories"
|
611 |
msgstr ""
|
612 |
|
613 |
-
#: admin/subscribers.php:
|
614 |
msgid "Send email as"
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: admin/subscribers.php:
|
618 |
msgid "Bulk Update Format"
|
619 |
msgstr ""
|
620 |
|
621 |
-
#: admin/subscribers.php:
|
622 |
msgid "Subscribe Selected Users to recieve a periodic digest notification"
|
623 |
msgstr ""
|
624 |
|
625 |
-
#: admin/subscribers.php:
|
626 |
msgid "Bulk Update Digest Subscription"
|
627 |
msgstr ""
|
628 |
|
629 |
-
#: admin/subscribers.php:333
|
630 |
-
msgid "Delete"
|
631 |
-
msgstr ""
|
632 |
-
|
633 |
-
#: admin/subscribers.php:334
|
634 |
-
msgid "Toggle"
|
635 |
-
msgstr ""
|
636 |
-
|
637 |
#: admin/your_subscriptions.php:90
|
638 |
msgid "Subscription preferences updated."
|
639 |
msgstr ""
|
@@ -682,31 +674,31 @@ msgstr ""
|
|
682 |
msgid "Subscribed Categories"
|
683 |
msgstr ""
|
684 |
|
685 |
-
#: admin/your_subscriptions.php:
|
686 |
msgid "Receive periodic summaries of new posts?"
|
687 |
msgstr ""
|
688 |
|
689 |
-
#: admin/your_subscriptions.php:
|
690 |
msgid "Do not send notifications for post made by these authors"
|
691 |
msgstr ""
|
692 |
|
693 |
-
#: admin/your_subscriptions.php:
|
694 |
msgid "Update Preferences"
|
695 |
msgstr ""
|
696 |
|
697 |
-
#: admin/your_subscriptions.php:
|
698 |
msgid "Subscribed Blogs"
|
699 |
msgstr ""
|
700 |
|
701 |
-
#: admin/your_subscriptions.php:
|
702 |
msgid "Viewing Settings Now"
|
703 |
msgstr ""
|
704 |
|
705 |
-
#: admin/your_subscriptions.php:
|
706 |
msgid "View Settings"
|
707 |
msgstr ""
|
708 |
|
709 |
-
#: admin/your_subscriptions.php:
|
710 |
msgid "Subscribe to new blogs"
|
711 |
msgstr ""
|
712 |
|
@@ -921,116 +913,124 @@ msgstr ""
|
|
921 |
msgid "Options reset!"
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: classes/class-s2-core.php:
|
925 |
msgid "Plain Text Excerpt Preview"
|
926 |
msgstr ""
|
927 |
|
928 |
-
#: classes/class-s2-core.php:
|
929 |
msgid "Plain Text Full Preview"
|
930 |
msgstr ""
|
931 |
|
932 |
-
#: classes/class-s2-core.php:
|
933 |
msgid "HTML Excerpt Preview"
|
934 |
msgstr ""
|
935 |
|
936 |
-
#: classes/class-s2-core.php:
|
937 |
msgid "HTML Full Preview"
|
938 |
msgstr ""
|
939 |
|
940 |
-
#: classes/class-s2-core.php:
|
941 |
msgid "Registered User"
|
942 |
msgstr ""
|
943 |
|
944 |
-
#: classes/class-s2-core.php:
|
945 |
msgid "Confirmed Public Subscriber"
|
946 |
msgstr ""
|
947 |
|
948 |
-
#: classes/class-s2-core.php:
|
949 |
msgid "Unconfirmed Public Subscriber"
|
950 |
msgstr ""
|
951 |
|
952 |
-
#: classes/class-s2-core.php:
|
953 |
msgid "Check here to Subscribe to email notifications for new posts"
|
954 |
msgstr ""
|
955 |
|
956 |
-
#: classes/class-s2-core.php:
|
957 |
msgid ""
|
958 |
"By registering with this blog you are also agreeing to receive email "
|
959 |
"notifications for new posts but you can unsubscribe at anytime"
|
960 |
msgstr ""
|
961 |
|
962 |
-
#: classes/class-s2-core.php:
|
963 |
msgid "Check here to Subscribe to notifications for new posts"
|
964 |
msgstr ""
|
965 |
|
966 |
-
#: classes/class-s2-core.php:
|
967 |
msgid "Weekly"
|
968 |
msgstr ""
|
969 |
|
970 |
-
#: classes/class-s2-core.php:
|
971 |
msgid "Author"
|
972 |
msgstr ""
|
973 |
|
974 |
-
#: classes/class-s2-core.php:
|
975 |
msgid "Posted on"
|
976 |
msgstr ""
|
977 |
|
978 |
-
#: classes/class-s2-core.php:
|
979 |
msgid "Posted in"
|
980 |
msgstr ""
|
981 |
|
982 |
-
#: classes/class-s2-core.php:
|
983 |
msgid "Tagged as"
|
984 |
msgstr ""
|
985 |
|
986 |
-
#: classes/class-s2-core.php:
|
987 |
msgid "Digest Email"
|
988 |
msgstr ""
|
989 |
|
990 |
-
#: classes/class-s2-core.php:
|
991 |
msgid "Digest Preview"
|
992 |
msgstr ""
|
993 |
|
994 |
-
#: classes/class-s2-frontend.php:
|
995 |
msgid "Enter email address..."
|
996 |
msgstr ""
|
997 |
|
998 |
-
#: classes/class-s2-frontend.php:
|
999 |
msgid "Your email:"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
-
#: classes/class-s2-frontend.php:
|
1003 |
msgid "Subscription Confirmation"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
-
#: classes/class-s2-frontend.php:
|
1007 |
msgid "Unsubscription Confirmation"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
-
#: classes/class-s2-frontend.php:
|
1011 |
msgid "New Subscription"
|
1012 |
msgstr ""
|
1013 |
|
1014 |
-
#: classes/class-s2-frontend.php:
|
1015 |
msgid "subscribed to email notifications!"
|
1016 |
msgstr ""
|
1017 |
|
1018 |
-
#: classes/class-s2-frontend.php:
|
1019 |
msgid "New Unsubscription"
|
1020 |
msgstr ""
|
1021 |
|
1022 |
-
#: classes/class-s2-frontend.php:
|
1023 |
msgid "unsubscribed from email notifications!"
|
1024 |
msgstr ""
|
1025 |
|
1026 |
-
#: classes/class-s2-frontend.php:
|
1027 |
msgid "[Un]Subscribe to Posts"
|
1028 |
msgstr ""
|
1029 |
|
1030 |
-
#: classes/class-s2-frontend.php:
|
1031 |
msgid "Subscribe to this blog"
|
1032 |
msgstr ""
|
1033 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1034 |
#: include/counterwidget.php:7
|
1035 |
msgid "Subscriber Counter widget for Subscribe2"
|
1036 |
msgstr ""
|
@@ -1132,62 +1132,66 @@ msgstr ""
|
|
1132 |
msgid "Subscribe2 Widget"
|
1133 |
msgstr ""
|
1134 |
|
1135 |
-
#: include/widget.php:
|
1136 |
msgid "(Un)Subscribe to Posts"
|
1137 |
msgstr ""
|
1138 |
|
1139 |
-
#: include/widget.php:
|
1140 |
msgid "Title"
|
1141 |
msgstr ""
|
1142 |
|
1143 |
-
#: include/widget.php:
|
1144 |
msgid "Div class name"
|
1145 |
msgstr ""
|
1146 |
|
1147 |
-
#: include/widget.php:
|
1148 |
msgid "Pre-Content"
|
1149 |
msgstr ""
|
1150 |
|
1151 |
-
#: include/widget.php:
|
1152 |
msgid "Post-Content"
|
1153 |
msgstr ""
|
1154 |
|
1155 |
-
#: include/widget.php:
|
1156 |
msgid "Text Box Size"
|
1157 |
msgstr ""
|
1158 |
|
1159 |
-
#: include/widget.php:
|
1160 |
msgid "Display options"
|
1161 |
msgstr ""
|
1162 |
|
1163 |
-
#: include/widget.php:
|
1164 |
msgid "Show complete form"
|
1165 |
msgstr ""
|
1166 |
|
1167 |
-
#: include/widget.php:
|
1168 |
msgid "Hide Subscribe button"
|
1169 |
msgstr ""
|
1170 |
|
1171 |
-
#: include/widget.php:
|
1172 |
msgid "Hide Unsubscribe button"
|
1173 |
msgstr ""
|
1174 |
|
1175 |
-
#: include/widget.php:
|
1176 |
msgid "Show as link"
|
1177 |
msgstr ""
|
1178 |
|
1179 |
-
#: include/widget.php:
|
1180 |
msgid "Post form content to page"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
-
#: include/widget.php:
|
1184 |
msgid "Use Subscribe2 Default"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
-
#: include/widget.php:
|
1188 |
msgid "Use Home Page"
|
1189 |
msgstr ""
|
1190 |
|
|
|
|
|
|
|
|
|
1191 |
#: subscribe2.php:39
|
1192 |
#, php-format
|
1193 |
msgid ""
|
8 |
msgstr ""
|
9 |
"Project-Id-Version: PACKAGE VERSION\n"
|
10 |
"Report-Msgid-Bugs-To: \n"
|
11 |
+
"POT-Creation-Date: 2013-01-15 17:59+0000\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:46
|
21 |
msgid "Preview message sent!"
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: admin/send_email.php:51
|
25 |
msgid "Your email was empty"
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: admin/send_email.php:62
|
29 |
msgid "Send an email to subscribers"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: admin/send_email.php:70
|
33 |
msgid "A message from"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: admin/send_email.php:75
|
37 |
msgid "Subject"
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: admin/send_email.php:78
|
41 |
msgid "Recipients:"
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: admin/send_email.php:82
|
45 |
msgid "Preview"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: admin/send_email.php:82
|
49 |
msgid "Send"
|
50 |
msgstr ""
|
51 |
|
132 |
#: admin/settings.php:183 admin/settings.php:189 admin/settings.php:203
|
133 |
#: admin/settings.php:208 admin/settings.php:213 admin/settings.php:333
|
134 |
#: admin/settings.php:338 admin/settings.php:352 admin/settings.php:359
|
135 |
+
#: admin/settings.php:371 admin/settings.php:376 admin/subscribers.php:241
|
136 |
+
#: admin/your_subscriptions.php:121 admin/your_subscriptions.php:162
|
137 |
msgid "Yes"
|
138 |
msgstr ""
|
139 |
|
141 |
#: admin/settings.php:210 admin/settings.php:215 admin/settings.php:330
|
142 |
#: admin/settings.php:335 admin/settings.php:340 admin/settings.php:354
|
143 |
#: admin/settings.php:361 admin/settings.php:368 admin/settings.php:373
|
144 |
+
#: admin/settings.php:378 admin/subscribers.php:243
|
145 |
+
#: admin/your_subscriptions.php:123 admin/your_subscriptions.php:166
|
146 |
msgid "No"
|
147 |
msgstr ""
|
148 |
|
194 |
#: admin/settings.php:231
|
195 |
msgid ""
|
196 |
"eg. utm_source=subscribe2&utm_medium=email&"
|
197 |
+
"utm_campaign=postnotify&utm_id={ID}&utm_title={TITLE}"
|
198 |
msgstr ""
|
199 |
|
200 |
#: admin/settings.php:242
|
367 |
msgid "Auto-subscribe users to receive email as"
|
368 |
msgstr ""
|
369 |
|
370 |
+
#: admin/settings.php:343 admin/subscribers.php:231
|
371 |
#: admin/your_subscriptions.php:110
|
372 |
msgid "HTML - Full"
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: admin/settings.php:345 admin/subscribers.php:232
|
376 |
#: admin/your_subscriptions.php:112
|
377 |
msgid "HTML - Excerpt"
|
378 |
msgstr ""
|
379 |
|
380 |
+
#: admin/settings.php:347 admin/subscribers.php:233
|
381 |
#: admin/your_subscriptions.php:114
|
382 |
msgid "Plain Text - Full"
|
383 |
msgstr ""
|
384 |
|
385 |
+
#: admin/settings.php:349 admin/subscribers.php:234
|
386 |
#: admin/your_subscriptions.php:116
|
387 |
msgid "Plain Text - Excerpt"
|
388 |
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 ""
|
551 |
|
552 |
+
#: admin/subscribers.php:159
|
553 |
msgid "Enter addresses, one per line or comma-separated"
|
554 |
msgstr ""
|
555 |
|
556 |
+
#: admin/subscribers.php:162 admin/subscribers.php:226
|
557 |
+
#: admin/your_subscriptions.php:260 classes/class-s2-core.php:27
|
558 |
#: classes/class-s2-frontend.php:26
|
559 |
msgid "Subscribe"
|
560 |
msgstr ""
|
561 |
|
562 |
+
#: admin/subscribers.php:163 admin/subscribers.php:227
|
563 |
+
#: admin/your_subscriptions.php:239 classes/class-s2-frontend.php:25
|
564 |
msgid "Unsubscribe"
|
565 |
msgstr ""
|
566 |
|
567 |
+
#: admin/subscribers.php:168 admin/subscribers.php:187
|
568 |
msgid "Current Subscribers"
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: admin/subscribers.php:181
|
572 |
msgid "Add Registered User"
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: admin/subscribers.php:196
|
576 |
msgid "Filter"
|
577 |
msgstr ""
|
578 |
|
579 |
+
#: admin/subscribers.php:200
|
580 |
msgid "Send Reminder Email"
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: admin/subscribers.php:207
|
584 |
msgid "Save Emails to CSV File"
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: admin/subscribers.php:214
|
588 |
msgid "Search"
|
589 |
msgstr ""
|
590 |
|
591 |
+
#: admin/subscribers.php:221
|
592 |
msgid "Bulk Management"
|
593 |
msgstr ""
|
594 |
|
595 |
+
#: admin/subscribers.php:223 admin/subscribers.php:237
|
596 |
msgid ""
|
597 |
"Preferences for Registered Users selected in the filter above can be changed "
|
598 |
"using this section."
|
599 |
msgstr ""
|
600 |
|
601 |
+
#: admin/subscribers.php:224 admin/subscribers.php:238
|
602 |
msgid "Consider User Privacy as changes cannot be undone"
|
603 |
msgstr ""
|
604 |
|
605 |
+
#: admin/subscribers.php:225
|
606 |
msgid "Action to perform"
|
607 |
msgstr ""
|
608 |
|
609 |
+
#: admin/subscribers.php:229
|
610 |
msgid "Bulk Update Categories"
|
611 |
msgstr ""
|
612 |
|
613 |
+
#: admin/subscribers.php:230
|
614 |
msgid "Send email as"
|
615 |
msgstr ""
|
616 |
|
617 |
+
#: admin/subscribers.php:235
|
618 |
msgid "Bulk Update Format"
|
619 |
msgstr ""
|
620 |
|
621 |
+
#: admin/subscribers.php:239
|
622 |
msgid "Subscribe Selected Users to recieve a periodic digest notification"
|
623 |
msgstr ""
|
624 |
|
625 |
+
#: admin/subscribers.php:244
|
626 |
msgid "Bulk Update Digest Subscription"
|
627 |
msgstr ""
|
628 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
629 |
#: admin/your_subscriptions.php:90
|
630 |
msgid "Subscription preferences updated."
|
631 |
msgstr ""
|
674 |
msgid "Subscribed Categories"
|
675 |
msgstr ""
|
676 |
|
677 |
+
#: admin/your_subscriptions.php:156
|
678 |
msgid "Receive periodic summaries of new posts?"
|
679 |
msgstr ""
|
680 |
|
681 |
+
#: admin/your_subscriptions.php:172
|
682 |
msgid "Do not send notifications for post made by these authors"
|
683 |
msgstr ""
|
684 |
|
685 |
+
#: admin/your_subscriptions.php:178
|
686 |
msgid "Update Preferences"
|
687 |
msgstr ""
|
688 |
|
689 |
+
#: admin/your_subscriptions.php:228
|
690 |
msgid "Subscribed Blogs"
|
691 |
msgstr ""
|
692 |
|
693 |
+
#: admin/your_subscriptions.php:233 admin/your_subscriptions.php:254
|
694 |
msgid "Viewing Settings Now"
|
695 |
msgstr ""
|
696 |
|
697 |
+
#: admin/your_subscriptions.php:237 admin/your_subscriptions.php:258
|
698 |
msgid "View Settings"
|
699 |
msgstr ""
|
700 |
|
701 |
+
#: admin/your_subscriptions.php:249
|
702 |
msgid "Subscribe to new blogs"
|
703 |
msgstr ""
|
704 |
|
913 |
msgid "Options reset!"
|
914 |
msgstr ""
|
915 |
|
916 |
+
#: classes/class-s2-core.php:576
|
917 |
msgid "Plain Text Excerpt Preview"
|
918 |
msgstr ""
|
919 |
|
920 |
+
#: classes/class-s2-core.php:578
|
921 |
msgid "Plain Text Full Preview"
|
922 |
msgstr ""
|
923 |
|
924 |
+
#: classes/class-s2-core.php:580
|
925 |
msgid "HTML Excerpt Preview"
|
926 |
msgstr ""
|
927 |
|
928 |
+
#: classes/class-s2-core.php:582
|
929 |
msgid "HTML Full Preview"
|
930 |
msgstr ""
|
931 |
|
932 |
+
#: classes/class-s2-core.php:1175
|
933 |
msgid "Registered User"
|
934 |
msgstr ""
|
935 |
|
936 |
+
#: classes/class-s2-core.php:1180
|
937 |
msgid "Confirmed Public Subscriber"
|
938 |
msgstr ""
|
939 |
|
940 |
+
#: classes/class-s2-core.php:1182
|
941 |
msgid "Unconfirmed Public Subscriber"
|
942 |
msgstr ""
|
943 |
|
944 |
+
#: classes/class-s2-core.php:1219
|
945 |
msgid "Check here to Subscribe to email notifications for new posts"
|
946 |
msgstr ""
|
947 |
|
948 |
+
#: classes/class-s2-core.php:1225
|
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:1251
|
955 |
msgid "Check here to Subscribe to notifications for new posts"
|
956 |
msgstr ""
|
957 |
|
958 |
+
#: classes/class-s2-core.php:1341
|
959 |
msgid "Weekly"
|
960 |
msgstr ""
|
961 |
|
962 |
+
#: classes/class-s2-core.php:1475 classes/class-s2-core.php:1476
|
963 |
msgid "Author"
|
964 |
msgstr ""
|
965 |
|
966 |
+
#: classes/class-s2-core.php:1482
|
967 |
msgid "Posted on"
|
968 |
msgstr ""
|
969 |
|
970 |
+
#: classes/class-s2-core.php:1500 classes/class-s2-core.php:1501
|
971 |
msgid "Posted in"
|
972 |
msgstr ""
|
973 |
|
974 |
+
#: classes/class-s2-core.php:1506 classes/class-s2-core.php:1507
|
975 |
msgid "Tagged as"
|
976 |
msgstr ""
|
977 |
|
978 |
+
#: classes/class-s2-core.php:1573
|
979 |
msgid "Digest Email"
|
980 |
msgstr ""
|
981 |
|
982 |
+
#: classes/class-s2-core.php:1583
|
983 |
msgid "Digest Preview"
|
984 |
msgstr ""
|
985 |
|
986 |
+
#: classes/class-s2-frontend.php:52
|
987 |
msgid "Enter email address..."
|
988 |
msgstr ""
|
989 |
|
990 |
+
#: classes/class-s2-frontend.php:57 classes/class-s2-frontend.php:59
|
991 |
msgid "Your email:"
|
992 |
msgstr ""
|
993 |
|
994 |
+
#: classes/class-s2-frontend.php:167
|
995 |
msgid "Subscription Confirmation"
|
996 |
msgstr ""
|
997 |
|
998 |
+
#: classes/class-s2-frontend.php:169
|
999 |
msgid "Unsubscription Confirmation"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
+
#: classes/class-s2-frontend.php:208
|
1003 |
msgid "New Subscription"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
+
#: classes/class-s2-frontend.php:210
|
1007 |
msgid "subscribed to email notifications!"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
+
#: classes/class-s2-frontend.php:231
|
1011 |
msgid "New Unsubscription"
|
1012 |
msgstr ""
|
1013 |
|
1014 |
+
#: classes/class-s2-frontend.php:233
|
1015 |
msgid "unsubscribed from email notifications!"
|
1016 |
msgstr ""
|
1017 |
|
1018 |
+
#: classes/class-s2-frontend.php:259
|
1019 |
msgid "[Un]Subscribe to Posts"
|
1020 |
msgstr ""
|
1021 |
|
1022 |
+
#: classes/class-s2-frontend.php:289 classes/class-s2-frontend.php:291
|
1023 |
msgid "Subscribe to this blog"
|
1024 |
msgstr ""
|
1025 |
|
1026 |
+
#: classes/class-s2-list-table.php:85
|
1027 |
+
msgid "Delete"
|
1028 |
+
msgstr ""
|
1029 |
+
|
1030 |
+
#: classes/class-s2-list-table.php:86
|
1031 |
+
msgid "Toggle"
|
1032 |
+
msgstr ""
|
1033 |
+
|
1034 |
#: include/counterwidget.php:7
|
1035 |
msgid "Subscriber Counter widget for Subscribe2"
|
1036 |
msgstr ""
|
1132 |
msgid "Subscribe2 Widget"
|
1133 |
msgstr ""
|
1134 |
|
1135 |
+
#: include/widget.php:29
|
1136 |
msgid "(Un)Subscribe to Posts"
|
1137 |
msgstr ""
|
1138 |
|
1139 |
+
#: include/widget.php:101
|
1140 |
msgid "Title"
|
1141 |
msgstr ""
|
1142 |
|
1143 |
+
#: include/widget.php:103
|
1144 |
msgid "Div class name"
|
1145 |
msgstr ""
|
1146 |
|
1147 |
+
#: include/widget.php:105
|
1148 |
msgid "Pre-Content"
|
1149 |
msgstr ""
|
1150 |
|
1151 |
+
#: include/widget.php:107
|
1152 |
msgid "Post-Content"
|
1153 |
msgstr ""
|
1154 |
|
1155 |
+
#: include/widget.php:109
|
1156 |
msgid "Text Box Size"
|
1157 |
msgstr ""
|
1158 |
|
1159 |
+
#: include/widget.php:111
|
1160 |
msgid "Display options"
|
1161 |
msgstr ""
|
1162 |
|
1163 |
+
#: include/widget.php:112
|
1164 |
msgid "Show complete form"
|
1165 |
msgstr ""
|
1166 |
|
1167 |
+
#: include/widget.php:113
|
1168 |
msgid "Hide Subscribe button"
|
1169 |
msgstr ""
|
1170 |
|
1171 |
+
#: include/widget.php:114
|
1172 |
msgid "Hide Unsubscribe button"
|
1173 |
msgstr ""
|
1174 |
|
1175 |
+
#: include/widget.php:116
|
1176 |
msgid "Show as link"
|
1177 |
msgstr ""
|
1178 |
|
1179 |
+
#: include/widget.php:119
|
1180 |
msgid "Post form content to page"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
+
#: include/widget.php:121
|
1184 |
msgid "Use Subscribe2 Default"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
+
#: include/widget.php:124
|
1188 |
msgid "Use Home Page"
|
1189 |
msgstr ""
|
1190 |
|
1191 |
+
#: include/widget.php:127
|
1192 |
+
msgid "Disable JavaScript"
|
1193 |
+
msgstr ""
|
1194 |
+
|
1195 |
#: subscribe2.php:39
|
1196 |
#, php-format
|
1197 |
msgid ""
|