我知道这有点复杂,但使用这种情况对我有很多好处,
我正在开发一个WordPress项目,需要验证用户的许可证,所以我制作了一个AJAX表单,其中包含用户所需的字段,不幸的是,验证API需要一个密钥(属于我,不能包含在客户的项目中) )所以我创建了一个外部WordPress网站(我的网站上的子文件夹)并开发了两个小的[插件&主题]
- 在客户端
我使用WordPress功能(wp_safe_remote_get)准备用户敏感数据发送到我的网站......
$request_url = 'HTTPS://MY_WEBSITE/verify?api=XXX&some=XXX&some=XXX';
$response = wp_safe_remote_get(
$request_url,
array(
'timeout' => 300
)
);
- 在我的网站上
主题有[3个文件:style.css,functions.php和verify.php],而verify.php有这一行[ do_action('xxx')]。
插件在构造函数中有[add_action('xxx')]来执行验证过程,当然我在这里包含了我的秘密密钥..
收集$ _GET params并验证然后使用[print_r]返回一个包含结果的数组,以便最终结果完全来自浏览器Inspect Element
BODY_TAG>
阵列( [API_RESULT] =>数组('verified'=> true); )
/体>
问题
在客户端我收到了之前的数组但是除了很多包含的脚本和css路径属于我的WordPress网站,所以... ...
感谢您的帮助。
答案 0 :(得分:0)
<强> 1。服务器端
如果您需要将数组发送到客户端,请执行您需要的进程然后打印序列化数组。
<强>的index.php 强>
do_action( 'YOUR_ACTION_NAME', 'VAR_1', 'VAR_2' );
<强> class_processes.php 强>
function __construct() {
add_action( 'YOUR_ACTION_NAME', array( &$this, '__Trigger_User_Action' ), 10, 2 );
}
public function __Trigger_User_Action( $seller_name = '', $token_type ) {
$user_final_data = array();
// Do Some
die( serialize( $user_final_data ) );
}
<强> 2。客户端
$request_url = 'https://DOMAIN.XXX/user_processes?user_name=XXX&code=XXX';
$response = wp_safe_remote_get(
$request_url,
array(
'timeout' => 300
)
);
if( ! is_wp_error( $response ) ) {
$body_data = wp_remote_retrieve_body( $response );
if( ! is_wp_error( $body_data ) ) {
$user_server_data = @unserialize( $body_data );
}
}
现在 $ user_server_data 包含您通过服务器在[打印]功能中传递的数组。