Guest User

email-posts-to-subscribers/query/newsletter.php

a guest
Aug 20th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.70 KB | None | 0 0
  1. <?php if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); } ?>
  2. <?php
  3. class elp_cls_newsletter
  4. {
  5. public static function elp_template_compose($id = 0, $post = 5, $cat = "", $orderby = "", $order = "DESC", $action = "preview")
  6. {
  7. $excerpt_length = 50; // Change this value to increase the content length in newsletter.
  8. global $wpdb;
  9. $prefix = $wpdb->prefix;
  10. $preview = "";
  11. $arrRes = array();
  12. $sSql = "SELECT * FROM `".$prefix."elp_templatetable` where 1=1";
  13. $sSql = $sSql . " and elp_templ_id=".$id;
  14. $arrRes = $wpdb->get_row($sSql, ARRAY_A);
  15.  
  16. if(count($arrRes) > 0)
  17. {
  18. $elp_templ_heading = stripslashes($arrRes['elp_templ_heading']);
  19. $elp_templ_header = stripslashes($arrRes['elp_templ_header']);
  20. $elp_templ_body = stripslashes($arrRes['elp_templ_body']);
  21. $elp_templ_footer = stripslashes($arrRes['elp_templ_footer']);
  22. $elp_templ_status = $arrRes['elp_templ_status'];
  23.  
  24. $replacefrom = array("<ul><br />", "</ul><br />", "<li><br />", "</li><br />", "<ol><br />", "</ol><br />", "</h2><br />", "</h1><br />", "</h3><br />");
  25. $replaceto = array("<ul>", "</ul>", "<li>" ,"</li>", "<ol>", "</ol>", "</h2>", "</h1>", "</h3>");
  26.  
  27. $replacefrom1 = array("<ul><br>", "</ul><br>", "<li><br>", "</li><br>", "<ol><br>", "</ol><br>", "</h2><br>", "</h1><br>", "</h3><br>", "<br>");
  28. $replaceto1 = array("<ul>", "</ul>", "<li>" ,"</li>", "<ol>", "</ol>", "</h2>", "</h1>", "</h3>", "");
  29.  
  30. //$preview = "<html>";
  31. //$preview = $preview . "<head><title>" . $elp_templ_heading . "</title></head>";
  32. //$preview = $preview . "<body>";
  33. $preview = $preview . '<div style="clear:both;"></div>';
  34. $preview = $preview . $elp_templ_header;
  35. $preview = $preview . '<div style="clear:both;"></div>';
  36. //-----------------------------------------------------------
  37. $body = $elp_templ_body;
  38. $post_id = "";
  39. $post_title = "";
  40. $post_excerpt = "";
  41. $post_link = "";
  42. $post_thumbnail = "";
  43. $post_thumbnail_link = "";
  44. $post_date = "";
  45. $post_author = "";
  46. $i = 1;
  47.  
  48. //$qstring = "posts_per_page=".$post."&post_status=publish&category='".$cat."'&orderby='".$orderby."'&order='".$order."'";
  49.  
  50. $date_from_to = array();
  51. $date_from_to = elp_cls_newsletter::elp_daterange_calculation($post);
  52.  
  53. if ($post >= 100 )
  54. {
  55. $qstring = array(
  56. 'posts_per_page' => 100,
  57. 'post_status' => 'publish',
  58. 'category' => "'".$cat."'",
  59. 'orderby' => "'".$orderby."'",
  60. 'order' => "'".$order."'",
  61. 'date_query' => array(array('after' => $date_from_to["date_after"], 'before' => $date_from_to["date_before"], 'inclusive' => true ),)
  62. );
  63. }
  64. else
  65. {
  66. $qstring = array(
  67. 'posts_per_page' => $post,
  68. 'post_status' => 'publish',
  69. 'category' => "'".$cat."'",
  70. 'orderby' => "'".$orderby."'",
  71. 'order' => "'".$order."'"
  72. );
  73. }
  74.  
  75. $postlist = get_posts( $qstring );
  76.  
  77. if(count($postlist) == 0 and $action <> "preview") // No post details for this fielter field
  78. {
  79. $preview = "NO_POST_FOUND_FOR_THIS_MAIL_CONFIGURATION";
  80. return $preview;
  81. }
  82.  
  83. $posts = array();
  84. foreach ( $postlist as $post )
  85. {
  86. setup_postdata($post);
  87. $post_id = $post->ID;
  88. $post_title = $post->post_title;
  89. if($action=="first_post_title")Return $post_title; //mattblox 2019-04-13
  90. $last_post_title = $post->post_title;
  91. $post_author = get_the_author();
  92. $post_date = $post->post_modified;
  93. $post_category = $post->category;
  94.  
  95. // Get full post
  96. $post_full = $post->post_content;
  97. $post_full = str_replace($replacefrom, $replaceto, $post_full);
  98. $post_full = str_replace($replacefrom1, $replaceto1, $post_full);
  99. $post_full = do_shortcode($post_full);
  100. $post_full = wpautop($post_full);
  101.  
  102. $post_excerpt = elp_cls_newsletter::elp_excerpt_by_id($post_id, $excerpt_length);
  103. $post_excerpt = strip_shortcodes($post_excerpt);
  104. $post_excerpt = wpautop($post_excerpt);
  105. $post_link = get_permalink($post_id);
  106.  
  107. if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail($post_id)))
  108. {
  109. $post_thumbnail = get_the_post_thumbnail($post_id, 'thumbnail');
  110. }
  111.  
  112. if($post_thumbnail <> "")
  113. {
  114. $post_thumbnail_link = "<a href='".$post_link."' target='_blank'>".$post_thumbnail."</a>";
  115. }
  116.  
  117. if($post_title <> "")
  118. {
  119. $post_title = "<a href='".$post_link."' target='_blank' style=''>".$post_title."</a>";
  120. }
  121.  
  122. $bodyown = str_replace('###POSTTITLE###', $post_title, $body);
  123. $bodyown = str_replace('###POSTIMAGE###', $post_thumbnail_link, $bodyown);
  124. $bodyown = str_replace('###POSTDESC###', $post_excerpt, $bodyown);
  125. $bodyown = str_replace('###POSTFULL###', $post_full, $bodyown);
  126. $bodyown = str_replace('###DATE###', $post_date, $bodyown);
  127. $bodyown = str_replace('###AUTHOR###', $post_author, $bodyown);
  128.  
  129. //$preview = $preview . '<div style="clear:both;"></div>';
  130. $preview = $preview . $bodyown;
  131. $preview = $preview . '<div style="clear:both;"></div>';
  132.  
  133. $post_id = "";
  134. $post_title = "";
  135. $post_excerpt = "";
  136. $post_link = "";
  137. $post_thumbnail = "";
  138. $post_thumbnail_link = "";
  139. $post_date = "";
  140. $post_author = "";
  141. $i = $i + 1;
  142. }
  143. wp_reset_postdata();
  144. wp_reset_query();
  145. //-----------------------------------------------------------
  146. $preview = $preview . '<div style="clear:both;"></div>';
  147. $preview = $preview . $elp_templ_footer;
  148. $preview = $preview . '<div style="clear:both;"></div>';
  149.  
  150. if($action == "preview")
  151. {
  152. $preview = str_replace('###EMAIL###', "[email protected]", $preview);
  153. $preview = str_replace('###NAME###', "User Name", $preview);
  154. }
  155. //$preview = $preview . "<body>";
  156. //$preview = $preview . "</html>";
  157. $preview = str_replace("\r\n", "<br />", $preview);
  158. }
  159.  
  160. $preview = str_replace($replacefrom, $replaceto, $preview);
  161. $preview = str_replace($replacefrom1, $replaceto1, $preview);
  162.  
  163. return $preview;
  164. }
  165.  
  166. public static function elp_excerpt_by_id($post_id, $excerpt_length)
  167. {
  168. $the_post = get_post($post_id);
  169. $the_excerpt = $the_post->post_content;
  170. $the_excerpt = strip_tags(strip_shortcodes($the_excerpt));
  171. $words = explode(' ', $the_excerpt, $excerpt_length + 1);
  172. if(count($words) > $excerpt_length)
  173. {
  174. array_pop($words);
  175. array_push($words, '...');
  176. $the_excerpt = implode(' ', $words);
  177. }
  178. $the_excerpt = nl2br($the_excerpt);
  179. $the_excerpt = str_replace("<br>", " ", $the_excerpt);
  180. $the_excerpt = str_replace("<br />", " ", $the_excerpt);
  181. $the_excerpt = str_replace("\r\n", " ", $the_excerpt);
  182. return $the_excerpt;
  183. }
  184.  
  185. public static function elp_daterange_calculation($post)
  186. {
  187. $date_from_to = array();
  188. $date_before = date("Y-m-d");
  189. $date_after = date("Y-m-d");
  190.  
  191. if($post == 100) // Published Today
  192. {
  193. $date_before = date("Y-m-d");
  194. $date_after = date("Y-m-d");
  195. }
  196. elseif($post == 110) // Published Last 2 Days
  197. {
  198. $date_before = date("Y-m-d");
  199. $date_after = date("Y-m-d",strtotime("-1 day"));
  200. }
  201. elseif($post == 120) // Published Last 3 Days
  202. {
  203. $date_before = date("Y-m-d");
  204. $date_after = date("Y-m-d",strtotime("-2 day"));
  205. }
  206. elseif($post == 130) // Published Last 4 Days
  207. {
  208. $date_before = date("Y-m-d");
  209. $date_after = date("Y-m-d",strtotime("-3 day"));
  210. }
  211. elseif($post == 140) // Published Last 5 Days
  212. {
  213. $date_before = date("Y-m-d");
  214. $date_after = date("Y-m-d",strtotime("-4 day"));
  215. }
  216. elseif($post == 150) //Published Last 6 Days
  217. {
  218. $date_before = date("Y-m-d");
  219. $date_after = date("Y-m-d",strtotime("-5 day"));
  220. }
  221. elseif($post == 180) //Published Last 7 Days
  222. {
  223. $date_before = date("Y-m-d");
  224. $date_after = date("Y-m-d",strtotime("-6 day"));
  225. }
  226. elseif($post == 190) //Published Last 8 Days
  227. {
  228. $date_before = date("Y-m-d");
  229. $date_after = date("Y-m-d",strtotime("-7 day"));
  230. }
  231. elseif($post == 200) //Published Last 9 Days
  232. {
  233. $date_before = date("Y-m-d");
  234. $date_after = date("Y-m-d",strtotime("-8 day"));
  235. }
  236. elseif($post == 160) // This Week
  237. {
  238. $date_before = date("Y-m-d");
  239. if(date("w") > 0) // Today is not sunday
  240. {
  241. $date_after = date("Y-m-d",strtotime("Last Sunday"));
  242. }
  243. else
  244. {
  245. $date_after = date("Y-m-d");
  246. }
  247. }
  248. elseif($post == 170) // This Month
  249. {
  250. $date_before = date("Y-m-d");
  251. $date_after = date("Y-m-01");
  252. }
  253.  
  254. $date_from_to["date_before"] = $date_before;
  255. $date_from_to["date_after"] = $date_after;
  256. return $date_from_to;
  257. }
  258. }
  259. ?>
Add Comment
Please, Sign In to add comment