Version Description
Download this release
Release Info
Developer | Dabelon |
Plugin | Subscribe2 |
Version | 10.0 |
Comparing to | |
See all releases |
Code changes from version 9.4 to 10.0
- ReadMe.txt +269 -13
- admin/app_page.php +183 -0
- classes/class-s2-admin.php +20 -1
- classes/class-s2-core.php +18 -4
- classes/class-s2-frontend.php +67 -4
- subscribe2.php +13 -1
ReadMe.txt
CHANGED
@@ -1,32 +1,40 @@
|
|
1 |
=== Subscribe2 ===
|
2 |
-
Contributors:
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2387904
|
4 |
Tags: posts, subscription, email, subscribe, notify, notification
|
5 |
Requires at least: 3.3
|
6 |
Tested up to: 3.9
|
7 |
-
Stable tag:
|
8 |
License: GPL3
|
9 |
|
10 |
-
Sends a list of subscribers an email notification when new posts are published to your blog
|
11 |
|
12 |
== Description ==
|
|
|
|
|
13 |
Subscribe2 provides a comprehensive subscription management and email notification system for WordPress blogs that sends email notifications to a list of subscribers when you publish new content to your blog.
|
14 |
|
15 |
-
Email
|
|
|
16 |
|
17 |
-
|
|
|
18 |
|
19 |
The format of the email can also be customised for per-post notifications, Subscribe2 can generate emails for each of the following formats:
|
20 |
|
21 |
-
* plaintext excerpt
|
22 |
-
* plaintext full post (Registered Users only)
|
23 |
-
* HTML excerpt (Registered Users only)
|
24 |
-
* HTML full post (Registered Users only)
|
25 |
|
26 |
If you want to send full content HTML emails to Public Subscribers too then upgrade to [Subscribe2 HTML](http://semperplugins.com/plugins/subscribe2-html/).
|
27 |
|
|
|
|
|
|
|
28 |
== Installation ==
|
29 |
-
|
|
|
30 |
|
31 |
1. Log in to your WordPress blog and visit Plugins->Add New.
|
32 |
2. Search for Subscribe2, click "Install Now" and then Activate the Plugin
|
@@ -38,7 +46,7 @@ AUTOMATIC INSTALLATION
|
|
38 |
This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary.
|
39 |
8. In the WordPress "Settings" area for Subscribe2 select the page name in the "Appearance" section that of the WordPress page created in step 7.
|
40 |
|
41 |
-
MANUAL INSTALLATION
|
42 |
|
43 |
1. Copy the entire /subscribe2/ directory into your /wp-content/plugins/ directory.
|
44 |
2. Activate the plugin.
|
@@ -51,6 +59,7 @@ This token will automatically be replaced by dynamic subscription information an
|
|
51 |
8. In the WordPress "Settings" area for Subscribe2 select the page name in the "Appearance" section that of the WordPress page created in step 7.
|
52 |
|
53 |
== Frequently Asked Questions ==
|
|
|
54 |
[Visit FAQ site](http://subscribe2.wordpress.com/support/faqs/)
|
55 |
|
56 |
== Screenshots ==
|
@@ -60,7 +69,254 @@ This token will automatically be replaced by dynamic subscription information an
|
|
60 |
4. The Subscribe2->Subscribe2 admin page generated by the plugin.
|
61 |
|
62 |
== Changelog ==
|
63 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
|
65 |
== Upgrade Notice ==
|
66 |
-
See Version History
|
1 |
=== Subscribe2 ===
|
2 |
+
Contributors: Dabelon, wenzhixue, MattyRob
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2387904
|
4 |
Tags: posts, subscription, email, subscribe, notify, notification
|
5 |
Requires at least: 3.3
|
6 |
Tested up to: 3.9
|
7 |
+
Stable tag: 10.0
|
8 |
License: GPL3
|
9 |
|
10 |
+
Sends a list of subscribers an email notification when new posts are published to your blog.
|
11 |
|
12 |
== Description ==
|
13 |
+
|
14 |
+
= Summary =
|
15 |
Subscribe2 provides a comprehensive subscription management and email notification system for WordPress blogs that sends email notifications to a list of subscribers when you publish new content to your blog.
|
16 |
|
17 |
+
= Email =
|
18 |
+
Email notifications can be sent on a per-post basis or periodically in a Digest email. Additionally, certain categories can be excluded from inclusion in the notification and posts can be excluded on an individual basis by setting a custom field.
|
19 |
|
20 |
+
= Subscriptions =
|
21 |
+
Subscription requests allows users to publicly subscribe (**Public Subscribers**) by submitting their email address in an easy to use form or to register with your blog (**Registered Users**) which enables greater flexibility over the email content for per-post notifications for the subscriber. Admins are given control over the presentation of the email notifications, can bulk manage subscriptions for users and manually send email notices to subscribers.
|
22 |
|
23 |
The format of the email can also be customised for per-post notifications, Subscribe2 can generate emails for each of the following formats:
|
24 |
|
25 |
+
* plaintext excerpt.
|
26 |
+
* plaintext full post (Registered Users only).
|
27 |
+
* HTML excerpt (Registered Users only).
|
28 |
+
* HTML full post (Registered Users only).
|
29 |
|
30 |
If you want to send full content HTML emails to Public Subscribers too then upgrade to [Subscribe2 HTML](http://semperplugins.com/plugins/subscribe2-html/).
|
31 |
|
32 |
+
= ReadyGraph App =
|
33 |
+
This menu item allows users to sign up for a free ReadyGraph account, or sync an existing free ReadyGraph account. Once a ReadyGraph account is synced, this menu item is where the user manages their ReadyGraph account, views email addresses, sends emails to their community members, and views insights on user growth.
|
34 |
+
|
35 |
== Installation ==
|
36 |
+
|
37 |
+
= AUTOMATIC INSTALLATION =
|
38 |
|
39 |
1. Log in to your WordPress blog and visit Plugins->Add New.
|
40 |
2. Search for Subscribe2, click "Install Now" and then Activate the Plugin
|
46 |
This token will automatically be replaced by dynamic subscription information and will display all forms and messages as necessary.
|
47 |
8. In the WordPress "Settings" area for Subscribe2 select the page name in the "Appearance" section that of the WordPress page created in step 7.
|
48 |
|
49 |
+
= MANUAL INSTALLATION =
|
50 |
|
51 |
1. Copy the entire /subscribe2/ directory into your /wp-content/plugins/ directory.
|
52 |
2. Activate the plugin.
|
59 |
8. In the WordPress "Settings" area for Subscribe2 select the page name in the "Appearance" section that of the WordPress page created in step 7.
|
60 |
|
61 |
== Frequently Asked Questions ==
|
62 |
+
|
63 |
[Visit FAQ site](http://subscribe2.wordpress.com/support/faqs/)
|
64 |
|
65 |
== Screenshots ==
|
69 |
4. The Subscribe2->Subscribe2 admin page generated by the plugin.
|
70 |
|
71 |
== Changelog ==
|
72 |
+
= Version 9.5 by Matthew Robinson =
|
73 |
+
|
74 |
+
* Improved placement and usage of the ‘s2_custom_keywords’ filter in the digest emails
|
75 |
+
* Fix for some undefined variable notices
|
76 |
+
* Fixes for database connectivity in the upgrade class file - thanks to rushu25
|
77 |
+
* Fix for bug when antispam measures are disabled - thanks to serinx
|
78 |
+
* Add option to Sidebar Widget to not wrap the button below the form
|
79 |
+
|
80 |
+
= Version 9.4 by Matthew Robinson =
|
81 |
+
|
82 |
+
* Fix for non-existing variable errors on Subscribe2->Subscribers page - thanks to bapakrob and perezlr
|
83 |
+
* Don’t display Excluded Categories in Bulk Management is Registered users cannot override the exclusion
|
84 |
+
* Fix for disappearing Jetpack Stats module - thanks to desertravenart
|
85 |
+
* Fix for undefined variable notices in the digest emails
|
86 |
+
|
87 |
+
= Version 9.3 by Matthew Robinson =
|
88 |
+
|
89 |
+
* Only add 'weekly' cron schedule interval if it does not already exist
|
90 |
+
* Add capability to add social media share buttons to HTML emails
|
91 |
+
* Update editor plugin for TinyMCE version 4 bundled with WordPress 3.9
|
92 |
+
* Rework Digest emails to collect posts based on transition status rather than time - see ticket https://plugins.trac.wordpress.org/ticket/2058
|
93 |
+
* Hide comment form subscription options if using Jetpack Comments and improve compatibility
|
94 |
+
* Fixed typos in the Help tab on the Settings page
|
95 |
+
* Improved domain name comparison for sender email check - props garypardun
|
96 |
+
* Tidied load_string() function and moved it to class-s2-frontend.php as all strings are not for user side only
|
97 |
+
* Ensure 's2_authors' keys exist on all sites and for all Registered Users as per illmasterc’s bug report
|
98 |
+
* Introduce 's2_mu_blog_list' filter to allow filter of blog list for WordPress Multisite installs - props careb
|
99 |
+
* Enable built-in widget by default - props by MadtownLems
|
100 |
+
* Use a better method for unendcoding HTML special characters for plain text emails - proposed by Dainius Kaupaitis
|
101 |
+
* Fixed a bug affecting handling of Registered users with email aliases (e.g. name+alias@gmail.com) - thanks to Alexandre (bosseal)
|
102 |
+
* Improved Character Set encoding of some email headers
|
103 |
+
* Improved user registration hooking for Multisite installs - thanks to dsl255
|
104 |
+
* Introduce a filter to allow filtering of the confirm link URL - props diddledan
|
105 |
+
* Introduce a confirmation box for Registered User deletion - props geoorgge1968
|
106 |
+
* Improved Bulk Management user experience by retaining submitted settings
|
107 |
+
|
108 |
+
= Version 9.2 by Matthew Robinson =
|
109 |
+
|
110 |
+
* Fixed an error in the Registered User deletion code - thanks to Jay Wasack
|
111 |
+
|
112 |
+
= Version 9.1 by Matthew Robinson =
|
113 |
+
|
114 |
+
* Shortcode parameters are now not case sensitive
|
115 |
+
* Fixed AJAX mode to work with new Anti Spam code
|
116 |
+
* Suppress undefined variable warnings when sending Digest Email previews
|
117 |
+
* Include Signup Date and IP for Public Subscribers in CSV Export - props Taylor4484
|
118 |
+
* Fix for Sticky Posts in the digest returning errant posts - thanks to belg4mit
|
119 |
+
* Move FAQs to external site to allow more timely updates
|
120 |
+
* Add ability to hide other Multisite blogs with CSS in the Subscribe2->Your Subscriptions page (DIV id of 's2_mu_sites') - props cblsysadmin
|
121 |
+
* Add 's2_form' filter to allow dynamic alterations to the default form - props adam_jack
|
122 |
+
* Conduct more thorough checking for Public and Registered emails when adding users in the admin pages - thanks to MadtownLems
|
123 |
+
* Introduce the {REFERENCELINKS} keyword - props manu1033
|
124 |
+
* Fix link to jQuery CSS for servers using HTTPS connections - props Christian (aka Alariel)
|
125 |
+
* Introduce link to Templates page with unsupported keywords are detected - props MadtownLems
|
126 |
+
* Ensure all JavaScript passes the JSHint WordPress Coding Standards
|
127 |
+
* Initialise ‘colorpicker’ boxes on page load so they are coloured before first user click
|
128 |
+
* Only add a new Weekly schedule if it doesn’t already exist
|
129 |
+
* Use trim() on post excerpt to account for blank but non-empty excerpts
|
130 |
+
* Don't display screen icons in WordPress 3.8 as they are hidden by CSS - see ticket http://core.trac.wordpress.org/ticket/26119
|
131 |
+
* Added 's2_confirm_email' filter to allow amendment or replacement of the subscribe and unsubscribe emails - proposed by Tim Büttner
|
132 |
+
* Fixed a typo in the names of the five 's2_send_{email_type}_subscribers' hooks - thanks to robertjj
|
133 |
+
* Introduced the 's2_post_statuses' to allow for custom post status transitions, for example with the 'Edit Flow' plugin
|
134 |
+
* Fix for failed deletion of Registered Subscribers in Subscribe2->Subscribers page - thanks to Russ Michaels
|
135 |
+
|
136 |
+
= Version 9.0 by Matthew Robinson =
|
137 |
+
|
138 |
+
* Added capability to send emails with attachments from Send Email page
|
139 |
+
* Added feature that removes unconfirmed public subscribers after 28 days (time frame can be altered with a filter)
|
140 |
+
* Added ability to bulk delete Registered Users/Subscribers
|
141 |
+
* Use {IMAGE} tag in HTML excerpt emails and digests only, images would be stripped in plain text and included anyway in full content HTML - applies to Subscribe2 HTML only
|
142 |
+
* Added help tabs on the plugins admin pages
|
143 |
+
* Improved the comparison of barred domains to subscribing email addresses - thanks to SashainSydney
|
144 |
+
* Added Text Domain to the plugin header to allow information on plugin page to translate - thanks to qwertysimo
|
145 |
+
* Applied a fix to ensure translation of all strings - thanks to qwertysimo
|
146 |
+
* Improved some strings to use sprintf() - thanks to Tom Adams (tomdxw)
|
147 |
+
* Use jQuery.noConflict(); when AJAX is enabled
|
148 |
+
* Removed excess span tag from the Counter Widget - thanks to dimagsv
|
149 |
+
* Allow filtering of admin email address for the emails sent when users confirm a subscription or unsubscription - suggested by 3cstudio
|
150 |
+
* Fixed default email notification subject text - thanks to Steve C @ 3Cstudio
|
151 |
+
* Fixed ability to have translation files in WP_LANG folder
|
152 |
+
* Fixed an issue with pagination of search results - thanks to sijpie
|
153 |
+
* Fixed 'Add Registered User' button in Subscribe2->Subscribers, Registered Tab - thanks to qwik3r
|
154 |
+
* Improved pages dropdown to an ordered and hierarchical display - thanks to xavierlh1
|
155 |
+
* Improved control over digest email scheduling - proposed by Jason Lemahieu
|
156 |
+
* Fixed Subscriber Dropdown counts for Compulsory categories
|
157 |
+
* Added a link to Tranlation files to the plugin page and the miscellaneous tab of the Subscribe2->Settings page - props eyephone21
|
158 |
+
* Added {KEYWORD} checking in the template to warn users of disallowed keywords - proposed by Jason Lemahieu
|
159 |
+
* Fixed some notices in the Send Email page - thanks to Bryan Hadaway (bhadaway)
|
160 |
+
* Added anti-spam measures to the sign up form - thanks to Bryan Hadaway (bhadaway)
|
161 |
+
* Update query_filter() function to hook into the 'request' filter instead of the deprecated 'query_filter'
|
162 |
+
* Added a default 'Select a page' option to the page dropdown to highlight the need to have a published page select
|
163 |
+
* Added filters to the subscription and unsubscription confirmation messages to allow personalisation - see FAQs for example functions
|
164 |
+
* Remove Simple Facebook Connect action during subscription and unsubscription confirmation to ensure user messages are displayed
|
165 |
+
* Improved white space stripping in the plaintext full content email
|
166 |
+
* Fixed a PHP notice on the Subscribe2->Subscribers page - thanks to emile.swain
|
167 |
+
* Fixes the non-working 'check all' boxes in WordPress 3.6 and above
|
168 |
+
* NOTE Version 9.0 needs WordPress 3.3 or above
|
169 |
+
|
170 |
+
= Version 8.9.1 by Matthew Robinson =
|
171 |
+
|
172 |
+
* Check for the existence of the mb_encode_mimeheader function before use as it's optional in PHP builds - thanks to derekmacewen
|
173 |
+
* Fix for fatal error in upgrade code due to calling the wrong class
|
174 |
+
|
175 |
+
= Version 8.9 by Matthew Robinson =
|
176 |
+
|
177 |
+
* Fix fatal error in the uninstall.php file
|
178 |
+
* Correct error using set_url_scheme() function in WordPress version prior to 3.5
|
179 |
+
* Allow the Widget to post form back to referring page by omitting action for parameter - thanks to Peter Gordon
|
180 |
+
* Fix for options being reset on Multisite installs - thanks to Luca
|
181 |
+
* Make sure translation strings are loaded during install(), upgrade() and reset() - thanks to Milan Dinić
|
182 |
+
* Fix internationalisation of subscribers list table - thanks to Milan Dinić
|
183 |
+
* Use mb_encode_mimeheader on email sender name - thanks to xl32
|
184 |
+
* Trim email addresses before sanitising them - thanks to byarts
|
185 |
+
* Optimised the upgrade() function for large sites
|
186 |
+
|
187 |
+
= Version 8.8 by Matthew Robinson =
|
188 |
+
|
189 |
+
* Added ability to filter both excerpt_length and word_wrap
|
190 |
+
* Added code to stop site wide activation on Multisite installs
|
191 |
+
* Added code to fix compatibility issues with Autoblog plugin - thanks to Kevin Waite and Andy Stratton
|
192 |
+
* Fixed digit entry in pagination section on Registeres tab in Subscribe2->Subscribers
|
193 |
+
* Removed ID from a string in the Settings page as it was confusing
|
194 |
+
* Enhanced Compulsory Category code to ensure that Registered Users all get notifications for such categories despite their current personal settings
|
195 |
+
* Improved Pagination when the Filter is changed on the Subscribe2->Subscribers page
|
196 |
+
* Use $wpdb->prefix in preference to $table_prefix
|
197 |
+
* Improve functionality of the uninstall script on Multisite installs
|
198 |
+
* Fixed glitch in upgrade85 code that failed to add a new database column when called
|
199 |
+
* Sort subscribers into alphabetical order irrespective of case - thanks to mharpen
|
200 |
+
|
201 |
+
= Version 8.7 by Matthew Robinson =
|
202 |
+
|
203 |
+
* Enabled {TITLE} as a keyword in URL Tracking in free version
|
204 |
+
* Moved Subscribers page class code to a new external class file to avoid fatal PHP errors on some sites
|
205 |
+
* Fixed a glitch in the {TABLELINK} tag caused by adding support for {TINYLINK} to the digest email
|
206 |
+
* Fixed and repaired addition of extra comma to s2_subscribed table values and also addition of null s2cat values
|
207 |
+
* Fixed incomplete table creation on new installs - thanks to niclaslockner
|
208 |
+
* Fix for PHP Warning about an undefined $value variable on form submission - thanks to annewinterbottom
|
209 |
+
* Rename public subscriber variables internally for consistency
|
210 |
+
* Implement variable caching for Registered users in the same way as for Public subscribers
|
211 |
+
* Widen Subject boxes on the Subscribe2->Settings:Templates page - props Orion42
|
212 |
+
* Allow easier customisation of the word wrap length in plain text emails - props Orion42
|
213 |
+
* Abstracted the upgrade() code and made it incremental so that only necessary code is executed
|
214 |
+
* Fixed a bug in the Send Email page that failed to send emails to Public Subscribers when All Users was selected - thanks to Gui
|
215 |
+
* Added an option to disable JavaScript within the Widget
|
216 |
+
* Minor code improvements
|
217 |
+
|
218 |
+
= Version 8.6 by Matthew Robinson =
|
219 |
+
|
220 |
+
* Minor layout update to Widget Settings
|
221 |
+
* Fix for non-sending notifications for pages - proposed by ctcdesign
|
222 |
+
* Fix for a translation domain error in admin/settings.php - proposed by monpelaud
|
223 |
+
* Fix for deprecated is_blog_user() function on Multisite installs - proposed by hallcp
|
224 |
+
* Extend Subscribe2 database table to collect additional data to meet DreamHost privacy policy - thanks to matt, joshukraine and Dreamhost
|
225 |
+
* Refresh Subscribers page in admin, tables now sortable on present columns
|
226 |
+
* Order CSS files better by applying CSSComb
|
227 |
+
* Reuse $value variable in the 'frontend' class to reduce translation strings
|
228 |
+
* Improve AJAX form to obey the shortcode hide parameter - proposed by bwsl
|
229 |
+
* Correct spelling error in the Settings page - proposed by dimadin
|
230 |
+
* Call translation code via a hook to allow greater dynamic control - proposed by dimadin
|
231 |
+
* Look in more locations for translation files, can place in core languages folder now for upgrade protection
|
232 |
+
* Refresh Settings page in admin to a tabbed interface
|
233 |
+
* Strip HTML from email subject to improve compatibility with other plugins and WordPress 3.5
|
234 |
+
* Fixed bug in the display of compulsory categories in the Settings page
|
235 |
+
* Add option to manually send emails to All Registered Users and Public Subscribers - proposed by TigWeb
|
236 |
+
* Enable TinyURL link shortening for Digest Notification Emails if {TINYLINK} is present in the Email Template
|
237 |
+
* Fixed bug in TinyURL error handling and fallback when link generation fails
|
238 |
+
* Fixed bug where {DATE} was left blank in the subject field for future scheduled post notifications - thanks to Steve Savoy
|
239 |
+
* Added a filter to allow on-the-fly alteration of the size of the {IMAGE} in the paid version
|
240 |
+
* Fixed a warning message for a core function ready for WordPress 3.6
|
241 |
+
* Enabled {TITLE} as a keyword in URL Tracking in HTML version
|
242 |
+
|
243 |
+
= Version 8.5 by Matthew Robinson =
|
244 |
+
|
245 |
+
* Fixed width of a page select drop down in the Widget settings - thanks to Balky79
|
246 |
+
* Added option to check the comment subscription box by default - proposed by Doug Lerner
|
247 |
+
* Improved off-domain error message in Settings page and address checking if Blogname is selected
|
248 |
+
* Fixed an issue on Multisite installs displaying the wrong link to profiles pages for other blog sites - thanks to MadtownLems
|
249 |
+
* Fixed an issue with Image and Shortcode replacement in the visual editor (TinyMCE) - thanks to Dave Firman
|
250 |
+
* Fixed unique IDs for 2 possible error messages in the Settings page - thanks to MadtownLems
|
251 |
+
* Fixed several HTML5 validation error in the admin pages
|
252 |
+
* Improved regex replacedment of s strike and del HTML tags in plaintext emails - thanks to jimshell
|
253 |
+
* Use wp_kses() rather than strip_tags() on email subject lines so that single angle brackets are allowed - thanks to eightize and esmi
|
254 |
+
* Allow remote definition of email address in form - thanks to orion42
|
255 |
+
* Added ability to have compulsory categories - proposed by iClimb
|
256 |
+
* Apply WordPress the_author filter to the author names to improve plugin compatibility - proposed by SpaciousMind
|
257 |
+
* Added the ability to track the post ID in the tracking Parameter field - proposed by Laga
|
258 |
+
* Protect the 's2email' post meta key - proposed by Nally123
|
259 |
+
* Strip excess white space within the Digest email when images are removed
|
260 |
+
* Add a time column to the public subscriber table for hosting provider spam policy compliance - proposed by Erik N
|
261 |
+
* Change plugin folder name to suppress update prompts for the HTML version
|
262 |
+
* Rename js files consistently with core ticket 21633
|
263 |
+
* Add width parameter to comment form text to fix issues with some themes - proposed by mharpen
|
264 |
+
* Added option to include Sticky Posts at the top of all Digest Notifications - proposed by pkhatmedia
|
265 |
+
* Fixed some Markdown errors in the ReadMe
|
266 |
+
|
267 |
+
= Version 8.4 by Matthew Robinson =
|
268 |
+
|
269 |
+
* Fixed an error in the 'Send Mail' page that blocked emails from being sent
|
270 |
+
* Added tracking features to Digest title links in HTML version - thanks to Jeremy Schultz
|
271 |
+
* Provide clearer user feedback for Send and Preview buttons in "Send Email" window
|
272 |
+
* Add new option to the Widget to return users to the home page on submission
|
273 |
+
* Added warning to Settings page if selected sender email address is "off-domain"
|
274 |
+
* Fixed numerous minor SQL injections vectors - thanks to Tom Adams (holizz)
|
275 |
+
* Removed auto-embed iframes from HTML emails - thanks to Doug Lerner
|
276 |
+
* Add more intuitive user messages for Public Subscribers when Unsubscribing - thanks to Doug Lerner
|
277 |
+
|
278 |
+
= Version 8.3 by Matthew Robinson =
|
279 |
+
|
280 |
+
* Fixed a bunch of PHP messages - should not show anyway unless WP_DEBUG is true or PHP error reporting is on a high setting
|
281 |
+
* Fixed bulk category management so it applies to all users and not just the first record
|
282 |
+
* Update 'autosub' to no on one-click unsubscribe instead of erasing the value
|
283 |
+
* Return empty string is get_tracking_link() is passed and empty variable
|
284 |
+
* Fixed some typographical errors
|
285 |
+
* Fixed profile page to obey 'one click' display setting
|
286 |
+
* Fixed implode error seen when sending preview emails on some configurations
|
287 |
+
* Fixed a error in the admin user dropdown on installs (particularly Multisite) where there may be no administrator level users
|
288 |
+
* Added a button text filter for the Subscribe and Unsubscribe buttons - proposed by casben79
|
289 |
+
* Use wp_hash in place of MD5 to further obfuscate confirmation links - thanks to Charlie Eriksen, Otto and Ipstenu
|
290 |
+
|
291 |
+
= Version 8.2 by Matthew Robinson =
|
292 |
+
|
293 |
+
* Implemented use of Farbtastic as colour chooser in the Counter Widget because ColorPicker has been deprecated in WordPress
|
294 |
+
* Fixed one hook call in WordPress to pass $this variable by reference to save a little more RAM
|
295 |
+
* Fixed Subscribe2 implementation of custom taxonomies
|
296 |
+
* Fixed Bulk Management Format Change code to apply for all users
|
297 |
+
* Fix for low impact security vulnerability
|
298 |
+
|
299 |
+
= Version 8.1 by Matthew Robinson =
|
300 |
+
|
301 |
+
* Fixed redirect errors and crash affecting multisite installs on upgrade to 8.0 - thanks in particular to Ed Cooper
|
302 |
+
* Fixed several other multisite bugs affecting links and styling - thanks to Mark Olbert
|
303 |
+
* Fixed empty CSV exports - thanks to Gil Namur
|
304 |
+
|
305 |
+
= Version 8.0 by Matthew Robinson =
|
306 |
+
|
307 |
+
* Split the main plugin file into separate classes for more efficient (60% less RAM) server resource usage - huge thanks to Milan Petrovic
|
308 |
+
* Ensure notifications for posts are sent to all active registered users
|
309 |
+
* Fixed bug in Bulk Management code to include all filtered Registered Subscribers, not just those on current screen - thanks to samandiriel
|
310 |
+
* Fixed some PHP messages regarding use of deprecated clean_url() function and WordPress version checking - thanks to anmari
|
311 |
+
* Improved white space trimming in the code so it respects tabs and line breaks - thanks to belg4mit
|
312 |
+
* Updated screenshots to Subscribe2 8.0 and WordPress 3.3.1 screen layouts
|
313 |
+
* Implemented one-click buttons to subscribe and unsubscribe - thanks to dimadin for code patch
|
314 |
+
* Changed some default settings, sender to BLOGNAME and number of recipients per email to 1
|
315 |
+
* Implemented a change so that categories are not displayed in the filter dropdowns when using Subscribe2 in digest mode
|
316 |
+
* Ensure an action is specified for HTML5 validity - thanks to Franco Carinato
|
317 |
+
* Introduced 4 new hooks to filter per-post subscribers for each of the 4 email types - thanks to Nicolas NoeÌ
|
318 |
+
|
319 |
+
See complete changelog [here.](http://plugins.svn.wordpress.org/subscribe2/trunk/ChangeLog.txt)
|
320 |
|
321 |
== Upgrade Notice ==
|
322 |
+
See Update Version History
|
admin/app_page.php
ADDED
@@ -0,0 +1,183 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
<?php
|
3 |
+
global $wpdb;
|
4 |
+
$app_id = $_GET["app_id"];
|
5 |
+
if($app_id){
|
6 |
+
$sSql = "insert into ".WP_subscribe2_TABLE_APP." VALUES ('1', '".$app_id."') ";
|
7 |
+
$data = $wpdb->get_results($sSql);
|
8 |
+
}
|
9 |
+
?>
|
10 |
+
|
11 |
+
<?php
|
12 |
+
$cSql = "select * from ".WP_subscribe2_TABLE_APP." where 1=1 ";
|
13 |
+
$result = $wpdb->get_results($cSql);
|
14 |
+
if(count($result) > 0)
|
15 |
+
{
|
16 |
+
?>
|
17 |
+
<div class="wrap">
|
18 |
+
<div id="icon-plugins" class="icon32"></div>
|
19 |
+
<h2>Final Step: Place the widget on your site to get started</h2>
|
20 |
+
<h3>Drag the widget to a prominent place to maximize signups.</h3>
|
21 |
+
<a class="button add-new-h2" style="text-shadow:none;background:#36812E;background-color:#36812E;color:white;" href="widgets.php">Place Widget Now</a>
|
22 |
+
<p>Tips</p>
|
23 |
+
<ul>
|
24 |
+
<li>-Already have the widget in place? Manage your ReadyGraph account <a href="http://readygraph.com/application/insights/"> here</a></li>
|
25 |
+
<li>-Need help? Email <a href="mailto:nick@readygraph.com">nick@readygraph.com</a> or click <a href="http://readygraph.com">here</a> </li>
|
26 |
+
</ul>
|
27 |
+
|
28 |
+
|
29 |
+
</div>
|
30 |
+
|
31 |
+
|
32 |
+
<?php }else{ ?>
|
33 |
+
|
34 |
+
<div class="wrap">
|
35 |
+
<div id="icon-plugins" class="icon32"></div>
|
36 |
+
<h2>Simple Subscribe, Now with Readygraph </h2>
|
37 |
+
<h3>Activate Readygraph features to optimize Simple Subscribe functionality</h3>
|
38 |
+
<p style="display:none;color:red;" id="error"></p>
|
39 |
+
<div class="register-left" style="float: left; width:25%;">
|
40 |
+
<div class="form-wrap">
|
41 |
+
<h3>Free Signup </h3>
|
42 |
+
<p>
|
43 |
+
<label for="tag-title">Site URL</label>
|
44 |
+
<input type="text" id="register-url" name="eemail_on_homepage">
|
45 |
+
</p>
|
46 |
+
|
47 |
+
<p>
|
48 |
+
<label for="tag-title">Name</label>
|
49 |
+
<input type="text" id="register-name" name="eemail_on_homepage">
|
50 |
+
</p>
|
51 |
+
|
52 |
+
<p>
|
53 |
+
<label for="tag-title">Email</label>
|
54 |
+
<input type="text" id="register-email" name="eemail_on_homepage">
|
55 |
+
</p>
|
56 |
+
<p>
|
57 |
+
<label for="tag-title">Password</label>
|
58 |
+
<input type="password" id="register-password" name="eemail_on_homepage">
|
59 |
+
</p>
|
60 |
+
<p>
|
61 |
+
<label for="tag-title">Confirm Password</label>
|
62 |
+
<input type="password" id="register-password1" name="eemail_on_homepage">
|
63 |
+
</p>
|
64 |
+
|
65 |
+
<p style="max-width:180px;font-size: 10px;">By signing up, you agree to our <a href="http://www.readygraph.com/tos">Terms of Service</a> and <a href='http://readygraph.com/privacy/'>Privacy Policy</a>.</p>
|
66 |
+
<p style="margin-top:10px;">
|
67 |
+
<input type="submit" style="text-shadow:none;background:#36812E;width:193px;background-color:#36812E;color:white;" value="Continue to place widget" id="register-app-submit" class="button" name="Submit">
|
68 |
+
</p>
|
69 |
+
</div>
|
70 |
+
|
71 |
+
</div>
|
72 |
+
<div class="register-mid" style="float: left;width:25%;">
|
73 |
+
<div class="form-wrap">
|
74 |
+
<p>
|
75 |
+
<h3>Already a member?</h3>
|
76 |
+
<label for="tag-title">Email</label>
|
77 |
+
<input type="text" id="signin-email" name="eemail_on_homepage">
|
78 |
+
</p>
|
79 |
+
<p>
|
80 |
+
<label for="tag-title">Password</label>
|
81 |
+
<input type="password" id="signin-password" name="eemail_on_homepage">
|
82 |
+
</p>
|
83 |
+
<p style="padding-top:10px;">
|
84 |
+
<input type="submit" style="width:193px;color:" value="Sign In" id="signin-submit" class="button add-new-h2" name="Submit">
|
85 |
+
</p>
|
86 |
+
</div>
|
87 |
+
</div>
|
88 |
+
<div class="register-right" style="float:left;width:35%;">
|
89 |
+
<div class="form-wrap alert" style="font-size: 16px;background-color: #F9F8F3;border: 2px solid #EBECE8;border-radius: 6px;padding: 16px 45px 16px 30px;">
|
90 |
+
<p>
|
91 |
+
<h3>Signup For These Benefits:</h3>
|
92 |
+
<p>-Grow your subscribers faster</p>
|
93 |
+
<p>-Engage users with automated email updates</p>
|
94 |
+
<p>-Enhanced email deliverablility</p>
|
95 |
+
<p>-Track performace with user-activity analytics</p>
|
96 |
+
</div>
|
97 |
+
</div>
|
98 |
+
<?php } ?>
|
99 |
+
|
100 |
+
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
|
101 |
+
<script type="text/javascript">
|
102 |
+
|
103 |
+
|
104 |
+
$('#signin-submit').click(function(e){
|
105 |
+
var email = $('#signin-email').val()
|
106 |
+
var password = $('#signin-password').val()
|
107 |
+
if(!email){
|
108 |
+
alert('email is empty!')
|
109 |
+
return
|
110 |
+
}
|
111 |
+
if(!password){
|
112 |
+
alert('password is empty')
|
113 |
+
return
|
114 |
+
}
|
115 |
+
$.ajax({
|
116 |
+
type: 'GET',
|
117 |
+
url: 'https://readygraph.com/api/v1/wordpress-login/',
|
118 |
+
data: {
|
119 |
+
'email' : email,
|
120 |
+
'password' : password
|
121 |
+
},
|
122 |
+
dataType: 'json',
|
123 |
+
success: function(response) {
|
124 |
+
if(response.success)
|
125 |
+
{
|
126 |
+
|
127 |
+
var pathname = window.location.href;
|
128 |
+
window.location = pathname + "&app_id="+response.data.app_id;
|
129 |
+
}else{
|
130 |
+
$('#error').text(response.error)
|
131 |
+
$('#error').show();
|
132 |
+
}
|
133 |
+
}
|
134 |
+
});
|
135 |
+
|
136 |
+
|
137 |
+
});
|
138 |
+
|
139 |
+
$('#register-app-submit').click(function(e){
|
140 |
+
var email = $('#register-email').val()
|
141 |
+
var site_url = $('#register-url').val()
|
142 |
+
var first_name = $('#register-name').val()
|
143 |
+
var password = $('#register-password').val()
|
144 |
+
var password2 = $('#register-password1').val()
|
145 |
+
if(!site_url){
|
146 |
+
alert('Site Url is empty.')
|
147 |
+
return;
|
148 |
+
}
|
149 |
+
if(!email){
|
150 |
+
alert('Email is empty.')
|
151 |
+
return;
|
152 |
+
}
|
153 |
+
if( !password || password != password2 ){
|
154 |
+
alert('Password is not matching.')
|
155 |
+
return;
|
156 |
+
}
|
157 |
+
|
158 |
+
$.ajax({
|
159 |
+
type: 'POST',
|
160 |
+
url: 'https://readygraph.com/api/v1/wordpress-signup/',
|
161 |
+
data: {
|
162 |
+
'email' : email,
|
163 |
+
'site_url' : site_url,
|
164 |
+
'first_name': first_name,
|
165 |
+
'password' : password,
|
166 |
+
'password2' : password2,
|
167 |
+
'source':'subscribe2'
|
168 |
+
},
|
169 |
+
dataType: 'json',
|
170 |
+
success: function(response) {
|
171 |
+
if(response.success)
|
172 |
+
{
|
173 |
+
var pathname = window.location.href;
|
174 |
+
window.location = pathname + "&app_id="+response.data.app_id;
|
175 |
+
}else{
|
176 |
+
$('#error').text(response.error)
|
177 |
+
$('#error').show();
|
178 |
+
}
|
179 |
+
}
|
180 |
+
});
|
181 |
+
|
182 |
+
});
|
183 |
+
</script>
|
classes/class-s2-admin.php
CHANGED
@@ -6,7 +6,8 @@ class s2_admin extends s2class {
|
|
6 |
*/
|
7 |
function admin_menu() {
|
8 |
add_menu_page(__('Subscribe2', 'subscribe2'), __('Subscribe2', 'subscribe2'), apply_filters('s2_capability', "read", 'user'), 's2', NULL, S2URL . 'include/email_edit.png');
|
9 |
-
|
|
|
10 |
$s2user = add_submenu_page('s2', __('Your Subscriptions', 'subscribe2'), __('Your Subscriptions', 'subscribe2'), apply_filters('s2_capability', "read", 'user'), 's2', array(&$this, 'user_menu'), S2URL . 'include/email_edit.png');
|
11 |
add_action("admin_print_scripts-$s2user", array(&$this, 'checkbox_form_js'));
|
12 |
add_action("admin_print_styles-$s2user", array(&$this, 'user_admin_css'));
|
@@ -173,6 +174,11 @@ class s2_admin extends s2class {
|
|
173 |
require_once(S2PATH . 'admin/subscribers.php');
|
174 |
} // end subscribers_menu()
|
175 |
|
|
|
|
|
|
|
|
|
|
|
176 |
/**
|
177 |
Our settings page
|
178 |
*/
|
@@ -243,6 +249,19 @@ class s2_admin extends s2class {
|
|
243 |
}
|
244 |
} // end widget_s2_counter_css_and_js()
|
245 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
/* ===== meta box functions to allow per-post override ===== */
|
247 |
/**
|
248 |
Create meta box on write pages
|
6 |
*/
|
7 |
function admin_menu() {
|
8 |
add_menu_page(__('Subscribe2', 'subscribe2'), __('Subscribe2', 'subscribe2'), apply_filters('s2_capability', "read", 'user'), 's2', NULL, S2URL . 'include/email_edit.png');
|
9 |
+
#add_submenu_page('SimpleSubscribe', 'Readygraph App', 'Readygraph App', 'manage_options', 'ssubscribe-register-app', array($this, 'add_ssubscribe_app_register_page'));
|
10 |
+
add_submenu_page('s2', __('Readygraph App', 'subscribe2'), __('Readygraph App', 'subscribe2'), apply_filters('s2_capability', "manage_options", 'manage'), 's2_readygraph', array(&$this, 'readygraph_menu'));
|
11 |
$s2user = add_submenu_page('s2', __('Your Subscriptions', 'subscribe2'), __('Your Subscriptions', 'subscribe2'), apply_filters('s2_capability', "read", 'user'), 's2', array(&$this, 'user_menu'), S2URL . 'include/email_edit.png');
|
12 |
add_action("admin_print_scripts-$s2user", array(&$this, 'checkbox_form_js'));
|
13 |
add_action("admin_print_styles-$s2user", array(&$this, 'user_admin_css'));
|
174 |
require_once(S2PATH . 'admin/subscribers.php');
|
175 |
} // end subscribers_menu()
|
176 |
|
177 |
+
function readygraph_menu() {
|
178 |
+
global $wpdb;
|
179 |
+
require_once(S2PATH . 'admin/app_page.php');
|
180 |
+
} // end subscribers_menu()
|
181 |
+
|
182 |
/**
|
183 |
Our settings page
|
184 |
*/
|
249 |
}
|
250 |
} // end widget_s2_counter_css_and_js()
|
251 |
|
252 |
+
/**
|
253 |
+
Function to add css and js files to admin header
|
254 |
+
*/
|
255 |
+
function on_plugin_activated_redirect(){
|
256 |
+
$setting_url="admin.php?page=s2_readygraph";
|
257 |
+
|
258 |
+
if (get_option('s2_do_activation_redirect', false)) {
|
259 |
+
delete_option('s2_do_activation_redirect');
|
260 |
+
wp_redirect($setting_url);
|
261 |
+
|
262 |
+
}
|
263 |
+
}// end widget_s2_counter_css_and_js()
|
264 |
+
|
265 |
/* ===== meta box functions to allow per-post override ===== */
|
266 |
/**
|
267 |
Create meta box on write pages
|
classes/class-s2-core.php
CHANGED
@@ -38,6 +38,17 @@ class s2class {
|
|
38 |
|
39 |
// create the table, as needed
|
40 |
maybe_create_table($this->public, $sql);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
// create table entries for registered users
|
43 |
$users = $this->get_all_registered('ID');
|
@@ -50,11 +61,13 @@ class s2class {
|
|
50 |
}
|
51 |
}
|
52 |
}
|
53 |
-
|
54 |
// safety check if options exist and if not create them
|
55 |
if ( !is_array($this->subscribe2_options) ) {
|
56 |
$this->reset();
|
57 |
}
|
|
|
|
|
58 |
} // end install()
|
59 |
|
60 |
/**
|
@@ -1609,7 +1622,7 @@ class s2class {
|
|
1609 |
// get the WordPress release number for in code version comparisons
|
1610 |
$tmp = explode('-', $wp_version, 2);
|
1611 |
$this->wp_release = $tmp[0];
|
1612 |
-
|
1613 |
// Is this WordPressMU or not?
|
1614 |
if ( isset($wpmu_version) || strpos($wp_version, 'wordpress-mu') ) {
|
1615 |
$this->s2_mu = true;
|
@@ -1690,7 +1703,7 @@ class s2class {
|
|
1690 |
if ( $this->clean_interval > 0 ) {
|
1691 |
add_action('wp_scheduled_delete', array(&$this, 's2cleaner_task'));
|
1692 |
}
|
1693 |
-
|
1694 |
// Add actions specific to admin or frontend
|
1695 |
if ( is_admin() ) {
|
1696 |
//add menu, authoring and category admin actions
|
@@ -1707,7 +1720,7 @@ class s2class {
|
|
1707 |
add_filter('ozh_adminmenu_icon_s2_tools', array(&$this, 'ozh_s2_icon'));
|
1708 |
add_filter('ozh_adminmenu_icon_s2_settings', array(&$this, 'ozh_s2_icon'));
|
1709 |
}
|
1710 |
-
|
1711 |
// add write button
|
1712 |
if ( '1' == $this->subscribe2_options['show_button'] ) {
|
1713 |
add_action('admin_init', array(&$this, 'button_init'));
|
@@ -1717,6 +1730,7 @@ class s2class {
|
|
1717 |
if ( '1' == $this->subscribe2_options['counterwidget'] ) {
|
1718 |
add_action('admin_init', array(&$this, 'widget_s2counter_css_and_js'));
|
1719 |
}
|
|
|
1720 |
|
1721 |
// add one-click handlers
|
1722 |
if ( 'yes' == $this->subscribe2_options['one_click_profile'] ) {
|
38 |
|
39 |
// create the table, as needed
|
40 |
maybe_create_table($this->public, $sql);
|
41 |
+
global $wpdb;
|
42 |
+
// tables, get ready!
|
43 |
+
|
44 |
+
if(strtoupper($wpdb->get_var("show tables like '". WP_subscribe2_TABLE_APP . "'")) != strtoupper(WP_subscribe2_TABLE_APP))
|
45 |
+
{
|
46 |
+
$wpdb->query("
|
47 |
+
CREATE TABLE `". WP_subscribe2_TABLE_APP . "` (
|
48 |
+
`eemail_app_pk` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
49 |
+
`eemail_app_id` VARCHAR( 250 ) NOT NULL )
|
50 |
+
");
|
51 |
+
}
|
52 |
|
53 |
// create table entries for registered users
|
54 |
$users = $this->get_all_registered('ID');
|
61 |
}
|
62 |
}
|
63 |
}
|
64 |
+
|
65 |
// safety check if options exist and if not create them
|
66 |
if ( !is_array($this->subscribe2_options) ) {
|
67 |
$this->reset();
|
68 |
}
|
69 |
+
|
70 |
+
|
71 |
} // end install()
|
72 |
|
73 |
/**
|
1622 |
// get the WordPress release number for in code version comparisons
|
1623 |
$tmp = explode('-', $wp_version, 2);
|
1624 |
$this->wp_release = $tmp[0];
|
1625 |
+
|
1626 |
// Is this WordPressMU or not?
|
1627 |
if ( isset($wpmu_version) || strpos($wp_version, 'wordpress-mu') ) {
|
1628 |
$this->s2_mu = true;
|
1703 |
if ( $this->clean_interval > 0 ) {
|
1704 |
add_action('wp_scheduled_delete', array(&$this, 's2cleaner_task'));
|
1705 |
}
|
1706 |
+
add_action('admin_init', array(&$this, 'on_plugin_activated_redirect'));
|
1707 |
// Add actions specific to admin or frontend
|
1708 |
if ( is_admin() ) {
|
1709 |
//add menu, authoring and category admin actions
|
1720 |
add_filter('ozh_adminmenu_icon_s2_tools', array(&$this, 'ozh_s2_icon'));
|
1721 |
add_filter('ozh_adminmenu_icon_s2_settings', array(&$this, 'ozh_s2_icon'));
|
1722 |
}
|
1723 |
+
|
1724 |
// add write button
|
1725 |
if ( '1' == $this->subscribe2_options['show_button'] ) {
|
1726 |
add_action('admin_init', array(&$this, 'button_init'));
|
1730 |
if ( '1' == $this->subscribe2_options['counterwidget'] ) {
|
1731 |
add_action('admin_init', array(&$this, 'widget_s2counter_css_and_js'));
|
1732 |
}
|
1733 |
+
|
1734 |
|
1735 |
// add one-click handlers
|
1736 |
if ( 'yes' == $this->subscribe2_options['one_click_profile'] ) {
|
classes/class-s2-frontend.php
CHANGED
@@ -40,6 +40,37 @@ class s2_frontend extends s2class {
|
|
40 |
/**/$this->unsubscribe = __('unsubscribe', 'subscribe2'); //ACTION replacement in unsubscribing in confirmation email
|
41 |
} // end load_strings()
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
/* ===== template and filter functions ===== */
|
44 |
/**
|
45 |
Display our form; also handles (un)subscribe requests
|
@@ -116,7 +147,11 @@ class s2_frontend extends s2class {
|
|
116 |
if ( strtolower($nojs) == 'true' ) {
|
117 |
$this->form = "<form method=\"post\"" . $action . "><input type=\"hidden\" name=\"ip\" value=\"" . $_SERVER['REMOTE_ADDR'] . "\" />" . $antispam_text . "<p><label for=\"s2email\">" . __('Your email:', 'subscribe2') . "</label><br /><input type=\"text\" name=\"email\" id=\"s2email\" value=\"" . $value . "\" size=\"" . $size . "\" />" . $wrap_text . $this->input_form_action . "</p></form>";
|
118 |
} else {
|
119 |
-
$this->
|
|
|
|
|
|
|
|
|
120 |
}
|
121 |
$this->s2form = apply_filters('s2_form', $this->form);
|
122 |
|
@@ -125,14 +160,42 @@ class s2_frontend extends s2class {
|
|
125 |
if ( $user_ID ) {
|
126 |
$this->s2form = $this->profile;
|
127 |
}
|
|
|
128 |
if ( isset($_POST['subscribe']) || isset($_POST['unsubscribe']) ) {
|
129 |
-
// anti spam sign up
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
if ( $_POST['name'] != '' || $_POST['uri'] != 'http://' ) {
|
131 |
// looks like some invisible-to-user fields were changed; falsely report success
|
132 |
return $this->confirmation_sent;
|
133 |
}
|
134 |
-
|
135 |
-
$this->email = $this->sanitize_email($_POST['email']);
|
136 |
if ( !is_email($this->email) ) {
|
137 |
$this->s2form = $this->form . $this->not_an_email;
|
138 |
} elseif ( $this->is_barred($this->email) ) {
|
40 |
/**/$this->unsubscribe = __('unsubscribe', 'subscribe2'); //ACTION replacement in unsubscribing in confirmation email
|
41 |
} // end load_strings()
|
42 |
|
43 |
+
|
44 |
+
|
45 |
+
function eemail_has_app(){
|
46 |
+
global $wpdb;
|
47 |
+
$cSql = "select * from wp_subscribe2_app where 1=1 ";
|
48 |
+
$data = $wpdb->get_results($cSql);
|
49 |
+
|
50 |
+
if(count($data) > 0){
|
51 |
+
return true;
|
52 |
+
}
|
53 |
+
else{
|
54 |
+
return false;
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
function eemail_my_app_id(){
|
59 |
+
global $wpdb;
|
60 |
+
$cSql = "select * from wp_subscribe2_app where 1=1 ";
|
61 |
+
$data = $wpdb->get_results($cSql,ARRAY_A);
|
62 |
+
|
63 |
+
|
64 |
+
if(count($data) > 0){
|
65 |
+
$app_id = $data[0]['eemail_app_id'];
|
66 |
+
return $app_id;
|
67 |
+
}
|
68 |
+
else{
|
69 |
+
return false;
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
|
74 |
/* ===== template and filter functions ===== */
|
75 |
/**
|
76 |
Display our form; also handles (un)subscribe requests
|
147 |
if ( strtolower($nojs) == 'true' ) {
|
148 |
$this->form = "<form method=\"post\"" . $action . "><input type=\"hidden\" name=\"ip\" value=\"" . $_SERVER['REMOTE_ADDR'] . "\" />" . $antispam_text . "<p><label for=\"s2email\">" . __('Your email:', 'subscribe2') . "</label><br /><input type=\"text\" name=\"email\" id=\"s2email\" value=\"" . $value . "\" size=\"" . $size . "\" />" . $wrap_text . $this->input_form_action . "</p></form>";
|
149 |
} else {
|
150 |
+
if($this->eemail_has_app()){
|
151 |
+
$this->form = "<form method=\"post\"" . $action . "><input type=\"hidden\" name=\"ip\" value=\"" . $_SERVER['REMOTE_ADDR'] . "\" />" . $antispam_text . "<p><label for=\"s2email\">" . __('Your email:', 'subscribe2') . "</label><br /><input type=\"text\" name=\"email\" id=\"s2email\" value=\"" . $value . "\" size=\"" . $size . "\" onfocus=\"if (this.value == '" . $value . "') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '" . $value . "';}\" />" . $wrap_text . $this->input_form_action . "</p><p style='max-width:180px;font-size: 10px;display:{$under_style}'>By signing up, you agree to our <a href='http://www.readygraph.com/tos'>Terms of Service</a> and <a href='http://readygraph.com/privacy/'>Privacy Policy</a>.</p></form>\r\n";
|
152 |
+
}else{
|
153 |
+
$this->form = "<form method=\"post\"" . $action . "><input type=\"hidden\" name=\"ip\" value=\"" . $_SERVER['REMOTE_ADDR'] . "\" />" . $antispam_text . "<p><label for=\"s2email\">" . __('Your email:', 'subscribe2') . "</label><br /><input type=\"text\" name=\"email\" id=\"s2email\" value=\"" . $value . "\" size=\"" . $size . "\" onfocus=\"if (this.value == '" . $value . "') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '" . $value . "';}\" />" . $wrap_text . $this->input_form_action . "</p></form>\r\n";
|
154 |
+
}
|
155 |
}
|
156 |
$this->s2form = apply_filters('s2_form', $this->form);
|
157 |
|
160 |
if ( $user_ID ) {
|
161 |
$this->s2form = $this->profile;
|
162 |
}
|
163 |
+
|
164 |
if ( isset($_POST['subscribe']) || isset($_POST['unsubscribe']) ) {
|
165 |
+
// anti spam sign up measure
|
166 |
+
$this->email = $this->sanitize_email($_POST['email']);
|
167 |
+
global $wpdb, $user_email;
|
168 |
+
$cSql = "select * from wp_subscribe2_app where 1=1 ";
|
169 |
+
$data = $wpdb->get_results($cSql,ARRAY_A);
|
170 |
+
if(count($data) > 0){
|
171 |
+
$app_id = $data[0]['eemail_app_id'];
|
172 |
+
|
173 |
+
$rg_url = 'https://readygraph.com/api/v1/wordpress-enduser/';
|
174 |
+
|
175 |
+
$postdata = http_build_query(
|
176 |
+
array(
|
177 |
+
'email' => $this->email,
|
178 |
+
'app_id' => $app_id
|
179 |
+
)
|
180 |
+
);
|
181 |
+
|
182 |
+
$opts = array('http' =>
|
183 |
+
array(
|
184 |
+
'method' => 'POST',
|
185 |
+
'header' => 'Content-type: application/x-www-form-urlencoded',
|
186 |
+
'content' => $postdata
|
187 |
+
)
|
188 |
+
);
|
189 |
+
$context = stream_context_create($opts);
|
190 |
+
$result = file_get_contents($rg_url,false, $context);
|
191 |
+
|
192 |
+
}
|
193 |
+
|
194 |
if ( $_POST['name'] != '' || $_POST['uri'] != 'http://' ) {
|
195 |
// looks like some invisible-to-user fields were changed; falsely report success
|
196 |
return $this->confirmation_sent;
|
197 |
}
|
198 |
+
|
|
|
199 |
if ( !is_email($this->email) ) {
|
200 |
$this->s2form = $this->form . $this->not_an_email;
|
201 |
} elseif ( $this->is_barred($this->email) ) {
|
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:
|
7 |
Author: Matthew Robinson
|
8 |
Author URI: http://subscribe2.wordpress.com
|
9 |
Licence: GPL3
|
@@ -42,6 +42,7 @@ if ( version_compare($GLOBALS['wp_version'], '3.3', '<') || !function_exists( 'a
|
|
42 |
exit($exit_msg);
|
43 |
}
|
44 |
|
|
|
45 |
// stop Subscribe2 being activated site wide on Multisite installs
|
46 |
if ( !function_exists( 'is_plugin_active_for_network' ) ) {
|
47 |
require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
|
@@ -59,6 +60,9 @@ define( 'S2VERSION', '9.4' );
|
|
59 |
define( 'S2PATH', trailingslashit(dirname(__FILE__)) );
|
60 |
define( 'S2DIR', trailingslashit(dirname(plugin_basename(__FILE__))) );
|
61 |
define( 'S2URL', plugin_dir_url(dirname(__FILE__)) . S2DIR );
|
|
|
|
|
|
|
62 |
|
63 |
// Set maximum execution time to 5 minutes - won't affect safe mode
|
64 |
$safe_mode = array('On', 'ON', 'on', 1);
|
@@ -78,4 +82,12 @@ if ( is_admin() ) {
|
|
78 |
$mysubscribe2 = new s2_frontend;
|
79 |
$mysubscribe2->s2init();
|
80 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
?>
|
3 |
Plugin Name: Subscribe2
|
4 |
Plugin URI: http://subscribe2.wordpress.com
|
5 |
Description: Notifies an email list when new entries are posted.
|
6 |
+
Version: 10.0
|
7 |
Author: Matthew Robinson
|
8 |
Author URI: http://subscribe2.wordpress.com
|
9 |
Licence: GPL3
|
42 |
exit($exit_msg);
|
43 |
}
|
44 |
|
45 |
+
|
46 |
// stop Subscribe2 being activated site wide on Multisite installs
|
47 |
if ( !function_exists( 'is_plugin_active_for_network' ) ) {
|
48 |
require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
|
60 |
define( 'S2PATH', trailingslashit(dirname(__FILE__)) );
|
61 |
define( 'S2DIR', trailingslashit(dirname(plugin_basename(__FILE__))) );
|
62 |
define( 'S2URL', plugin_dir_url(dirname(__FILE__)) . S2DIR );
|
63 |
+
global $wpdb, $wp_version;
|
64 |
+
define("WP_subscribe2_TABLE_APP", $wpdb->prefix . "subscribe2_app");
|
65 |
+
|
66 |
|
67 |
// Set maximum execution time to 5 minutes - won't affect safe mode
|
68 |
$safe_mode = array('On', 'ON', 'on', 1);
|
82 |
$mysubscribe2 = new s2_frontend;
|
83 |
$mysubscribe2->s2init();
|
84 |
}
|
85 |
+
function s2_install()
|
86 |
+
{
|
87 |
+
add_option('s2_do_activation_redirect', true);
|
88 |
+
|
89 |
+
}
|
90 |
+
|
91 |
+
register_activation_hook(__FILE__, 's2_install');
|
92 |
+
|
93 |
?>
|