Contact Form 7 条件值基于没有 jquery 的下拉列表
Contact Form 7 Conditional value based on drop-down without jquery
我正在尝试获取函数的下拉选项值。基于它必须发送电子邮件的下拉值。以下 switch case 代码适用于文本框,但不适用于下拉列表 (select) 。我们必须在这种形式中做更多的过程,这样我们就可以避免联系形式 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];
我正在尝试获取函数的下拉选项值。基于它必须发送电子邮件的下拉值。以下 switch case 代码适用于文本框,但不适用于下拉列表 (select) 。我们必须在这种形式中做更多的过程,这样我们就可以避免联系形式 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];