联系表格 7 条件值基于不带 jquery 的下拉列表
Posted
技术标签:
【中文标题】联系表格 7 条件值基于不带 jquery 的下拉列表【英文标题】:Contact Form 7 Conditional value based on drop-down without jquery 【发布时间】:2021-01-08 22:36:36 【问题描述】:我正在尝试获取函数的下拉选项值。根据它必须发送电子邮件的下拉值。下面的 switch case 代码适用于文本框,但不适用于下拉(选择)。我们必须在此表单中执行更多流程,以避免联系表单 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;
【问题讨论】:
【参考方案1】:在 5.1 和 5.2 之间的某个时间点,CF7 的开发人员决定将 selects
作为数组返回。这有点痛苦,因为它让我在更新网站时有些头疼。
除了意见...
尝试改变
$favcolor = $posted_data['location'];
到
$favcolor = $posted_data['location'][0];
【讨论】:
以上是关于联系表格 7 条件值基于不带 jquery 的下拉列表的主要内容,如果未能解决你的问题,请参考以下文章