如何在WordPress(WooCommerce)上将基于位置的订单分配给特定用户?

时间:2018-09-28 10:03:50

标签: asp.net-mvc wordpress woocommerce-rest-api

我有一个WooCommerce商店,该商店通过Woo API连接到ASP.NET MVC。所有订单处理都是通过ASP.NET网站完成的,而我使用Woo仅用于管理订阅。

大约有几百个订阅/订单,我在考虑是否有一种基于地址/城市/社区等对订单(也包括所有其他数据)进行分组的方法。

我尝试了一些插件,包括用于向每个用户分配公司的Advanced Custom Fields插件(公司名称等附加字段)和用于添加分配给用户(基于公司的组用户)的组的User Groups插件。我可以将公司分配给用户,然后在Woo Orders页面上选择一个公司以过滤与该公司相关的所有订单。

但是我真正需要的是一种在用户登录时执行此操作的方法,因此,当管理员用户A登录时,他们将仅看到各自A组中的订单/订阅/客户。可以通过插件完成此操作,还是我需要添加某种自定义方式,将其登录到Admin组中,然后使用该值仅获取该组的数据?请告知任何可能的选择。

2 个答案:

答案 0 :(得分:0)

我认为您必须向用户表添加三个字段,其中将包含地址,城市,社区。或者,如果您难以使用较大区域的标签。

由于订单是通过客户ID与客户建立联系的,因此您可以在数据库中创建一个视图以显示订单以及位置信息,以创建一个名为page-myorders.php的php文件模板。和标题为myorders的页面,然后可以检索您要求的信息。该页面将使用视图查询数据库。如果您使用标签,则需要将标签作为参数传递给wp_query:

显示没有两个标签ID 37和47中的任何一个的帖子:

$query = new WP_Query( array( 'tag__not_in' => array( 37, 47 ) ) );

请参阅https://codex.wordpress.org/Class_Reference/WP_Query

快乐编码

答案 1 :(得分:0)

根据我的要求,目标是显示基于特定位置的订单(针对与特定区域相关的服务(例如位置A)放置的订单)。现在,我需要一个管理员用户A来查看属于位置A的客户的订单/订阅。我确实希望阻止管理员用户A查看属于位置B的客户下的订单/订购。管理员用户B也是这样。

因此,我将以下自定义项添加到了活动主题的functions.php中,并解决了我的问题。

ImportError: cannot import name 'PowerTransformer'

我希望这将有助于在WordPress woocommerce中遇到相同问题的人。