|
49 | 49 | require_once $path . 'lib/mailchimp/mailchimp.php';
|
50 | 50 | }
|
51 | 51 |
|
| 52 | +// Encryption utility class. |
| 53 | +require_once plugin_dir_path( __FILE__ ) . 'includes/class-mailchimp-data-encryption.php'; |
| 54 | + |
52 | 55 | // includes the widget code so it can be easily called either normally or via ajax
|
53 | 56 | require_once 'mailchimp_widget.php';
|
54 | 57 |
|
|
58 | 61 | // Upgrade routines.
|
59 | 62 | require_once 'mailchimp_upgrade.php';
|
60 | 63 |
|
61 |
| -// Init Admin functions |
62 |
| -require_once plugin_dir_path( __FILE__ ) . 'includes/mailchimp-admin.php'; |
| 64 | +// Init Admin functions. |
| 65 | +require_once plugin_dir_path( __FILE__ ) . 'includes/class-mailchimp-admin.php'; |
63 | 66 | $admin = new MailChimp_Admin();
|
64 | 67 | $admin->init();
|
65 | 68 |
|
@@ -149,18 +152,22 @@ function mailchimp_admin_page_scripts( $hook_suffix ) {
|
149 | 152 | return;
|
150 | 153 | }
|
151 | 154 |
|
152 |
| - wp_enqueue_style( 'mailchimp_sf_admin_css', MCSF_URL . 'css/admin.css', array(), true ); |
| 155 | + wp_enqueue_style( 'mailchimp_sf_admin_css', MCSF_URL . 'css/admin.css', array( 'wp-jquery-ui-dialog' ), true ); |
153 | 156 | wp_enqueue_script( 'showMe', MCSF_URL . 'js/hidecss.js', array( 'jquery' ), MCSF_VER, true );
|
154 |
| - wp_enqueue_script( 'mailchimp_sf_admin', MCSF_URL . 'js/admin.js', array( 'jquery' ), MCSF_VER, true ); |
| 157 | + wp_enqueue_script( 'mailchimp_sf_admin', MCSF_URL . 'js/admin.js', array( 'jquery', 'jquery-ui-dialog' ), MCSF_VER, true ); |
155 | 158 |
|
156 | 159 | wp_localize_script(
|
157 | 160 | 'mailchimp_sf_admin',
|
158 | 161 | 'mailchimp_sf_admin_params',
|
159 | 162 | array(
|
160 |
| - 'ajax_url' => esc_url( admin_url( 'admin-ajax.php' ) ), |
161 |
| - 'oauth_start_nonce' => wp_create_nonce( 'mailchimp_sf_oauth_start_nonce' ), |
162 |
| - 'oauth_finish_nonce' => wp_create_nonce( 'mailchimp_sf_oauth_finish_nonce' ), |
163 |
| - 'oauth_window_name' => esc_html__( 'Mailchimp For WordPress OAuth', 'mailchimp' ), |
| 163 | + 'ajax_url' => esc_url( admin_url( 'admin-ajax.php' ) ), |
| 164 | + 'oauth_start_nonce' => wp_create_nonce( 'mailchimp_sf_oauth_start_nonce' ), |
| 165 | + 'oauth_finish_nonce' => wp_create_nonce( 'mailchimp_sf_oauth_finish_nonce' ), |
| 166 | + 'oauth_window_name' => esc_html__( 'Mailchimp For WordPress OAuth', 'mailchimp' ), |
| 167 | + 'generic_error' => esc_html__( 'An error occurred. Please try again.', 'mailchimp' ), |
| 168 | + 'modal_title' => esc_html__( 'Login Popup is blocked!', 'mailchimp' ), |
| 169 | + 'modal_button_try_again' => esc_html__( 'Try again', 'mailchimp' ), |
| 170 | + 'modal_button_cancel' => esc_html__( 'No, cancel!', 'mailchimp' ), |
164 | 171 | )
|
165 | 172 | );
|
166 | 173 | }
|
@@ -263,7 +270,7 @@ function mailchimp_sf_request_handler() {
|
263 | 270 | }
|
264 | 271 |
|
265 | 272 | // erase auth information
|
266 |
| - $options = array( 'mc_api_key', 'mc_sopresto_user', 'mc_sopresto_public_key', 'mc_sopresto_secret_key' ); |
| 273 | + $options = array( 'mc_api_key', 'mailchimp_sf_access_token', 'mc_datacenter', 'mc_sopresto_user', 'mc_sopresto_public_key', 'mc_sopresto_secret_key' ); |
267 | 274 | mailchimp_sf_delete_options( $options );
|
268 | 275 | break;
|
269 | 276 | case 'change_form_settings':
|
@@ -398,6 +405,14 @@ function mailchimp_sf_auth_nonce_salt() {
|
398 | 405 | * @return MailChimp_API | false
|
399 | 406 | */
|
400 | 407 | function mailchimp_sf_get_api() {
|
| 408 | + // Check for the access token first. |
| 409 | + $access_token = mailchimp_sf_get_access_token(); |
| 410 | + $data_center = get_option( 'mc_datacenter' ); |
| 411 | + if ( ! empty( $access_token ) && ! empty( $data_center ) ) { |
| 412 | + return new MailChimp_API( $access_token, $data_center ); |
| 413 | + } |
| 414 | + |
| 415 | + // Check for the API key if the access token is not available. |
401 | 416 | $key = get_option( 'mc_api_key' );
|
402 | 417 | if ( $key ) {
|
403 | 418 | return new MailChimp_API( $key );
|
@@ -1410,3 +1425,16 @@ function mailchimp_sf_create_nonce( $action = -1 ) {
|
1410 | 1425 |
|
1411 | 1426 | return substr( wp_hash( $i . '|' . $action . '|' . $uid . '|' . $token, 'nonce' ), -12, 10 );
|
1412 | 1427 | }
|
| 1428 | + |
| 1429 | +/** |
| 1430 | + * Get Mailchimp Access Token. |
| 1431 | + * |
| 1432 | + * @since x.x.x |
| 1433 | + * @return string|bool |
| 1434 | + */ |
| 1435 | +function mailchimp_sf_get_access_token() { |
| 1436 | + $access_token = get_option( 'mailchimp_sf_access_token' ); |
| 1437 | + $data_encryption = new MailChimp_Data_Encryption(); |
| 1438 | + |
| 1439 | + return $data_encryption->decrypt( $access_token ); |
| 1440 | +} |
0 commit comments