php - 在 Woocommerce 的前端仅显示当前用户的产品

标签 php wordpress woocommerce product author

我需要在前端仅显示当前用户的产品,即对于登录的用户来说,他/她应该只能在网站上查看自己的产品。我尝试了下面的代码,但这限制了对当前用户未创建的所有帖子和页面的访问。我只需要限制 woocommerce 产品。

function shapeSpace_set_only_author($query) {
    global $current_user;
    $query->set('author', $current_user->ID);
}
add_action('pre_get_posts', 'shapeSpace_set_only_author');

最佳答案

您可以使用专用 woocommerce_product_query 操作 Hook 将显示的产品限制为:

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 文件中。

经过测试并有效

关于php - 在 Woocommerce 的前端仅显示当前用户的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48967535/

相关文章:

javascript - 根据链接 url 禁用悬停在图像上

wordpress - 如何本地化联系表 7 中的字段标签

wordpress - 使用 WP 插件创建表格

php - 从购物车内容获取帖子 ID

php - <a> 标签上的 "download"属性在 IE、Safari 或 Opera 上不起作用

php MySql 连接表,Table.A 名称匹配 Table.B 列名称

php - Wordpress:将多站点从服务器移动到本地主机

wordpress - 与父级一起显示 WooCommerce 产品子类别

php - 更改在 Woocommerce 中注册时显示的隐私政策文本

php - 通过网站将Excel表格数据上传到SQL数据库