welcome.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. <?php
  2. defined('ABSPATH') || exit;
  3. // Very very naif
  4. if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_GET['action']) && $_GET['action'] == 'save') {
  5. // Sender name
  6. $module = Newsletter::instance();
  7. $options = $module->get_options();
  8. $options['sender_name'] = trim(stripslashes($_POST['sender_name']));
  9. $options['sender_email'] = trim(strtolower(stripslashes($_POST['sender_email'])));
  10. $module->save_options($options);
  11. // Profile setting
  12. $module = NewsletterSubscription::instance();
  13. $options = $module->get_options('profile');
  14. $options['privacy_status'] = isset($_POST['field_privacy']) ? 1 : 0;
  15. $options['name_status'] = isset($_POST['field_name']) ? 2 : 0;
  16. $options['subscribe'] = trim(stripslashes($_POST['field_subscribe']));
  17. if (empty($options['subscribe']))
  18. $options['subscribe'] = 'Subscribe';
  19. $module->save_options($options, 'profile');
  20. die();
  21. }
  22. if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_GET['action']) && $_GET['action'] == 'test') {
  23. $module = Newsletter::instance();
  24. $email = $_POST['test_email'];
  25. $status_options = $module->get_options('status');
  26. if (!NewsletterModule::is_email($email)) {
  27. echo _e('Please check the email address, it seems wrong.', 'newsletter');
  28. die();
  29. }
  30. // Newsletter mail
  31. $text = array();
  32. $text['html'] = '<p>This is an <b>HTML</b> test email sent using the sender data set on Newsletter main setting. <a href="https://www.thenewsletterplugin.com">This is a link to an external site</a>.</p>';
  33. $text['text'] = 'This is a textual test email part sent using the sender data set on Newsletter main setting.';
  34. $r = $module->mail($email, 'Newsletter test email at ' . date(DATE_ISO8601), $text);
  35. if ($r) {
  36. $status_options['mail'] = 1;
  37. $module->save_options($status_options, 'status');
  38. echo _e('Check your mailbox for a test message. Check the spam folder as well.', 'newsletter');
  39. die();
  40. } else {
  41. $status_options['mail'] = 0;
  42. $status_options['mail_error'] = $module->mail_last_error;
  43. $module->save_options($status_options, 'status');
  44. echo _e('There was an error. Complete the setup and then use the status panel to check it out.', 'newsletter');
  45. die();
  46. }
  47. die();
  48. }
  49. $profile_options = NewsletterSubscription::instance()->get_options('profile');
  50. $main_options = Newsletter::instance()->get_options();
  51. $subscription_options = NewsletterSubscription::instance()->get_options();
  52. $logger = Newsletter::instance()->logger;
  53. $page_exists = get_option('newsletter_page');
  54. if (empty($page_exists)) {
  55. $module = Newsletter::instance();
  56. $logger->info('Dedicated page creation');
  57. // Page creation
  58. $page = array();
  59. $page['post_title'] = 'Newsletter';
  60. $page['post_content'] = '[newsletter]';
  61. $page['post_status'] = 'publish';
  62. $page['post_type'] = 'page';
  63. $page['comment_status'] = 'closed';
  64. $page['ping_status'] = 'closed';
  65. $page['post_category'] = array(1);
  66. // Insert the post into the database
  67. $page_id = wp_insert_post($page);
  68. $main_options['page'] = $page_id;
  69. Newsletter::instance()->save_options($main_options);
  70. $main_options = Newsletter::instance()->get_options();
  71. $page_exists = true;
  72. update_option('newsletter_page', $page_id, false);
  73. // Test subscriber creation
  74. $users = $module->get_test_users();
  75. if (!$users) {
  76. global $current_user;
  77. $user = array();
  78. $user['email'] = $current_user->user_email;
  79. $user['name'] = $current_user->first_name;
  80. $user['surname'] = $current_user->last_name;
  81. $user['test'] = 1;
  82. $user['status'] = TNP_User::STATUS_CONFIRMED;
  83. $module->save_user($user);
  84. }
  85. } else {
  86. $logger->info('Dedicated page already exists');
  87. }
  88. ?>
  89. <script src="<?php echo plugins_url('newsletter') ?>/main/js/snap.svg-min.js"></script>
  90. <script src="<?php echo plugins_url('newsletter') ?>/main/js/main.js"></script>
  91. <script>
  92. // Email test
  93. function tnp_welcome_test() {
  94. jQuery.post("?page=newsletter_main_welcome&noheader=1&action=test",
  95. jQuery("#tnp-welcome").serialize(),
  96. function (response) {
  97. alert(response);
  98. });
  99. }
  100. function tnp_welcome_subscribe() {
  101. var form = document.getElementById("tnp-subscription");
  102. form.elements["ne"].value = document.getElementById("tnp-ne").value;
  103. form.submit();
  104. alert('Thank you!');
  105. }
  106. </script>
  107. <div class="wrap" id="tnp-wrap">
  108. <form id="tnp-welcome">
  109. <section class="cd-slider-wrapper">
  110. <ul class="cd-slider">
  111. <li class="tnp-first-slide visible">
  112. <div>
  113. <img class="tnp-logo-big" src="<?php echo plugins_url('newsletter') ?>/images/tnp-logo-colore-text-white@2x.png">
  114. <p><?php _e('Welcome to The Newsletter Plugin and thank your for choosing the best mail management system for Wordpress!', 'newsletter'); ?><br><br>
  115. <?php _e('In this short tutorial we will guide you through some of the basic settings to get the most out of our plugin. ', 'newsletter'); ?></p>
  116. </div>
  117. </li>
  118. <li data-update="tnp_slider_sender">
  119. <div>
  120. <h2><?php _e('Sender', 'newsletter'); ?></h2>
  121. <p><?php _e('Choose which name and email address you\'d like to appear as the sender of your newsletters.', 'newsletter'); ?></p>
  122. <input type="text" placeholder="<?php esc_attr_e('Sender name', 'newsletter') ?>" value="<?php echo esc_attr($main_options['sender_name']) ?>" name="sender_name">&nbsp;
  123. <input type="text" placeholder="<?php esc_attr_e('Sender email', 'newsletter') ?>" value="<?php echo esc_attr($main_options['sender_email']) ?>" name="sender_email">
  124. </div>
  125. </li>
  126. <li>
  127. <div>
  128. <h2><?php _e('Subscription Forms', 'newsletter'); ?></h2>
  129. <p><?php _e('Choose what to ask to your subscribers in your forms.', 'newsletter'); ?></p>
  130. <div class="row tnp-row-padded">
  131. <div class="tnp-col-3-boxed">
  132. <p><?php _e('Ask for their name', 'newsletter'); ?></p>
  133. <label class="switch">
  134. <input type="checkbox" name="field_name" <?php echo $profile_options['name_status'] > 0 ? 'checked' : '' ?>>
  135. <span class="slider round"></span>
  136. </label>
  137. </div>
  138. <div class="tnp-col-3-boxed">
  139. <p><?php _e('Add a privacy checkbox', 'newsletter'); ?></p>
  140. <label class="switch">
  141. <input type="checkbox" name="field_privacy" <?php echo $profile_options['privacy_status'] > 0 ? 'checked' : '' ?>>
  142. <span class="slider round"></span>
  143. </label>
  144. </div>
  145. <div class="tnp-col-3-boxed">
  146. <p><?php _e('Subscribe button label', 'newsletter'); ?></p>
  147. <input type="text" value="<?php echo esc_attr($profile_options['subscribe']) ?>" name="field_subscribe">
  148. </div>
  149. </div>
  150. </li>
  151. <li>
  152. <div>
  153. <h2><?php _e('Subscription and Edit<br>page creation', 'newsletter'); ?></h2>
  154. <p><?php _e('We\'ve just created the page where your visitors will subscribe and where they will edit their preferences.', 'newsletter'); ?></p>
  155. </div>
  156. </li>
  157. <li>
  158. <div>
  159. <h2><?php _e('Time for some tests!', 'newsletter'); ?></h2>
  160. <p><?php _e('Check if your website can send emails correctly.', 'newsletter'); ?></p>
  161. <input type="email" value="<?php echo esc_attr(get_option('admin_email')) ?>" name="test_email" placeholder="<?php _e('Email address', 'newsletter'); ?>">
  162. <div>
  163. <a href="#" class="tnp-welcome-confirm-button" onclick="tnp_welcome_test(); return false;"><?php _e('Send a test message', 'newsletter'); ?></a>
  164. </div>
  165. </div>
  166. </li>
  167. <li>
  168. <div>
  169. <h2><?php _e('Add Newsletter widget to sidebar', 'newsletter'); ?></h2>
  170. <p><?php _e('If you use sidebars in your blog, it may be a good idea to add a subscription form there. Remember to come back here when you\'re done', 'newsletter'); ?> ;)</p>
  171. <div>
  172. <a href="<?php echo admin_url('widgets.php') ?>" class="tnp-welcome-confirm-button" target="_blank"><?php _e('Take me to my widget settings (opens in a new window)', 'newsletter'); ?></a>
  173. </div>
  174. </div>
  175. </li>
  176. <li class="tnp-last-slide">
  177. <div>
  178. <svg style="margin-bottom: 25px;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 48 48" xml:space="preserve" width="64" height="64"><g class="nc-icon-wrapper"><path fill="#FFD764" d="M24,47C11.31738,47,1,36.68213,1,24S11.31738,1,24,1s23,10.31787,23,23S36.68262,47,24,47z"></path> <path fill="#444444" d="M17,19c-0.55273,0-1-0.44775-1-1c0-1.10303-0.89746-2-2-2s-2,0.89697-2,2c0,0.55225-0.44727,1-1,1 s-1-0.44775-1-1c0-2.20557,1.79395-4,4-4s4,1.79443,4,4C18,18.55225,17.55273,19,17,19z"></path> <path fill="#444444" d="M37,19c-0.55273,0-1-0.44775-1-1c0-1.10303-0.89746-2-2-2s-2,0.89697-2,2c0,0.55225-0.44727,1-1,1 s-1-0.44775-1-1c0-2.20557,1.79395-4,4-4s4,1.79443,4,4C38,18.55225,37.55273,19,37,19z"></path> <path fill="#FFFFFF" d="M35.6051,32C35.85382,31.03912,36,30.03748,36,29c0-0.55225-0.44727-1-1-1H13c-0.55273,0-1,0.44775-1,1 c0,1.03748,0.14618,2.03912,0.3949,3H35.6051z"></path> <path fill="#AE453E" d="M12.3949,32c1.33734,5.16699,6.02551,9,11.6051,9s10.26776-3.83301,11.6051-9H12.3949z"></path> <path fill="#FA645A" d="M18.01404,39.38495C19.77832,40.40594,21.81903,41,24,41s4.22168-0.59406,5.98596-1.61505 C28.75952,37.35876,26.54126,36,24,36S19.24048,37.35876,18.01404,39.38495z"></path></g></svg>
  179. <h2>Hooooray!</h2>
  180. <p><?php _e('You\'re now ready to begin using Newsletter!', 'newsletter'); ?></p>
  181. <div class="row tnp-row-padded">
  182. <div class="tnp-col-3-boxed">
  183. <p><?php _e('Be always updated with the latest releases and tips from our headquarters', 'newsletter'); ?></p>
  184. <input type="email" placeholder="<?php esc_attr_e('Your email') ?>" value="<?php echo esc_attr(get_option("admin_email")) ?>" id="tnp-ne" name="ne" value="<?php echo get_option('admin_email') ?>">
  185. <br>
  186. <a href="#" class="tnp-welcome-confirm-button" onclick="tnp_welcome_subscribe(); return false;"><?php _e('Subscribe', 'newsletter'); ?></a>
  187. </div>
  188. <div class="tnp-col-3-boxed">
  189. <p><?php _e('You can also follow us through our social accounts', 'newsletter'); ?> :)</p>
  190. <a href="" target="_blank"><i class="fa fa-facebook fa-3x" style="color:#fff;" aria-hidden="true"></i></a>
  191. <a href="" target="_blank"><i class="fa fa-youtube fa-3x" style="color:#fff; margin-left: 40px;" aria-hidden="true"></i></a>
  192. <a href="" target="_blank"><i class="fa fa-twitter fa-3x" style="color:#fff; margin-left: 40px;" aria-hidden="true"></i></a>
  193. </div>
  194. <div class="tnp-col-3-boxed">
  195. <p><?php _e('If you are unsure on how to use some features of Newsletter, reach for our official documentation.', 'newsletter'); ?></p>
  196. <a href="https://www.thenewsletterplugin.com/documentation" class="tnp-welcome-link-button" target="_blank"><?php _e('Documentation', 'newsletter'); ?></a>
  197. </div>
  198. </div>
  199. <p><a href="<?php echo admin_url('admin.php?page=newsletter_main_index') ?>" class="tnp-welcome-link-button"><?php _e('Go to your dashboard', 'newsletter'); ?></a></p>
  200. </li>
  201. </ul> <!-- .cd-slider -->
  202. <div class="cd-slider-navigation">
  203. <a class="tnp-welcome-prev" style="display: none" href="#" onclick="prevSlide(); return false;"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve" width="16" height="16>"<g class="nc-icon-wrapper" fill="#ffffff"><path fill="#ffffff" d="M17,23.414L6.293,12.707c-0.391-0.391-0.391-1.023,0-1.414L17,0.586L18.414,2l-10,10l10,10L17,23.414z"></path></g></svg><?php _e('Previous', 'newsletter'); ?></a>
  204. <a class="tnp-welcome-next" href="#" onclick="nextSlide(); return false;"><?php _e('Next', 'newsletter'); ?><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" xml:space="preserve" width="16" height="16"><g class="nc-icon-wrapper" fill="#ffffff"><path fill="#ffffff" d="M7,23.414L5.586,22l10-10l-10-10L7,0.586l10.707,10.707c0.391,0.391,0.391,1.023,0,1.414L7,23.414z"></path></g></svg></a>
  205. </div>
  206. <div class="cd-svg-cover" data-step1="M1402,800h-2V0.6c0-0.3,0-0.3,0-0.6h2v294V800z" data-step2="M1400,800H383L770.7,0.6c0.2-0.3,0.5-0.6,0.9-0.6H1400v294V800z" data-step3="M1400,800H0V0.6C0,0.4,0,0.3,0,0h1400v294V800z" data-step4="M615,800H0V0.6C0,0.4,0,0.3,0,0h615L393,312L615,800z" data-step5="M0,800h-2V0.6C-2,0.4-2,0.3-2,0h2v312V800z" data-step6="M-2,800h2L0,0.6C0,0.3,0,0.3,0,0l-2,0v294V800z" data-step7="M0,800h1017L629.3,0.6c-0.2-0.3-0.5-0.6-0.9-0.6L0,0l0,294L0,800z" data-step8="M0,800h1400V0.6c0-0.2,0-0.3,0-0.6L0,0l0,294L0,800z" data-step9="M785,800h615V0.6c0-0.2,0-0.3,0-0.6L785,0l222,312L785,800z" data-step10="M1400,800h2V0.6c0-0.2,0-0.3,0-0.6l-2,0v312V800z">
  207. <svg height='100%' width="100%" preserveAspectRatio="none" viewBox="0 0 1400 800">
  208. <title>SVG cover layer</title>
  209. <desc>an animated layer to switch from one slide to the next one</desc>
  210. <path id="cd-changing-path" d="M1402,800h-2V0.6c0-0.3,0-0.3,0-0.6h2v294V800z"/>
  211. </svg>
  212. </div> .cd-svg-cover
  213. </section> <!-- .cd-slider-wrapper -->
  214. </form>
  215. <form target="tnp-tunnel" id="tnp-subscription" action="https://www.thenewsletterplugin.com/?na=s" method="post" style="display: none">
  216. <input type="email" name="ne" value="">
  217. <input type="hidden" value="plugin-welcome" name="nr">
  218. <input type="hidden" value="3" name="nl[]">
  219. <input type="hidden" value="single" name="optin">
  220. </form>
  221. <iframe name="tnp-tunnel" style="display: none"></iframe>
  222. </div>