Email Subscribers & Newsletters - Version 3.5.11

Version Description

(24.09.2018) =

  • Fix: Send test newsletter to "Test" group on update
Download this release

Release Info

Developer Icegram
Plugin Icon 128x128 Email Subscribers & Newsletters
Version 3.5.11
Comparing to
See all releases

Code changes from version 3.5.10 to 3.5.11

changelog.txt CHANGED
@@ -4,6 +4,10 @@ Author : Icegram
4
  Author URI : https://www.icegram.com/
5
  License : GPLv3
6
 
 
 
 
 
7
  ***********************************************************Version 3.5.10***********************************************************
8
 
9
  * Fix: Prevent spam signups
4
  Author URI : https://www.icegram.com/
5
  License : GPLv3
6
 
7
+ ***********************************************************Version 3.5.11***********************************************************
8
+
9
+ * Fix: Send test newsletter to "Test" group on update
10
+
11
  ***********************************************************Version 3.5.10***********************************************************
12
 
13
  * Fix: Prevent spam signups
classes/es-register.php CHANGED
@@ -216,8 +216,87 @@ class es_cls_registerhook {
216
  }
217
  }
218
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
219
  public static function es_load_scripts() {
 
 
 
 
 
 
 
220
 
 
 
 
 
 
 
 
 
 
 
 
221
  if ( ! empty( $_GET['page'] ) ) {
222
  switch ( $_GET['page'] ) {
223
  case 'es-view-subscribers':
@@ -731,314 +810,6 @@ class es_cls_registerhook {
731
  $es_rating_text = $es_rating_text[$key];
732
  echo '<div class="notice notice-warning" style="background-color: #FFF;"><p style="letter-spacing: 0.6px;">' . $es_rating_text . ' <a style="float:right" class="es-admin-btn es-admin-btn-secondary" href="?dismiss_admin_notice=1&option_name=es_star_review">' . __( 'No, I don\'t like it', ES_TDOMAIN ) . '</a></p></div>';
733
  }
734
-
735
- //Survey
736
- $admin_email = get_option( 'admin_email' );
737
- $ig_es_current_version_date_details = get_option( 'ig_es_current_version_date_details' );
738
- $timezone_format = _x( 'Y-m-d', 'timezone date format' );
739
- $es_current_date = date_i18n( $timezone_format );
740
- $date_diff = floor( ( strtotime( $es_current_date ) - strtotime( $ig_es_current_version_date_details['es_current_date'] ) ) / ( 3600 * 24 ) );
741
-
742
- // Don't show survey if it's just 5 days to install/update or already did survey or cancelled it
743
- if ( ( ! empty( $date_diff ) && $date_diff < 5 ) || ( get_option( 'ig_es_survey_for_problems_done' ) == 1 ) || ( get_option( 'ig_es_survey_for_problems_cancelled' ) == 1 )) {
744
- return;
745
- }
746
-
747
- ?>
748
- <style>
749
- .es_survey {
750
- width: 65%;
751
- background-color: #FFF !important;
752
- margin-top: 1%;
753
- padding: 1.5em;
754
- box-shadow: 0 0 7px 0 rgba(0, 0, 0, .2);
755
- font-size: 1.1em;
756
- border: 0.5em solid #fd714f;
757
- height: 27em;
758
- }
759
-
760
- .es_question {
761
- font-size: 1.5em;
762
- color: #011627;
763
- margin: 0.5em 0;
764
- }
765
-
766
- .es_survey_ans_text {
767
- box-sizing: border-box;
768
- resize: none;
769
- overflow: auto;
770
- height: auto;
771
- padding: 8px;
772
- box-shadow: 0px 4px 10px -8px black;
773
- margin: 0.5em 0;
774
- }
775
-
776
- .es_survey_ans_text {
777
- width: 90%;
778
- }
779
-
780
- .es_email_wrapper {
781
- margin: 1.5em 0;
782
- }
783
-
784
- .es_email_wrapper input[type="email"] {
785
- width: 25em;
786
- height: 2.5em;
787
- }
788
-
789
- .es-loader-wrapper {
790
- position: absolute;
791
- display: none;
792
- left: 50%;
793
- margin-top: 0.4em;
794
- margin-left: 4em;
795
- }
796
-
797
- .es-loader-wrapper img {
798
- width: 60%;
799
- }
800
-
801
- .es-subheadline {
802
- padding-bottom: 0.4em;
803
- font-family: Georgia, Palatino, serif;
804
- font-size: 1.2em;
805
- color: #2d3e50;
806
- line-height: 1.3em;
807
- }
808
-
809
- .es-main-headline {
810
- font-size: 1.5em;
811
- font-weight: bold;
812
- padding-bottom: 0.6em;
813
- color: #f2555b;
814
- }
815
-
816
- .es-survey-next, .es_button {
817
- color: #FFFFFF !important;
818
- padding: 0 3.6em;
819
- height: 2em;
820
- border-color: #03a025 !important;
821
- background: #03a025 !important;
822
- box-shadow: 0 1px 0 #03a025;
823
- }
824
-
825
- .es-container-2 .es-subheadline {
826
- margin-top: 1em;
827
- }
828
-
829
- .es_button {
830
- height: 2.7em !important;
831
- width: 10em;
832
- }
833
-
834
- .es-logo-wrapper {
835
- text-align: center;
836
- }
837
-
838
- #es-no, #es-cancel {
839
- # margin-left: 40%;
840
- cursor: pointer;
841
- }
842
-
843
- #es-no[type="submit"] {
844
- background: #b9b9b9 !important;
845
- border-color: #b9b9b9 !important;
846
- }
847
-
848
- .es-signature-wrapper {
849
- margin-top: 8em;
850
- font-size: 1.2em;
851
- }
852
-
853
- .es-avatar img {
854
- border-radius: 50%;
855
- width: 150px;
856
- height: 150px;
857
- }
858
-
859
- .es-avatar {
860
- text-align: center;
861
- }
862
-
863
- .es-left {
864
- float: left;
865
- width: 80%;
866
- display: inline-block;
867
- }
868
-
869
- .es-right {
870
- float: right;
871
- width: 20%;
872
- display: inline-block;
873
- }
874
-
875
- .es-no .es-main-headline {
876
- font-size: 3em;
877
- margin-top: 1em;
878
- font-style: italic;
879
- }
880
-
881
- .es-yes .es-main-headline {
882
- font-size: 2em;
883
- line-height: 1em;
884
- font-style: italic;
885
- }
886
-
887
- .es-container-1 #es-no {
888
- margin-left: 1em;
889
- vertical-align: -webkit-baseline-middle;
890
- cursor: pointer;
891
- }
892
-
893
- .es-error {
894
- margin-top: 0.5em;
895
- color: #f2555b;
896
- }
897
-
898
- .es-send-problems-btn {
899
- # float: left;
900
- }
901
-
902
- .es-do-not-problems-link {
903
- line-height: 30px;
904
- margin-left: 1em;
905
- }
906
-
907
-
908
- @media screen and (min-width: 70em) {
909
- .es_survey {
910
- width: 80%;
911
- }
912
-
913
- #es-no {
914
- # margin-left: 51%;
915
- }
916
- }
917
-
918
- </style>
919
- <script type="text/javascript">
920
- jQuery(function () {
921
- jQuery('.es_survey').on('click', '.es-survey-next', function () {
922
- var val1 = jQuery('.es_survey').find("textarea:first-child").val();
923
- var val2 = jQuery('.es_survey').find("textarea:eq( 1 )").val();
924
- if (val1 !== '' && val2 !== '') {
925
- jQuery('.es-container-1').hide();
926
- jQuery('.es-container-2').show();
927
- } else {
928
- jQuery('.es-error').show();
929
- }
930
- });
931
-
932
- });
933
- </script>
934
- <div class="es_survey">
935
- <div class="es_survey_form">
936
- <form name='es-survey-form'>
937
- <div class="es-container-1">
938
- <div class="es-left">
939
- <div class="es-main-headline"><?php _e( 'What do you hate about list building and email marketing?', ES_TDOMAIN ); ?></div>
940
- <div class="es-subheadline"><?php _e( 'Hey, glad to see you!', ES_TDOMAIN ) ?></div>
941
- <div class="es-subheadline"><?php _e( 'I am on a daring quest to solve your biggest problems around list building and email marketing. ', ES_TDOMAIN ) ?></div>
942
- <div class="es-subheadline"><?php _e( 'So tell me, when it comes to list building and email marketing, what\'s your biggest challenge? What\'s blocking your progress? ', ES_TDOMAIN ) ?></div>
943
- <div class="es-questions">
944
- <div class="es-subheadline es-problems-2">
945
- <textarea class="es_survey_ans_text" name="es_survey['es_ques_1']" placeholder=""></textarea>
946
- </div>
947
- <div class="es-subheadline es-problems-2"><?php _e( 'And what\'s another big challenge? ', ES_TDOMAIN ) ?></br>
948
- <textarea class="es_survey_ans_text" name="es_survey['es_ques_2']" placeholder=""></textarea>
949
- </div>
950
- <div>
951
- <span class="es-send-problems-btn"><a href="#" class="es-survey-next button primary"><?php echo __( 'Send my problems...', ES_TDOMAIN ); ?> </a></span>
952
- <span class="es-do-not-problems-link"><a id="es-cancel" data-val="cancel" class="es-cancel"><?php echo __( 'No, I don\'t have problems', ES_TDOMAIN ); ?></a></span>
953
- </div>
954
- <div class="es-error" style="display:none"><?php echo __( 'Fill the above field first', ES_TDOMAIN ); ?></div>
955
- </div>
956
- </div>
957
- <div class="es-right">
958
- <div class="es-avatar"><img src="<?php echo ES_URL ?>images/andrea-avatar-300x300.jpg"></div>
959
- </div>
960
- </div>
961
- <div class="es-container-2" style="display:none;">
962
- <div class="es-left">
963
- <div class="es-main-headline"><?php _e( 'Gosh... I hear you mate... ', ES_TDOMAIN ) ?></div>
964
- <div class="es-subheadline"><?php _e( 'You will be the first to know when we solve those problems.', ES_TDOMAIN ) ?></div>
965
- <div class="es-subheadline"><?php _e( 'We will inform you on below email', ES_TDOMAIN ) ?></div>
966
- <div class="es_email_wrapper">
967
- <input type="email" name="es_email" value="<?php echo $admin_email ?>"/>
968
- <input data-val="yes" type="submit" id="es-yes" value="Notify me" class="es_button button primary">
969
- <input data-val="no" type="submit" id="es-no" value="Don't Notify me" class="es_button button primary">
970
- </div>
971
- <div class="es-loader-wrapper"><img src="<?php echo ES_URL ?>images/spinner-2x.gif"></div>
972
- </div>
973
- <div class="es-right">
974
- <div class="es-avatar"><img src="<?php echo ES_URL ?>images/andrea-avatar-300x300.jpg"></div>
975
- </div>
976
- </div>
977
- </form>
978
- </div>
979
- <div class="es-msg-wrap" style="display:none;">
980
- <div class="es-left">
981
- <div class="es-yes">
982
- <!-- <div class="es-logo-wrapper"><img src="<?php echo ES_URL ?>images/es-logo-128x128.png"></div> -->
983
- <div class="es-main-headline"><?php _e( 'I got you.', ES_TDOMAIN ) ?></div>
984
- <div class="es-main-headline"><?php _e( 'Will do everything I can to help you. ', ES_TDOMAIN ) ?></div>
985
- <div class="es-signature-wrapper" style="font-family: Georgia, Palatino, serif;">
986
- <span class="es-later"><?php echo __( 'Later. ', ES_TDOMAIN ); ?></span></br>
987
- <span class="es-signature"><img src="<?php echo ES_URL ?>images/signature.png"></span></br>
988
- <span class="es-name"><?php echo __( 'Andrea Juliao ', ES_TDOMAIN ); ?></span>
989
- </div>
990
- </div>
991
- <div class="es-no">
992
- <div class="es-main-headline"><?php echo __( 'No issues, have a nice day!', ES_TDOMAIN ); ?></div>
993
- <div class="es-signature-wrapper" style="font-family: Georgia, Palatino, serif;">
994
- <span class="es-later"><?php echo __( 'Later. ', ES_TDOMAIN ); ?></span></br>
995
- <span class="es-signature"><img src="<?php echo ES_URL ?>images/signature.png"></span></br>
996
- <span class="es-name"><?php echo __( 'Andrea Juliao ', ES_TDOMAIN ); ?></span>
997
- </div>
998
- </div>
999
- </div>
1000
- <div class="es-right">
1001
- <div class="es-avatar"><img src="<?php echo ES_URL ?>images/andrea-avatar-300x300.jpg"></div>
1002
- </div>
1003
- </div>
1004
- </div>
1005
- <script type="text/javascript">
1006
- jQuery(function () {
1007
- jQuery("form[name=es-survey-form]").on('click', '.es_button, #es-no, #es-cancel', function (e) {
1008
- e.preventDefault();
1009
- jQuery("form[name=es-survey-form]").find('.es-loader-wrapper').show();
1010
- var params = jQuery("form[name=es-survey-form]").serializeArray();
1011
- var that = this;
1012
- params.push({name: 'btn-val', value: jQuery(this).data('val')});
1013
- params.push({name: 'action', value: 'es_submit_survey'});
1014
- jQuery.ajax({
1015
- method: 'POST',
1016
- type: 'text',
1017
- url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
1018
- data: params,
1019
- success: function (response) {
1020
- jQuery("form[name=es-survey-form]").find('.es-loader-wrapper').hide();
1021
- jQuery(".es-msg-wrap").show('slow');
1022
- if (jQuery(that).attr('id') == 'es-no') {
1023
- jQuery(".es-msg-wrap .es-no").hide();
1024
- // jQuery(".es-container-1").hide();
1025
- } else if (jQuery(that).attr('id') == 'es-cancel') {
1026
- jQuery(".es-container-1").hide();
1027
- jQuery(".es-msg-wrap .es-yes").hide();
1028
- } else {
1029
- jQuery(".es-msg-wrap .es-no").hide();
1030
- }
1031
-
1032
- jQuery(".es-container-2").hide();
1033
- setTimeout(function () {
1034
- jQuery(".es_survey").hide('slow');
1035
- }, 5000);
1036
- }
1037
- });
1038
- })
1039
- });
1040
- </script>
1041
- <?php
1042
  }
1043
 
1044
  public static function es_submit_survey() {
216
  }
217
  }
218
 
219
+ //upsale functions
220
+ public static function add_readymade_template_link(){
221
+ global $post, $pagenow;
222
+ $screen = get_current_screen();
223
+ if ( $screen->id === 'edit-es_template' ) {
224
+ ?>
225
+ <script type="text/javascript">
226
+ jQuery(document).ready( function($){
227
+ jQuery(".page-title-action").after("<span class='es_upsale' >Save time using beautiful readymade templates <a href='https://www.icegram.com/documentation/how-ready-made-template-in-in-email-subscribers-look/?utm_source=es&utm_medium=in_app&utm_campaign=es_upsale' target='_blank'>Checkout here</a></span>");
228
+ });
229
+ </script>
230
+ <?php
231
+ }
232
+ if ( in_array( $screen->id, array( 'email-subscribers_page_es-notification', 'email-subscribers_page_es-sendemail' ), true ) ) {
233
+ ?>
234
+ <span class="es_upsale" ><?php _e( 'Save time using beautiful readymade templates <a href="https://www.icegram.com/documentation/how-ready-made-template-in-in-email-subscribers-look/?utm_source=es&utm_medium=in_app&utm_campaign=es_upsale" target="_blank">Checkout here</a>', ES_TDOMAIN ) ?></span>
235
+ <?php
236
+ }
237
+
238
+ }
239
+
240
+ public static function add_test_send_newsletter_link(){
241
+ echo "<span>Test Newsletter Emails Before Sending</span>";
242
+ }
243
+ public static function add_captcha_link(){
244
+ ?>
245
+ <tr class="es-admin active-settings">
246
+ <td class="es_upsale"><?php _e('Enable captcha to protect list from bot attacks <a href="https://www.icegram.com/documentation/es-how-to-add-captcha-in-subscribe-form-of-email-subscribers/?utm_source=es&utm_medium=in_app&utm_campaign=es_upsale" target="_blank">Lean more</a>', ES_TDOMAIN )?></td>
247
+ </tr>
248
+ <?php
249
+ }
250
+
251
+ public static function add_optin_optout_link(){
252
+ echo '<tr class="es-signup-confirmation hidden"><td><span class="es_upsale">Customize confirmation and unsubscribe page <a href="https://www.icegram.com/documentation/how-to-change-simple-unsubscribe-confirmation-message-with-some-beautiful-design-page/?utm_source=es&utm_medium=in_app&utm_campaign=es_upsale" target="_blank">Lean more</a></span></td></tr>';
253
+ }
254
+
255
+ public static function add_cron_service(){
256
+ $screen = get_current_screen();
257
+ if ( $screen->id === 'email-subscribers_page_es-settings' ) {
258
+ ?>
259
+ <tr class="es-cron hidden"><td><span class="es_upsale"><?php _e('Set automatic cron service <a href="https://www.icegram.com/documentation/how-to-enable-automatic-cron-in-es/?utm_source=es&utm_medium=in_app&utm_campaign=es_upsale" target="_blank">Lean more</a>')?></span></td></tr>
260
+ <?php
261
+ }elseif( in_array( $screen->id, array( 'email-subscribers_page_es-notification', 'email-subscribers_page_es-sendemail' ), true ) ){
262
+ ?>
263
+ <span class="es_upsale"><?php _e('Set automatic cron service <a href="https://www.icegram.com/documentation/how-to-enable-automatic-cron-in-es/?utm_source=es&utm_medium=in_app&utm_campaign=es_upsale" target="_blank">Lean more</a>')?></span>
264
+ <?php
265
+ }
266
+ }
267
+
268
+ public static function add_spam_score_utm_link(){
269
+ global $post, $pagenow;
270
+ if ($post->post_type !== 'es_template') return;
271
+ if ( $pagenow !== 'post-new.php' ) {
272
+ ?>
273
+ <script>
274
+ jQuery('#submitdiv').after('<div class="es_upsale">Track email leads in Google using UTM tracking <a href="https://www.icegram.com/documentation/how-to-add-utm-parameters-to-email?utm_source=es&utm_medium=in_app&utm_campaign=es_upsale">Learn how</a></div>');
275
+ </script>
276
+ <?php
277
+ }
278
+ }
279
+
280
  public static function es_load_scripts() {
281
+ $screen = get_current_screen();
282
+ if ( in_array( $screen->id, array( 'toplevel_page_es-view-subscribers', 'es_template', 'edit-es_template', 'email-subscribers_page_es-notification', 'email-subscribers_page_es-notification', 'email-subscribers_page_es-sendemail', 'email-subscribers_page_es-settings', 'email-subscribers_page_es-sentmail' ), true ) ) {
283
+ ?>
284
+ <style type="text/css">
285
+ .es_tmpl_select{
286
+ width: 50%;
287
+ }
288
 
289
+ .es_upsale{
290
+ margin-left: 2px;
291
+ vertical-align: text-bottom;
292
+ color: green;
293
+ background: #fbfbcd;
294
+ padding: 2px;
295
+ border: 1px dashed;
296
+ }
297
+ </style>
298
+ <?php
299
+ }
300
  if ( ! empty( $_GET['page'] ) ) {
301
  switch ( $_GET['page'] ) {
302
  case 'es-view-subscribers':
810
  $es_rating_text = $es_rating_text[$key];
811
  echo '<div class="notice notice-warning" style="background-color: #FFF;"><p style="letter-spacing: 0.6px;">' . $es_rating_text . ' <a style="float:right" class="es-admin-btn es-admin-btn-secondary" href="?dismiss_admin_notice=1&option_name=es_star_review">' . __( 'No, I don\'t like it', ES_TDOMAIN ) . '</a></p></div>';
812
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
813
  }
814
 
815
  public static function es_submit_survey() {
email-subscribers.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Email Subscribers & Newsletters
4
  * Plugin URI: https://www.icegram.com/
5
  * Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
6
- * Version: 3.5.10
7
  * Author: Icegram
8
  * Author URI: https://www.icegram.com/
9
  * Requires at least: 3.9
@@ -78,6 +78,23 @@ add_action('admin_footer', array( 'es_cls_registerhook','es_add_admin_css'));
78
  //add widget
79
  add_filter( 'wp_loaded', array( 'es_cls_default' , 'es_default_widget' ) );
80
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  // To store current date and version in db with each update
82
  add_action( 'upgrader_process_complete', 'es_update_current_version_and_date', 10, 2 );
83
  function es_update_current_version_and_date( $upgrader_object, $options ) {
3
  * Plugin Name: Email Subscribers & Newsletters
4
  * Plugin URI: https://www.icegram.com/
5
  * Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
6
+ * Version: 3.5.11
7
  * Author: Icegram
8
  * Author URI: https://www.icegram.com/
9
  * Requires at least: 3.9
78
  //add widget
79
  add_filter( 'wp_loaded', array( 'es_cls_default' , 'es_default_widget' ) );
80
 
81
+ $active_plugins = (array) get_option('active_plugins', array());
82
+ if (is_multisite()) {
83
+ $active_plugins = array_merge($active_plugins, get_site_option('active_sitewide_plugins', array()));
84
+ }
85
+ if (is_admin() && !( in_array('email-subscribers-premium/email-subscribers-premium.php', $active_plugins) || array_key_exists('email-subscribers-premium/email-subscribers-premium.php', $active_plugins) ) ) {
86
+ //es-pro-upsale
87
+ add_action( 'admin_head-edit.php', array( 'es_cls_registerhook', 'add_readymade_template_link' ) );
88
+ // add_action( 'es_after_reset_button_newsletter', array( 'es_cls_registerhook', 'add_test_send_newsletter_link' ) );
89
+ add_action( 'es_after_optin_settings', array( 'es_cls_registerhook', 'add_captcha_link' ) );
90
+ add_action( 'es_beside_select_notification', array( 'es_cls_registerhook', 'add_readymade_template_link' ) );
91
+ add_action( 'es_beside_optin_textarea', array( 'es_cls_registerhook', 'add_optin_optout_link' ) );
92
+ add_action( 'es_beside_unsubscribe_textarea', array( 'es_cls_registerhook', 'add_optin_optout_link' ) );
93
+ add_action( 'es_after_cron_setting', array( 'es_cls_registerhook', 'add_cron_service' ) );
94
+ add_action( 'es_after_email_sent_option', array( 'es_cls_registerhook', 'add_cron_service' ) );
95
+ add_action( 'edit_form_advanced', array( 'es_cls_registerhook', 'add_spam_score_utm_link' ) );
96
+ }
97
+
98
  // To store current date and version in db with each update
99
  add_action( 'upgrader_process_complete', 'es_update_current_version_and_date', 10, 2 );
100
  function es_update_current_version_and_date( $upgrader_object, $options ) {
notification/notification-add.php CHANGED
@@ -145,7 +145,7 @@ if ( ! defined( 'ABSPATH' ) ) {
145
  </label>
146
  </th>
147
  <td>
148
- <select name="es_note_templ" id="es_note_templ" onchange="return _es_change(this.options[this.selectedIndex])">
149
  <option value=''><?php echo __( 'Select', ES_TDOMAIN ); ?></option>
150
  <?php
151
  $subject = array();
@@ -161,6 +161,7 @@ if ( ! defined( 'ABSPATH' ) ) {
161
  }
162
  ?>
163
  </select>
 
164
  </td>
165
  </tr>
166
  <tr>
145
  </label>
146
  </th>
147
  <td>
148
+ <select class="es_tmpl_select" name="es_note_templ" id="es_note_templ" onchange="return _es_change(this.options[this.selectedIndex])">
149
  <option value=''><?php echo __( 'Select', ES_TDOMAIN ); ?></option>
150
  <?php
151
  $subject = array();
161
  }
162
  ?>
163
  </select>
164
+ <?php do_action('es_beside_select_notification');?>
165
  </td>
166
  </tr>
167
  <tr>
notification/notification-edit.php CHANGED
@@ -165,7 +165,7 @@ if ( ! defined( 'ABSPATH' ) ) {
165
  </label>
166
  </th>
167
  <td>
168
- <select name="es_note_templ" id="es_note_templ" onchange="return _es_change(this.options[this.selectedIndex])">
169
  <option value=''><?php echo __( 'Select', ES_TDOMAIN ); ?></option>
170
  <?php
171
  $subject = array();
@@ -183,6 +183,7 @@ if ( ! defined( 'ABSPATH' ) ) {
183
  }
184
  ?>
185
  </select>
 
186
  </td>
187
  </tr>
188
  <tr>
165
  </label>
166
  </th>
167
  <td>
168
+ <select class="es_tmpl_select" name="es_note_templ" id="es_note_templ" onchange="return _es_change(this.options[this.selectedIndex])">
169
  <option value=''><?php echo __( 'Select', ES_TDOMAIN ); ?></option>
170
  <?php
171
  $subject = array();
183
  }
184
  ?>
185
  </select>
186
+ <?php do_action('es_beside_select_notification');?>
187
  </td>
188
  </tr>
189
  <tr>
query/db_default.php CHANGED
@@ -110,83 +110,84 @@ class es_cls_default {
110
 
111
  public static function es_template_default() {
112
  // Temp workaround - in future use option=ig_es_sample_data_imported to check against
113
- // $result = es_cls_dbquery::es_view_subscriber_count(0);
114
- // if ($result == 0) {
115
  $ig_es_sample_data_imported = get_option( 'ig_es_sample_data_imported', 'no' );
116
  if ( 'yes' === $ig_es_sample_data_imported ) return;
117
- //Adding a sample Post Notification Template
118
- $es_b = "Hello {{NAME}},\r\n\r\n";
119
- $es_b .= "We have published a new blog article on our website : {{POSTTITLE}}\r\n";
120
- $es_b .= "{{POSTIMAGE}}\r\n\r\n";
121
- $es_b .= "You can view it from this link : ";
122
- $es_b .= "{{POSTLINK}}\r\n\r\n";
123
- $es_b .= "Thanks & Regards,\r\n";
124
- $es_b .= "Admin\r\n\r\n";
125
- $es_b .= "You received this email because in the past you have provided us your email address : {{EMAIL}} to receive notifications when new updates are posted.";
126
-
127
- // Create Post Notification object
128
- $es_post = array(
129
- 'post_title' => 'New Post Published - {{POSTTITLE}}',
130
- 'post_content' => $es_b,
131
- 'post_status' => 'publish',
132
- 'post_type' => 'es_template',
133
- 'meta_input' => array( 'es_template_type' => 'Post Notification'
134
- )
135
- );
136
- // Insert the post into the database
137
- $last_inserted_id = wp_insert_post( $es_post );
138
-
139
- // Adding a Post Notification for above created template
140
- $form["es_note_group"] = "Test";
141
- $form["es_note_status"] = "Enable";
142
- $form["es_note_templ"] = $last_inserted_id;
143
-
144
- $listcategory = "";
145
- $args = array( 'hide_empty' => 0, 'orderby' => 'name', 'order' => 'ASC' );
146
- $categories = get_categories($args);
147
- $total = count($categories);
148
- $i = 1;
149
- foreach($categories as $category) {
150
- $listcategory = $listcategory . " ##" . $category->cat_name . "## ";
151
- if($i < $total) {
152
- $listcategory = $listcategory . "--";
 
 
 
 
153
  }
154
- $i = $i + 1;
155
- }
156
- $form["es_note_cat"] = $listcategory;
157
- es_cls_notification::es_notification_ins($form, "insert");
158
- $latest_post = get_posts("post_type=post&numberposts=1");
159
- if($latest_post[0]->ID > 0 ){ // check if exists
160
- es_cls_sendmail::es_prepare_notification( 'publish', 'draft', $latest_post[0]->ID );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
  }
162
- // Adding a sample Newsletter Template
163
- $Sample = '<strong style="color: #990000">What can you achieve using Email Subscribers?</strong><p>Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.';
164
- $Sample .= ' You can also Import or Export subscribers from any list to Email Subscribers.</p>';
165
- $Sample .= ' <strong style="color: #990000">Plugin Features</strong><ol>';
166
- $Sample .= ' <li>Send notification emails to subscribers when new blog posts are published.</li>';
167
- $Sample .= ' <li>Subscribe form available with 3 options to setup.</li>';
168
- $Sample .= ' <li>Double Opt-In and Single Opt-In support.</li>';
169
- $Sample .= ' <li>Email notification to admin when a new user signs up (Optional).</li>';
170
- $Sample .= ' <li>Automatic welcome email to subscriber.</li>';
171
- $Sample .= ' <li>Auto add unsubscribe link in the email.</li>';
172
- $Sample .= ' <li>Import/Export subscriber emails to migrate to any lists.</li>';
173
- $Sample .= ' <li>Default WordPress editor to create emails.</li>';
174
- $Sample .= ' </ol>';
175
- $Sample .= ' <strong>Thanks & Regards,</strong><br>Admin';
176
- $es_post = array(
177
- 'post_title' => 'Welcome To Email Subscribers',
178
- 'post_content' => $Sample,
179
- 'post_status' => 'publish',
180
- 'post_type' => 'es_template',
181
- 'meta_input' => array( 'es_template_type' => 'Newsletter'
182
- )
183
- );
184
- // Insert the post into the database
185
- $last_inserted_id = wp_insert_post( $es_post );
186
- //sending first newsletter to test group
187
- es_cls_sendmail::es_prepare_newsletter_manual( $last_inserted_id, "Immediately", "Test" );
188
-
189
-
190
  return true;
191
  }
192
 
@@ -200,6 +201,10 @@ class es_cls_default {
200
  $form["es_email_group"] = "Test";
201
  $form["es_email_status"] = "Confirmed";
202
  es_cls_dbquery::es_view_subscriber_ins($form, "insert");
 
 
 
 
203
  }
204
 
205
  return true;
110
 
111
  public static function es_template_default() {
112
  // Temp workaround - in future use option=ig_es_sample_data_imported to check against
113
+ $ig_es_default_subscriber_imported = get_option( 'ig_es_default_subscriber_imported', 'no');
 
114
  $ig_es_sample_data_imported = get_option( 'ig_es_sample_data_imported', 'no' );
115
  if ( 'yes' === $ig_es_sample_data_imported ) return;
116
+ if ( 'yes' === $ig_es_default_subscriber_imported) {
117
+
118
+ //Adding a sample Post Notification Template
119
+ $es_b = "Hello {{NAME}},\r\n\r\n";
120
+ $es_b .= "We have published a new blog article on our website : {{POSTTITLE}}\r\n";
121
+ $es_b .= "{{POSTIMAGE}}\r\n\r\n";
122
+ $es_b .= "You can view it from this link : ";
123
+ $es_b .= "{{POSTLINK}}\r\n\r\n";
124
+ $es_b .= "Thanks & Regards,\r\n";
125
+ $es_b .= "Admin\r\n\r\n";
126
+ $es_b .= "You received this email because in the past you have provided us your email address : {{EMAIL}} to receive notifications when new updates are posted.";
127
+
128
+ // Create Post Notification object
129
+ $es_post = array(
130
+ 'post_title' => 'New Post Published - {{POSTTITLE}}',
131
+ 'post_content' => $es_b,
132
+ 'post_status' => 'publish',
133
+ 'post_type' => 'es_template',
134
+ 'meta_input' => array( 'es_template_type' => 'Post Notification'
135
+ )
136
+ );
137
+ // Insert the post into the database
138
+ $last_inserted_id = wp_insert_post( $es_post );
139
+
140
+ // Adding a Post Notification for above created template
141
+ $form["es_note_group"] = "Test";
142
+ $form["es_note_status"] = "Enable";
143
+ $form["es_note_templ"] = $last_inserted_id;
144
+
145
+ $listcategory = "";
146
+ $args = array( 'hide_empty' => 0, 'orderby' => 'name', 'order' => 'ASC' );
147
+ $categories = get_categories($args);
148
+ $total = count($categories);
149
+ $i = 1;
150
+ foreach($categories as $category) {
151
+ $listcategory = $listcategory . " ##" . $category->cat_name . "## ";
152
+ if($i < $total) {
153
+ $listcategory = $listcategory . "--";
154
+ }
155
+ $i = $i + 1;
156
  }
157
+ $form["es_note_cat"] = $listcategory;
158
+ es_cls_notification::es_notification_ins($form, "insert");
159
+ $latest_post = get_posts("post_type=post&numberposts=1");
160
+ if($latest_post[0]->ID > 0 ){ // check if exists
161
+ es_cls_sendmail::es_prepare_notification( 'publish', 'draft', $latest_post[0]->ID );
162
+ }
163
+ // Adding a sample Newsletter Template
164
+ $Sample = '<strong style="color: #990000">What can you achieve using Email Subscribers?</strong><p>Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.';
165
+ $Sample .= ' You can also Import or Export subscribers from any list to Email Subscribers.</p>';
166
+ $Sample .= ' <strong style="color: #990000">Plugin Features</strong><ol>';
167
+ $Sample .= ' <li>Send notification emails to subscribers when new blog posts are published.</li>';
168
+ $Sample .= ' <li>Subscribe form available with 3 options to setup.</li>';
169
+ $Sample .= ' <li>Double Opt-In and Single Opt-In support.</li>';
170
+ $Sample .= ' <li>Email notification to admin when a new user signs up (Optional).</li>';
171
+ $Sample .= ' <li>Automatic welcome email to subscriber.</li>';
172
+ $Sample .= ' <li>Auto add unsubscribe link in the email.</li>';
173
+ $Sample .= ' <li>Import/Export subscriber emails to migrate to any lists.</li>';
174
+ $Sample .= ' <li>Default WordPress editor to create emails.</li>';
175
+ $Sample .= ' </ol>';
176
+ $Sample .= ' <strong>Thanks & Regards,</strong><br>Admin';
177
+ $es_post = array(
178
+ 'post_title' => 'Welcome To Email Subscribers',
179
+ 'post_content' => $Sample,
180
+ 'post_status' => 'publish',
181
+ 'post_type' => 'es_template',
182
+ 'meta_input' => array( 'es_template_type' => 'Newsletter'
183
+ )
184
+ );
185
+ // Insert the post into the database
186
+ $last_inserted_id = wp_insert_post( $es_post );
187
+ //sending first newsletter to test group
188
+ es_cls_sendmail::es_prepare_newsletter_manual( $last_inserted_id, "Immediately", "Test" );
189
+
190
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  return true;
192
  }
193
 
201
  $form["es_email_group"] = "Test";
202
  $form["es_email_status"] = "Confirmed";
203
  es_cls_dbquery::es_view_subscriber_ins($form, "insert");
204
+ if('sus' === $res){
205
+ update_option( 'ig_es_default_subscriber_imported', 'yes' );
206
+ }
207
+
208
  }
209
 
210
  return true;
readme.txt CHANGED
@@ -5,7 +5,7 @@ Author URI: https://www.icegram.com/
5
  Tags: subscription, newsletter, email marketing, post notification, email newsletter form, email signup, email widget, newsletter signup, subscribe, subscription form, bulk emails, signup form, list builder, lead generation
6
  Requires at least: 3.9
7
  Tested up to: 4.9.8
8
- Stable tag: 3.5.10
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses
11
 
@@ -342,6 +342,10 @@ Use our free plugin [Email Subscribers - Group Selector](https://wordpress.org/p
342
 
343
  == Changelog ==
344
 
 
 
 
 
345
  = 3.5.10 (17.09.2018) =
346
 
347
  * Fix: Prevent spam signups
5
  Tags: subscription, newsletter, email marketing, post notification, email newsletter form, email signup, email widget, newsletter signup, subscribe, subscription form, bulk emails, signup form, list builder, lead generation
6
  Requires at least: 3.9
7
  Tested up to: 4.9.8
8
+ Stable tag: 3.5.11
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses
11
 
342
 
343
  == Changelog ==
344
 
345
+ = 3.5.11 (24.09.2018) =
346
+
347
+ * Fix: Send test newsletter to "Test" group on update
348
+
349
  = 3.5.10 (17.09.2018) =
350
 
351
  * Fix: Prevent spam signups
sendmail/sendmail.php CHANGED
@@ -107,7 +107,7 @@ if ($es_error_found == TRUE && isset($es_errors[0]) == TRUE) {
107
  </label>
108
  </th>
109
  <td>
110
- <select name="es_templ_heading" id="es_templ_heading" onchange="return _es_change(this.options[this.selectedIndex])">
111
  <option value=''><?php echo __( 'Select', ES_TDOMAIN ); ?></option>
112
  <?php
113
  $subject = array();
@@ -125,7 +125,8 @@ if ($es_error_found == TRUE && isset($es_errors[0]) == TRUE) {
125
  }
126
  ?>
127
  </select>
128
- </td>
 
129
  </tr>
130
  <tr>
131
  <th scope="row">
@@ -200,6 +201,7 @@ if ($es_error_found == TRUE && isset($es_errors[0]) == TRUE) {
200
  <?php } ?>
201
  <?php wp_nonce_field('es_form_submit'); ?>
202
  <input type="button" class="button-primary" onclick="_es_redirect()" value="<?php echo __( 'Reset', ES_TDOMAIN ); ?>" />
 
203
  </form>
204
  </div>
205
  <div clas="es-preview" style="float: right;width: 19%;">
107
  </label>
108
  </th>
109
  <td>
110
+ <select class="es_tmpl_select" name="es_templ_heading" id="es_templ_heading" onchange="return _es_change(this.options[this.selectedIndex])">
111
  <option value=''><?php echo __( 'Select', ES_TDOMAIN ); ?></option>
112
  <?php
113
  $subject = array();
125
  }
126
  ?>
127
  </select>
128
+ <?php do_action('es_beside_select_notification');?>
129
+ </td>
130
  </tr>
131
  <tr>
132
  <th scope="row">
201
  <?php } ?>
202
  <?php wp_nonce_field('es_form_submit'); ?>
203
  <input type="button" class="button-primary" onclick="_es_redirect()" value="<?php echo __( 'Reset', ES_TDOMAIN ); ?>" />
204
+ <?php do_action('es_after_reset_button_newsletter'); ?>
205
  </form>
206
  </div>
207
  <div clas="es-preview" style="float: right;width: 19%;">
settings/settings-edit.php CHANGED
@@ -206,12 +206,16 @@ if ( ! class_exists( 'ES_Settings' ) ) {
206
  <label for="elp"><?php echo __( 'Text to display after an email address is successfully subscribed from Double Opt-In (Confirmation) Email', ES_TDOMAIN ); ?>
207
  <p class="description"><?php echo __( 'This text will be displayed once user clicks on email confirmation link from the Double Opt In (confirmation) Email.', ES_TDOMAIN ); ?></p></label>
208
  </th>
209
- <td><textarea size="100" id="es_c_subhtml" rows="4" cols="58" name="es_c_subhtml"><?php echo esc_html(stripslashes($this->form['ig_es_successmsg'])); ?></textarea></td>
 
 
210
  </tr>
 
211
  <?php $es_optin_settings = ob_get_clean();
212
  $es_type = 'es_optin';
213
  $es_optin_settings = apply_filters('es_optin_settings', $es_optin_settings, $es_type);
214
  echo $es_optin_settings;
 
215
  ?>
216
  <!-------------------------------------------------------------------------------->
217
  <tr class="es-signup-confirmation hidden">
@@ -262,8 +266,11 @@ if ( ! class_exists( 'ES_Settings' ) ) {
262
  <label for="elp"><?php echo __( 'Text to display after an email address is unsubscribed', ES_TDOMAIN ); ?>
263
  <p class="description"><?php echo __( 'This text will be displayed once user clicks on unsubscribe link from the email.', ES_TDOMAIN ); ?></p></label>
264
  </th>
265
- <td><textarea size="100" id="es_c_unsubhtml" rows="4" cols="58" name="es_c_unsubhtml"><?php echo esc_html(stripslashes($this->form['ig_es_unsubtext'])); ?></textarea></td>
 
 
266
  </tr>
 
267
  <?php $es_optin_settings = ob_get_clean();
268
  $es_type = 'es_unsubscribe';
269
  $es_optin_settings = apply_filters('es_optin_settings', $es_optin_settings, $es_type);
@@ -394,6 +401,7 @@ if ( ! class_exists( 'ES_Settings' ) ) {
394
  <textarea size="100" id="es_cron_adminmail" rows="7" cols="72" name="es_cron_adminmail"><?php echo esc_html(stripslashes($this->form['ig_es_cron_adminmail'])); ?></textarea>
395
  </td>
396
  </tr>
 
397
  <tr class="es-cron hidden">
398
  <td colspan=2>
399
  <div class="tool-box">
206
  <label for="elp"><?php echo __( 'Text to display after an email address is successfully subscribed from Double Opt-In (Confirmation) Email', ES_TDOMAIN ); ?>
207
  <p class="description"><?php echo __( 'This text will be displayed once user clicks on email confirmation link from the Double Opt In (confirmation) Email.', ES_TDOMAIN ); ?></p></label>
208
  </th>
209
+ <td>
210
+ <textarea size="100" id="es_c_subhtml" rows="4" cols="58" name="es_c_subhtml"><?php echo esc_html(stripslashes($this->form['ig_es_successmsg'])); ?></textarea>
211
+ </td>
212
  </tr>
213
+ <?php do_action('es_beside_optin_textarea'); ?>
214
  <?php $es_optin_settings = ob_get_clean();
215
  $es_type = 'es_optin';
216
  $es_optin_settings = apply_filters('es_optin_settings', $es_optin_settings, $es_type);
217
  echo $es_optin_settings;
218
+
219
  ?>
220
  <!-------------------------------------------------------------------------------->
221
  <tr class="es-signup-confirmation hidden">
266
  <label for="elp"><?php echo __( 'Text to display after an email address is unsubscribed', ES_TDOMAIN ); ?>
267
  <p class="description"><?php echo __( 'This text will be displayed once user clicks on unsubscribe link from the email.', ES_TDOMAIN ); ?></p></label>
268
  </th>
269
+ <td>
270
+ <textarea size="100" id="es_c_unsubhtml" rows="4" cols="58" name="es_c_unsubhtml"><?php echo esc_html(stripslashes($this->form['ig_es_unsubtext'])); ?></textarea>
271
+ </td>
272
  </tr>
273
+ <?php do_action('es_beside_unsubscribe_textarea'); ?>
274
  <?php $es_optin_settings = ob_get_clean();
275
  $es_type = 'es_unsubscribe';
276
  $es_optin_settings = apply_filters('es_optin_settings', $es_optin_settings, $es_type);
401
  <textarea size="100" id="es_cron_adminmail" rows="7" cols="72" name="es_cron_adminmail"><?php echo esc_html(stripslashes($this->form['ig_es_cron_adminmail'])); ?></textarea>
402
  </td>
403
  </tr>
404
+ <?php do_action('es_after_cron_setting'); ?>
405
  <tr class="es-cron hidden">
406
  <td colspan=2>
407
  <div class="tool-box">