它是正确的把wordpress php短代码钩子在一个if语句中,if语句是一个post方法的响应?



这是我计划实现的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获得响应,并在你的前端显示它,你可以把它保存在一个瞬态,而不是每次表单运行时生成一个短代码,你可以在这里阅读更多关于瞬态的内容

相关内容

最新更新