好的,我正在构建这个成员插件。
插件将用户发送到一个数字支付网站,该网站在操作后将用户发送回带有代码(POST)的wp网站,发送到用户选择的页面(在插件的选项面板上)。插件侦听此帖子,获取代码并wp_remote_get
请求数字支付API,由其通知插件支付是否成功。
我的目标是在网关发回的同一页面上向用户显示付款状态(活动、挂起或取消)。
我的代码是这样的(省略变量):
function wxy_listener(){
if( !isset( $_GET[\'code\'] ) ){
return false;
}
if( !isset( $_GET[\'returnfrom\'] ) || \'ps\' != $_GET[\'returnfrom\'] ){
return false;
}
$code = $_GET[\'code\'];
global $wxy_options;
$psToken = ...;
$psEmail = ...;
$psSandbox = ...;
//URL for the first HTTP POST request
$psUrl = ...;
//If Sandbox is on, we should set different URL...
if ($psSandbox === "1") {
$psToken = ...;
$psEmail = ...;
$psUrl = ...;
}
$user_info = wp_get_current_user();
$user_email = $user_info->user_email;
$response = wp_remote_retrieve_body( wp_remote_get( $psUrl ) );
if( is_wp_error( $response ) ) {
// There was an error
$error_message = $response->get_error_message();
wxyLog($error_message);
return false;
}
$resp_xml = simplexml_load_string($response);
if ($resp_xml === false) {
wxyLog(\'Failed loading RESP_XML\');
return false;
}
$subsc_status = $resp_xml->status;
// HOW TO ECHO THE STATUS AT THIS MOMENT ON THE PAGE, INSIDE THE CONTENT (AFTER OR BEFORE)?
}
add_action(\'init\',\'wxy_listener\');
我可以用the_content
过滤器,但在函数内部?据我所知,我不应该这样做。我确实认为这是一个愚蠢的问题,但是。。。