PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.4
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.4
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
formidable / classes / controllers / FrmSMTPController.php

FrmSMTPController.php in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More 6.4, at classes/controllers/FrmSMTPController.php

567 lines 16.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 die( 'You are not allowed to call this page directly.' );
4 }
5
6 /**
7 * SMTP Sub-page.
8 *
9 * @since 4.04.04
10 */
11 class FrmSMTPController {
12
13 /**
14 * Admin menu page slug.
15 *
16 * @since 4.04.04
17 *
18 * @var string
19 */
20 private $slug = 'formidable-smtp';
21
22 /**
23 * @since 4.04.04
24 *
25 * @var array
26 */
27 private $config = array(
28 'lite_plugin' => 'wp-mail-smtp/wp_mail_smtp.php',
29 'lite_download_url' => 'https://downloads.wordpress.org/plugin/wp-mail-smtp.zip',
30 'pro_plugin' => 'wp-mail-smtp-pro/wp_mail_smtp.php',
31 'smtp_settings' => 'admin.php?page=wp-mail-smtp',
32 );
33
34 /**
35 * Runtime data used for generating page HTML.
36 *
37 * @since 4.04.04
38 *
39 * @var array
40 */
41 private $output_data = array();
42
43 /**
44 * Hooks.
45 *
46 * @since 4.04.04
47 *
48 * @return void
49 */
50 public static function load_hooks() {
51
52 add_filter( 'wp_mail_smtp_is_white_labeled', '__return_true' );
53
54 $self = new self();
55 if ( wp_doing_ajax() ) {
56 add_action( 'wp_ajax_frm_smtp_page_check_plugin_status', array( $self, 'ajax_check_plugin_status' ) );
57 }
58
59 add_filter( 'wp_mail_smtp_core_get_upgrade_link', array( $self, 'link' ) );
60 add_action( 'admin_menu', array( $self, 'menu' ), 999 );
61 add_action( 'wp_mail_smtp_core_recommendations_plugins', 'FrmSMTPController::remove_wpforms_nag' );
62
63 // Only load if we are actually on the SMTP page.
64 if ( ! FrmAppHelper::is_admin_page( $self->slug ) ) {
65 return;
66 }
67
68 add_action( 'admin_init', array( $self, 'redirect_to_smtp_settings' ) );
69
70 // Hook for addons.
71 do_action( 'frm_admin_pages_smtp_hooks' );
72 }
73
74 /**
75 * Customize the upgrade link.
76 *
77 * @return string
78 */
79 public function link( $link ) {
80 $new_link = 'formidableforms.com/go-wp-mail-smtp/?urllink=wpmailsmtp%2Ecom%2Flite%2Dupgrade&';
81 $link = str_replace( 'wpmailsmtp.com/lite-upgrade/?', $new_link, $link );
82 return $link;
83 }
84
85 /**
86 * Don't nag people to install WPForms
87 *
88 * @since 4.04.04
89 */
90 public static function remove_wpforms_nag( $upsell ) {
91 if ( is_array( $upsell ) ) {
92 foreach ( $upsell as $k => $plugin ) {
93 if ( strpos( $plugin['slug'], 'wpforms' ) !== false ) {
94 unset( $upsell[ $k ] );
95 }
96 }
97 }
98
99 return $upsell;
100 }
101
102 /**
103 * SMTP submenu page.
104 *
105 * @return void
106 */
107 public function menu() {
108 add_submenu_page( 'formidable', __( 'SMTP', 'formidable' ) . ' | Formidable', __( 'SMTP', 'formidable' ), 'activate_plugins', $this->slug, array( $this, 'output' ) );
109 }
110
111 /**
112 * Generate and output page HTML.
113 *
114 * @since 4.04.04
115 *
116 * @return void
117 */
118 public function output() {
119 FrmAppHelper::include_svg();
120 $this->css();
121
122 echo '<div id="frm-admin-smtp" class="wrap frm-wrap frm-admin-plugin-landing">';
123
124 $this->output_section_heading();
125 $this->output_section_screenshot();
126 $this->output_section_step_install();
127 $this->output_section_step_setup();
128
129 echo '</div>';
130 }
131
132 /**
133 * Generate and output heading section HTML.
134 *
135 * @since 4.04.04
136 *
137 * @return void
138 */
139 protected function output_section_heading() {
140 $size = array(
141 'height' => 90,
142 'width' => 90,
143 );
144
145 // Heading section.
146 ?>
147 <section class="top">
148 <div class="frm-smtp-logos">
149 <?php
150 FrmAppHelper::show_logo( $size );
151 FrmAppHelper::icon_by_class(
152 'frmfont frm_heart_solid_icon',
153 array(
154 'aria-label' => 'Loves',
155 'style' => 'width:30px;height:30px;margin:0 35px;',
156 'color' => '#d11c25',
157 )
158 );
159 $this->stmp_logo();
160 ?>
161 </div>
162 <h1><?php esc_html_e( 'Making Email Deliverability Easy for WordPress', 'formidable' ); ?></h1>
163 <p><?php esc_html_e( 'WP Mail SMTP allows you to easily set up WordPress to use a trusted provider to reliably send emails, including form notifications.', 'formidable' ); ?></p>
164 </section>
165 <?php
166 }
167
168 /**
169 * Generate and output screenshot section HTML.
170 *
171 * @since 4.04.04
172 *
173 * @return void
174 */
175 protected function output_section_screenshot() {
176
177 printf(
178 '<section class="screenshot">
179 <div class="cont">
180 <img src="%1$s" alt="%2$s"/>
181 </div>
182 <ul>
183 <li>%3$s %4$s</li>
184 <li>%3$s %5$s</li>
185 <li>%3$s %6$s</li>
186 <li>%3$s %7$s</li>
187 </ul>
188 </section>',
189 esc_url( FrmAppHelper::plugin_url() . '/images/smtp-screenshot-tnail.png' ),
190 esc_attr__( 'WP Mail SMTP screenshot', 'formidable' ),
191 '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 492 492" width="14" height="14"><path d="M484 227L306 49a27 27 0 00-38 0l-16 16a27 27 0 000 38l104 105H27c-15 0-27 11-27 26v23c0 15 12 27 27 27h330L252 389a27 27 0 000 38l16 16a27 27 0 0038 0l178-178a27 27 0 000-38z" fill="#5bbfa5"/></svg> &nbsp;',
192 esc_html__( 'Over 1,000,000 websites use WP Mail SMTP.', 'formidable' ),
193 esc_html__( 'Send emails authenticated via trusted parties.', 'formidable' ),
194 esc_html__( 'Transactional Mailers: Pepipost, SendinBlue, Mailgun, SendGrid, Amazon SES.', 'formidable' ),
195 esc_html__( 'Web Mailers: Gmail, G Suite, Office 365, Outlook.com.', 'formidable' )
196 );
197 }
198
199 /**
200 * Generate and output step 'Install' section HTML.
201 *
202 * @since 4.04.04
203 *
204 * @return void
205 */
206 protected function output_section_step_install() {
207
208 $step = $this->get_data_step_install();
209
210 if ( empty( $step ) ) {
211 return;
212 }
213
214 $icon = FrmAppHelper::icon_by_class(
215 'frmfont ' . $step['icon'],
216 array(
217 'aria-label' => __( 'Step 1', 'formidable' ),
218 'echo' => false,
219 'style' => 'width:50px;height:50px;',
220 )
221 );
222
223 /* translators: %s: Name of the plugin */
224 $label = sprintf( __( 'Install and Activate %s', 'formidable' ), 'WP Mail SMTP' );
225
226 printf(
227 '<section class="step step-install">
228 <aside class="num">
229 %1$s
230 <i class="loader hidden"></i>
231 </aside>
232 <div>
233 <h2>%2$s</h2>
234 <p>%3$s</p>
235 <span><a rel="%4$s" class="button button-primary frm-button-primary %5$s" aria-label="%6$s">%7$s</a></span>
236 </div>
237 </section>',
238 FrmAppHelper::kses( $icon, array( 'a', 'i', 'span', 'use', 'svg' ) ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
239 esc_html( $label ),
240 esc_html__( 'Install WP Mail SMTP from the WordPress.org plugin repository.', 'formidable' ),
241 esc_attr( $step['plugin'] ),
242 esc_attr( $step['button_class'] ),
243 esc_attr( $step['button_action'] ),
244 esc_html( $step['button_text'] )
245 );
246 }
247
248 /**
249 * Generate and output step 'Setup' section HTML.
250 *
251 * @since 4.04.04
252 *
253 * @return void
254 */
255 protected function output_section_step_setup() {
256
257 $step = $this->get_data_step_setup();
258
259 if ( empty( $step ) ) {
260 return;
261 }
262
263 $icon = FrmAppHelper::icon_by_class(
264 'frmfont ' . $step['icon'],
265 array(
266 'aria-label' => __( 'Step 2', 'formidable' ),
267 'echo' => false,
268 'style' => 'width:50px;height:50px;',
269 )
270 );
271
272 printf(
273 '<section class="step step-setup %1$s">
274 <aside class="num">
275 %2$s
276 <i class="loader hidden"></i>
277 </aside>
278 <div>
279 <h2>%3$s</h2>
280 <p>%4$s</p>
281 <span><a href="%5$s" class="button button-primary frm-button-primary %6$s">%7$s</a></span>
282 </div>
283 </section>',
284 esc_attr( $step['section_class'] ),
285 FrmAppHelper::kses( $icon, array( 'a', 'i', 'span', 'use', 'svg' ) ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
286 esc_html__( 'Set Up WP Mail SMTP', 'formidable' ),
287 esc_html__( 'Select and configure your mailer.', 'formidable' ),
288 esc_url( admin_url( $this->config['smtp_settings'] ) ),
289 esc_attr( $step['button_class'] ),
290 esc_html( $step['button_text'] )
291 );
292 }
293
294 /**
295 * Step 'Install' data.
296 *
297 * @since 4.04.04
298 *
299 * @return array Step data.
300 */
301 protected function get_data_step_install() {
302
303 $lite_plugin = new FrmInstallPlugin( array( 'plugin_file' => $this->config['lite_plugin'] ) );
304 $pro_plugin = new FrmInstallPlugin( array( 'plugin_file' => $this->config['pro_plugin'] ) );
305
306 $this->output_data['plugin_installed'] = $lite_plugin->is_installed();
307 $this->output_data['pro_plugin_installed'] = $pro_plugin->is_installed();
308 $this->output_data['plugin_activated'] = false;
309 $this->output_data['plugin_setup'] = false;
310
311 $step = array(
312 'icon' => 'frm_step1_icon',
313 'button_action' => '',
314 );
315
316 $is_installed = $this->output_data['plugin_installed'] || $this->output_data['pro_plugin_installed'];
317 if ( ! $is_installed ) {
318 // Return the download url.
319 $step['button_text'] = __( 'Install WP Mail SMTP', 'formidable' );
320 $step['button_class'] = 'frm-install-addon';
321 $step['button_action'] = __( 'Install', 'formidable' );
322 $step['plugin'] = $this->config['lite_download_url'];
323 return $step;
324 }
325
326 $this->output_data['plugin_activated'] = $this->is_smtp_activated();
327 $this->output_data['plugin_setup'] = $this->is_smtp_configured();
328
329 $step['plugin'] = $this->output_data['pro_plugin_installed'] ? $this->config['pro_plugin'] : $this->config['lite_plugin'];
330
331 if ( $this->output_data['plugin_activated'] ) {
332 $step['icon'] = 'frm_step_complete_icon';
333 $step['button_text'] = __( 'WP Mail SMTP Installed & Activated', 'formidable' );
334 $step['button_class'] = 'grey disabled';
335 } else {
336 $step['button_text'] = __( 'Activate WP Mail SMTP', 'formidable' );
337 $step['button_class'] = 'frm-activate-addon';
338 $step['button_action'] = __( 'Activate', 'formidable' );
339 }
340
341 return $step;
342 }
343
344 /**
345 * Step 'Setup' data.
346 *
347 * @since 4.04.04
348 *
349 * @return array Step data.
350 */
351 protected function get_data_step_setup() {
352
353 $step = array();
354
355 $step['icon'] = 'frm_step2_icon';
356 $step['section_class'] = $this->output_data['plugin_activated'] ? '' : 'grey';
357 $step['button_text'] = esc_html__( 'Start Setup', 'formidable' );
358 $step['button_class'] = 'grey disabled';
359
360 if ( $this->output_data['plugin_setup'] ) {
361 $step['icon'] = 'frm_step_complete_icon';
362 $step['section_class'] = '';
363 $step['button_text'] = esc_html__( 'Go to SMTP settings', 'formidable' );
364 } elseif ( $this->output_data['plugin_activated'] ) {
365 $step['button_class'] = '';
366 }
367
368 return $step;
369 }
370
371 /**
372 * Whether WP Mail SMTP plugin configured or not.
373 *
374 * @since 4.04.04
375 *
376 * @return bool True if some mailer is selected and configured properly.
377 */
378 protected function is_smtp_configured() {
379
380 if ( ! $this->is_smtp_activated() ) {
381 return false;
382 }
383
384 $phpmailer = $this->get_phpmailer();
385
386 $mailer = WPMailSMTP\Options::init()->get( 'mail', 'mailer' );
387 $is_mailer_complete = wp_mail_smtp()->get_providers()->get_mailer( $mailer, $phpmailer )->is_mailer_complete();
388
389 return 'mail' !== $mailer && $is_mailer_complete;
390 }
391
392 /**
393 * Whether WP Mail SMTP plugin active or not.
394 *
395 * @since 4.04.04
396 *
397 * @return bool True if SMTP plugin is active.
398 */
399 protected function is_smtp_activated() {
400 return function_exists( 'wp_mail_smtp' ) && ( is_plugin_active( $this->config['lite_plugin'] ) || is_plugin_active( $this->config['pro_plugin'] ) );
401 }
402
403 /**
404 * Get $phpmailer instance.
405 *
406 * @since 4.04.04
407 *
408 * @return \WPMailSMTP\Providers\MailCatcherInterface|PHPMailer Instance of PHPMailer.
409 */
410 protected function get_phpmailer() {
411 global $phpmailer;
412
413 if ( ! is_object( $phpmailer ) || ! is_a( $phpmailer, 'PHPMailer' ) ) {
414 if ( is_callable( array( wp_mail_smtp(), 'generate_mail_catcher' ) ) ) {
415 $phpmailer = wp_mail_smtp()->generate_mail_catcher( true ); // phpcs:ignore
416 } else {
417 require_once ABSPATH . WPINC . '/class-phpmailer.php';
418 $phpmailer = new PHPMailer( true ); // phpcs:ignore
419 }
420 }
421
422 return $phpmailer;
423 }
424
425 /**
426 * Redirect to SMTP settings page if it is activated..
427 *
428 * @since 4.04.04
429 *
430 * @return void
431 */
432 public function redirect_to_smtp_settings() {
433 if ( $this->is_smtp_configured() ) {
434 wp_safe_redirect( admin_url( $this->config['smtp_settings'] ) );
435 exit;
436 }
437 }
438
439 /**
440 * @return void
441 */
442 private function stmp_logo() {
443 ?>
444 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60" height="90" width="90"><defs><style>.cls-11,.cls-12{fill-rule:evenodd}.cls-4{fill:none}.cls-11{fill:#86a196}.cls-12{fill:#fff}</style></defs><path class="cls-4" d="M-6.3 0h60v60h-60z"/><path d="M16.7 8.1a15.4 15.4 0 00-8 10.2 23.5 23.5 0 1030 0 15.4 15.4 0 00-9.3-10.8 3.4 3.4 0 00-2.1-2.7A4.6 4.6 0 0018.4 3a24.4 24.4 0 00-1.7 5z" fill="#395360" fill-rule="evenodd"/><path fill="#fbaa6f" d="M18 26h12v14H18z"/><path d="M25.9 33.2l-.1-.1a1.4 1.4 0 111.6-2.3 1.9 1.9 0 00-1.2.8 1.9 1.9 0 00-.3 1.6zm-4.5 0a1.8 1.8 0 00-.4-1.6 2 2 0 00-1.2-.8 1.4 1.4 0 011.6 2.3zm7.2-3.2h.5l-1 4.8-2.2 6.5h-4.3l-3.2-5.4 1.1-3.2 2.1 2.7c.6.5 2.7.5 3.8-.6a26.2 26.2 0 003.2-4.8z" fill="#dc7f3c" fill-rule="evenodd"/><path d="M9.7 29H15v-9h-4a13 13 0 017.4-10q1.2-5 2.8-6.8l.1-.1.1-.1a2.3 2.3 0 011.1-.5 2.3 2.3 0 012.2 3.8 1.6 1.6 0 01-.4.3A15 15 0 0023 8a5 5 0 013-1.5 1.4 1.4 0 01.7.2 1.3 1.3 0 01.5 1.8 1.3 1.3 0 01-.6.6 13 13 0 0110.1 11l.1.8H33v8h4.8l1.8 13.4q-6.3 4-15.8 4T8 42.4zM25 38.4q3.8-6.4 3.8-7.6c0-2.2-3.2-4-4.8-4s-4.9 1.7-4.9 4q0 1.2 3.8 7.6a1.2 1.2 0 001 .6 1 1 0 001-.6z" fill="#bdcfc8" fill-rule="evenodd"/><path class="cls-4" d="M19 31h9.6L27 47.2h-6.4l-1.6-16z"/><path d="M39.8 48.8a20 20 0 01-32 0l.8-6a2.7 2.7 0 001 .1 2.8 2.8 0 002.8-2.4v1.2a2.8 2.8 0 005.6 0v1.6a2.9 2.9 0 005.7 0 2.8 2.8 0 005.7 0v-1.6a2.8 2.8 0 105.7 0v-1.2A2.8 2.8 0 0038 43a2.9 2.9 0 001-.2l.8 6z" fill="#809eb0" fill-rule="evenodd"/><path d="M8.3 44.6l.3-1.8a2.7 2.7 0 001 .2 2.8 2.8 0 002.8-2.5v1.2a2.8 2.8 0 005.7 0v1.7a2.9 2.9 0 005.6 0 2.8 2.8 0 005.7 0v-1.7a2.8 2.8 0 105.7 0v-1.2A2.8 2.8 0 0038 43a2.9 2.9 0 001-.2l.3 2a2.9 2.9 0 01-4.1-2.2v1.2a2.8 2.8 0 11-5.7 0v1.6a2.8 2.8 0 01-5.7 0 2.9 2.9 0 01-5.7 0v-1.7a2.8 2.8 0 01-5.7 0v-1.2A2.8 2.8 0 019.6 45a2.9 2.9 0 01-1.3-.3z" fill="#738e9e" fill-rule="evenodd"/><path class="cls-11" d="M37.8 22.4c-1-2.9-3-4.7-4.7-4.5-2.2.2-2.8 3.7-2.3 8s1.7 7.5 3.9 7.3 4-3.9 3.6-8c0 1.2-.5 2.3-1.3 2.4-1.2 0-1.5-1.2-1.6-2.9s-.2-3 1-3a1.5 1.5 0 011.4.7z"/><path class="cls-12" d="M37 21.8c-.6-1.3-1.5-2-2.4-1.9-1.5.1-1.9 2.6-1.6 5.5s1.2 5.1 2.7 5c1.1-.2 2-1.5 2.2-3.4a1.2 1.2 0 01-1 .6c-1 0-1.4-1.2-1.5-2.9s-.1-3 1-3a1.6 1.6 0 01.6 0z"/><path class="cls-11" d="M9.6 22.4c1-2.9 3-4.7 4.7-4.5 2.2.2 2.8 3.7 2.3 8s-1.7 7.5-3.9 7.3-4-3.9-3.7-8c.1 1.2.5 2.3 1.4 2.4 1.1 0 1.5-1.2 1.6-2.9s.1-3-1-3a1.5 1.5 0 00-1.4.7z"/><path class="cls-12" d="M10.4 21.8c.6-1.3 1.5-2 2.4-1.9 1.5.1 1.8 2.6 1.5 5.5s-1.1 5.1-2.6 5c-1.1-.2-2-1.5-2.2-3.4a1.2 1.2 0 00.9.6c1.1 0 1.4-1.2 1.6-2.9s.1-3-1-3a1.7 1.7 0 00-.7 0z"/><path d="M19 28.6a5.3 5.3 0 010-.7c0-2.4 1.2-5.2 4.9-5.2s4.8 2.8 4.8 5.2a4.4 4.4 0 010 1c-.9-1.3-2.4-2.1-4.9-2.1-2.4 0-3.9.7-4.8 1.8z" fill="#f4f8ff" fill-rule="evenodd"/><path class="cls-11" d="M26.5 9.2L23.3 9l4-1.2a1.4 1.4 0 01-.8 1.4zm-3.5-1l-1.3 1a16.8 16.8 0 002-3.8 6.6 6.6 0 00.3-2.7A2.4 2.4 0 0125.2 5a2.4 2.4 0 01-.7 1.5A15 15 0 0023 8.1z"/></svg>
445 <?php
446 }
447
448 /**
449 * @return void
450 */
451 private function css() {
452 ?>
453 <style>
454 #frm-admin-smtp *, #frm-admin-smtp *::before, #frm-admin-smtpp *::after {
455 -webkit-box-sizing: border-box;
456 -moz-box-sizing: border-box;
457 box-sizing: border-box;
458 }
459 #frm-admin-smtp{
460 width: 700px;
461 margin: 0 auto;
462 }
463 #frm-admin-smtp p {
464 font-size: 15px;
465 }
466 #frm-admin-smtp section{
467 margin: 50px 0;
468 text-align: left;
469 clear: both;
470 }
471 #frm-admin-smtp .top{
472 text-align: center;
473 }
474 .frm-smtp-logos {
475 margin-bottom: 38px;
476 }
477 .frm-smtp-logos svg {
478 vertical-align: middle;
479 }
480 #frm-admin-smtp .top h1 {
481 font-size: 26px;
482 font-weight: 600;
483 margin-bottom: 0;
484 padding: 0;
485 }
486 #frm-admin-smtp .top p {
487 font-size: 17px;
488 color: #777;
489 margin-top: .5em;
490 }
491 #frm-admin-smtp .screenshot ul {
492 display: inline-block;
493 margin: 0 0 0 30px;
494 list-style-type: none;
495 max-width: calc(100% - 350px);
496 }
497 #frm-admin-smtp .screenshot li {
498 margin: 16px 0;
499 padding: 0;
500 font-size: 15px;
501 color: #777;
502 }
503 #frm-admin-smtp .screenshot .cont img {
504 max-width: 100%;
505 display: block;
506 }
507 #frm-admin-smtp .screenshot .cont {
508 display: inline-block;
509 position: relative;
510 width: 315px;
511 padding: 5px;
512 background-color: #fff;
513 border-radius: 3px;
514 }
515 #frm-admin-smtp .step,
516 #frm-admin-smtp .screenshot .cont {
517 -webkit-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.05);
518 -moz-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.05);
519 box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.05);
520 }
521 #frm-admin-smtp .step {
522 background-color: #F9F9F9;
523 border: 1px solid #E5E5E5;
524 margin: 0 0 25px;
525 }
526 #frm-admin-smtp .screenshot > *,
527 #frm-admin-smtp .step > * {
528 vertical-align: middle;
529 }
530 #frm-admin-smtp .step p {
531 font-size: 16px;
532 color: #777777;
533 }
534 #frm-admin-smtp .step .num {
535 display: inline-block;
536 position: relative;
537 width: 100px;
538 height: 50px;
539 text-align: center;
540 }
541 #frm-admin-smtp .step div {
542 display: inline-block;
543 width: calc(100% - 104px);
544 background-color: #fff;
545 padding: 30px;
546 border-left: 1px solid #eee;
547 }
548 #frm-admin-smtp .grey {
549 opacity: 0.5;
550 background: #F6F6F6 !important;
551 border-color: #ddd !important;
552 color: #9FA5AA !important;
553 }
554 #frm-admin-smtp .step h2 {
555 font-size: 24px;
556 line-height: 22px;
557 margin-top: 0;
558 margin-bottom: 15px;
559 }
560 #frm-admin-smtp .button.disabled {
561 cursor: default;
562 }
563 </style>
564 <?php
565 }
566 }
567