MailPoet Newsletters (New) - Version 3.0.0-beta.15

Version Description

  • 2017-01-24 =
  • Fixed: plugin no longer throws a fatal exception error on (prehistoric :)) hosts running PHP <5.3. Thanks Otto & jtm12!;
  • Fixed: users who are not subscribed to any list can be filtered in the admin panel;
  • Fixed: newsletters' preview links can now be publicly shared.
Download this release

Release Info

Developer wysija
Plugin Icon 128x128 MailPoet Newsletters (New)
Version 3.0.0-beta.15
Comparing to
See all releases

Code changes from version 3.0.0-beta.14 to 3.0.0-beta.15

Files changed (204) hide show
  1. assets/js/admin.js +1 -1
  2. assets/js/form_editor.js +6 -4
  3. assets/js/lib/mailpoet_shortcodes/index.php +0 -0
  4. assets/js/lib/mailpoet_shortcodes/plugin.js +0 -0
  5. assets/js/lib/mailpoet_shortcodes/plugin.min.js +0 -0
  6. assets/js/lib/tinymce/bower.json +0 -0
  7. assets/js/lib/tinymce/changelog.txt +0 -0
  8. assets/js/lib/tinymce/composer.json +0 -0
  9. assets/js/lib/tinymce/index.php +0 -0
  10. assets/js/lib/tinymce/jquery.tinymce.js +0 -0
  11. assets/js/lib/tinymce/jquery.tinymce.min.js +0 -0
  12. assets/js/lib/tinymce/license.txt +0 -0
  13. assets/js/lib/tinymce/plugins/advlist/index.php +0 -0
  14. assets/js/lib/tinymce/plugins/advlist/plugin.js +0 -0
  15. assets/js/lib/tinymce/plugins/advlist/plugin.min.js +0 -0
  16. assets/js/lib/tinymce/plugins/anchor/index.php +0 -0
  17. assets/js/lib/tinymce/plugins/anchor/plugin.js +0 -0
  18. assets/js/lib/tinymce/plugins/anchor/plugin.min.js +0 -0
  19. assets/js/lib/tinymce/plugins/autolink/index.php +0 -0
  20. assets/js/lib/tinymce/plugins/autolink/plugin.js +0 -0
  21. assets/js/lib/tinymce/plugins/autolink/plugin.min.js +0 -0
  22. assets/js/lib/tinymce/plugins/autoresize/index.php +0 -0
  23. assets/js/lib/tinymce/plugins/autoresize/plugin.js +0 -0
  24. assets/js/lib/tinymce/plugins/autoresize/plugin.min.js +0 -0
  25. assets/js/lib/tinymce/plugins/autosave/index.php +0 -0
  26. assets/js/lib/tinymce/plugins/autosave/plugin.js +0 -0
  27. assets/js/lib/tinymce/plugins/autosave/plugin.min.js +0 -0
  28. assets/js/lib/tinymce/plugins/bbcode/index.php +0 -0
  29. assets/js/lib/tinymce/plugins/bbcode/plugin.js +0 -0
  30. assets/js/lib/tinymce/plugins/bbcode/plugin.min.js +0 -0
  31. assets/js/lib/tinymce/plugins/charmap/index.php +0 -0
  32. assets/js/lib/tinymce/plugins/charmap/plugin.js +0 -0
  33. assets/js/lib/tinymce/plugins/charmap/plugin.min.js +0 -0
  34. assets/js/lib/tinymce/plugins/code/index.php +0 -0
  35. assets/js/lib/tinymce/plugins/code/plugin.js +0 -0
  36. assets/js/lib/tinymce/plugins/code/plugin.min.js +0 -0
  37. assets/js/lib/tinymce/plugins/codesample/css/index.php +0 -0
  38. assets/js/lib/tinymce/plugins/codesample/css/prism.css +0 -0
  39. assets/js/lib/tinymce/plugins/codesample/index.php +0 -0
  40. assets/js/lib/tinymce/plugins/codesample/plugin.js +0 -0
  41. assets/js/lib/tinymce/plugins/codesample/plugin.min.js +0 -0
  42. assets/js/lib/tinymce/plugins/colorpicker/index.php +0 -0
  43. assets/js/lib/tinymce/plugins/colorpicker/plugin.js +0 -0
  44. assets/js/lib/tinymce/plugins/colorpicker/plugin.min.js +0 -0
  45. assets/js/lib/tinymce/plugins/contextmenu/index.php +0 -0
  46. assets/js/lib/tinymce/plugins/contextmenu/plugin.js +0 -0
  47. assets/js/lib/tinymce/plugins/contextmenu/plugin.min.js +0 -0
  48. assets/js/lib/tinymce/plugins/directionality/index.php +0 -0
  49. assets/js/lib/tinymce/plugins/directionality/plugin.js +0 -0
  50. assets/js/lib/tinymce/plugins/directionality/plugin.min.js +0 -0
  51. assets/js/lib/tinymce/plugins/emoticons/img/index.php +0 -0
  52. assets/js/lib/tinymce/plugins/emoticons/img/smiley-cool.gif +0 -0
  53. assets/js/lib/tinymce/plugins/emoticons/img/smiley-cry.gif +0 -0
  54. assets/js/lib/tinymce/plugins/emoticons/img/smiley-embarassed.gif +0 -0
  55. assets/js/lib/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif +0 -0
  56. assets/js/lib/tinymce/plugins/emoticons/img/smiley-frown.gif +0 -0
  57. assets/js/lib/tinymce/plugins/emoticons/img/smiley-innocent.gif +0 -0
  58. assets/js/lib/tinymce/plugins/emoticons/img/smiley-kiss.gif +0 -0
  59. assets/js/lib/tinymce/plugins/emoticons/img/smiley-laughing.gif +0 -0
  60. assets/js/lib/tinymce/plugins/emoticons/img/smiley-money-mouth.gif +0 -0
  61. assets/js/lib/tinymce/plugins/emoticons/img/smiley-sealed.gif +0 -0
  62. assets/js/lib/tinymce/plugins/emoticons/img/smiley-smile.gif +0 -0
  63. assets/js/lib/tinymce/plugins/emoticons/img/smiley-surprised.gif +0 -0
  64. assets/js/lib/tinymce/plugins/emoticons/img/smiley-tongue-out.gif +0 -0
  65. assets/js/lib/tinymce/plugins/emoticons/img/smiley-undecided.gif +0 -0
  66. assets/js/lib/tinymce/plugins/emoticons/img/smiley-wink.gif +0 -0
  67. assets/js/lib/tinymce/plugins/emoticons/img/smiley-yell.gif +0 -0
  68. assets/js/lib/tinymce/plugins/emoticons/index.php +0 -0
  69. assets/js/lib/tinymce/plugins/emoticons/plugin.js +0 -0
  70. assets/js/lib/tinymce/plugins/emoticons/plugin.min.js +0 -0
  71. assets/js/lib/tinymce/plugins/fullpage/index.php +0 -0
  72. assets/js/lib/tinymce/plugins/fullpage/plugin.js +0 -0
  73. assets/js/lib/tinymce/plugins/fullpage/plugin.min.js +0 -0
  74. assets/js/lib/tinymce/plugins/fullscreen/index.php +0 -0
  75. assets/js/lib/tinymce/plugins/fullscreen/plugin.js +0 -0
  76. assets/js/lib/tinymce/plugins/fullscreen/plugin.min.js +0 -0
  77. assets/js/lib/tinymce/plugins/hr/index.php +0 -0
  78. assets/js/lib/tinymce/plugins/hr/plugin.js +0 -0
  79. assets/js/lib/tinymce/plugins/hr/plugin.min.js +0 -0
  80. assets/js/lib/tinymce/plugins/image/index.php +0 -0
  81. assets/js/lib/tinymce/plugins/image/plugin.js +0 -0
  82. assets/js/lib/tinymce/plugins/image/plugin.min.js +0 -0
  83. assets/js/lib/tinymce/plugins/imagetools/index.php +0 -0
  84. assets/js/lib/tinymce/plugins/imagetools/plugin.js +0 -0
  85. assets/js/lib/tinymce/plugins/imagetools/plugin.min.js +0 -0
  86. assets/js/lib/tinymce/plugins/importcss/index.php +0 -0
  87. assets/js/lib/tinymce/plugins/importcss/plugin.js +0 -0
  88. assets/js/lib/tinymce/plugins/importcss/plugin.min.js +0 -0
  89. assets/js/lib/tinymce/plugins/index.php +0 -0
  90. assets/js/lib/tinymce/plugins/insertdatetime/index.php +0 -0
  91. assets/js/lib/tinymce/plugins/insertdatetime/plugin.js +0 -0
  92. assets/js/lib/tinymce/plugins/insertdatetime/plugin.min.js +0 -0
  93. assets/js/lib/tinymce/plugins/layer/index.php +0 -0
  94. assets/js/lib/tinymce/plugins/layer/plugin.js +0 -0
  95. assets/js/lib/tinymce/plugins/layer/plugin.min.js +0 -0
  96. assets/js/lib/tinymce/plugins/legacyoutput/index.php +0 -0
  97. assets/js/lib/tinymce/plugins/legacyoutput/plugin.js +0 -0
  98. assets/js/lib/tinymce/plugins/legacyoutput/plugin.min.js +0 -0
  99. assets/js/lib/tinymce/plugins/link/index.php +0 -0
  100. assets/js/lib/tinymce/plugins/link/plugin.js +0 -0
  101. assets/js/lib/tinymce/plugins/link/plugin.min.js +0 -0
  102. assets/js/lib/tinymce/plugins/lists/index.php +0 -0
  103. assets/js/lib/tinymce/plugins/lists/plugin.js +0 -0
  104. assets/js/lib/tinymce/plugins/lists/plugin.min.js +0 -0
  105. assets/js/lib/tinymce/plugins/media/index.php +0 -0
  106. assets/js/lib/tinymce/plugins/media/moxieplayer.swf +0 -0
  107. assets/js/lib/tinymce/plugins/media/plugin.js +0 -0
  108. assets/js/lib/tinymce/plugins/media/plugin.min.js +0 -0
  109. assets/js/lib/tinymce/plugins/nonbreaking/index.php +0 -0
  110. assets/js/lib/tinymce/plugins/nonbreaking/plugin.js +0 -0
  111. assets/js/lib/tinymce/plugins/nonbreaking/plugin.min.js +0 -0
  112. assets/js/lib/tinymce/plugins/noneditable/index.php +0 -0
  113. assets/js/lib/tinymce/plugins/noneditable/plugin.js +0 -0
  114. assets/js/lib/tinymce/plugins/noneditable/plugin.min.js +0 -0
  115. assets/js/lib/tinymce/plugins/pagebreak/index.php +0 -0
  116. assets/js/lib/tinymce/plugins/pagebreak/plugin.js +0 -0
  117. assets/js/lib/tinymce/plugins/pagebreak/plugin.min.js +0 -0
  118. assets/js/lib/tinymce/plugins/paste/index.php +0 -0
  119. assets/js/lib/tinymce/plugins/paste/plugin.js +0 -0
  120. assets/js/lib/tinymce/plugins/paste/plugin.min.js +0 -0
  121. assets/js/lib/tinymce/plugins/preview/index.php +0 -0
  122. assets/js/lib/tinymce/plugins/preview/plugin.js +0 -0
  123. assets/js/lib/tinymce/plugins/preview/plugin.min.js +0 -0
  124. assets/js/lib/tinymce/plugins/print/index.php +0 -0
  125. assets/js/lib/tinymce/plugins/print/plugin.js +0 -0
  126. assets/js/lib/tinymce/plugins/print/plugin.min.js +0 -0
  127. assets/js/lib/tinymce/plugins/save/index.php +0 -0
  128. assets/js/lib/tinymce/plugins/save/plugin.js +0 -0
  129. assets/js/lib/tinymce/plugins/save/plugin.min.js +0 -0
  130. assets/js/lib/tinymce/plugins/searchreplace/index.php +0 -0
  131. assets/js/lib/tinymce/plugins/searchreplace/plugin.js +0 -0
  132. assets/js/lib/tinymce/plugins/searchreplace/plugin.min.js +0 -0
  133. assets/js/lib/tinymce/plugins/spellchecker/index.php +0 -0
  134. assets/js/lib/tinymce/plugins/spellchecker/plugin.js +0 -0
  135. assets/js/lib/tinymce/plugins/spellchecker/plugin.min.js +0 -0
  136. assets/js/lib/tinymce/plugins/tabfocus/index.php +0 -0
  137. assets/js/lib/tinymce/plugins/tabfocus/plugin.js +0 -0
  138. assets/js/lib/tinymce/plugins/tabfocus/plugin.min.js +0 -0
  139. assets/js/lib/tinymce/plugins/table/index.php +0 -0
  140. assets/js/lib/tinymce/plugins/table/plugin.js +0 -0
  141. assets/js/lib/tinymce/plugins/table/plugin.min.js +0 -0
  142. assets/js/lib/tinymce/plugins/template/index.php +0 -0
  143. assets/js/lib/tinymce/plugins/template/plugin.js +0 -0
  144. assets/js/lib/tinymce/plugins/template/plugin.min.js +0 -0
  145. assets/js/lib/tinymce/plugins/textcolor/index.php +0 -0
  146. assets/js/lib/tinymce/plugins/textcolor/plugin.js +0 -0
  147. assets/js/lib/tinymce/plugins/textcolor/plugin.min.js +0 -0
  148. assets/js/lib/tinymce/plugins/textpattern/index.php +0 -0
  149. assets/js/lib/tinymce/plugins/textpattern/plugin.js +0 -0
  150. assets/js/lib/tinymce/plugins/textpattern/plugin.min.js +0 -0
  151. assets/js/lib/tinymce/plugins/visualblocks/css/index.php +0 -0
  152. assets/js/lib/tinymce/plugins/visualblocks/css/visualblocks.css +0 -0
  153. assets/js/lib/tinymce/plugins/visualblocks/index.php +0 -0
  154. assets/js/lib/tinymce/plugins/visualblocks/plugin.js +0 -0
  155. assets/js/lib/tinymce/plugins/visualblocks/plugin.min.js +0 -0
  156. assets/js/lib/tinymce/plugins/visualchars/index.php +0 -0
  157. assets/js/lib/tinymce/plugins/visualchars/plugin.js +0 -0
  158. assets/js/lib/tinymce/plugins/visualchars/plugin.min.js +0 -0
  159. assets/js/lib/tinymce/plugins/wordcount/index.php +0 -0
  160. assets/js/lib/tinymce/plugins/wordcount/plugin.js +0 -0
  161. assets/js/lib/tinymce/plugins/wordcount/plugin.min.js +0 -0
  162. assets/js/lib/tinymce/skins/index.php +0 -0
  163. assets/js/lib/tinymce/skins/lightgray/content.inline.min.css +0 -0
  164. assets/js/lib/tinymce/skins/lightgray/content.min.css +0 -0
  165. assets/js/lib/tinymce/skins/lightgray/fonts/index.php +0 -0
  166. assets/js/lib/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
  167. assets/js/lib/tinymce/skins/lightgray/fonts/tinymce-small.svg +0 -0
  168. assets/js/lib/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  169. assets/js/lib/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
  170. assets/js/lib/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  171. assets/js/lib/tinymce/skins/lightgray/fonts/tinymce.svg +0 -0
  172. assets/js/lib/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  173. assets/js/lib/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  174. assets/js/lib/tinymce/skins/lightgray/img/anchor.gif +0 -0
  175. assets/js/lib/tinymce/skins/lightgray/img/index.php +0 -0
  176. assets/js/lib/tinymce/skins/lightgray/img/loader.gif +0 -0
  177. assets/js/lib/tinymce/skins/lightgray/img/object.gif +0 -0
  178. assets/js/lib/tinymce/skins/lightgray/img/trans.gif +0 -0
  179. assets/js/lib/tinymce/skins/lightgray/index.php +0 -0
  180. assets/js/lib/tinymce/skins/lightgray/skin.ie7.min.css +0 -0
  181. assets/js/lib/tinymce/skins/lightgray/skin.min.css +0 -0
  182. assets/js/lib/tinymce/themes/index.php +0 -0
  183. assets/js/lib/tinymce/themes/modern/index.php +0 -0
  184. assets/js/lib/tinymce/themes/modern/theme.js +0 -0
  185. assets/js/lib/tinymce/themes/modern/theme.min.js +0 -0
  186. assets/js/lib/tinymce/tinymce.jquery.js +0 -0
  187. assets/js/lib/tinymce/tinymce.jquery.min.js +0 -0
  188. assets/js/lib/tinymce/tinymce.js +0 -0
  189. assets/js/lib/tinymce/tinymce.min.js +0 -0
  190. assets/js/lib/wplink/index.php +0 -0
  191. assets/js/lib/wplink/plugin.js +0 -0
  192. lang/mailpoet.pot +19 -19
  193. lib/API/Endpoints/Newsletters.php +2 -3
  194. lib/Config/RequirementsChecker.php +1 -14
  195. lib/Models/Newsletter.php +1 -0
  196. lib/Models/Subscriber.php +11 -4
  197. lib/Newsletter/Url.php +1 -2
  198. lib/Router/Endpoints/ViewInBrowser.php +6 -2
  199. mailpoet.php +53 -21
  200. mailpoet_initializer.php +17 -0
  201. readme.txt +6 -1
  202. vendor/autoload.php +1 -1
  203. vendor/composer/autoload_real.php +7 -7
  204. vendor/composer/autoload_static.php +5 -5
assets/js/admin.js CHANGED
@@ -22280,7 +22280,7 @@ webpackJsonp([0],[
22280
  children = _props.children;
22281
 
22282
 
22283
- !history.getCurrentLocation ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You have provided a history object created with history v2.x or ' + 'earlier. This version of React Router is only compatible with v3 ' + 'history objects. Please upgrade to history v3.x.') : (0, _invariant2.default)(false) : void 0;
22284
 
22285
  return (0, _createTransitionManager3.default)(history, (0, _RouteUtils.createRoutes)(routes || children));
22286
  },
22280
  children = _props.children;
22281
 
22282
 
22283
+ !history.getCurrentLocation ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You have provided a history object created with history v4.x or v2.x ' + 'and earlier. This version of React Router is only compatible with v3 ' + 'history objects. Please change to history v3.x.') : (0, _invariant2.default)(false) : void 0;
22284
 
22285
  return (0, _createTransitionManager3.default)(history, (0, _RouteUtils.createRoutes)(routes || children));
22286
  },
assets/js/form_editor.js CHANGED
@@ -2846,6 +2846,9 @@ webpackJsonp([1],{
2846
  col: 0, pos: 0, cm: cm,
2847
  trailingSpace: false,
2848
  splitSpaces: (ie || webkit) && cm.getOption("lineWrapping")}
 
 
 
2849
  lineView.measure = {}
2850
 
2851
  // Iterate over the logical lines that make up this visual line.
@@ -6684,6 +6687,7 @@ webpackJsonp([1],{
6684
  // Showing up as a widget implies collapsed (widget replaces text)
6685
  marker.collapsed = true
6686
  marker.widgetNode = elt("span", [marker.replacedWith], "CodeMirror-widget")
 
6687
  if (!options.handleMouseEvents) { marker.widgetNode.setAttribute("cm-ignore-events", "true") }
6688
  if (options.insertLeft) { marker.widgetNode.insertLeft = true }
6689
  }
@@ -7031,7 +7035,6 @@ webpackJsonp([1],{
7031
  clearGutter: docMethodOp(function(gutterID) {
7032
  var this$1 = this;
7033
 
7034
- var i = this.first
7035
  this.iter(function (line) {
7036
  if (line.gutterMarkers && line.gutterMarkers[gutterID]) {
7037
  changeLine(this$1, line, "gutter", function () {
@@ -7040,7 +7043,6 @@ webpackJsonp([1],{
7040
  return true
7041
  })
7042
  }
7043
- ++i
7044
  })
7045
  }),
7046
 
@@ -10205,7 +10207,7 @@ webpackJsonp([1],{
10205
 
10206
  addLegacyProps(CodeMirror)
10207
 
10208
- CodeMirror.version = "5.22.2"
10209
 
10210
  return CodeMirror;
10211
 
@@ -10807,7 +10809,7 @@ webpackJsonp([1],{
10807
  "above", "absolute", "activeborder", "additive", "activecaption", "afar",
10808
  "after-white-space", "ahead", "alias", "all", "all-scroll", "alphabetic", "alternate",
10809
  "always", "amharic", "amharic-abegede", "antialiased", "appworkspace",
10810
- "arabic-indic", "armenian", "asterisks", "attr", "auto", "avoid", "avoid-column", "avoid-page",
10811
  "avoid-region", "background", "backwards", "baseline", "below", "bidi-override", "binary",
10812
  "bengali", "blink", "block", "block-axis", "bold", "bolder", "border", "border-box",
10813
  "both", "bottom", "break", "break-all", "break-word", "bullets", "button", "button-bevel",
2846
  col: 0, pos: 0, cm: cm,
2847
  trailingSpace: false,
2848
  splitSpaces: (ie || webkit) && cm.getOption("lineWrapping")}
2849
+ // hide from accessibility tree
2850
+ content.setAttribute("role", "presentation")
2851
+ builder.pre.setAttribute("role", "presentation")
2852
  lineView.measure = {}
2853
 
2854
  // Iterate over the logical lines that make up this visual line.
6687
  // Showing up as a widget implies collapsed (widget replaces text)
6688
  marker.collapsed = true
6689
  marker.widgetNode = elt("span", [marker.replacedWith], "CodeMirror-widget")
6690
+ marker.widgetNode.setAttribute("role", "presentation") // hide from accessibility tree
6691
  if (!options.handleMouseEvents) { marker.widgetNode.setAttribute("cm-ignore-events", "true") }
6692
  if (options.insertLeft) { marker.widgetNode.insertLeft = true }
6693
  }
7035
  clearGutter: docMethodOp(function(gutterID) {
7036
  var this$1 = this;
7037
 
 
7038
  this.iter(function (line) {
7039
  if (line.gutterMarkers && line.gutterMarkers[gutterID]) {
7040
  changeLine(this$1, line, "gutter", function () {
7043
  return true
7044
  })
7045
  }
 
7046
  })
7047
  }),
7048
 
10207
 
10208
  addLegacyProps(CodeMirror)
10209
 
10210
+ CodeMirror.version = "5.23.0"
10211
 
10212
  return CodeMirror;
10213
 
10809
  "above", "absolute", "activeborder", "additive", "activecaption", "afar",
10810
  "after-white-space", "ahead", "alias", "all", "all-scroll", "alphabetic", "alternate",
10811
  "always", "amharic", "amharic-abegede", "antialiased", "appworkspace",
10812
+ "arabic-indic", "armenian", "asterisks", "attr", "auto", "auto-flow", "avoid", "avoid-column", "avoid-page",
10813
  "avoid-region", "background", "backwards", "baseline", "below", "bidi-override", "binary",
10814
  "bengali", "blink", "block", "block-axis", "bold", "bolder", "border", "border-box",
10815
  "both", "bottom", "break", "break-all", "break-word", "bullets", "button", "button-bevel",
assets/js/lib/mailpoet_shortcodes/index.php CHANGED
File without changes
assets/js/lib/mailpoet_shortcodes/plugin.js CHANGED
File without changes
assets/js/lib/mailpoet_shortcodes/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/bower.json CHANGED
File without changes
assets/js/lib/tinymce/changelog.txt CHANGED
File without changes
assets/js/lib/tinymce/composer.json CHANGED
File without changes
assets/js/lib/tinymce/index.php CHANGED
File without changes
assets/js/lib/tinymce/jquery.tinymce.js CHANGED
File without changes
assets/js/lib/tinymce/jquery.tinymce.min.js CHANGED
File without changes
assets/js/lib/tinymce/license.txt CHANGED
File without changes
assets/js/lib/tinymce/plugins/advlist/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/advlist/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/advlist/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/anchor/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/anchor/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/anchor/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/autolink/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/autolink/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/autolink/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/autoresize/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/autoresize/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/autoresize/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/autosave/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/autosave/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/autosave/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/bbcode/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/bbcode/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/bbcode/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/charmap/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/charmap/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/charmap/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/code/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/code/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/code/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/codesample/css/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/codesample/css/prism.css CHANGED
File without changes
assets/js/lib/tinymce/plugins/codesample/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/codesample/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/codesample/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/colorpicker/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/colorpicker/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/colorpicker/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/contextmenu/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/contextmenu/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/contextmenu/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/directionality/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/directionality/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/directionality/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-cool.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-cry.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-embarassed.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-frown.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-innocent.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-kiss.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-laughing.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-money-mouth.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-sealed.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-smile.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-surprised.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-tongue-out.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-undecided.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-wink.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/img/smiley-yell.gif CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/emoticons/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/fullpage/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/fullpage/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/fullpage/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/fullscreen/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/fullscreen/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/fullscreen/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/hr/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/hr/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/hr/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/image/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/image/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/image/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/imagetools/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/imagetools/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/imagetools/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/importcss/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/importcss/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/importcss/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/insertdatetime/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/insertdatetime/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/insertdatetime/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/layer/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/layer/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/layer/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/legacyoutput/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/legacyoutput/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/legacyoutput/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/link/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/link/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/link/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/lists/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/lists/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/lists/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/media/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/media/moxieplayer.swf CHANGED
File without changes
assets/js/lib/tinymce/plugins/media/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/media/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/nonbreaking/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/nonbreaking/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/nonbreaking/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/noneditable/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/noneditable/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/noneditable/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/pagebreak/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/pagebreak/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/pagebreak/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/paste/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/paste/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/paste/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/preview/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/preview/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/preview/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/print/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/print/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/print/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/save/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/save/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/save/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/searchreplace/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/searchreplace/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/searchreplace/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/spellchecker/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/spellchecker/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/spellchecker/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/tabfocus/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/tabfocus/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/tabfocus/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/table/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/table/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/table/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/template/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/template/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/template/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/textcolor/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/textcolor/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/textcolor/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/textpattern/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/textpattern/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/textpattern/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/visualblocks/css/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/visualblocks/css/visualblocks.css CHANGED
File without changes
assets/js/lib/tinymce/plugins/visualblocks/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/visualblocks/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/visualblocks/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/visualchars/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/visualchars/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/visualchars/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/wordcount/index.php CHANGED
File without changes
assets/js/lib/tinymce/plugins/wordcount/plugin.js CHANGED
File without changes
assets/js/lib/tinymce/plugins/wordcount/plugin.min.js CHANGED
File without changes
assets/js/lib/tinymce/skins/index.php CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/content.inline.min.css CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/content.min.css CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/fonts/index.php CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/fonts/tinymce-small.eot CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/fonts/tinymce-small.svg CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/fonts/tinymce-small.ttf CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/fonts/tinymce-small.woff CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/fonts/tinymce.eot CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/fonts/tinymce.svg CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/fonts/tinymce.ttf CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/fonts/tinymce.woff CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/img/anchor.gif CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/img/index.php CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/img/loader.gif CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/img/object.gif CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/img/trans.gif CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/index.php CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/skin.ie7.min.css CHANGED
File without changes
assets/js/lib/tinymce/skins/lightgray/skin.min.css CHANGED
File without changes
assets/js/lib/tinymce/themes/index.php CHANGED
File without changes
assets/js/lib/tinymce/themes/modern/index.php CHANGED
File without changes
assets/js/lib/tinymce/themes/modern/theme.js CHANGED
File without changes
assets/js/lib/tinymce/themes/modern/theme.min.js CHANGED
File without changes
assets/js/lib/tinymce/tinymce.jquery.js CHANGED
File without changes
assets/js/lib/tinymce/tinymce.jquery.min.js CHANGED
File without changes
assets/js/lib/tinymce/tinymce.js CHANGED
File without changes
assets/js/lib/tinymce/tinymce.min.js CHANGED
File without changes
assets/js/lib/wplink/index.php CHANGED
File without changes
assets/js/lib/wplink/plugin.js CHANGED
File without changes
lang/mailpoet.pot CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: \n"
6
  "Report-Msgid-Bugs-To: http://support.mailpoet.com/\n"
7
- "POT-Creation-Date: 2017-01-19 16:53:12+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -927,32 +927,26 @@ msgid ""
927
  "\"%s\" exists and has write permissions. Terminated with error: \"%s\""
928
  msgstr ""
929
 
930
- #: lib/Config/RequirementsChecker.php:62
931
- msgid ""
932
- "This plugin requires PHP version 5.3 or newer. Please read our "
933
- "[link]instructions[/link] on how to resolve this issue."
934
- msgstr ""
935
-
936
- #: lib/Config/RequirementsChecker.php:77
937
  msgid ""
938
  "This plugin requires write permissions inside the /wp-content/uploads "
939
  "folder. Please read our [link]instructions[/link] on how to resolve this "
940
  "issue."
941
  msgstr ""
942
 
943
- #: lib/Config/RequirementsChecker.php:97
944
  msgid ""
945
  "This plugin requires PDO_MYSQL PHP extension. Please read our "
946
  "[link]instructions[/link] on how to resolve this issue."
947
  msgstr ""
948
 
949
- #: lib/Config/RequirementsChecker.php:117
950
  msgid ""
951
  "A MailPoet dependency (%s) does not appear to be loaded correctly, thus "
952
  "MailPoet will not work correctly. Please reinstall the plugin."
953
  msgstr ""
954
 
955
- #: lib/Config/RequirementsChecker.php:128
956
  msgid ""
957
  "MailPoet has detected a dependency conflict (%s) with another plugin (%s), "
958
  "which may cause unexpected behavior. Please disable the offending plugin to "
@@ -1179,12 +1173,12 @@ msgid "Please specify a type"
1179
  msgstr ""
1180
 
1181
  #: lib/Models/Form.php:50 lib/Models/Newsletter.php:464
1182
- #: lib/Models/Segment.php:126 lib/Models/Subscriber.php:341
1183
  msgid "All"
1184
  msgstr ""
1185
 
1186
  #: lib/Models/Form.php:55 lib/Models/Newsletter.php:534
1187
- #: lib/Models/Segment.php:131 lib/Models/Subscriber.php:366 views/forms.html:56
1188
  #: views/newsletters.html:75 views/segments.html:50
1189
  #: views/subscribers/subscribers.html:34
1190
  msgid "Trash"
@@ -1281,26 +1275,26 @@ msgstr ""
1281
  msgid "You need to wait before subscribing again."
1282
  msgstr ""
1283
 
1284
- #: lib/Models/Subscriber.php:285
1285
  msgid "Subscribers without a list (%s)"
1286
  msgstr ""
1287
 
1288
- #: lib/Models/Subscriber.php:346 lib/Subscription/Pages.php:290
1289
  #: views/segments.html:30 views/subscribers/subscribers.html:51
1290
  msgid "Subscribed"
1291
  msgstr ""
1292
 
1293
- #: lib/Models/Subscriber.php:351 views/segments.html:31
1294
  #: views/subscribers/subscribers.html:50
1295
  msgid "Unconfirmed"
1296
  msgstr ""
1297
 
1298
- #: lib/Models/Subscriber.php:356 lib/Subscription/Pages.php:298
1299
  #: views/segments.html:32 views/subscribers/subscribers.html:52
1300
  msgid "Unsubscribed"
1301
  msgstr ""
1302
 
1303
- #: lib/Models/Subscriber.php:361 lib/Subscription/Pages.php:306
1304
  #: views/segments.html:33 views/subscribers/subscribers.html:53
1305
  msgid "Bounced"
1306
  msgstr ""
@@ -1614,7 +1608,13 @@ msgstr ""
1614
  msgid "MailPoet Error:"
1615
  msgstr ""
1616
 
1617
- #: mailpoet.php:37
 
 
 
 
 
 
1618
  msgid ""
1619
  "MailPoet cannot start because it is missing core files. Please reinstall "
1620
  "the plugin."
4
  msgstr ""
5
  "Project-Id-Version: \n"
6
  "Report-Msgid-Bugs-To: http://support.mailpoet.com/\n"
7
+ "POT-Creation-Date: 2017-01-24 16:41:22+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
927
  "\"%s\" exists and has write permissions. Terminated with error: \"%s\""
928
  msgstr ""
929
 
930
+ #: lib/Config/RequirementsChecker.php:64
 
 
 
 
 
 
931
  msgid ""
932
  "This plugin requires write permissions inside the /wp-content/uploads "
933
  "folder. Please read our [link]instructions[/link] on how to resolve this "
934
  "issue."
935
  msgstr ""
936
 
937
+ #: lib/Config/RequirementsChecker.php:84
938
  msgid ""
939
  "This plugin requires PDO_MYSQL PHP extension. Please read our "
940
  "[link]instructions[/link] on how to resolve this issue."
941
  msgstr ""
942
 
943
+ #: lib/Config/RequirementsChecker.php:104
944
  msgid ""
945
  "A MailPoet dependency (%s) does not appear to be loaded correctly, thus "
946
  "MailPoet will not work correctly. Please reinstall the plugin."
947
  msgstr ""
948
 
949
+ #: lib/Config/RequirementsChecker.php:115
950
  msgid ""
951
  "MailPoet has detected a dependency conflict (%s) with another plugin (%s), "
952
  "which may cause unexpected behavior. Please disable the offending plugin to "
1173
  msgstr ""
1174
 
1175
  #: lib/Models/Form.php:50 lib/Models/Newsletter.php:464
1176
+ #: lib/Models/Segment.php:126 lib/Models/Subscriber.php:343
1177
  msgid "All"
1178
  msgstr ""
1179
 
1180
  #: lib/Models/Form.php:55 lib/Models/Newsletter.php:534
1181
+ #: lib/Models/Segment.php:131 lib/Models/Subscriber.php:368 views/forms.html:56
1182
  #: views/newsletters.html:75 views/segments.html:50
1183
  #: views/subscribers/subscribers.html:34
1184
  msgid "Trash"
1275
  msgid "You need to wait before subscribing again."
1276
  msgstr ""
1277
 
1278
+ #: lib/Models/Subscriber.php:287
1279
  msgid "Subscribers without a list (%s)"
1280
  msgstr ""
1281
 
1282
+ #: lib/Models/Subscriber.php:348 lib/Subscription/Pages.php:290
1283
  #: views/segments.html:30 views/subscribers/subscribers.html:51
1284
  msgid "Subscribed"
1285
  msgstr ""
1286
 
1287
+ #: lib/Models/Subscriber.php:353 views/segments.html:31
1288
  #: views/subscribers/subscribers.html:50
1289
  msgid "Unconfirmed"
1290
  msgstr ""
1291
 
1292
+ #: lib/Models/Subscriber.php:358 lib/Subscription/Pages.php:298
1293
  #: views/segments.html:32 views/subscribers/subscribers.html:52
1294
  msgid "Unsubscribed"
1295
  msgstr ""
1296
 
1297
+ #: lib/Models/Subscriber.php:363 lib/Subscription/Pages.php:306
1298
  #: views/segments.html:33 views/subscribers/subscribers.html:53
1299
  msgid "Bounced"
1300
  msgstr ""
1608
  msgid "MailPoet Error:"
1609
  msgstr ""
1610
 
1611
+ #: mailpoet.php:51
1612
+ msgid ""
1613
+ "MailPoet plugin requires PHP version 5.3 or newer. Please read our "
1614
+ "[link]instructions[/link] on how to resolve this issue."
1615
+ msgstr ""
1616
+
1617
+ #: mailpoet.php:67
1618
  msgid ""
1619
  "MailPoet cannot start because it is missing core files. Please reinstall "
1620
  "the plugin."
lib/API/Endpoints/Newsletters.php CHANGED
@@ -340,11 +340,10 @@ class Newsletters extends APIEndpoint {
340
  }
341
 
342
  // get preview url
343
- $subscriber = Subscriber::getCurrentWPUser();
344
  $newsletter->preview_url = NewsletterUrl::getViewInBrowserUrl(
345
  NewsletterUrl::TYPE_LISTING_EDITOR,
346
  $newsletter,
347
- $subscriber,
348
  $queue
349
  );
350
 
@@ -435,4 +434,4 @@ class Newsletters extends APIEndpoint {
435
  );
436
  }
437
  }
438
- }
340
  }
341
 
342
  // get preview url
 
343
  $newsletter->preview_url = NewsletterUrl::getViewInBrowserUrl(
344
  NewsletterUrl::TYPE_LISTING_EDITOR,
345
  $newsletter,
346
+ $subscriber = null,
347
  $queue
348
  );
349
 
434
  );
435
  }
436
  }
437
+ }
lib/Config/RequirementsChecker.php CHANGED
@@ -8,7 +8,6 @@ use MailPoet\WP\Notice as WPNotice;
8
  if(!defined('ABSPATH')) exit;
9
 
10
  class RequirementsChecker {
11
- const TEST_PHP_VERSION = 'PHPVersion';
12
  const TEST_FOLDER_PERMISSIONS = 'TempAndCacheFolderCreation';
13
  const TEST_PDO_EXTENSION = 'PDOExtension';
14
  const TEST_MBSTRING_EXTENSION = 'MbstringExtension';
@@ -44,7 +43,6 @@ class RequirementsChecker {
44
  function checkAllRequirements() {
45
  $available_tests = array(
46
  self::TEST_PDO_EXTENSION,
47
- self::TEST_PHP_VERSION,
48
  self::TEST_FOLDER_PERMISSIONS,
49
  self::TEST_MBSTRING_EXTENSION,
50
  self::TEST_VENDOR_SOURCE
@@ -56,17 +54,6 @@ class RequirementsChecker {
56
  return $results;
57
  }
58
 
59
- function checkPHPVersion() {
60
- if(version_compare(phpversion(), '5.3.0', '<')) {
61
- $error = Helpers::replaceLinkTags(
62
- __('This plugin requires PHP version 5.3 or newer. Please read our [link]instructions[/link] on how to resolve this issue.', 'mailpoet'),
63
- '//docs.mailpoet.com/article/152-minimum-requirements-for-mailpoet-3#php_version'
64
- );
65
- return $this->processError($error);
66
- }
67
- return true;
68
- }
69
-
70
  function checkTempAndCacheFolderCreation() {
71
  $paths = array(
72
  'temp_path' => Env::$temp_path,
@@ -152,4 +139,4 @@ class RequirementsChecker {
152
  }
153
  return false;
154
  }
155
- }
8
  if(!defined('ABSPATH')) exit;
9
 
10
  class RequirementsChecker {
 
11
  const TEST_FOLDER_PERMISSIONS = 'TempAndCacheFolderCreation';
12
  const TEST_PDO_EXTENSION = 'PDOExtension';
13
  const TEST_MBSTRING_EXTENSION = 'MbstringExtension';
43
  function checkAllRequirements() {
44
  $available_tests = array(
45
  self::TEST_PDO_EXTENSION,
 
46
  self::TEST_FOLDER_PERMISSIONS,
47
  self::TEST_MBSTRING_EXTENSION,
48
  self::TEST_VENDOR_SOURCE
54
  return $results;
55
  }
56
 
 
 
 
 
 
 
 
 
 
 
 
57
  function checkTempAndCacheFolderCreation() {
58
  $paths = array(
59
  'temp_path' => Env::$temp_path,
139
  }
140
  return false;
141
  }
142
+ }
lib/Models/Newsletter.php CHANGED
@@ -593,6 +593,7 @@ class Newsletter extends Model {
593
  return self::select(array(
594
  'id',
595
  'subject',
 
596
  'type',
597
  'status',
598
  'updated_at',
593
  return self::select(array(
594
  'id',
595
  'subject',
596
+ 'hash',
597
  'type',
598
  'status',
599
  'updated_at',
lib/Models/Subscriber.php CHANGED
@@ -280,7 +280,9 @@ class Subscriber extends Model {
280
  'value' => ''
281
  );
282
 
283
- $subscribers_without_segment = self::filter('withoutSegments')->count();
 
 
284
  $subscribers_without_segment_label = sprintf(
285
  __('Subscribers without a list (%s)', 'mailpoet'),
286
  number_format($subscribers_without_segment)
@@ -782,13 +784,18 @@ class Subscriber extends Model {
782
 
783
  static function withoutSegments($orm) {
784
  return $orm->select(MP_SUBSCRIBERS_TABLE.'.*')
785
- ->leftOuterJoin(
786
- MP_SUBSCRIBER_SEGMENT_TABLE,
 
 
 
 
787
  array(
788
  MP_SUBSCRIBERS_TABLE.'.id',
789
  '=',
790
  MP_SUBSCRIBER_SEGMENT_TABLE.'.subscriber_id'
791
- )
 
792
  )
793
  ->whereNull(MP_SUBSCRIBER_SEGMENT_TABLE.'.subscriber_id');
794
  }
280
  'value' => ''
281
  );
282
 
283
+ $subscribers_without_segment = self::filter('withoutSegments')
284
+ ->whereNull('deleted_at')
285
+ ->count();
286
  $subscribers_without_segment_label = sprintf(
287
  __('Subscribers without a list (%s)', 'mailpoet'),
288
  number_format($subscribers_without_segment)
784
 
785
  static function withoutSegments($orm) {
786
  return $orm->select(MP_SUBSCRIBERS_TABLE.'.*')
787
+ ->rawJoin(
788
+ 'LEFT OUTER JOIN (
789
+ SELECT `subscriber_id`
790
+ FROM '.MP_SUBSCRIBER_SEGMENT_TABLE.'
791
+ WHERE `status` = "'.self::STATUS_SUBSCRIBED.'"
792
+ )',
793
  array(
794
  MP_SUBSCRIBERS_TABLE.'.id',
795
  '=',
796
  MP_SUBSCRIBER_SEGMENT_TABLE.'.subscriber_id'
797
+ ),
798
+ MP_SUBSCRIBER_SEGMENT_TABLE
799
  )
800
  ->whereNull(MP_SUBSCRIBER_SEGMENT_TABLE.'.subscriber_id');
801
  }
lib/Newsletter/Url.php CHANGED
@@ -27,8 +27,7 @@ class Url {
27
  $preview = true;
28
  break;
29
  case self::TYPE_LISTING_EDITOR:
30
- // enable preview and hide newsletter hash when displaying from editor or listings
31
- $newsletter->hash = null;
32
  $preview = true;
33
  break;
34
  default:
27
  $preview = true;
28
  break;
29
  case self::TYPE_LISTING_EDITOR:
30
+ // enable preview when displaying from editor or listings
 
31
  $preview = true;
32
  break;
33
  default:
lib/Router/Endpoints/ViewInBrowser.php CHANGED
@@ -50,10 +50,14 @@ class ViewInBrowser {
50
  if(empty($data->subscriber_token) ||
51
  !Subscriber::verifyToken($data->subscriber->email, $data->subscriber_token)
52
  ) return false;
 
 
 
 
53
  }
54
 
55
- // if newsletter ID is defined then subscriber must exist
56
- if($data->newsletter_id && !$data->subscriber) return false;
57
 
58
  // queue is optional; if defined, get it
59
  $data->queue = (!empty($data->queue_id)) ?
50
  if(empty($data->subscriber_token) ||
51
  !Subscriber::verifyToken($data->subscriber->email, $data->subscriber_token)
52
  ) return false;
53
+ } else if(!$data->subscriber && !empty($data->preview)) {
54
+ // if this is a preview and subscriber does not exist,
55
+ // attemp to set subscriber to the current logged-in WP user
56
+ $data->subscriber = Subscriber::getCurrentWPUser();
57
  }
58
 
59
+ // if newsletter hash is not provided but newsletter ID is defined then subscriber must exist
60
+ if(empty($data->newsletter_hash) && $data->newsletter_id && !$data->subscriber) return false;
61
 
62
  // queue is optional; if defined, get it
63
  $data->queue = (!empty($data->queue_id)) ?
mailpoet.php CHANGED
@@ -1,40 +1,72 @@
1
  <?php
2
- if(!defined('ABSPATH')) exit;
3
 
4
- use MailPoet\Config\Initializer;
5
 
6
  /*
7
  * Plugin Name: MailPoet
8
- * Version: 3.0.0-beta.14
9
  * Plugin URI: http://www.mailpoet.com
10
  * Description: Create and send beautiful email newsletters, autoresponders, and post notifications without leaving WordPress. This is a beta version of our brand new plugin!
11
  * Author: MailPoet
12
  * Author URI: http://www.mailpoet.com
13
  * Requires at least: 4.6
14
- * Tested up to: 4.7
15
  *
16
  * Text Domain: mailpoet
17
  * Domain Path: /lang/
18
  *
19
  * @package WordPress
20
  * @author MailPoet
21
- * @since 0.0.8
22
  */
23
 
24
- $mailpoet_loader = dirname(__FILE__) . '/vendor/autoload.php';
25
- if(file_exists($mailpoet_loader)) {
26
- require $mailpoet_loader;
27
- define('MAILPOET_VERSION', '3.0.0-beta.14');
28
- $initializer = new Initializer(
29
- array(
30
- 'file' => __FILE__,
31
- 'version' => MAILPOET_VERSION
32
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  );
34
- $initializer->init();
35
- } else {
36
- add_action('admin_notices', function() {
37
- $notice = __('MailPoet cannot start because it is missing core files. Please reinstall the plugin.', 'mailpoet');
38
- printf('<div class="error"><p>%1$s</p></div>', $notice);
39
- });
40
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
 
2
 
3
+ if(!defined('ABSPATH')) exit;
4
 
5
  /*
6
  * Plugin Name: MailPoet
7
+ * Version: 3.0.0-beta.15
8
  * Plugin URI: http://www.mailpoet.com
9
  * Description: Create and send beautiful email newsletters, autoresponders, and post notifications without leaving WordPress. This is a beta version of our brand new plugin!
10
  * Author: MailPoet
11
  * Author URI: http://www.mailpoet.com
12
  * Requires at least: 4.6
13
+ * Tested up to: 4.7.1
14
  *
15
  * Text Domain: mailpoet
16
  * Domain Path: /lang/
17
  *
18
  * @package WordPress
19
  * @author MailPoet
20
+ * @since 3.0.0-beta.1
21
  */
22
 
23
+ $mailpoet_plugin = array(
24
+ 'version' => '3.0.0-beta.15',
25
+ 'filename' => __FILE__,
26
+ 'path' => dirname(__FILE__),
27
+ 'autoloader' => dirname(__FILE__) . '/vendor/autoload.php',
28
+ 'initializer' => dirname(__FILE__) . '/mailpoet_initializer.php'
29
+ );
30
+
31
+ function mailpoet_deactivate_plugin() {
32
+ deactivate_plugins(plugin_basename(__FILE__));
33
+ if(!empty($_GET['activate'])) {
34
+ unset($_GET['activate']);
35
+ }
36
+ }
37
+
38
+ // Check for minimum supported PHP version
39
+ if(version_compare(phpversion(), '5.3.0', '<')) {
40
+ add_action('admin_notices', 'mailpoet_php_version_notice');
41
+ // deactivate the plugin
42
+ add_action('admin_init', 'mailpoet_deactivate_plugin');
43
+ return;
44
+ }
45
+
46
+ // Display PHP version error notice
47
+ function mailpoet_php_version_notice() {
48
+ $notice = str_replace(
49
+ '[link]',
50
+ '<a href="//docs.mailpoet.com/article/152-minimum-requirements-for-mailpoet-3#php_version" target="_blank">',
51
+ __('MailPoet plugin requires PHP version 5.3 or newer. Please read our [link]instructions[/link] on how to resolve this issue.', 'mailpoet')
52
  );
53
+ $notice = str_replace('[/link]', '</a>', $notice);
54
+ printf('<div class="error"><p>%1$s</p></div>', $notice);
55
+ }
56
+
57
+ // Check for presence of core dependencies
58
+ if(!file_exists($mailpoet_plugin['autoloader']) || !file_exists($mailpoet_plugin['initializer'])) {
59
+ add_action('admin_notices', 'mailpoet_core_dependency_notice');
60
+ // deactivate the plugin
61
+ add_action('admin_init', 'mailpoet_deactivate_plugin');
62
+ return;
63
+ }
64
+
65
+ // Display missing core dependencies error notice
66
+ function mailpoet_core_dependency_notice() {
67
+ $notice = __('MailPoet cannot start because it is missing core files. Please reinstall the plugin.', 'mailpoet');
68
+ printf('<div class="error"><p>%1$s</p></div>', $notice);
69
+ }
70
+
71
+ // Initialize plugin
72
+ require_once($mailpoet_plugin['initializer']);
mailpoet_initializer.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ use MailPoet\Config\Initializer;
4
+
5
+ if(!defined('ABSPATH') || empty($mailpoet_plugin)) exit;
6
+
7
+ require_once($mailpoet_plugin['autoloader']);
8
+
9
+ define('MAILPOET_VERSION', $mailpoet_plugin['version']);
10
+
11
+ $initializer = new Initializer(
12
+ array(
13
+ 'file' => $mailpoet_plugin['filename'],
14
+ 'version' => $mailpoet_plugin['version']
15
+ )
16
+ );
17
+ $initializer->init();
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: mailpoet, wysija
3
  Tags: newsletter, email, welcome email, post notification, autoresponder, mailchimp, signup, smtp
4
  Requires at least: 4.6
5
  Tested up to: 4.7.1
6
- Stable tag: 3.0.0-beta.14
7
  Create and send beautiful emails and newsletters from WordPress.
8
 
9
  == Description ==
@@ -83,6 +83,11 @@ Our [support site](https://docs.mailpoet.com/) has plenty of articles. You can w
83
 
84
  == Changelog ==
85
 
 
 
 
 
 
86
  = 3.0.0-beta.14 - 2017-01-19 =
87
  * Fixed: images can't be added to newsletters. Thanks Leon!;
88
  * Fixed: forms require first & last name input fields on some systems;
3
  Tags: newsletter, email, welcome email, post notification, autoresponder, mailchimp, signup, smtp
4
  Requires at least: 4.6
5
  Tested up to: 4.7.1
6
+ Stable tag: 3.0.0-beta.15
7
  Create and send beautiful emails and newsletters from WordPress.
8
 
9
  == Description ==
83
 
84
  == Changelog ==
85
 
86
+ = 3.0.0-beta.15 - 2017-01-24 =
87
+ * Fixed: plugin no longer throws a fatal exception error on (prehistoric :)) hosts running PHP <5.3. Thanks Otto & jtm12!;
88
+ * Fixed: users who are not subscribed to any list can be filtered in the admin panel;
89
+ * Fixed: newsletters' preview links can now be publicly shared.
90
+
91
  = 3.0.0-beta.14 - 2017-01-19 =
92
  * Fixed: images can't be added to newsletters. Thanks Leon!;
93
  * Fixed: forms require first & last name input fields on some systems;
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit83c1ef3bbd07823e0af45a8bca5c9bf3::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit3a231df0fc1b3b4acf9c054c7ccc6b08::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit83c1ef3bbd07823e0af45a8bca5c9bf3
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit83c1ef3bbd07823e0af45a8bca5c9bf3
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit83c1ef3bbd07823e0af45a8bca5c9bf3', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit83c1ef3bbd07823e0af45a8bca5c9bf3', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
- call_user_func(\Composer\Autoload\ComposerStaticInit83c1ef3bbd07823e0af45a8bca5c9bf3::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
@@ -48,19 +48,19 @@ class ComposerAutoloaderInit83c1ef3bbd07823e0af45a8bca5c9bf3
48
  $loader->register(true);
49
 
50
  if ($useStaticLoader) {
51
- $includeFiles = Composer\Autoload\ComposerStaticInit83c1ef3bbd07823e0af45a8bca5c9bf3::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
- composerRequire83c1ef3bbd07823e0af45a8bca5c9bf3($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
- function composerRequire83c1ef3bbd07823e0af45a8bca5c9bf3($fileIdentifier, $file)
64
  {
65
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit3a231df0fc1b3b4acf9c054c7ccc6b08
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit3a231df0fc1b3b4acf9c054c7ccc6b08', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit3a231df0fc1b3b4acf9c054c7ccc6b08', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
+ call_user_func(\Composer\Autoload\ComposerStaticInit3a231df0fc1b3b4acf9c054c7ccc6b08::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
48
  $loader->register(true);
49
 
50
  if ($useStaticLoader) {
51
+ $includeFiles = Composer\Autoload\ComposerStaticInit3a231df0fc1b3b4acf9c054c7ccc6b08::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
+ composerRequire3a231df0fc1b3b4acf9c054c7ccc6b08($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
+ function composerRequire3a231df0fc1b3b4acf9c054c7ccc6b08($fileIdentifier, $file)
64
  {
65
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit83c1ef3bbd07823e0af45a8bca5c9bf3
8
  {
9
  public static $files = array (
10
  '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
@@ -602,10 +602,10 @@ class ComposerStaticInit83c1ef3bbd07823e0af45a8bca5c9bf3
602
  public static function getInitializer(ClassLoader $loader)
603
  {
604
  return \Closure::bind(function () use ($loader) {
605
- $loader->prefixLengthsPsr4 = ComposerStaticInit83c1ef3bbd07823e0af45a8bca5c9bf3::$prefixLengthsPsr4;
606
- $loader->prefixDirsPsr4 = ComposerStaticInit83c1ef3bbd07823e0af45a8bca5c9bf3::$prefixDirsPsr4;
607
- $loader->prefixesPsr0 = ComposerStaticInit83c1ef3bbd07823e0af45a8bca5c9bf3::$prefixesPsr0;
608
- $loader->classMap = ComposerStaticInit83c1ef3bbd07823e0af45a8bca5c9bf3::$classMap;
609
 
610
  }, null, ClassLoader::class);
611
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit3a231df0fc1b3b4acf9c054c7ccc6b08
8
  {
9
  public static $files = array (
10
  '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
602
  public static function getInitializer(ClassLoader $loader)
603
  {
604
  return \Closure::bind(function () use ($loader) {
605
+ $loader->prefixLengthsPsr4 = ComposerStaticInit3a231df0fc1b3b4acf9c054c7ccc6b08::$prefixLengthsPsr4;
606
+ $loader->prefixDirsPsr4 = ComposerStaticInit3a231df0fc1b3b4acf9c054c7ccc6b08::$prefixDirsPsr4;
607
+ $loader->prefixesPsr0 = ComposerStaticInit3a231df0fc1b3b4acf9c054c7ccc6b08::$prefixesPsr0;
608
+ $loader->classMap = ComposerStaticInit3a231df0fc1b3b4acf9c054c7ccc6b08::$classMap;
609
 
610
  }, null, ClassLoader::class);
611
  }