联系表格 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 的下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

试图在选择下拉列表中选择值但是它只给我文本值?联系表格 7

在下拉列表中选择特定值时如何在联系表单 7 中启用字段

(在联系表格 7 中填充下拉列表,出现此错误 - 警告:array_keys() 期望参数 1 为数组,在

根据下拉列表的值隐藏和显示一行表格 - jquery

text 条件负荷联系表格7

联系表格 7 输入框不可点击