Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >不发送邮件的Contact Form 7条件重定向

不发送邮件的Contact Form 7条件重定向
EN

Stack Overflow用户
提问于 2021-11-19 16:53:28
回答 1查看 38关注 0票数 0

我使用的是Contact Form 7,其中我有两个字段(其中包括),即"Service“和"Applicant”。我打算做的是,如果一些特定的服务与匹配的申请人个人识别码一起选择,我不希望表单发送电子邮件,而是重定向到另一个页面。我见过很多解决方案,但都不适合我。下面是我尝试的最后一段代码:

代码语言:javascript
运行
AI代码解释
复制
add_action( 'wpcf7_before_send_mail', 'wpcf7_check_redirection', 10, 1 );

function wpcf7_check_redirection( $contact_form ) {
    
    //Get the form ID
    $form_id = $contact_form->id();
    
    if( $form_id == 2852 ) {
                
        $submission = WPCF7_Submission::get_instance();
        $cf7_data = $submission->get_posted_data();
        
        $service = $cf7_data['service'];
        $pincode = $cf7_data['applicant_pin'];
        $saltLake = array(700064, 700091, 700097, 700098, 700105, 700106, 700059, 700101, 700135, 700102, 700157, 700159);

        if ( (($service = "Full Package for Single") || ($service = "Full Package for Couples")) && ( in_array($pincode, $saltLake)) ) { 
                    $contact_form->skip_mail = true;
                    wp_redirect("https://example.com/services/");
                    exit;
                }
    }
    
}

在开发人员工具的网络部分下,我看到https://example.com/wp-json/contact-form-7/v1/contact-forms/2852/feedback的状态和获取/重定向类型为302,控制台显示错误

代码语言:javascript
运行
AI代码解释
复制
{
    "code": "invalid_json",
    "message": "The response is not a valid JSON response."
}

我已经无计可施了。谁能帮帮我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-19 17:35:44

在您的版本中,您似乎尝试使用比较函数=,它是一个设置器(x等于值),而不是比较(如果x等于值)。

我使用了wpcf7_skip_mail过滤器来阻止邮件,还使用wpcf7mailsent javascript事件侦听器在页脚中添加了重定向脚本。

代码语言:javascript
运行
AI代码解释
复制
add_action( 'wpcf7_before_send_mail', 'wpcf7_check_redirection', 10, 1 );

function wpcf7_check_redirection( $contact_form ) {

    if ( 2744 === $contact_form->id() ) {

        $submission = WPCF7_Submission::get_instance();
        if ( $submission ) {
            $cf7_data = $submission->get_posted_data();

            $service  = $cf7_data['service'];
            $pincode  = $cf7_data['applicant_pin'];
            $saltLake = array( 700064, 700091, 700097, 700098, 700105, 700106, 700059, 700101, 700135, 700102, 700157, 700159 );
            if ( in_array( $service, array( 'Full Package for Single', 'Full Package for Couples' ), true ) && in_array( $pincode, $saltLake, true ) ) {
                // Proper way to add skip mail.
                add_filter( 'wpcf7_skip_mail', '__return_true' );
            }
        }
    }
}

add_action( 'wp_print_footer_scripts', 'dd_add_cf7_redirect' );
function dd_add_cf7_redirect() {
    if ( is_page( 123 ) ) { // replace with your page id.
        ?>
        <script type="text/javascript">
            document.addEventListener('wpcf7mailsent', function (event) {
                // Redirect to your location.
                location = 'https://www.example.com/your-redirect-uri/';
            }, false);
        </script>
        <?php }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70042404

复制
相关文章
python安装需要安装paramiko
1.最近手头有个脚本用于远程批量传输文件的。由于系统本身环境兼容不是很好,所以开始升级配置环境。
py3study
2020/01/10
1.6K0
初学 Python 需要安装哪些软件?
KDnuggets2018年的一个博客发起了一项投票:数据科学中最好用的Python IDE是什么? 本次调查共有1900多人参与,调查结果如下图所示。前5个选择是: Jupyter,57% PyCharm,35% Spyder,27% Visual Studio Code,21% Sublime Text,12%
猴子数据分析
2020/11/16
1.4K0
pycharm需要安装哪些库_python编程
2、许多博客推荐使用创建虚拟环境的方式,也就是下面图片的上面一种,项目中会有一个venv文件夹。后文是使用了virtualenv方式创建虚拟环境,也可以选择conda方式【更推荐,不用为每个项目创个虚拟环境,也避免用自己的python下太多可能版本冲突的包】。
全栈程序员站长
2022/09/27
1.3K0
pycharm需要安装哪些库_python编程
如何在jupyter中同时使用python2和3
如何在jupyter中同时使用python2和3? 由于我是通过anaconda来安装的Jupyter Notebook,所以首先需要解决Anaconda2(Python2)和Anaconda3(Python3)的共存。 只需要将Anaconda3的安装目录选在D:\Anaconda2\envs子目录下即可。详细安装教程请看这篇博文:http://blog.csdn.net/infin1te/article/details/50445217 安装完成之后,在CMD里面直接输入python会启动Python2
数据科学社区
2018/02/02
8.3K0
如何在jupyter中同时使用python2和3
数据科学工具 Jupyter Notebook 教程(二)
Jupyter Notebook 是一个把代码、图像、注释、公式和作图集于一处,实现可读性分析的交互式笔记本工具。借助所谓的内核(Kernel)的概念,Jupyter Notebook 可以同时支持包括R、python2、python3、Ruby 在内超过50多种不同编程环境。 基于 Kernel,Jupyter Notebook 可以支持的编程语言: (其实 Jupyter Notebook 可以支持的编程语言,远不止这几种。下图只是个不完全列表。) 说了那么多,开始今天的主题:如何在 Jupyter
企鹅号小编
2018/01/12
1.8K0
数据科学工具 Jupyter Notebook 教程(二)
Jupyter Notebook 下 import 第三方库,显示 no module xxx 【本质是环境没有切换过来】
 可以发现我们之前在jupyter添加的环境只是添加了一个空壳,并没有改变内核,使用的还是主环境的python。因此我们一定要在我们创建的环境中执行添加命令。
汀丶人工智能
2022/12/21
1.2K0
Jupyter Notebook 下 import 第三方库,显示 no module xxx 【本质是环境没有切换过来】
Jupyter Notebook中配置多版本Python
最新 Anaconda 中,默认安装 Python 3.8.3,因为某些原因需要使用 Python 3.7
yiyun
2022/04/01
4.8K0
Jupyter Notebook中配置多版本Python
Jupyter Notebook 同时安装Python2和Python3内核
如果Jupyter当前使用的是Python2,先使用以下命令检查pip的版本是否大于9.0:
SeanCheney
2019/02/26
2.2K0
Pycharm中利用Anaconda进行环境配置「建议收藏」
由于不同demo所利用的环境不同,因而大神们开发了Anaconda工具,其中已经安装好了很多包,并且使用conda来对这些进行管理。如此,便可以实现在电脑中存储多个互相不干扰的环境,使用编译器来分别利用这些环境创建不同的项目。
全栈程序员站长
2022/09/27
3.3K0
Pycharm中利用Anaconda进行环境配置「建议收藏」
jupyter notebook中使用新环境
1. 创建环境 创建:conda create -n 环境名 ,如, conda create -n py39 python=3.9 2.安装ipykernel,否则后报没有ipykernel pip install ipykernel 3.执行配置 python -m ipykernel install --name py39 可能出现报错 解决方案 在安装命令里添加–user即可解决,命令如下 python -m ipykernel install --user --name py39 附
学到老
2022/06/29
8360
jupyter notebook中使用新环境
jupyter notebook anaconda python2与python3 共用 [change kernel]
问题背景 在试图运行cs231n的.ipynb文件时,报错,发现它的支持类库都是用python2写的。于是就需要我将jupyter notebook的运行环境改为python2 解决步骤1:创建并激活python2环境,安装ipykernel Or using conda, create a Python 2 environment: conda create -n ipykernel_py2 python=2 ipykernel source activate ipykernel_py2
平凡的学生族
2019/05/25
6240
[ 机器学习 ] 关于Jupyter Notebook中pytorch模块import失败的问题
发现Miniconda(虚拟环境均适用)中安装的pytorch在Jupyter里面import失败
Hz_Sonne
2023/02/28
1.4K0
[ 机器学习 ] 关于Jupyter Notebook中pytorch模块import失败的问题
jupyter notebook 远程连接调试实录
最近使用了一下jupyter notebook搭配GPU服务器这套搭配,顿时打开了一个新天地,记录一下配置过程。
Python中文社区
2018/07/26
2.1K0
如何使用虚拟环境和Jupyter Notebook
本文讲解如何使用Python虚拟环境(venv)和Jupyter Notebook,介绍它们是什么、为什么、何时以及如何使用它们。
fanjy
2021/12/11
3.9K0
如何使用虚拟环境和Jupyter Notebook
点击加载更多

相似问题

运行带有Python3.10的单元格需要安装ipykernel

313

错误: ipykernel需要Python版本3.4或更高版本

21

运行具有Python3.9.5 64位的单元格需要安装ipykernel或需要更新

13

在“运行带有python 3.11的单元格需要ipykernel包”(在visio代码中)之后,"pip安装ipykernel升级“不起作用。

1212

anaconda环境与ipykernel安装顺序

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文