为webservice创建新插件

时间:2016-02-23 07:58:33

标签: android json wordpress plugins

我编写此代码以连接到数据库,进行一些查询并通过json web api发送它们。

我想创建一个像WEB API一样工作的插件。然后将其上传到互联网上的WP模块,人们可以在他们的网站上安装它们来连接我的Android应用程序。任何地方。

这是我的php代码(包括db_connect并发送json并回复我的Android应用程序)

<?php
    if(!isset($_REQUEST ['id']))
        echo "id is not set";
    if (isset ( $_REQUEST ['id'] )) {
        $id = $_REQUEST ['id'];
        $response = array ();
        mysql_connect('localhost','db_admin','password') or die(mysql_error());
        mysql_select_db('db_name') or die(mysql_error());
        $sql= "select * from employee";
        $run=mysql_query($sql);
        if (mysql_num_rows ($run) > 0) {
            while ($row=  mysql_fetch_array($run)){
                $product = array ();
                $product ["id"] = $row [0];
                $product ["name"] = $row [1];
                $product ["salary"] = $row [2];
                $response [] = $product;
            }
            echo  json_encode ( $response );
        }
    }
?>

我的经理要我不要使用默认的Woocommerse WORDPRESS API,所以我必须创建新的插件。并想知道如何将其转换为标准模块?

有可能吗?

1 个答案:

答案 0 :(得分:0)

如果我是你,我将创建如下: 首先关闭会为请求创建处理程序,通过ajax(我不确定android是否支持这种方式)像这样;

function get_some_information(){
    $user_id = $_REQUEST['id'];
    if(!isset($user_id) || empty($user_id)){
       return json_encode([
            'success' => false,
            'message' => 'Empty Request'
       ]);
    }
    $data = get_info_from_data($user_id);
    if(!empty($data)){
        echo json_encode($data);
        exit;

    }else{
        echo json_encode([
            'success' => false,
            'message' => 'Error while processing data'
        ]);
        exit;
    }

}
add_action('wp_ajax_get_some_information', 'get_some_information'); //for auth users
add_action( 'wp_ajax_nopriv_get_some_information', '_get_some_information' ); //for the rest

注意:有exit;总是需要终止应用程序才能获取json,否则输出将为0 现在,我们有了一个数据和验证的访问点;它看起来更干净。

function get_some_information($id){
  $result = [];
  // do all things and added to the array

  return $result;
}