这是我计划实现的WordPress php代码。该代码是一个插件,发布表单数据到外部Api。该计划是我希望成功的响应显示在WordPress前端使用短代码。目前我没有一个外部api来测试它,但我也不是如果这是正确的方式来得到我想要的是吗?提前谢谢。
add_action('wpforms_process_complete', 'wpairform_api_sender', 10, 4);
function wpairform_api_sender($fields, $entry, $form_data, $entry_id)
{
//if form ID is 1
if ($form_data['id'] == 10240) {
$api_url = 'https://hook.integromat.com/tzeseygrctyxjbsxfp7psbbkt40j8tc2';
$body = array(
'text' => $fields['1']['value'],
);
$response = wp_remote_post($api_url, array('body' => $body));
if( is_wp_error( $response )){
$error_message = $response->get_error_message();
return "Something went wrong: $error_message";
}
if( 200 !== wp_remote_retrieve_response_code( $response )){
return;
}
if (200 === wp_remote_retrieve_response_code( $response )) {
//$response_body = wp_remote_retrieve_body( $response );
//var_dump($response_body->message);
function github_issues_func($atts)
{
return wp_remote_retrieve_body($response);
}
add_shortcode("github_issues", "github_issues_func");
}
}
}
如果你想做的只是从API获得响应,并在你的前端显示它,你可以把它保存在一个瞬态,而不是每次表单运行时生成一个短代码,你可以在这里阅读更多关于瞬态的内容