3
3
* Plugin Name: Mailchimp
4
4
* Plugin URI: https://mailchimp.com/help/connect-or-disconnect-list-subscribe-for-wordpress/
5
5
* Description: Add a Mailchimp signup form widget to your WordPress site.
6
+ * Text Domain: mailchimp
6
7
* Version: 1.5.8
7
8
* Requires at least: 6.1
8
9
* Requires PHP: 7.0
60
61
/**
61
62
* Do the following plugin setup steps here
62
63
*
63
- * Internationalization
64
64
* Resource (JS & CSS) enqueuing
65
65
*
66
66
* @return void
67
67
*/
68
68
function mailchimp_sf_plugin_init () {
69
- // Internationalize the plugin
70
- $ textdomain = 'mailchimp_i18n ' ;
71
- $ locale = apply_filters ( 'plugin_locale ' , get_locale (), $ textdomain );
72
- load_textdomain ( 'mailchimp_i18n ' , MCSF_LANG_DIR . $ textdomain . '- ' . $ locale . '.mo ' );
73
69
74
70
// Remove Sopresto check. If user does not have API key, make them authenticate.
75
71
@@ -91,7 +87,7 @@ function mailchimp_sf_plugin_init() {
91
87
*/
92
88
function mailchimp_sf_plugin_action_links ( $ links ) {
93
89
$ settings_page = add_query_arg ( array ( 'page ' => 'mailchimp_sf_options ' ), admin_url ( 'admin.php ' ) );
94
- $ settings_link = '<a href=" ' . esc_url ( $ settings_page ) . '"> ' . esc_html__ ( 'Settings ' , 'mailchimp_i18n ' ) . '</a> ' ;
90
+ $ settings_link = '<a href=" ' . esc_url ( $ settings_page ) . '"> ' . esc_html__ ( 'Settings ' , 'mailchimp ' ) . '</a> ' ;
95
91
array_unshift ( $ links , $ settings_link );
96
92
return $ links ;
97
93
}
@@ -203,8 +199,8 @@ function mailchimp_sf_main_css() {
203
199
function mailchimp_sf_add_pages () {
204
200
// Add settings page for users who can edit plugins
205
201
add_menu_page (
206
- __ ( 'Mailchimp Setup ' , 'mailchimp_i18n ' ),
207
- __ ( 'Mailchimp ' , 'mailchimp_i18n ' ),
202
+ esc_html__ ( 'Mailchimp Setup ' , 'mailchimp ' ),
203
+ esc_html__ ( 'Mailchimp ' , 'mailchimp ' ),
208
204
MCSF_CAP_THRESHOLD ,
209
205
'mailchimp_sf_options ' ,
210
206
'mailchimp_sf_setup_page ' ,
@@ -482,8 +478,8 @@ function mailchimp_sf_global_msg( $msg = null ) {
482
478
* @return void
483
479
*/
484
480
function mailchimp_sf_set_form_defaults ( $ list_name = '' ) {
485
- update_option ( 'mc_header_content ' , __ ( 'Sign up for ' , 'mailchimp_i18n ' ) . ' ' . $ list_name );
486
- update_option ( 'mc_submit_text ' , __ ( 'Subscribe ' , 'mailchimp_i18n ' ) );
481
+ update_option ( 'mc_header_content ' , esc_html__ ( 'Sign up for ' , 'mailchimp ' ) . ' ' . $ list_name );
482
+ update_option ( 'mc_submit_text ' , esc_html__ ( 'Subscribe ' , 'mailchimp ' ) );
487
483
488
484
update_option ( 'mc_use_datepicker ' , 'on ' );
489
485
update_option ( 'mc_custom_style ' , 'off ' );
@@ -511,64 +507,64 @@ function mailchimp_sf_save_general_form_settings() {
511
507
// IF NOT DEV MODE
512
508
if ( isset ( $ _POST ['mc_use_javascript ' ] ) ) {
513
509
update_option ( 'mc_use_javascript ' , 'on ' );
514
- $ msg = '<p class="success_msg"> ' . __ ( 'Fancy Javascript submission turned On! ' , 'mailchimp_i18n ' ) . '</p> ' ;
510
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Fancy Javascript submission turned On! ' , 'mailchimp ' ) . '</p> ' ;
515
511
mailchimp_sf_global_msg ( $ msg );
516
512
} elseif ( get_option ( 'mc_use_javascript ' ) !== 'off ' ) {
517
513
update_option ( 'mc_use_javascript ' , 'off ' );
518
- $ msg = '<p class="success_msg"> ' . __ ( 'Fancy Javascript submission turned Off! ' , 'mailchimp_i18n ' ) . '</p> ' ;
514
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Fancy Javascript submission turned Off! ' , 'mailchimp ' ) . '</p> ' ;
519
515
mailchimp_sf_global_msg ( $ msg );
520
516
}
521
517
522
518
if ( isset ( $ _POST ['mc_use_datepicker ' ] ) ) {
523
519
update_option ( 'mc_use_datepicker ' , 'on ' );
524
- $ msg = '<p class="success_msg"> ' . __ ( 'Datepicker turned On! ' , 'mailchimp_i18n ' ) . '</p> ' ;
520
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Datepicker turned On! ' , 'mailchimp ' ) . '</p> ' ;
525
521
mailchimp_sf_global_msg ( $ msg );
526
522
} elseif ( get_option ( 'mc_use_datepicker ' ) !== 'off ' ) {
527
523
update_option ( 'mc_use_datepicker ' , 'off ' );
528
- $ msg = '<p class="success_msg"> ' . __ ( 'Datepicker turned Off! ' , 'mailchimp_i18n ' ) . '</p> ' ;
524
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Datepicker turned Off! ' , 'mailchimp ' ) . '</p> ' ;
529
525
mailchimp_sf_global_msg ( $ msg );
530
526
}
531
527
532
528
/*Enable double optin toggle*/
533
529
if ( isset ( $ _POST ['mc_double_optin ' ] ) ) {
534
530
update_option ( 'mc_double_optin ' , true );
535
- $ msg = '<p class="success_msg"> ' . __ ( 'Double opt-in turned On! ' , 'mailchimp_i18n ' ) . '</p> ' ;
531
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Double opt-in turned On! ' , 'mailchimp ' ) . '</p> ' ;
536
532
mailchimp_sf_global_msg ( $ msg );
537
533
} elseif ( get_option ( 'mc_double_optin ' ) !== false ) {
538
534
update_option ( 'mc_double_optin ' , false );
539
- $ msg = '<p class="success_msg"> ' . __ ( 'Double opt-in turned Off! ' , 'mailchimp_i18n ' ) . '</p> ' ;
535
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Double opt-in turned Off! ' , 'mailchimp ' ) . '</p> ' ;
540
536
mailchimp_sf_global_msg ( $ msg );
541
537
}
542
538
543
539
/* NUKE the CSS! */
544
540
if ( isset ( $ _POST ['mc_nuke_all_styles ' ] ) ) {
545
541
update_option ( 'mc_nuke_all_styles ' , true );
546
- $ msg = '<p class="success_msg"> ' . __ ( 'Mailchimp CSS turned Off! ' , 'mailchimp_i18n ' ) . '</p> ' ;
542
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Mailchimp CSS turned Off! ' , 'mailchimp ' ) . '</p> ' ;
547
543
mailchimp_sf_global_msg ( $ msg );
548
544
} elseif ( get_option ( 'mc_nuke_all_styles ' ) !== false ) {
549
545
update_option ( 'mc_nuke_all_styles ' , false );
550
- $ msg = '<p class="success_msg"> ' . __ ( 'Mailchimp CSS turned On! ' , 'mailchimp_i18n ' ) . '</p> ' ;
546
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Mailchimp CSS turned On! ' , 'mailchimp ' ) . '</p> ' ;
551
547
mailchimp_sf_global_msg ( $ msg );
552
548
}
553
549
554
550
/* Update existing */
555
551
if ( isset ( $ _POST ['mc_update_existing ' ] ) ) {
556
552
update_option ( 'mc_update_existing ' , true );
557
- $ msg = '<p class="success_msg"> ' . __ ( 'Update existing subscribers turned On! ' ) . '</p> ' ;
553
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Update existing subscribers turned On! ' ) . '</p> ' ;
558
554
mailchimp_sf_global_msg ( $ msg );
559
555
} elseif ( get_option ( 'mc_update_existing ' ) !== false ) {
560
556
update_option ( 'mc_update_existing ' , false );
561
- $ msg = '<p class="success_msg"> ' . __ ( 'Update existing subscribers turned Off! ' ) . '</p> ' ;
557
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Update existing subscribers turned Off! ' ) . '</p> ' ;
562
558
mailchimp_sf_global_msg ( $ msg );
563
559
}
564
560
565
561
if ( isset ( $ _POST ['mc_use_unsub_link ' ] ) ) {
566
562
update_option ( 'mc_use_unsub_link ' , 'on ' );
567
- $ msg = '<p class="success_msg"> ' . __ ( 'Unsubscribe link turned On! ' , 'mailchimp_i18n ' ) . '</p> ' ;
563
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Unsubscribe link turned On! ' , 'mailchimp ' ) . '</p> ' ;
568
564
mailchimp_sf_global_msg ( $ msg );
569
565
} elseif ( get_option ( 'mc_use_unsub_link ' ) !== 'off ' ) {
570
566
update_option ( 'mc_use_unsub_link ' , 'off ' );
571
- $ msg = '<p class="success_msg"> ' . __ ( 'Unsubscribe link turned Off! ' , 'mailchimp_i18n ' ) . '</p> ' ;
567
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Unsubscribe link turned Off! ' , 'mailchimp ' ) . '</p> ' ;
572
568
mailchimp_sf_global_msg ( $ msg );
573
569
}
574
570
@@ -626,14 +622,24 @@ function mailchimp_sf_save_general_form_settings() {
626
622
}
627
623
}
628
624
629
- $ msg = '<p class="success_msg"> ' . esc_html ( __ ( 'Successfully Updated your List Subscribe Form Settings! ' , 'mailchimp_i18n ' ) ) . '</p> ' ;
625
+ $ msg = '<p class="success_msg"> ' . esc_html__ ( 'Successfully Updated your List Subscribe Form Settings! ' , 'mailchimp ' ) . '</p> ' ;
630
626
mailchimp_sf_global_msg ( $ msg );
631
627
}
632
628
633
629
/**
634
630
* Sees if the user changed the list, and updates options accordingly
635
631
**/
636
632
function mailchimp_sf_change_list_if_necessary () {
633
+ if ( ! isset ( $ _POST ['mc_list_id ' ] ) ) {
634
+ return ;
635
+ }
636
+
637
+ if ( empty ( $ _POST ['mc_list_id ' ] ) ) {
638
+ $ msg = '<p class="error_msg"> ' . esc_html__ ( 'Please choose a valid list ' , 'mailchimp ' ) . '</p> ' ;
639
+ mailchimp_sf_global_msg ( $ msg );
640
+ return ;
641
+ }
642
+
637
643
// Simple permission check before going through all this
638
644
if ( ! current_user_can ( MCSF_CAP_THRESHOLD ) ) { return ; }
639
645
@@ -649,7 +655,7 @@ function mailchimp_sf_change_list_if_necessary() {
649
655
650
656
$ lists = $ lists ['lists ' ];
651
657
652
- if ( is_array ( $ lists ) && ! empty ( $ lists ) && isset ( $ _POST [ ' mc_list_id ' ] ) ) {
658
+ if ( is_array ( $ lists ) && ! empty ( $ lists ) ) {
653
659
654
660
/**
655
661
* If our incoming list ID (the one chosen in the select dropdown)
@@ -684,18 +690,19 @@ function mailchimp_sf_change_list_if_necessary() {
684
690
685
691
$ igs_text = ' ' ;
686
692
if ( is_array ( $ igs ) ) {
687
- // translators: placeholder is a count (number)
688
- $ igs_text .= sprintf ( __ ( 'and %s Sets of Interest Groups ' , 'mailchimp_i18n ' ), count ( $ igs ) );
693
+ /* translators: %s: count (number) */
694
+ $ igs_text .= sprintf ( esc_html__ ( 'and %s Sets of Interest Groups ' , 'mailchimp ' ), count ( $ igs ) );
689
695
}
690
696
691
697
$ msg = '<p class="success_msg"> ' .
692
698
sprintf (
693
- // translators: placeholder is a count (number)
694
- __ ( '<b>Success!</b> Loaded and saved the info for %d Merge Variables ' , 'mailchimp_i18n ' ) . $ igs_text ,
699
+ /* translators: %s: count (number) */
700
+ __ ( '<b>Success!</b> Loaded and saved the info for %d Merge Variables ' , 'mailchimp ' ) . $ igs_text ,
695
701
count ( $ mv )
696
702
) . ' ' .
697
- __ ( 'from your list ' ) . ' " ' . $ list_name . '"<br/><br/> ' .
698
- __ ( 'Now you should either Turn On the Mailchimp Widget or change your options below, then turn it on. ' , 'mailchimp_i18n ' ) . '</p> ' ;
703
+ esc_html__ ( 'from your list ' ) . ' " ' . $ list_name . '"<br/><br/> ' .
704
+ esc_html__ ( 'Now you should either Turn On the Mailchimp Widget or change your options below, then turn it on. ' , 'mailchimp ' ) . '</p> ' ;
705
+
699
706
mailchimp_sf_global_msg ( $ msg );
700
707
}
701
708
}
@@ -738,7 +745,7 @@ function mailchimp_sf_get_merge_vars( $list_id, $new_list ) {
738
745
function mailchimp_sf_add_email_field ( $ merge ) {
739
746
$ email = array (
740
747
'tag ' => 'EMAIL ' ,
741
- 'name ' => __ ( 'Email Address ' , 'mailchimp_i18n ' ),
748
+ 'name ' => esc_html__ ( 'Email Address ' , 'mailchimp ' ),
742
749
'type ' => 'email ' ,
743
750
'required ' => true ,
744
751
'public ' => true ,
@@ -896,17 +903,17 @@ function mailchimp_sf_signup_submit() {
896
903
'<strong class="mc_error_msg">%s</strong> ' ,
897
904
wp_kses (
898
905
sprintf (
899
- // translators: first placeholder is email address, second is url
906
+ /* translators: 1: email address 2: url */
900
907
__ (
901
908
'We encountered a problem adding %1$s to the list. Please <a href="%2$s">sign up here.</a> ' ,
902
- 'mailchimp_i18n '
909
+ 'mailchimp '
903
910
),
904
911
esc_html ( $ email ),
905
912
esc_url ( $ url )
906
913
),
907
914
[
908
915
'a ' => [
909
- 'href ' ,
916
+ 'href ' => [] ,
910
917
],
911
918
]
912
919
)
@@ -920,7 +927,7 @@ function mailchimp_sf_signup_submit() {
920
927
921
928
// If update existing is turned off and the subscriber exists, error out.
922
929
if ( get_option ( 'mc_update_existing ' ) === false && 'subscribed ' === $ status ) {
923
- $ msg = 'This email address is already subscribed to the list. ' ;
930
+ $ msg = esc_html__ ( 'This email address is already subscribed to the list. ' , ' mailchimp ' ) ;
924
931
$ error = new WP_Error ( 'mailchimp-update-existing ' , $ msg );
925
932
mailchimp_sf_global_msg ( '<strong class="mc_error_msg"> ' . $ msg . '</strong> ' );
926
933
return false ;
@@ -937,10 +944,10 @@ function mailchimp_sf_signup_submit() {
937
944
}
938
945
939
946
if ( 'subscribed ' === $ retval ['status ' ] ) {
940
- $ esc = __ ( 'Success, you \'ve been signed up. ' , 'mailchimp_i18n ' );
947
+ $ esc = esc_html__ ( 'Success, you \'ve been signed up. ' , 'mailchimp ' );
941
948
$ msg = "<strong class='mc_success_msg'> {$ esc }</strong> " ;
942
949
} else {
943
- $ esc = __ ( 'Success, you \'ve been signed up! Please look for our confirmation email. ' , 'mailchimp_i18n ' );
950
+ $ esc = esc_html__ ( 'Success, you \'ve been signed up! Please look for our confirmation email. ' , 'mailchimp ' );
944
951
$ msg = "<strong class='mc_success_msg'> {$ esc }</strong> " ;
945
952
}
946
953
@@ -1044,8 +1051,8 @@ function mailchimp_sf_merge_submit( $mv ) {
1044
1051
}
1045
1052
1046
1053
if ( 'Y ' === $ mv_var ['required ' ] && trim ( $ opt_val ) === '' ) {
1047
- // translators: placeholder is field name
1048
- $ message = sprintf ( __ ( 'You must fill in %s. ' , 'mailchimp_i18n ' ), esc_html ( $ mv_var ['name ' ] ) );
1054
+ /* translators: %s: field name */
1055
+ $ message = sprintf ( esc_html__ ( 'You must fill in %s. ' , 'mailchimp ' ), esc_html ( $ mv_var ['name ' ] ) );
1049
1056
$ error = new WP_Error ( 'missing_required_field ' , $ message );
1050
1057
return $ error ;
1051
1058
} elseif ( 'EMAIL ' !== $ tag ) {
@@ -1076,8 +1083,8 @@ function mailchimp_sf_merge_validate_phone( $opt_val, $data ) {
1076
1083
}
1077
1084
1078
1085
if ( ! preg_match ( '/[0-9]{0,3}-[0-9]{0,3}-[0-9]{0,4}/A ' , $ opt_val ) ) {
1079
- // translators: placeholder is field name
1080
- $ message = sprintf ( __ ( '%s must consist of only numbers ' , 'mailchimp_i18n ' ), esc_html ( $ data ['name ' ] ) );
1086
+ /* translators: %s: field name */
1087
+ $ message = sprintf ( esc_html__ ( '%s must consist of only numbers ' , 'mailchimp ' ), esc_html ( $ data ['name ' ] ) );
1081
1088
$ error = new WP_Error ( 'mc_phone_validation ' , $ message );
1082
1089
return $ error ;
1083
1090
}
@@ -1095,8 +1102,8 @@ function mailchimp_sf_merge_validate_phone( $opt_val, $data ) {
1095
1102
function mailchimp_sf_merge_validate_address ( $ opt_val , $ data ) {
1096
1103
if ( 'Y ' === $ data ['required ' ] ) {
1097
1104
if ( empty ( $ opt_val ['addr1 ' ] ) || empty ( $ opt_val ['city ' ] ) ) {
1098
- // translators: placeholder is field name
1099
- $ message = sprintf ( __ ( 'You must fill in %s. ' , 'mailchimp_i18n ' ), esc_html ( $ data ['name ' ] ) );
1105
+ /* translators: %s: field name */
1106
+ $ message = sprintf ( esc_html__ ( 'You must fill in %s. ' , 'mailchimp ' ), esc_html ( $ data ['name ' ] ) );
1100
1107
$ error = new WP_Error ( 'invalid_address_merge ' , $ message );
1101
1108
return $ error ;
1102
1109
}
@@ -1222,7 +1229,7 @@ function mailchimp_sf_verify_key( $api ) {
1222
1229
update_option ( 'mc_datacenter ' , $ api ->datacenter );
1223
1230
1224
1231
} else {
1225
- $ msg = __ ( 'API Key must belong to "Owner", "Admin", or "Manager." ' , 'mailchimp_i18n ' );
1232
+ $ msg = esc_html__ ( 'API Key must belong to "Owner", "Admin", or "Manager." ' , 'mailchimp ' );
1226
1233
return new WP_Error ( 'mc-invalid-role ' , $ msg );
1227
1234
}
1228
1235
}
@@ -1315,12 +1322,6 @@ function mailchimp_sf_where_am_i() {
1315
1322
// Define our complete filesystem path
1316
1323
define ( 'MCSF_DIR ' , $ mscf_dir );
1317
1324
1318
- /**
1319
- * Lang location needs to be relative *from* ABSPATH,
1320
- * so strip it out of our language dir location
1321
- */
1322
- define ( 'MCSF_LANG_DIR ' , trailingslashit ( MCSF_DIR ) . 'po/ ' );
1323
-
1324
1325
// Define our complete URL to the plugin folder
1325
1326
define ( 'MCSF_URL ' , $ mscf_url );
1326
1327
}
0 commit comments