我正在建立一个用户可以发送或转账的在线商店。这个过程就像购买正常产品的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中的另一个工具或功能,告诉我什么时候订单更改,这样我可以使所有过程在顶部栏中显示徽章?
答案 0 :(得分:0)
请使用基本身份验证进行更新或创建任何资源。
在身份验证中,您必须传递用户名和密码,然后才能更新数据并创建资源。
但是,你很困惑,请随时在这里发表评论...