wordpress - Wordpress/Woocommerce rest api 根据用户角色返回产品价格
问题描述
我正在尝试实现一个连接到 Wordpress 和 Woocommerce 并根据用户角色显示产品价格的应用程序客户端。
这是我的实际观点:
我正在使用一个名为 Elex(免费版)的插件来应用基于角色的定价规则;
激活了rest api keys(api keys中的user字段是管理员);
创建了一个新的用户角色,例如“my_user_role”;
创建了一个角色为“my_user_role”的用户“new_user”;
为管理员 (x%) 和 my_user_role (y%) 创建折扣规则;
从客户端我调用带有 consumer_key 和 consumer_secret 参数的 https 请求:
mydomain/wp-json/wc/v3/products?consumer_key=XXXXXXXXXX...&consumer_secret=YYYYYYY....
在客户端应用程序中,我可以将产品显示为访客用户或登录用户。如果我打电话
mydomain/wp-json/wc/v3/products
作为访客用户,它会向我显示常规价格作为响应,如果我以 new_user 身份登录,它会向我显示管理员规则的价格折扣(这是因为 wordpress rest api 密钥不用作登录功能)!
如果我在添加产品时从 Wordpress 仪表板进行检查,我可以获得 Cookie 和 nonce。因此,如果我以 new_user 身份登录 wordpress 仪表板,我可以获取当前用户的 cookie 和 nonce,我可以从邮递员那里调用
mydomain/wp-json/wc/v3/products
添加
X-WP-Nonce
Cookie
我得到了为 my_user_role 提供的产品价格。
我可以在包含以下内容的个人插件文件中从 wordpress 后端创建 cookie:
register_rest_route("myurl", "/generate_cookie", array("methods" => "POST" , "callback" => "generate_cookies")
在我的 generate_cookies 函数中:
// received username and password parameters
$user = wp_authenticate($username,$password);
$cookie = wp_generate_auth_cookie($user->ID,1209600,"logged_in");
return array("cookie" => $cookie , "cookie_name" => LOGGED_IN_COOKIE, "user" => $this->getUserInfo($user));
我怎样才能得到随机数?或者实现我的目标的最佳方式是什么?
解决方案
推荐阅读
- java - 达到限制后如何清空 SQLITE 中的表?
- angular - Angular createEmbeddedView 没有在正确的索引处渲染视图,而是在最后一个索引处渲染
- android - 避免在片段中多次传递参数
- sql - 查询所有表以检索所有列名和数据类型
- reactjs - 来自 React-Router-Dom 的低级路由器仅导航到新 URL,但不渲染组件
- python - 如何用python处理json中的无效转义序列?
- html - 我们可以在同一个 SVG 中使用两个“use: href”属性吗?
- clojure - 在 Clojure 中修剪 URL 的最后一部分
- rust - 是否可以丢弃解析失败的项目,继续用serde_json解析?
- python - 视觉 API 产品搜索