订单状态更改时的Woocommerce通知

时间:2018-03-22 16:28:36

标签: php html wordpress woocommerce woocommerce-rest-api

我正在建立一个用户可以发送或转账的在线商店。这个过程就像购买正常产品的woocommerce插件一样,这一切都很好。当任何管理员设置订单完成或更改订单状态时,我正在尝试在页面顶部栏中发出通知。这意味着任何订单状态,“暂停”“处理”“已取消”。所以我试图在用户配置文件选项卡中显示一个小徽章或类似的东西,这对我来说有点棘手。

我真的不知道那种深刻的woocommerce,所以我不知道我可以用什么过程或工具来实现这个目标。

我的解决方案是在订单状态发生变化时使用woocommerce API Rest来使用该流程。所以我设置了所有的库和必要的代码:

require_once( 'lib/woocommerce-api.php' );

$options = array(
'debug'           => true,
'return_as_array' => false,
'validate_url'    => false,
'timeout'         => 30,
'ssl_verify'      => false,
);

   try {

   $client = new WC_API_Client( 'https://mypage.com/', $consumer_key, $consumer_secret, $options );

 } catch ( WC_API_Client_Exception $e ) {

echo $e->getMessage() . PHP_EOL;
echo $e->getCode() . PHP_EOL;

    if ( $e instanceof WC_API_Client_HTTP_Exception ) {

    print_r( $e->get_request() );

    print_r( $e->get_response() );
    }
}

之后,我调用示例中给出的任何过程来测试一切是否正常工作:

print_r( $client->orders->update_status( $order_id, 'pending' ) );

但是,当我转到我放置任何此代码的页面时,它会出现错误“无法加载资源:服务器响应状态为500(内部服务器错误)”并且当我尝试添加$ consumer_key时或$ consumer_secret页面说这个

{"code":"woocommerce_rest_cannot_view","message":"Sorry, you cannot list resources.","data":{"status":401}}

文档说明如何解决这个问题,但对我不起作用。

我想知道我错过了什么或者我做错了什么? 有没有其他方法可以使这个更容易或我可以使用的woocommerce中的另一个工具或功能,告诉我什么时候订单更改,这样我可以使所有过程在顶部栏中显示徽章?

1 个答案:

答案 0 :(得分:0)

请使用基本身份验证进行更新或创建任何资源。

在身份验证中,您必须传递用户名和密码,然后才能更新数据并创建资源。

但是,你很困惑,请随时在这里发表评论...