Pass CF7 form data to plugin

时间:2018-07-13 作者:Adrian

我想知道是否可以将CF7表单提交数据发送到插件,以使用API处理付款。

工作流程如下:,

用户在前端填写表单(CF7表单)->在邮件发送之前提交表单-->将数据传递给插件(插件A)->插件A获取数据并处理付款(使用提交的付款信息)->将数据返回给函数。php-->将返回数据提交给另一个插件(插件B)-->插件B然后将数据存储在数据库-->返回true-->发送邮件(通过CF7)

我看过挂钩,但我不确定它们是否以这种方式工作。

我已经构建了该插件,以便它与支付网关协同工作,但是我无法找到一种方法来将CF7表单提交的数据真正传递给该插件。

更多信息--

我使用OOP方法构建了插件。

1 个回复
最合适的回答,由SO网友:Andrea Somovigo 整理而成

完整的答案会有点复杂,因为应该深入分析“插件A”和“插件B”,所以请检查可用的挂钩和过滤器,但如果我知道您编写了自己的插件,那么您可以完全控制它。也就是说,从CF7获取提交数据的起点如下:

add_action("wpcf7_submit", "Stack_308450_forward_cf7", 10, 2);

function Stack_308450_forward_cf7($form, $result) {
    // var_dump($submission->status);
    $submission = WPCF7_Submission::get_instance();
    if ($result["status"] == "mail_sent") {
        $posted_data = $submission->get_posted_data();
        Stack_308450_wpcf7_posted_data($posted_data);
    }
};
function Stack_308450_wpcf7_posted_data($posted_data){
    //do something here
}
我个人在CF7提交上实现了一些功能:在这种情况下,我们正在处理邮件发送后的数据,因此如果您找到了更合适的挂钩,如“wpcf7\\u before\\u send\\u mail”,您应该标记自己:

function action_wpcf7_before_send_mail( $contact_form ) { 
  // var_dump($contact_form);
};

add_action( \'wpcf7_before_send_mail\', \'action_wpcf7_before_send_mail\', 10, 1 ); 
还应考虑与提交验证相关的问题,这些问题也涉及此过程。

下面是List of available CF7 hooks»

结束

相关推荐

主干客户端的REST API随机数无效

每当我尝试发出请求时,我都会使用内置主干客户端,它会给我带来以下错误:{\"code\":\"rest_cookie_invalid_nonce\",\"message\":\"Cookie nonce is invalid\",\"data\":{\"status\":403}}我读了Rest API Handbook - Authentication, 从我所学到的,我不需要做任何手动设置。正在使用的插件:Askimet Anti-spamWP Fastest CacheiThemesWP Banni