У меня есть поле выбора в форме (ниже), которое позволяет пользователю выбрать определенного «агента», в который он хочет отправить форму по электронной почте. Код ниже отображает правильное имя и адрес электронной почты для агентов.
<select name="to" class="select-box">
<option value="">Send message to</option>
<?php if(isset($agents) && $agents):
if(!is_array($agents)) { $agents = array($agents); }
foreach($agents as $agent):
$agent_post = get_post($agent);
$email = sanitize_email(get_post_meta( $agent, '_meta_email', true ));
$mailto[] = $email;
echo '<option value="'.$email.'">'.wp_kses_data($agent_post->post_title).'</option>';
endforeach;
endif;
?>
</select>
… сейчас, когда все становится сложнее. PHP для фактического использования выбранной электронной почты не работает должным образом.
$to = $_REQUEST['to'];
if(!$to) $to = nt_get_option('property', 'contact_email', get_bloginfo('admin_email'));
Вторая строка действует как план резервного копирования, если адрес электронной почты не выбран, однако он используется, даже если пользователь выбрал определенного агента. Любые предложения о том, что мне не хватает?
Я не думаю !$to
это то, что вы ищете. !$to
на самом деле означает != true
очевидно, что адрес электронной почты не равен истине, поэтому он всегда будет использовать адрес электронной почты по умолчанию.
я бы попробовал
$to = trim($_REQUEST['to']); // trim whitespace
// Check if $to is empty
if(empty($to)){
// If so, set default
$to = nt_get_option('property', 'contact_email', get_bloginfo('admin_email'));
}
Других решений пока нет …