我只需要在前端显示当前用户的产品,即登录用户,他/她应该只能在整个网站上查看自己的产品。我尝试了下面的代码,但这限制了对当前用户没有创建的所有帖子和页面的访问权限。而且我只需要限制woocommerce产品。
UPDATE ProductT
INNER JOIN MaterialT ON MaterialT.ProductID = ProductT.ProductID
SET ProductT.Stock = ProductT.Stock - MaterialT.Quantity
WHERE MaterialT.WorkOrderID = [OrderID];
答案 0 :(得分:1)
几乎在那里,你只需要指定你只想改变产品的查询。
add_action( 'pre_get_posts', 'modify_query_show_current_user_products' );
function modify_query_show_current_user_products( $query ) {
global $current_user;
if( ! is_admin() && $query->is_main_query() && isset( $query->query_vars['wc_query'] ) && $query->query_vars['wc_query'] == 'product_query' ) {
$query->set('author', $current_user->ID);
}
}
答案 1 :(得分:1)
您可以使用专用 woocommerce_product_query
操作挂钩来限制所显示的产品:
add_action( 'woocommerce_product_query', 'shapeSpace_set_only_author', 20, 2 );
function shapeSpace_set_only_author ( $q, $query ) {
if( is_admin() ) return;
global $current_user;
$q->set('author', $current_user->ID);
}
代码放在活动子主题(或主题)的function.php文件中。
经过测试和工作