????
Current Path : /home/innovagencyco/www/abtest.innovagency.co.za/wp-content/plugins/gosmtp/main/ |
Current File : /home/innovagencyco/www/abtest.innovagency.co.za/wp-content/plugins/gosmtp/main/settings.php |
<?php /* * GoSMTP * https://gosmtp.net * (c) Softaculous Team */ if(!defined('GOSMTP_VERSION')){ die('Hacking Attempt!'); } // The Gosmtp Header function gosmtp_page_header($title = 'GoSMTP'){ $promos = apply_filters('gosmtp_review_link', true); wp_enqueue_style( 'gosmtp-admin' ); wp_enqueue_script( 'gosmtp-admin' ); echo ' <div class="gosmtp-box-container" style="margin:0"> <h2> <table cellpadding="2" cellspacing="1" width="100%" class="fixed" border="0"> <tr> <td valign="top"> <h1>'.esc_html($title).'</h1> </td> '.($promos ? ' <td align="right"><a target="_blank" class="button button-primary" href="https://wordpress.org/support/view/plugin-reviews/gosmtp">Review GoSMTP</a></td>' : '').' <td align="right" width="40"><a target="_blank" href="https://twitter.com/gosmtp"><img src="'.GOSMTP_URL.'/images/twitter.png" /></a></td> <td align="right" width="40"><a target="_blank" href="https://www.facebook.com/gosmtp/"><img src="'.GOSMTP_URL.'/images/facebook.png" /></a></td> </tr> </table> </h2> '.gosmtp_show_notices().' <hr/> <!--Main Table--> <table cellpadding="8" cellspacing="1" width="100%" class="fixed"> <tr> <td valign="top">'; } // The Gosmtp Settings footer function gosmtp_page_footer($no_twitter = 0){ echo '</td>'; $promos = apply_filters('pagelayer_right_bar_promos', true); if($promos){ echo ' <td width="200" valign="top" id="pagelayer-right-bar"> <div class="gosmtp-promotion" style="width:100%;" > <div class="gosmtp-promotion-content" style="background:white; border:1px solid #c3c4c7; padding:10px 10px 20px 10px; border-radius:6px;"> <h2 class="gosmtp-promotion-logo"> <span><a target="_blank" href="https://pagelayer.com/?from=gosmtp-plugin"><img src="'. GOSMTP_URL.'/images/pagelayer_product.png" width="100%"></a></span> </h2> <div> <em>The Best WordPress <b>Site Builder</b> </em>:<br> <ul style="font-size:13px;"> <li>Drag & Drop Editor</li> <li>Widgets</li> <li>In-line Editing</li> <li>Styling Options</li> <li>Animations</li> <li>Easily customizable</li> <li>Real Time Design</li> <li>And many more ...</li> </ul> <center><a class="button button-primary" target="_blank" href="https://pagelayer.com/?from=gosmtp-plugin">Visit Pagelayer</a></center> </div> </div> <div class="gosmtp-promotion-content" style="margin-top: 20px; background:white; border:1px solid #c3c4c7; padding:10px 10px 20px 10px; border-radius:6px;"> <h2 class="gosmtp-promotion-logo"> <span><a target="_blank" href="https://loginizer.com/?from=gosmtp-plugin"><img src="'.GOSMTP_URL.'/images/loginizer_product.png" width="100%"></a></span> </h2> <div> <em>Protect your WordPress website from <b>unauthorized access and malware</b> </em>:<br> <ul style="font-size:13px;"> <li>BruteForce Protection</li> <li>reCaptcha</li> <li>Two Factor Authentication</li> <li>Black/Whitelist IP</li> <li>Detailed Logs</li> <li>Extended Lockouts</li> <li>2FA via Email</li> <li>And many more ...</li> </ul> <center><a class="button button-primary" target="_blank" href="https://loginizer.com/?from=gosmtp-plugin">Visit Loginizer</a></center> </div> </div> </div>'; } echo '</tr> </table> <br />'; if(empty($no_twitter)){ echo ' <div style="width:45%;background:#FFF;padding:15px; margin:20px auto; border:1px solid #c3c4c7;"> <b>Let your followers know that you use GOSMTP to Sent mail on your website :</b> <form method="get" action="https://twitter.com/intent/tweet" id="tweet" onsubmit="return dotweet(this);"> <textarea name="text" cols="45" row="3" style="resize:none;">I increased email deliverability of my #WordPress #site using @gosmtp</textarea> <input type="submit" value="Tweet!" class="button button-primary" onsubmit="return false;" id="twitter-btn" style="margin-top:20px;"/> </form> </div> <br/> <script> function dotweet(ele){ window.open(jQuery("#"+ele.id).attr("action")+"?"+jQuery("#"+ele.id).serialize(), "_blank", "scrollbars=no, menubar=no, height=400, width=500, resizable=yes, toolbar=no, status=no"); return false; } </script> <a href="'.GOSMTP_WWW_URL.'" target="_blank">GOSMTP</a><span> v'.GOSMTP_VERSION.' You can report any bugs </span><a href="http://wordpress.org/support/plugin/gosmtp" target="_blank">here</a>. </div>'; } } // GoSMTP Setting page function gosmtp_settings_page(){ $action = gosmtp_optget('auth'); $state = gosmtp_optget('state'); $code = gosmtp_optget('code'); // For authentication of Gmail, Zoho and Outlook if(!empty($action) && !empty($state) && !empty($code)){ $resp = explode('-',$state); $uri = admin_url().'admin.php?page=gosmtp&auth_code='.$code.'&auth='.$action; if(!empty($resp[1])){ $uri.='&type=edit&&conn_id='.$resp[1].'#gosmtp-connections-settings'; } echo '<script>window.location.href="'.$uri.'";</script>'; return; } if(defined('GOSMTP_PREMIUM')){ include_once GOSMTP_PRO_DIR .'/main/settings.php'; } $all_mailers = gosmtp_load_mailer_list(); $options = get_option('gosmtp_options', array()); //do_action('gosmtp_before_settings_page_load'); // Save SMTP details if (isset($_REQUEST['save'])) { // Check nonce check_admin_referer('gosmtp-options'); $force_from_email = !empty($_REQUEST['force_from_email']) ? 1 : ''; $force_from_name = !empty($_REQUEST['force_from_name']) ? 1 : ''; $return_path = !empty($_REQUEST['return_path']) ? 1 : ''; $save_mailer = gosmtp_optreq('mailer'); $option['mail_type'] = $save_mailer; if(isset($_REQUEST['nickname'])){ $option['nickname'] = gosmtp_optreq('nickname'); } if(isset($_REQUEST['backup_mailer'])){ $option['backup_connection'] = gosmtp_optreq('backup_mailer'); } if(!isset($options['mailer'])){ $options['mailer'] = []; } $mailer_id = 0; $redirect = false; // Update fields of mailer if(!empty($save_mailer) && !method_exists($all_mailers[$save_mailer], 'save_option')){ // Set for primary email if(!isset($options['mailer'][0]) || (isset($_REQUEST['conn_id']) && is_numeric($_REQUEST['conn_id']) && $_REQUEST['conn_id'] == 0)){ $options['from_email'] = gosmtp_optreq('from_email'); $options['force_from_email'] = $force_from_email; $options['from_name'] = gosmtp_optreq('from_name'); $options['force_from_name'] = $force_from_name; $options['return_path'] = $return_path; $options['mailer'][0] = $all_mailers[$save_mailer]->save_options($option); }else{ if(!empty($_REQUEST['conn_id'])){ $mailer_id = $_REQUEST['conn_id']; }else{ $redirect = true; $mailer_id = gosmtp_RandomId(); } $option['from_email'] = gosmtp_optreq('from_email'); $option['force_from_email'] = $force_from_email; $option['from_name'] = gosmtp_optreq('from_name'); $option['force_from_name'] = $force_from_name; $option['return_path'] = $return_path; $options['mailer'][$mailer_id] = $all_mailers[$save_mailer]->save_options($option); } } $options = apply_filters( 'gosmtp_save_options', $options ); if(update_option( 'gosmtp_options', $options )){ $msg['success'] = 1; if($redirect){ $uri = admin_url().'admin.php?page=gosmtp&type=edit&conn_id='.$mailer_id.'#gosmtp-connections-settings'; echo '<script>window.location.href="'.$uri.'";</script>'; } } } if(!empty($_REQUEST['delete_connection'])){ // Check nonce check_admin_referer('gosmtp-options'); $options = get_option('gosmtp_options', array()); $conn_id = gosmtp_optreq('delete_connection'); if(!empty($conn_id)){ $backup_id = isset($options['mailer'][0]['backup_connection']) ? $options['mailer'][0]['backup_connection'] : ''; if($backup_id == $conn_id){ unset($options['mailer'][0]['backup_connection']); } // Remove connection unset($options['mailer'][$conn_id]); if(update_option( 'gosmtp_options', $options )){ $msg['success'] = 1; } } } if(!empty($_REQUEST['make_backup_connection'])){ // Check nonce check_admin_referer('gosmtp-options'); $options = get_option('gosmtp_options', array()); $conn_id = gosmtp_optreq('make_backup_connection'); $options['mailer'][0]['backup_connection'] = $conn_id; if(update_option( 'gosmtp_options', $options )){ $msg['success'] = 1; } } if(!empty($_REQUEST['clear_backup_connection'])){ // Check nonce check_admin_referer('gosmtp-options'); $options = get_option('gosmtp_options', array()); $conn_id = gosmtp_optreq('clear_backup_connection'); if(isset($options['mailer'][0]) && $options['mailer'][0]['backup_connection'] == $conn_id){ unset($options['mailer'][0]['backup_connection']); } if(update_option( 'gosmtp_options', $options )){ $msg['success'] = 1; } } // SMTP Settings if(isset($_REQUEST['save_settings'])){ // Check nonce check_admin_referer('gosmtp-settings'); $enable_logs = ''; if(!empty($_REQUEST['enable_logs'])){ $enable_logs = 1; if(class_exists('\GOSMTP\Logger')){ $logger = new \GOSMTP\Logger(); $logger->create_table(); } } $save_attach = ''; if(!empty($_REQUEST['log_attachments'])){ $save_attach = 1; } $ret_period = ''; if(!empty($_REQUEST['retention_period'])){ $ret_period = sanitize_text_field($_REQUEST['retention_period']); // Cron already scheduled? if( ! empty($_REQUEST['enable_logs']) && ! wp_next_scheduled( 'gosmtp_log_retention_cron' ) ){ // Set cron schedule wp_schedule_event( time(), 'daily', 'gosmtp_log_retention_cron' ); } } // Is log retention cron scheduled? if(wp_next_scheduled( 'gosmtp_log_retention_cron' ) && (empty($_REQUEST['enable_logs']) || empty($_REQUEST['retention_period']))){ wp_clear_scheduled_hook('gosmtp_log_retention_cron'); } $log_columns = ''; if(!empty($_REQUEST['log_columns'])){ $log_columns = maybe_serialize(($_REQUEST['log_columns'])); } $enable_weekly_reports = ''; if(!empty($_REQUEST['enable_weekly_reports'])){ $enable_weekly_reports = 1; // Cron already scheduled? if(!wp_next_scheduled( 'gosmtp_weekly_email_reports_cron', array(true) ) ){ // Set cron schedule wp_schedule_event( time(), 'daily', 'gosmtp_weekly_email_reports_cron', array(true)); } // Is log weekly email cron scheduled? }elseif( wp_next_scheduled( 'gosmtp_weekly_email_reports_cron' , array(true) ) ){ wp_clear_scheduled_hook('gosmtp_weekly_email_reports_cron', array(true)); } $weekday = ''; $timestamp = ''; if(!empty($_REQUEST['weekday']) && $enable_weekly_reports){ $weekday = $_REQUEST['weekday']; $timestamp = strtotime("next ".$weekday); } $options['logs'] = []; $options['logs']['enable_logs'] = $enable_logs; $options['logs']['log_attachments'] = $save_attach; $options['logs']['retention_period'] = $ret_period; $options['logs']['log_columns'] = $log_columns; $options['weekly_reports'] = []; $options['weekly_reports']['enable_weekly_reports'] = $enable_weekly_reports; $options['weekly_reports']['weekday'] = $weekday; $options['weekly_reports']['timestamp'] = $timestamp; $options = apply_filters( 'gosmtp_save_logs_settings', $options ); if(update_option( 'gosmtp_options', $options )){ $msg['success'] = 1; } } $smtp_options = get_option('gosmtp_options', array()); // Default mailer set mail if(!isset($smtp_options['mailer']) || !is_array($smtp_options['mailer']) || empty($smtp_options['mailer'][0])){ $smtp_options['mailer'] = []; $smtp_options['mailer'][0]['mail_type'] = 'mail'; } echo '<div class="wrap">'; gosmtp_page_header(); if(!empty($msg['success'])){ echo '<div id="message" class="updated notice is-dismissible"><p>'.__('SMTP settings have been saved successfully!').'</p></div>'; } if(!empty($send_mail['success'])){ echo '<div id="message" class="updated notice is-dismissible"><p>'.__('Mail sent successfully!').'</p></div>'; }else if(!empty($send_mail['error'])){ echo '<div id="message" class="error notice is-dismissible"> <p>'.( !empty($send_mail['error_msg']) ? wp_kses_post($send_mail['error_msg']) : __('Unable to send mail, Please check your SMTP details') ).'</p></div>'; } $tabs_nav = array( 'smtpsetting' => __('SMTP Settings'), 'test-mail' => __('Test Mail'), 'support' => __('Support') ); $tabs_nav = apply_filters('gosmtp_settings_tabs_nav', $tabs_nav); ?> <div class="gosmtp-setting-content"> <div class="tabs-wrapper"> <h2 class="nav-tab-wrapper gosmtp-wrapper"> <?php foreach($tabs_nav as $id => $title){ $classes = 'nav-tab'; if($id == 'smtpsetting'){ $classes .= ' nav-tab-active'; } echo '<a href="#'. $id .'" class="'.$classes.'">'.$title.'</a>'; } ?> </h2> <div class="gosmtp-tab-panel" id="smtpsetting"> <form class="gosmtp-smtp-mail" name="smtp-details" method="post" action=""> <?php gosmtp_mailer_settings($smtp_options); ?> </form> </div> <div class="gosmtp-tab-panel" id="test-mail" style="display:none"> <form class="gosmtp-smtp-mail" id="smtp-test-mail" name="test-mail" method="post" action=""> <table class="form-table"> <tr> <th scope="row"><?php _e('To'); ?>:</th> <td> <input type="email" name="reciever_test_email" class="regular-text" placeholder="example@example.com" required /> <p class="description" id="tagline-description"><?php _e( 'Enter the recipient\'s email address.' ); ?></p> </td> </tr> <tr> <th scope="row"><?php _e('Subject'); ?>:</th> <td> <input type="text" name="smtp_test_subject" class="regular-text" placeholder="Enter Subject" value="Test Mail" required /> <p class="description" id="tagline-description"><?php _e( 'Enter a subject for your message.' ); ?></p> </td> </tr> <tr> <th scope="row"><?php _e('Message'); ?></th> <td> <textarea name="smtp_test_message" placeholder="Enter Message" class="regular-text" rows="10"required ><?php _e('This is a test mail!'); ?></textarea> <p class="description" id="tagline-description"><?php _e( 'Write your email message' ); ?> </p> </td> </tr> </table> <p> <input type="submit" name="send_mail" id="send_mail" class="button button-primary" value="Send Mail"> </p> </form> </div> <div class="gosmtp-tab-panel" id="support" style="display:none"> <div style="width:70%; margin:20px auto; display:flex; justify-content:center; flex-direction:column; align-items:center; line-height:1.5;"> <img src="<?php echo esc_url(GOSMTP_URL) .'/images/gosmtp-text.png'?>" width="200"/> <h2><?php esc_html_e('You can contact the GoSMTP Team via email. Our email address is', 'gosmtp'); ?> <a href="mailto:support@gosmtp.net">support@gosmtp.net</a> <?php esc_html_e('or through Our Premium Support Ticket System at', 'gosmtp'); ?> <a href="https://softaculous.deskuss.com" target="_blank"><?php _e('here'); ?></a></h2> </div> </div> <?php do_action('gosmtp_after_settings_tab_panel')?> </div> </div> <?php gosmtp_page_footer(); ?> </div> <script> // TODO: move this in init.php var gosmtp_ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ) ?>?"; var gosmtp_ajax_nonce = "<?php echo wp_create_nonce('gosmtp_ajax') ?>"; </script> <?php } function gosmtp_mailer_settings($smtp_options, $is_new_connection = false){ $all_mailers = gosmtp_load_mailer_list(); // For default mailer $settings = !empty($smtp_options['mailer'][0]) ? $smtp_options['mailer'][0] : array(); $settings['from_email'] = isset($smtp_options['from_email']) ? $smtp_options['from_email'] : ''; $settings['force_from_email'] = isset($smtp_options['from_email']) ? $smtp_options['force_from_email'] : ''; $settings['from_name'] = isset($smtp_options['from_name']) ? $smtp_options['from_name'] : ''; $settings['force_from_name'] = isset($smtp_options['force_from_name']) ? $smtp_options['force_from_name'] : ''; $settings['return_path'] = isset($smtp_options['return_path']) ? $smtp_options['return_path'] : ''; // Is new connection? if($is_new_connection){ if(empty($smtp_options)){ $smtp_options = []; $smtp_options['mail_type'] = 'mail'; } // For backup mailer $settings = $smtp_options; } wp_nonce_field('gosmtp-options'); ?> <table class="form-table"> <?php if($is_new_connection){ ?> <tr> <th scope="row"><?php _e('Connection Nickname'); ?></th> <td> <input name="nickname" type="text" class="regular-text always_active" placeholder="Default Connection" value="<?php if(!empty($settings['nickname'])){ echo esc_attr($settings['nickname']); }?>"> </td> </tr> <?php } ?> <tr> <th scope="row"><?php _e('From Email'); ?></th> <td> <input name="from_email" type="text" class="regular-text always_active" placeholder="notifications@example.com" value="<?php if(!empty($settings['from_email'])){ echo esc_attr($settings['from_email']); }?>"> <p class="description" id="tagline-description"><?php _e("Set the from email address for your WordPress emails. If you're using an email provider (Gmail, Outlook.com, etc.), this should be your email address for that account"); ?></p> <p class="description" id="tagline-description"><i><?php _e("Please note, enable the below setting to apply this setting."); ?></i></p> <br> <input name="force_from_email" type="checkbox" <?php if(!empty($settings['force_from_email'])){ echo "checked"; }?>> <label><?php _e('Force From Email');?></label> <p class="description" id="tagline-description"><?php _e( 'If checked, From email set by other plugins will be ignored and the above Form Email setting will be used.' ); ?></p> </td> </tr> <tr> <th scope="row"><?php _e('From Name'); ?></th> <td> <input name="from_name" type="text" class="regular-text always_active" placeholder="My Website" value="<?php if(!empty($settings['from_name'])){ echo esc_attr($settings['from_name']); }?>"> <p class="description" id="tagline-description"><?php _e( "Set the from name that emails are sent from." ); ?></p> <br> <input name="force_from_name" type="checkbox" <?php if(!empty($settings['force_from_name'])){ echo "checked"; }?>> <label><?php _e('Force From Name');?></label> <p class="description" id="tagline-description"><?php _e( 'If checked, From name set by other plugins will be ignored and the above Form Name setting will be used.' ); ?></p> </td> </tr> <tr> <th scope="row"><?php _e('Return Path'); ?></th> <td> <input class="mail sendlayer mailgun smtp" name="return_path" type="checkbox" <?php if(!empty($settings['return_path'])){ echo "checked"; }?>> <label><?php _e('Set return-path');?></label> <p class="description" id="tagline-description"><?php _e( 'Set return-path to match the From Email, the return path indicates where non-delivery receipts or bounce messages are to be sent. If unchecked, non-delivery messages may be lost.' ); ?></p> </td> </tr> <tr> <th scope="row"><?php _e('Mailer'); ?></th> <td class="mailer_container"> <?php $mailer_list = gosmtp_get_mailer_list(); foreach($mailer_list as $key => $mailer){ $is_pro = $disabled = $after_icon = ''; $active_mailer = (isset($settings['mail_type']) && $settings['mail_type'] == $key) ? 'mail_active' : ''; $icon = isset($mailer['icon']) ? $mailer['icon'] : GOSMTP_URL .'/images/'.$key.'.svg'; if(!class_exists($mailer['class'])){ $is_pro = 'pro'; $disabled = 'disabled'; $after_icon='<div class="lock_icon"> <span class="dashicons dashicons-lock"></span> </div>'; } echo '<div class="gosmtp-mailer-input always_active '.esc_attr($is_pro).'"> <label class="label">'. esc_html($mailer['title']) .'</label> <div for="'.esc_attr($key).'" class="mailer_label '.esc_attr($active_mailer).'" data-name="'.esc_attr($key).'"> <img src="'. esc_attr($icon) .'" class="mailer" > '.wp_kses_post($after_icon).' </div> <input id="'.esc_attr($key).'" class="mailer_check" data-name="'.esc_attr($key).'" name="mailer" type="radio" '.esc_attr($disabled).' value="'. esc_attr($key) .'" '. checked( $key, (isset($settings['mail_type']) ? $settings['mail_type'] : ''),false ).'> </div>'; } ?> </td> </tr> <?php foreach($all_mailers as $key => $mailer){ if(!method_exists($mailer, 'load_field')){ continue; } echo '<tr> <td><h1 class="'.esc_attr($key).' smtp_heading">'. esc_html($mailer->title) .'</h1><td> </tr>'; // Load current options $mailer->loadOptions(); $conn_id = $is_new_connection ? '' : 0; if($is_new_connection){ $conn_id = gosmtp_optget('conn_id'); } // Set connection id $mailer->conn_id = $conn_id; echo gosmtp_create_field($mailer->load_field(), $mailer); } ?> <?php if(defined('GOSMTP_PREMIUM') && isset($smtp_options['mailer'][0])){ ?> <tr class="always_active"> <th scope="row"><?php _e('Backup Connection'); ?></th> <td> <select name="backup_mailer" class="regular-text"> <option value=""><?php _e('None'); ?></option> <?php if(count($smtp_options['mailer']) > 1){ ?> <?php foreach($smtp_options['mailer'] as $key => $mailer){ if($key === 0){ continue; } $con_id = !empty($settings['backup_connection']) ? $settings['backup_connection'] : ''; $conn_name = !empty($mailer['nickname']) ? $mailer['nickname'] : __('(No Name)'); $conn_type = !empty($mailer['mail_type']) ? ucfirst($mailer['mail_type']) : ''; echo "<option value='".$key."' ".selected($con_id, $key, true).">".$conn_name.' - ['.$conn_type."]</option>"; } }?> </select> <p class="description" id="tagline-description"><?php _e("Set backup email address for your WordPress emails. If primary mailer fails then backup mailer will be used to send the mail."); ?></p> </td> </tr> <?php } ?> </table> <p> <?php if(!empty($smtp_options['mailer'][0]) || !empty($settings['conn_id'])){ ?> <input type="hidden" name="conn_id" value="<?php echo ($is_new_connection && !empty($settings['conn_id']) ? $settings['conn_id'] : 0) ?>"> <?php } ?> <input type="submit" name="save" class="button button-primary" value="Save Changes"> </p> <?php } function gosmtp_create_field($fields, $mailer){ $html = ''; if(!is_array($fields)){ return $html; } foreach($fields as $key => $field){ $attrs = ''; if(!empty($field['attr'])){ $attrs .= esc_attr($field['attr']); } // Added attributes if(!in_array($field['type'], array('button', 'notice'))){ $_type = ($field['type'] == 'copy') ? 'text' : $field['type']; $attrs .= ' type="'.esc_attr($_type).'"'; $attrs .= ' name="'.esc_attr($mailer->mailer.'['.$key.']').'"'; } // Added Classes $classes = esc_attr($mailer->mailer); if(!empty($field['class'])){ $classes .= ' '.esc_attr($field['class']); } // Get value $val = $mailer->getOption($key, $mailer->mailer); if(empty($val)){ $val = isset($field['default']) ? $field['default'] : ''; } $placeholder = empty($field['place_holder']) ? '' : esc_attr($field['place_holder']); $list = empty($field['list']) ? array() : $field['list']; $input_html = ''; switch($field['type']){ case 'radio': foreach($list as $list_key => $list_value){ $input_html .= '<input class="'.$classes.'" value="'.esc_attr($list_key).'" '.$attrs.''.checked($list_key, $val, false).'> <label>'.esc_html($list_value).'</label>'; } break; case 'checkbox': $input_html .= '<input value="1" class="regular-text '.$classes.'" '.$attrs.' '.checked('1', $val, false).'>'; break; case 'button': $href = empty($field['href']) ? '#' : esc_url($field['href']); $input_html .= '<a href="'.$href.'"class="button '.$classes.'" '.$attrs.'>'.esc_html($val).'</a>'; break; case 'notice': $input_html .= '<div id="message" class="notice_container '.$classes.'">'.esc_html($val).'</div>'; break; case 'select': $input_html .='<select class="regular-text '.$classes.'" '.$attrs.'>'; foreach($list as $list_key => $list_value){ $input_html .= '<option value="'.esc_attr($list_key).'" '.selected($list_key, $val, false).'>'.esc_html($list_value).'</option>'; } $input_html .='</select>'; break; case 'copy': $id = empty($field['id']) ? '' : esc_attr($field['id']); $input_html .= '<input class="regular-text gosmtp_copy '.$classes.'" placeholder="'.$placeholder.'" id="'.$id.'" value="'.esc_attr($val).'" '.$attrs.'> <span class="dashicons dashicons-admin-page " title="Copy" onclick="gosmtp_copy_url(\''.$id.'\')"></span> <p class="gosmtp_copy_message '.$id.'">'. __('Message coppied Successfully') .'.</p>'; break; default: $input_html .= '<input class="regular-text '.$classes.'" placeholder="'.$placeholder.'" value="'.esc_attr($val).'" '.$attrs.'>'; break; } $description = empty($field['desc']) ? '' : wp_kses_post($field['desc']); $html .= '<tr class='.(empty($field['tr_class']) ? '' : esc_attr($field['tr_class'])).'> <th scope="row">'.esc_html($field['title']).'</th> <td> '.$input_html.' <p class="description" id="tagline-description">'.wp_kses_post($description).'</p> </td> </tr>'; } return $html; }