gpt4 book ai didi

php - 使用 PHP Hook 向联系表单 7 提交添加操作

转载 作者:行者123 更新时间:2023-12-01 02:59:21 25 4
gpt4 key购买 nike

我在 WordPress 的 Contact Form 7 插件中实现一些自定义功能时遇到了一些问题。

我想做的事情非常简单。有问题的联系表单是正常的联系查询表单,因此我需要保留通常的功能(邮寄数据)。不过,我在表单上还有一个复选框,允许发件人除了邮寄联系查询之外,还可以选择是否订阅客户的邮件列表。

客户使用 Bronto 进行群发邮件(类似于 CC 或 Mailchimp)。 Bronto 具有“直接添加”功能 ( more info here ),允许您通过嵌入 URL 包含必要参数(电子邮件地址、订阅列表等)的图像来发送参数以将联系人添加到 Bronto 帐户。

我可以使用联系表单参数构造图像网址,没有问题,但实际上发送图像请求是另一回事。我对 PHP 和 JS 都有点不知所措,不知道该选什么类(class)。

目前,我正在使用 CF7 中内置的 wpcf7_before_send_mail php Hook ,这似乎允许我收集表单数据并构建 URL。然而,由于该插件使用 AJAX 并且实际上并没有在表单提交时重定向到另一个页面,因此我似乎无法成功使用任何类型的 php 输出(echo、alert,甚至 error_log),大概是因为服务器不知道什么它应该写入。

在functions.php中:

add_action( 'wpcf7_before_send_mail', 'bronto_contact_add' );
function bronto_contact_add( $cf7 ) {
$emailcf = $cf7->posted_data['email'];
echo $emailcf;
}

这只是一个测试,看看 echo 是否有效 - 它不起作用。相反,表单只是在提交时挂起,并且我永远看到旋转加载 gif。

我需要做的是使用 cf7 对象中的参数构建图像 url(我可以做到这一点),然后以某种方式将该图像请求发送到 Bronto 服务器(这是我感到困惑的部分)。如果这是一个在提交后重定向到另一个 php 页面的普通表单,那么我这样做完全没有问题,但它使用了我不太了解的 AJAX,所以我现在很迷失。

任何人都可以帮助阐明实现这一目标的最佳方法是什么吗?

最佳答案

如果在附加函数后提交挂起,至少您知道它有效果。我对 Contact Forms 7 不太熟悉,但这可能不是回显的正确位置,我的猜测是它挂起是因为您正在写入缓冲区,然后它试图进行重定向(检查您的错误日志)。如果您想查看 $cf7 的内容,更好的方法是:

// first option, using print_r()
error_log(print_r($cf7, true));

// second option, using var_dump() if you need the additional output
ob_start(); // start buffer capture
var_dump($cf7); // dump the values
$contents = ob_get_contents(); // put the buffer into a variable
ob_end_clean(); // end capture
error_log($contents); // log contents of $cf7

$cf7 变量的内容将出现在您的 PHP 错误日志中,它将告诉您如何访问不同的组件。

关于php - 使用 PHP Hook 向联系表单 7 提交添加操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13178416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com