联系表单7基于下拉列表的条件值,不带jquery



我正在尝试获取函数的下拉选项值。基于下拉列表值,它必须发送电子邮件。下面的开关案例代码适用于文本框,但不在下拉列表中(选择(。我们必须在这种形式下进行更多的处理,这样我们就可以避免接触形式7管道选项。

查看代码

<span class="wpcf7-form-control-wrap location">
<select name="location" class="wpcf7-form-control wpcf7-select wpcf7-validates-as-required" aria-required="true" aria-invalid="false">
<option value="">Select Location</option>
<option value="India">India</option>
<option value="UK & Europe">UK & Europe</option>
<option value="Americas">Americas</option>
<option value="Asia Pasific">Asia Pasific</option>
<option value="Oceania">Oceania</option>
</select>
</span>

功能代码

add_action( 'wpcf7_before_send_mail', 'wpcf7_do_something_else_with_the_data', 90, 1 );

function wpcf7_do_something_else_with_the_data( $WPCF7_ContactForm ){
$submission = WPCF7_Submission :: get_instance();

if ( $submission ){
$posted_data = $submission->get_posted_data();      
if ( empty( $posted_data ) ){ return; }


$favcolor = $posted_data['location'];

switch ($favcolor) {
case "India":
$changed_name = 'ddd@gmail.com';
break;

case "UK & Europe":
$changed_name = 'eee@gmail.com';
break;

case "Americas":
$changed_name = 'fff@gmail.com';
break;

case "Asia Pasific":
$changed_name = 'ggg@gmail.com';
break;
default:
$changed_name = 'hhh@gmail.com';

}

$mail = $WPCF7_ContactForm->prop( 'mail' );

$new_mail = str_replace( '[recipients]', $changed_name, $mail );
// Set
$WPCF7_ContactForm->set_properties( array( 'mail' => $new_mail ) );

return $WPCF7_ContactForm;
}}

在5.1和5.2之间的某个时刻,CF7的开发人员决定将selects作为数组返回。这有点痛苦,因为它让我在更新网站时头疼。

但抛开意见不谈。。。

尝试更改

$favcolor = $posted_data['location'];

$favcolor = $posted_data['location'][0];

最新更新