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 @@ -
+
@@ -319,7 +321,7 @@
-
+
@@ -364,7 +366,7 @@
-
+
@@ -425,7 +427,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 @@