WooCommerce会话返回空白

时间:2019-05-18 09:25:37

标签: php wordpress session woocommerce mobile-application

我正在从现有的WooCommerce商店开发移动应用程序。我添加了自定义API,以通过用户会话维护所有内容。我不知道如何在WooCommerce上管理会话。但是,当我从移动应用程序调用{​​{1}}方法时,它返回空白字符串,而当我调用相同的API时,它从邮递员中返回正确的会话字符串。

我的主要目的是将产品添加到购物车,并从购物车中检索特定用户会话。通过使用自定义API,我可以按照用户会话执行所有操作。通过登录会话将产品添加到当前登录的用户购物车中。但是从移动应用程序中,我无法通过其会话将产品添加到特定用户的购物车中。我从移动应用程序收到针对自定义添加到购物车API的正确响应,但无法定义要向哪个用户的购物车添加产品。同样,在将产品添加到购物车后,我调用get cart items API,该API也返回0个项目,这表示未在其中添加产品。所有这些API在Postman上都能正常工作。

要弄清楚这个问题,我尝试在登录API中调用wp_get_session_token()方法。从Postman调用此方法时,此方法返回正确的会话ID。但是,当我从移动应用程序调用此函数时,它仅返回空白字符串。

在我看来,问题出在移动应用程序的会话上,但我不知道如何从移动应用程序到WooCommerce商店进行管理。

这是我的登录API,我现在返回会话ID进行调试:

wp_get_session_token()
从移动应用调用

write_log时,会话的条目也为空白。

添加到购物车的代码:

function register_api_hooks() {

    register_rest_route(
        'custom-plugin', '/login/',
        array(
            'methods'  => ['GET'],
            'callback' => 'login',
        )
    );

    function login($request) {
        $creds = array();
        $creds['user_login'] = $request["username"];
        $creds['user_password'] =  $request["password"];
        $creds['remember'] = true;
        $user = wp_signon( $creds, false );

        $session = (object) wp_get_session_token();

        write_log($user);
        write_log($session);
        return $session;

       // return $user;
    }
}

请让我知道我要去哪里错了,或者我还必须执行其他什么实现。

编辑

这是我在React Native Mobile App中使用的代码:

add_action( 'rest_api_init', 'register_cart_hooks' );
// API custom endpoints for WP-REST API
function register_cart_hooks() {

    register_rest_route(
        'custom-plugin', '/addToCart/',
        array(
            'methods'  => ['GET'],
            'callback' => 'addToCart',
        )
    );

    function addToCart($request) {

        global $woocommerce;

     $woocommerce>cart>add_to_cart($request["product_id"],$request["quantity"]);

        return "Success...";

    }
}

0 个答案:

没有答案