From d0e49eeff1b05f86cd63abcef4c065926dc6a8e0 Mon Sep 17 00:00:00 2001
From: Dharmesh Patel
Date: Wed, 14 Aug 2024 16:56:59 +0530
Subject: [PATCH 01/40] Add create account button to login screen.
---
css/admin.css | 6 +++++-
views/setup_page.php | 28 +++++++++++++++-------------
2 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/css/admin.css b/css/admin.css
index cfb42fc..d8c7e30 100644
--- a/css/admin.css
+++ b/css/admin.css
@@ -51,7 +51,7 @@ table.mc-widefat tr:first-child th {
}
/* Buttons */
-#wpbody .button {
+#wpbody .button-secondary {
border-color: var(--mailchimp-color-link);
color: var(--mailchimp-color-link);
}
@@ -266,3 +266,7 @@ th.mailchimp-connect {
.mailchimp-sf-oauth-connect-wrapper {
display: flex;
}
+
+#mailchimp_sf_create_account_button {
+ margin-left: 12px;
+}
diff --git a/views/setup_page.php b/views/setup_page.php
index 63f3677..d54c9e6 100644
--- a/views/setup_page.php
+++ b/views/setup_page.php
@@ -49,12 +49,13 @@
);
?>
-
+
%2$s',
- esc_html__( 'Don\'t have a Mailchimp account?', 'mailchimp' ),
- esc_html__( 'Try one for Free!', 'mailchimp' )
+ echo wp_kses(
+ __( 'Don\'t have a Mailchimp account? Please click the Create account button to create and connect your account with this WordPress site.', 'mailchimp' ),
+ [
+ 'strong' => [],
+ ]
);
?>
@@ -65,7 +66,8 @@
-
+
+
@@ -101,7 +103,7 @@
@@ -178,7 +180,7 @@
-
+
@@ -197,7 +199,7 @@
@@ -254,7 +256,7 @@
-
+
-
+
@@ -364,7 +366,7 @@
Date: Sat, 17 Aug 2024 11:38:33 +0530
Subject: [PATCH 02/40] Add initial create account markup.
---
css/admin.css | 437 ++++++++++++++++++
.../admin/templates/create-account-page.php | 249 ++++++++++
includes/class-mailchimp-admin.php | 347 +++++++++++++-
views/setup_page.php | 4 +-
4 files changed, 1034 insertions(+), 3 deletions(-)
create mode 100644 includes/admin/templates/create-account-page.php
diff --git a/css/admin.css b/css/admin.css
index d8c7e30..034fddb 100644
--- a/css/admin.css
+++ b/css/admin.css
@@ -270,3 +270,440 @@ th.mailchimp-connect {
#mailchimp_sf_create_account_button {
margin-left: 12px;
}
+
+/**
+ * Mailchimp Create Account CSS
+ */
+
+#mailchimp-sf-create-account .flex {
+ display:flex;
+}
+
+#mailchimp-sf-create-account .justify-between {
+ justify-content: space-between;
+}
+
+#mailchimp-sf-create-account .items-center {
+ align-items: center;
+}
+
+#mailchimp-sf-create-account .opacity-25 {
+ opacity: 0.25;
+}
+#mailchimp-sf-create-account .opacity-75 {
+ opacity: 0.75;
+}
+#mailchimp-sf-create-account .mailchimp-sf-loading {
+ animation: spin 1s linear infinite;
+}
+#mailchimp-sf-create-account .mailchimp-sf-loading svg {
+ display: block;
+}
+
+#mailchimp-sf-create-account .wizard-steps {
+ color: rgba(36, 28, 21, 0.3);
+}
+
+#mailchimp-sf-create-account .wizard-steps .current {
+ color: rgba(36, 28, 21);
+ border-bottom: 2px solid rgb(0, 124, 137);
+}
+
+#mailchimp-sf-create-account .wizard-steps .chevron {
+ margin: 0 5px;
+}
+
+#mailchimp-sf-create-account .wizard-steps .chevron svg {
+ display: block;
+}
+
+@keyframes spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+.mailchimp-sf-create-account__header h3 {
+ /* font-family: "Means Web", serif; */
+ margin-bottom: 4px;
+ margin-top: 0;
+ font-weight: 300;
+}
+.mailchimp-sf-create-account__header {
+ padding: 16px 8px;
+ background: #fff;
+ border-top: 4px solid #FFE01BFF;
+ border-bottom: 1px solid rgb(229, 231, 235);
+ column-gap: 16px;
+}
+.mailchimp-sf-create-account__header .mailchimp-sf-create-account-plus {
+ margin: 0 8px;
+}
+
+.mailchimp-sf-create-account__body {
+ background: #F6F6F4;
+}
+.mailchimp-sf-create-account__body-inner {
+ max-width: 600px;
+ margin: 0 auto;
+ padding-top: 128px;
+ padding-bottom: 128px;
+}
+.mailchimp-sf-create-account__body .subtitle {
+ /* font-family: "Means Web", serif; */
+ font-size: 24px;
+ line-height: 1.4;
+ font-weight: 300;
+ padding-left: 0;
+ color: #000;
+}
+.mailchimp-sf-create-account__body .email-opener {
+ font-size: 16px;
+}
+.mailchimp-sf-create-account__body .h4 {
+ font-size: 18px;
+ margin: 0;
+ margin-bottom: 24px;
+}
+
+.mailchimp-sf-create-account__body .title {
+ /* font-family: "Means Web", serif; */
+ font-size: 32px;
+ font-weight: 300;
+ line-height: 1.4;
+ padding-bottom: 16px;
+ margin-bottom: 32px;
+ border-bottom: 1px solid rgb(229, 231, 235) ;
+}
+
+
+.mailchimp-sf-create-account-step {
+ padding: 5px 0 10px;
+}
+
+#mailchimp-sf-business-address {
+ margin-top: 40px;
+}
+
+.mailchimp-sf-create-account__body .button.create-account-save {
+ all: unset;
+ box-sizing: border-box;
+ display: inline-flex;
+ align-items: center;
+ gap: 10px;
+ padding: 12px 32px;
+ position: relative;
+ background-color: #007c89;
+ border-radius: 38px;
+ font-weight: 500;
+ color: #ffffff;
+ font-size: 13px;
+ text-align: center;
+ letter-spacing: 0;
+ line-height: 20px;
+ white-space: nowrap;
+ cursor: pointer;
+}
+
+.mailchimp-sf-create-account__body .button.create-account-save:hover {
+ background-color: #019eaf;
+ text-decoration: none;
+}
+
+.mailchimp-sf-create-account__body .button.create-account-save[disabled] {
+ cursor: not-allowed;
+}
+
+
+.mailchimp-sf-form-wrapper {
+ background: transparent !important;
+}
+
+.mailchimp-sf-form-wrapper fieldset{
+ background: transparent !important;
+}
+
+.mailchimp-sf-form-wrapper fieldset input{
+ background: white !important;
+}
+
+.mailchimp-sf-form-wrapper textarea{
+ background: white !important;
+}
+
+.mailchimp-sf-form-wrapper fieldset select {
+ background: white url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E') no-repeat right 5px top 55%;
+ background-size: auto;
+
+}
+
+.mailchimp-sf-form-wrapper a {
+ color: #8D5C87;
+ text-decoration: none;
+}
+.mailchimp-sf-form-wrapper a:hover {
+ text-decoration: underline;
+}
+
+.mailchimp-sf-form-wrapper form {
+ margin: 0 auto;
+ /* padding: 3em; */
+}
+
+.mailchimp-sf-form-wrapper fieldset{
+ background: transparent;
+ width: 100%;
+}
+
+.mailchimp-sf-form-wrapper fieldset .fieldset-header {
+ float: left;
+ padding-top: 3em;
+ width: 100%;
+ font-size: 18px !important;
+}
+
+.mailchimp-sf-form-wrapper fieldset .fieldset-header.no-padding {
+ padding-top: 1em;
+}
+
+.mailchimp-sf-form-wrapper p.submit {
+ margin-top: 0 !important;
+ padding-top: 35px !important;
+ margin-bottom: 45px !important;
+}
+
+.mailchimp-sf-form-wrapper p.submit:focus {
+ margin-top: 10px !important;
+}
+
+.mailchimp-sf-form-wrapper .required-field-mark {
+ color: red;
+}
+
+.mailchimp-sf-form-wrapper label.optional {
+ display: flex;
+}
+.mailchimp-sf-form-wrapper label.optional span:last-child {
+ color: rgba(36, 28, 21, 0.65)
+}
+.mailchimp-sf-form-wrapper label {
+ display: block;
+ /* font-family: ui-sans-serif, system-ui, sans-serif, proxima-nova, Arial, Helvetica, sans-serif; */
+ font-size: 14px;
+ font-weight: 400;
+ line-height: 30px;
+ width: 100%;
+ color: #3C3C3C;
+}
+
+.mailchimp-sf-form-wrapper h4 {
+ margin-top: 0;
+}
+
+
+.mailchimp-sf-form-wrapper .box.box-half,
+.sync-content-wrapper .box.box-half,
+.sync-more-wrapper .box.box-half {
+ float: left;
+ clear: none;
+ width: 50%;
+}
+.mailchimp-sf-form-wrapper .form-row {
+ display: flex;
+ column-gap: 16px;
+}
+.mailchimp-sf-form-wrapper .form-row:not(:last-child) {
+ margin-bottom: 16px;
+}
+.mailchimp-sf-form-wrapper .form-row .box {
+ width: 100%;
+}
+.mailchimp-sf-form-wrapper .form-row .box-half {
+ width: calc(50% - 8px);
+}
+
+
+.mailchimp-sf-form-wrapper .box.box-half.margin-large {
+ margin-top: 3em;
+}
+
+.mailchimp-sf-form-wrapper .box.box-third {
+ float: left;
+ clear:none;
+ width: 33%;
+}
+
+.mailchimp-sf-form-wrapper fieldset label {
+ font-weight: 400;
+}
+
+.mailchimp-sf-form-wrapper fieldset label p{
+ font-weight: 400;
+}
+
+.mailchimp-sf-form-wrapper fieldset input[type="text"],
+.mailchimp-sf-form-wrapper fieldset input[type="password"],
+.mailchimp-sf-form-wrapper fieldset input[type="email"],
+.mailchimp-sf-form-wrapper fieldset textarea {
+ box-sizing: border-box;
+ height: 44px;
+ border-color: #000;
+ border-radius: 4px;
+ padding: 0.6em 1.5em;
+ width: 100%;
+ /* font-family: "Proxima Nova Alt Light", Arial, Helvetica, sans-serif */
+
+}
+
+.mailchimp-sf-form-wrapper .mailchimp-select-wrapper .form-row {
+ margin: 0;
+}
+.mailchimp-sf-form-wrapper .woocommerce-input-wrapper {
+ width: 100%;
+}
+.mailchimp-sf-form-wrapper .mailchimp-select-wrapper select {
+ font-size: 14px;
+ /* font-family: "Proxima Nova Alt Light", Arial, Helvetica, sans-serif; */
+ -webkit-appearance: none;
+ box-shadow: none;
+ outline: none;
+ width: 100% !important;
+ max-width: 100%;
+ color: #32373c;
+
+ border: 1px solid #000;
+ padding: 6px 6px 4px 20px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ background-color: white;
+ height: 44px;
+}
+
+.mailchimp-sf-form-wrapper .mailchimp-select-wrapper select option{
+ outline: none;
+}
+
+.mailchimp-sf-form-wrapper .mailchimp-select-wrapper select:disabled {
+ color: #aaa;
+ background: none;
+}
+
+.mailchimp-sf-form-wrapper fieldset select:focus {
+ outline: none;
+}
+
+.mailchimp-sf-form-wrapper fieldset input[type='checkbox']:not(#mailchimp_woocommerce_newsletter) {
+ width: 2em;
+ height: 2em;
+ border-radius: 4px;
+ border: 1px solid #DBD9D2;
+}
+
+.mailchimp-sf-form-wrapper fieldset input[type='checkbox']:not(#mailchimp_woocommerce_newsletter):checked::before {
+ color: #7FAD45;
+ margin: 0.6em 0px 0px 0.2em;
+ content: url("data:image/svg+xml;charset=UTF-8,%3csvg width='13' height='9' viewBox='0 0 13 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M10.75 0.5L12.25 2L5.26 9L0.75 4.5L2.25 3L5.26 6L10.75 0.5Z' fill='%237FAD45'/%3e%3c/svg%3e ");
+
+}
+
+.mailchimp-sf-form-wrapper .box.form-error label,
+.mailchimp-sf-form-wrapper .box.form-error {
+ color: red;
+}
+
+.mailchimp-sf-form-wrapper .box.form-error input {
+ border-color: red;
+}
+.mailchimp-sf-form-wrapper .error-field:empty {
+ display: none !important;
+}
+.mailchimp-sf-form-wrapper fieldset input[type='radio'],
+.mailchimp-sf-form-wrapper fieldset input[type='radio'] {
+ width: 2em;
+ height: 2em;
+ border: 1px solid #DBD9D2;
+ margin-right: 10px;
+}
+
+.mailchimp-sf-form-wrapper fieldset input[type='radio']:checked::before,
+.sync-content-wrapper fieldset input[type='radio']:checked::before {
+ background: url("data:image/svg+xml;charset=UTF-8,%3csvg width='13' height='9' viewBox='0 0 13 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M10.75 0.5L12.25 2L5.26 9L0.75 4.5L2.25 3L5.26 6L10.75 0.5Z' fill='%237FAD45'/%3e%3c/svg%3e ");
+ background-repeat: none;
+ width: 13px;
+ height: 9px;
+ margin: 8px 0 0 7px;
+}
+
+.mailchimp-sf-form-wrapper fieldset .radio-label,
+.sync-content-wrapper fieldset .radio-label {
+ margin-bottom: 10px;
+}
+
+.mailchimp-sf-form-wrapper fieldset textarea {
+ border: 1px solid #DBD9D2;
+ box-sizing: border-box;
+ border-radius: 4px;
+ padding: 15px 20px;
+ width: 100%;
+
+}
+
+.mailchimp-sf-form-wrapper .optional-settings-label,
+.mailchimp-sf-form-wrapper .optional-settings-button {
+ margin-top: 3em;
+ font-weight: 600;
+}
+
+.mailchimp-sf-form-wrapper .optional-settings-button:hover span {
+ color: #628735;
+}
+
+.mailchimp-sf-form-wrapper .optional-settings-label span,
+.mailchimp-sf-form-wrapper .optional-settings-button span {
+ text-transform: uppercase;
+ color: #7FAD45 ;
+ font-size: 14px;
+ cursor: default;
+}
+
+.mailchimp-sf-form-wrapper .optional-settings-button span {
+ background: no-repeat left center url("data:image/svg+xml;charset=UTF-8,%3csvg width='13' height='8' viewBox='0 0 13 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M11.34 0.590027L6.75 5.17003L2.16 0.590027L0.75 2.00003L6.75 8.00003L12.75 2.00003L11.34 0.590027Z' fill='%23212121'/%3e%3c/svg%3e ");
+ padding-left: 2em;
+ cursor: pointer;
+}
+
+.mailchimp-sf-form-wrapper .optional-settings-button span.active {
+ background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='13' height='8' viewBox='0 0 13 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M2.16 7.40997L6.75 2.82997L11.34 7.40997L12.75 5.99997L6.75 -2.61783e-05L0.75 5.99997L2.16 7.40997Z' fill='%23212121'/%3e%3c/svg%3e ");
+}
+
+.mailchimp-sf-form-wrapper .optional-settings-content {
+ display: block;
+}
+
+@media (min-width: 783px) {
+ #mailchimp-sf-create-account.wrap {
+ margin: 0px;
+ margin-left: -20px;
+ }
+}
+
+@media screen and (max-width: 782px) {
+ .mailchimp-sf-form-wrapper form{
+ padding: 1em;
+ }
+
+ .mailchimp-sf-form-wrapper .mailchimp-select-wrapper select {
+
+ font-size: 16px;
+ line-height: 32px;
+ }
+
+ .mailchimp-sf-form-wrapper .box.box-half,
+ .mailchimp-sf-form-wrapper .box.box-third {
+ width: 100%;
+ }
+}
diff --git a/includes/admin/templates/create-account-page.php b/includes/admin/templates/create-account-page.php
new file mode 100644
index 0000000..e2acc88
--- /dev/null
+++ b/includes/admin/templates/create-account-page.php
@@ -0,0 +1,249 @@
+
+
diff --git a/includes/class-mailchimp-admin.php b/includes/class-mailchimp-admin.php
index 26a62c3..b76b109 100644
--- a/includes/class-mailchimp-admin.php
+++ b/includes/class-mailchimp-admin.php
@@ -34,6 +34,7 @@ public function init() {
add_action( 'wp_ajax_mailchimp_sf_oauth_finish', array( $this, 'finish_oauth_process' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_page_scripts' ) );
+ add_action( 'admin_menu', array( $this, 'add_create_account_page' ) );
}
/**
@@ -269,7 +270,7 @@ public function sanitize_data( $data ) {
* @return void
*/
public function enqueue_admin_page_scripts( $hook_suffix ) {
- if ( 'toplevel_page_mailchimp_sf_options' !== $hook_suffix ) {
+ if ( 'toplevel_page_mailchimp_sf_options' !== $hook_suffix && 'admin_page_mailchimp_sf_create_account' !== $hook_suffix ) {
return;
}
@@ -293,4 +294,348 @@ public function enqueue_admin_page_scripts( $hook_suffix ) {
)
);
}
+
+ /**
+ * Add Create the create account page.
+ *
+ * @since x.x.x
+ *
+ * @return void
+ */
+ public function add_create_account_page() {
+ add_submenu_page(
+ 'admin.php',
+ 'Create Mailchimp Account',
+ 'Create Mailchimp Account',
+ 'manage_options',
+ 'mailchimp_sf_create_account',
+ array( $this, 'create_account_page' )
+ );
+ }
+
+ /**
+ * Create account page.
+ *
+ * @since x.x.x
+ *
+ * @return void
+ */
+ public function create_account_page() {
+ $countries = $this->get_countries();
+ $timezones = $this->get_timezones();
+ $selected_timezone = $this->get_current_timezone();
+ ?>
+
+
+
+
+ $zone ) {
+ date_default_timezone_set( $zone );
+ $zones_array[$key]['zone'] = $zone;
+ $zones_array[$key]['diff_from_GMT'] = 'UTC/GMT ' . date( 'P', $timestamp );
+ }
+
+ date_default_timezone_set( $current );
+
+ return $zones_array;
+ }
+
+ /**
+ * Get the current timezone from wordpress settings.
+ *
+ * @return mixed|string|void
+ */
+ function get_current_timezone() {
+ // Get timezone data from options.
+ $timezone_string = get_option( 'timezone_string' );
+ $offset = get_option( 'gmt_offset' );
+
+ $signal = ($offset <=> 0 ) < 0 ? "-" : "+";
+ $offset = sprintf('%1s%02d:%02d', $signal, abs((int) $offset), abs(fmod($offset, 1) * 60));
+
+ $timezone = $offset;
+ if ($timezone_string) {
+ $timezone = $timezone_string;
+ }
+
+ return $timezone;
+ }
+
+ /**
+ * Get a list of countries.
+ *
+ * @since x.x.x
+ *
+ * @return array
+ */
+ public function get_countries() {
+ return array(
+ 'AF' => __( 'Afghanistan', 'mailchimp' ),
+ 'AX' => __( 'Åland Islands', 'mailchimp' ),
+ 'AL' => __( 'Albania', 'mailchimp' ),
+ 'DZ' => __( 'Algeria', 'mailchimp' ),
+ 'AS' => __( 'American Samoa', 'mailchimp' ),
+ 'AD' => __( 'Andorra', 'mailchimp' ),
+ 'AO' => __( 'Angola', 'mailchimp' ),
+ 'AI' => __( 'Anguilla', 'mailchimp' ),
+ 'AQ' => __( 'Antarctica', 'mailchimp' ),
+ 'AG' => __( 'Antigua and Barbuda', 'mailchimp' ),
+ 'AR' => __( 'Argentina', 'mailchimp' ),
+ 'AM' => __( 'Armenia', 'mailchimp' ),
+ 'AW' => __( 'Aruba', 'mailchimp' ),
+ 'AU' => __( 'Australia', 'mailchimp' ),
+ 'AT' => __( 'Austria', 'mailchimp' ),
+ 'AZ' => __( 'Azerbaijan', 'mailchimp' ),
+ 'BS' => __( 'Bahamas', 'mailchimp' ),
+ 'BH' => __( 'Bahrain', 'mailchimp' ),
+ 'BD' => __( 'Bangladesh', 'mailchimp' ),
+ 'BB' => __( 'Barbados', 'mailchimp' ),
+ 'BY' => __( 'Belarus', 'mailchimp' ),
+ 'BE' => __( 'Belgium', 'mailchimp' ),
+ 'PW' => __( 'Belau', 'mailchimp' ),
+ 'BZ' => __( 'Belize', 'mailchimp' ),
+ 'BJ' => __( 'Benin', 'mailchimp' ),
+ 'BM' => __( 'Bermuda', 'mailchimp' ),
+ 'BT' => __( 'Bhutan', 'mailchimp' ),
+ 'BO' => __( 'Bolivia', 'mailchimp' ),
+ 'BQ' => __( 'Bonaire, Saint Eustatius and Saba', 'mailchimp' ),
+ 'BA' => __( 'Bosnia and Herzegovina', 'mailchimp' ),
+ 'BW' => __( 'Botswana', 'mailchimp' ),
+ 'BV' => __( 'Bouvet Island', 'mailchimp' ),
+ 'BR' => __( 'Brazil', 'mailchimp' ),
+ 'IO' => __( 'British Indian Ocean Territory', 'mailchimp' ),
+ 'BN' => __( 'Brunei', 'mailchimp' ),
+ 'BG' => __( 'Bulgaria', 'mailchimp' ),
+ 'BF' => __( 'Burkina Faso', 'mailchimp' ),
+ 'BI' => __( 'Burundi', 'mailchimp' ),
+ 'KH' => __( 'Cambodia', 'mailchimp' ),
+ 'CM' => __( 'Cameroon', 'mailchimp' ),
+ 'CA' => __( 'Canada', 'mailchimp' ),
+ 'CV' => __( 'Cape Verde', 'mailchimp' ),
+ 'KY' => __( 'Cayman Islands', 'mailchimp' ),
+ 'CF' => __( 'Central African Republic', 'mailchimp' ),
+ 'TD' => __( 'Chad', 'mailchimp' ),
+ 'CL' => __( 'Chile', 'mailchimp' ),
+ 'CN' => __( 'China', 'mailchimp' ),
+ 'CX' => __( 'Christmas Island', 'mailchimp' ),
+ 'CC' => __( 'Cocos (Keeling) Islands', 'mailchimp' ),
+ 'CO' => __( 'Colombia', 'mailchimp' ),
+ 'KM' => __( 'Comoros', 'mailchimp' ),
+ 'CG' => __( 'Congo (Brazzaville)', 'mailchimp' ),
+ 'CD' => __( 'Congo (Kinshasa)', 'mailchimp' ),
+ 'CK' => __( 'Cook Islands', 'mailchimp' ),
+ 'CR' => __( 'Costa Rica', 'mailchimp' ),
+ 'HR' => __( 'Croatia', 'mailchimp' ),
+ 'CU' => __( 'Cuba', 'mailchimp' ),
+ 'CW' => __( 'Curaçao', 'mailchimp' ),
+ 'CY' => __( 'Cyprus', 'mailchimp' ),
+ 'CZ' => __( 'Czech Republic', 'mailchimp' ),
+ 'DK' => __( 'Denmark', 'mailchimp' ),
+ 'DJ' => __( 'Djibouti', 'mailchimp' ),
+ 'DM' => __( 'Dominica', 'mailchimp' ),
+ 'DO' => __( 'Dominican Republic', 'mailchimp' ),
+ 'EC' => __( 'Ecuador', 'mailchimp' ),
+ 'EG' => __( 'Egypt', 'mailchimp' ),
+ 'SV' => __( 'El Salvador', 'mailchimp' ),
+ 'GQ' => __( 'Equatorial Guinea', 'mailchimp' ),
+ 'ER' => __( 'Eritrea', 'mailchimp' ),
+ 'EE' => __( 'Estonia', 'mailchimp' ),
+ 'ET' => __( 'Ethiopia', 'mailchimp' ),
+ 'FK' => __( 'Falkland Islands', 'mailchimp' ),
+ 'FO' => __( 'Faroe Islands', 'mailchimp' ),
+ 'FJ' => __( 'Fiji', 'mailchimp' ),
+ 'FI' => __( 'Finland', 'mailchimp' ),
+ 'FR' => __( 'France', 'mailchimp' ),
+ 'GF' => __( 'French Guiana', 'mailchimp' ),
+ 'PF' => __( 'French Polynesia', 'mailchimp' ),
+ 'TF' => __( 'French Southern Territories', 'mailchimp' ),
+ 'GA' => __( 'Gabon', 'mailchimp' ),
+ 'GM' => __( 'Gambia', 'mailchimp' ),
+ 'GE' => __( 'Georgia', 'mailchimp' ),
+ 'DE' => __( 'Germany', 'mailchimp' ),
+ 'GH' => __( 'Ghana', 'mailchimp' ),
+ 'GI' => __( 'Gibraltar', 'mailchimp' ),
+ 'GR' => __( 'Greece', 'mailchimp' ),
+ 'GL' => __( 'Greenland', 'mailchimp' ),
+ 'GD' => __( 'Grenada', 'mailchimp' ),
+ 'GP' => __( 'Guadeloupe', 'mailchimp' ),
+ 'GU' => __( 'Guam', 'mailchimp' ),
+ 'GT' => __( 'Guatemala', 'mailchimp' ),
+ 'GG' => __( 'Guernsey', 'mailchimp' ),
+ 'GN' => __( 'Guinea', 'mailchimp' ),
+ 'GW' => __( 'Guinea-Bissau', 'mailchimp' ),
+ 'GY' => __( 'Guyana', 'mailchimp' ),
+ 'HT' => __( 'Haiti', 'mailchimp' ),
+ 'HM' => __( 'Heard Island and McDonald Islands', 'mailchimp' ),
+ 'HN' => __( 'Honduras', 'mailchimp' ),
+ 'HK' => __( 'Hong Kong', 'mailchimp' ),
+ 'HU' => __( 'Hungary', 'mailchimp' ),
+ 'IS' => __( 'Iceland', 'mailchimp' ),
+ 'IN' => __( 'India', 'mailchimp' ),
+ 'ID' => __( 'Indonesia', 'mailchimp' ),
+ 'IR' => __( 'Iran', 'mailchimp' ),
+ 'IQ' => __( 'Iraq', 'mailchimp' ),
+ 'IE' => __( 'Ireland', 'mailchimp' ),
+ 'IM' => __( 'Isle of Man', 'mailchimp' ),
+ 'IL' => __( 'Israel', 'mailchimp' ),
+ 'IT' => __( 'Italy', 'mailchimp' ),
+ 'CI' => __( 'Ivory Coast', 'mailchimp' ),
+ 'JM' => __( 'Jamaica', 'mailchimp' ),
+ 'JP' => __( 'Japan', 'mailchimp' ),
+ 'JE' => __( 'Jersey', 'mailchimp' ),
+ 'JO' => __( 'Jordan', 'mailchimp' ),
+ 'KZ' => __( 'Kazakhstan', 'mailchimp' ),
+ 'KE' => __( 'Kenya', 'mailchimp' ),
+ 'KI' => __( 'Kiribati', 'mailchimp' ),
+ 'KW' => __( 'Kuwait', 'mailchimp' ),
+ 'KG' => __( 'Kyrgyzstan', 'mailchimp' ),
+ 'LA' => __( 'Laos', 'mailchimp' ),
+ 'LV' => __( 'Latvia', 'mailchimp' ),
+ 'LB' => __( 'Lebanon', 'mailchimp' ),
+ 'LS' => __( 'Lesotho', 'mailchimp' ),
+ 'LR' => __( 'Liberia', 'mailchimp' ),
+ 'LY' => __( 'Libya', 'mailchimp' ),
+ 'LI' => __( 'Liechtenstein', 'mailchimp' ),
+ 'LT' => __( 'Lithuania', 'mailchimp' ),
+ 'LU' => __( 'Luxembourg', 'mailchimp' ),
+ 'MO' => __( 'Macao', 'mailchimp' ),
+ 'MK' => __( 'North Macedonia', 'mailchimp' ),
+ 'MG' => __( 'Madagascar', 'mailchimp' ),
+ 'MW' => __( 'Malawi', 'mailchimp' ),
+ 'MY' => __( 'Malaysia', 'mailchimp' ),
+ 'MV' => __( 'Maldives', 'mailchimp' ),
+ 'ML' => __( 'Mali', 'mailchimp' ),
+ 'MT' => __( 'Malta', 'mailchimp' ),
+ 'MH' => __( 'Marshall Islands', 'mailchimp' ),
+ 'MQ' => __( 'Martinique', 'mailchimp' ),
+ 'MR' => __( 'Mauritania', 'mailchimp' ),
+ 'MU' => __( 'Mauritius', 'mailchimp' ),
+ 'YT' => __( 'Mayotte', 'mailchimp' ),
+ 'MX' => __( 'Mexico', 'mailchimp' ),
+ 'FM' => __( 'Micronesia', 'mailchimp' ),
+ 'MD' => __( 'Moldova', 'mailchimp' ),
+ 'MC' => __( 'Monaco', 'mailchimp' ),
+ 'MN' => __( 'Mongolia', 'mailchimp' ),
+ 'ME' => __( 'Montenegro', 'mailchimp' ),
+ 'MS' => __( 'Montserrat', 'mailchimp' ),
+ 'MA' => __( 'Morocco', 'mailchimp' ),
+ 'MZ' => __( 'Mozambique', 'mailchimp' ),
+ 'MM' => __( 'Myanmar', 'mailchimp' ),
+ 'NA' => __( 'Namibia', 'mailchimp' ),
+ 'NR' => __( 'Nauru', 'mailchimp' ),
+ 'NP' => __( 'Nepal', 'mailchimp' ),
+ 'NL' => __( 'Netherlands', 'mailchimp' ),
+ 'NC' => __( 'New Caledonia', 'mailchimp' ),
+ 'NZ' => __( 'New Zealand', 'mailchimp' ),
+ 'NI' => __( 'Nicaragua', 'mailchimp' ),
+ 'NE' => __( 'Niger', 'mailchimp' ),
+ 'NG' => __( 'Nigeria', 'mailchimp' ),
+ 'NU' => __( 'Niue', 'mailchimp' ),
+ 'NF' => __( 'Norfolk Island', 'mailchimp' ),
+ 'MP' => __( 'Northern Mariana Islands', 'mailchimp' ),
+ 'KP' => __( 'North Korea', 'mailchimp' ),
+ 'NO' => __( 'Norway', 'mailchimp' ),
+ 'OM' => __( 'Oman', 'mailchimp' ),
+ 'PK' => __( 'Pakistan', 'mailchimp' ),
+ 'PS' => __( 'Palestinian Territory', 'mailchimp' ),
+ 'PA' => __( 'Panama', 'mailchimp' ),
+ 'PG' => __( 'Papua New Guinea', 'mailchimp' ),
+ 'PY' => __( 'Paraguay', 'mailchimp' ),
+ 'PE' => __( 'Peru', 'mailchimp' ),
+ 'PH' => __( 'Philippines', 'mailchimp' ),
+ 'PN' => __( 'Pitcairn', 'mailchimp' ),
+ 'PL' => __( 'Poland', 'mailchimp' ),
+ 'PT' => __( 'Portugal', 'mailchimp' ),
+ 'PR' => __( 'Puerto Rico', 'mailchimp' ),
+ 'QA' => __( 'Qatar', 'mailchimp' ),
+ 'RE' => __( 'Reunion', 'mailchimp' ),
+ 'RO' => __( 'Romania', 'mailchimp' ),
+ 'RU' => __( 'Russia', 'mailchimp' ),
+ 'RW' => __( 'Rwanda', 'mailchimp' ),
+ 'BL' => __( 'Saint Barthélemy', 'mailchimp' ),
+ 'SH' => __( 'Saint Helena', 'mailchimp' ),
+ 'KN' => __( 'Saint Kitts and Nevis', 'mailchimp' ),
+ 'LC' => __( 'Saint Lucia', 'mailchimp' ),
+ 'MF' => __( 'Saint Martin (French part)', 'mailchimp' ),
+ 'SX' => __( 'Saint Martin (Dutch part)', 'mailchimp' ),
+ 'PM' => __( 'Saint Pierre and Miquelon', 'mailchimp' ),
+ 'VC' => __( 'Saint Vincent and the Grenadines', 'mailchimp' ),
+ 'SM' => __( 'San Marino', 'mailchimp' ),
+ 'ST' => __( 'São Tomé and Príncipe', 'mailchimp' ),
+ 'SA' => __( 'Saudi Arabia', 'mailchimp' ),
+ 'SN' => __( 'Senegal', 'mailchimp' ),
+ 'RS' => __( 'Serbia', 'mailchimp' ),
+ 'SC' => __( 'Seychelles', 'mailchimp' ),
+ 'SL' => __( 'Sierra Leone', 'mailchimp' ),
+ 'SG' => __( 'Singapore', 'mailchimp' ),
+ 'SK' => __( 'Slovakia', 'mailchimp' ),
+ 'SI' => __( 'Slovenia', 'mailchimp' ),
+ 'SB' => __( 'Solomon Islands', 'mailchimp' ),
+ 'SO' => __( 'Somalia', 'mailchimp' ),
+ 'ZA' => __( 'South Africa', 'mailchimp' ),
+ 'GS' => __( 'South Georgia/Sandwich Islands', 'mailchimp' ),
+ 'KR' => __( 'South Korea', 'mailchimp' ),
+ 'SS' => __( 'South Sudan', 'mailchimp' ),
+ 'ES' => __( 'Spain', 'mailchimp' ),
+ 'LK' => __( 'Sri Lanka', 'mailchimp' ),
+ 'SD' => __( 'Sudan', 'mailchimp' ),
+ 'SR' => __( 'Suriname', 'mailchimp' ),
+ 'SJ' => __( 'Svalbard and Jan Mayen', 'mailchimp' ),
+ 'SZ' => __( 'Eswatini', 'mailchimp' ),
+ 'SE' => __( 'Sweden', 'mailchimp' ),
+ 'CH' => __( 'Switzerland', 'mailchimp' ),
+ 'SY' => __( 'Syria', 'mailchimp' ),
+ 'TW' => __( 'Taiwan', 'mailchimp' ),
+ 'TJ' => __( 'Tajikistan', 'mailchimp' ),
+ 'TZ' => __( 'Tanzania', 'mailchimp' ),
+ 'TH' => __( 'Thailand', 'mailchimp' ),
+ 'TL' => __( 'Timor-Leste', 'mailchimp' ),
+ 'TG' => __( 'Togo', 'mailchimp' ),
+ 'TK' => __( 'Tokelau', 'mailchimp' ),
+ 'TO' => __( 'Tonga', 'mailchimp' ),
+ 'TT' => __( 'Trinidad and Tobago', 'mailchimp' ),
+ 'TN' => __( 'Tunisia', 'mailchimp' ),
+ 'TR' => __( 'Turkey', 'mailchimp' ),
+ 'TM' => __( 'Turkmenistan', 'mailchimp' ),
+ 'TC' => __( 'Turks and Caicos Islands', 'mailchimp' ),
+ 'TV' => __( 'Tuvalu', 'mailchimp' ),
+ 'UG' => __( 'Uganda', 'mailchimp' ),
+ 'UA' => __( 'Ukraine', 'mailchimp' ),
+ 'AE' => __( 'United Arab Emirates', 'mailchimp' ),
+ 'GB' => __( 'United Kingdom (UK)', 'mailchimp' ),
+ 'US' => __( 'United States (US)', 'mailchimp' ),
+ 'UM' => __( 'United States (US) Minor Outlying Islands', 'mailchimp' ),
+ 'UY' => __( 'Uruguay', 'mailchimp' ),
+ 'UZ' => __( 'Uzbekistan', 'mailchimp' ),
+ 'VU' => __( 'Vanuatu', 'mailchimp' ),
+ 'VA' => __( 'Vatican', 'mailchimp' ),
+ 'VE' => __( 'Venezuela', 'mailchimp' ),
+ 'VN' => __( 'Vietnam', 'mailchimp' ),
+ 'VG' => __( 'Virgin Islands (British)', 'mailchimp' ),
+ 'VI' => __( 'Virgin Islands (US)', 'mailchimp' ),
+ 'WF' => __( 'Wallis and Futuna', 'mailchimp' ),
+ 'EH' => __( 'Western Sahara', 'mailchimp' ),
+ 'WS' => __( 'Samoa', 'mailchimp' ),
+ 'YE' => __( 'Yemen', 'mailchimp' ),
+ 'ZM' => __( 'Zambia', 'mailchimp' ),
+ 'ZW' => __( 'Zimbabwe', 'mailchimp' ),
+ );
+ }
}
diff --git a/views/setup_page.php b/views/setup_page.php
index d54c9e6..7219bf7 100644
--- a/views/setup_page.php
+++ b/views/setup_page.php
@@ -66,8 +66,8 @@
From 47fc199a7eddb1bf28806cf683a7c070ef67d2d4 Mon Sep 17 00:00:00 2001
From: Dharmesh Patel
Date: Tue, 20 Aug 2024 12:58:36 +0530
Subject: [PATCH 03/40] Added form validation and form submission handling.
---
css/admin.css | 2 +-
.../admin/templates/create-account-page.php | 3 +
includes/class-mailchimp-admin.php | 56 ++++-
js/admin.js | 207 +++++++++++++++++-
4 files changed, 254 insertions(+), 14 deletions(-)
diff --git a/css/admin.css b/css/admin.css
index 034fddb..e66bba5 100644
--- a/css/admin.css
+++ b/css/admin.css
@@ -618,7 +618,7 @@ th.mailchimp-connect {
.mailchimp-sf-form-wrapper .box.form-error input {
border-color: red;
}
-.mailchimp-sf-form-wrapper .error-field:empty {
+.mailchimp-sf-form-wrapper .error-field:empty, #mailchimp-sf-create-account p.error-message:empty {
display: none !important;
}
.mailchimp-sf-form-wrapper fieldset input[type='radio'],
diff --git a/includes/admin/templates/create-account-page.php b/includes/admin/templates/create-account-page.php
index e2acc88..76f36c6 100644
--- a/includes/admin/templates/create-account-page.php
+++ b/includes/admin/templates/create-account-page.php
@@ -61,6 +61,9 @@