返回

仅显示 WooCommerce 产品列表中的待处理产品,轻松管理库存!

php

仅为商店管理员在 WooCommerce 产品列表中显示待处理产品

简介

WooCommerce 允许商店管理员查看所有产品,无论其状态如何。对于拥有大量待处理或草稿产品的大型商店,这可能会造成混乱和不便。本文将指导商店管理员仅在产品列表中查看待处理产品。

步骤 1:使用 CSS 隐藏非待处理产品

要隐藏非待处理产品,请将以下代码添加到网站的主题样式表或自定义 CSS 文件中:

.current,
.draft,
.publish,
.search-box,
.byorder,
.tablenav.top,
.page-title-action {
display: none;
    visibility:hidden;
}

此代码将隐藏草稿、已发布、搜索框、排序选项、顶部导航和页面标题操作。

步骤 2:排除其他用户的待处理产品(可选)

如果您希望商店管理员只能看到自己的待处理产品,则需要添加以下代码:

function exclude_other_author_products($query) {
  $current_user = wp_get_current_user();
  if (in_array('administrator', $current_user->shop_manager)) {
    return $query;
  }

  if ($query->query['post_type'] == 'product' && $query->is_main_query()) {
    $query->set('author__in', $current_user->ID);
  }
}

add_action('pre_get_posts', 'exclude_other_author_products');

此代码将检查当前登录的用户是否为管理员或商店管理员。如果是,则返回查询。对于所有其他用户,如果查询正在请求产品并它是主查询,则它将设置查询以仅包括当前用户的待处理产品。

故障排除

如果您在实现代码时遇到问题,请检查是否存在以下错误:

  • 确保 CSS 代码已正确添加到您的主题样式表或自定义 CSS 文件中。
  • 确保 PHP 代码已正确添加到您的主题 functions.php 文件中。
  • 清除浏览器缓存并重新加载产品列表页面。

结论

通过实施本文中概述的步骤,商店管理员可以仅在 WooCommerce 产品列表中查看待处理产品。这将简化库存管理并提高效率。

常见问题解答

1. 为什么我仍然可以看到非待处理产品?

确保 CSS 和 PHP 代码已正确添加到您的网站。此外,清除浏览器缓存并重新加载产品列表页面。

2. 为什么我无法查看其他用户的待处理产品?

仅当您实施 PHP 代码(步骤 2)时,您才能排除其他用户的待处理产品。

3. 如何仅查看特定的产品类别?

可以使用 WordPress 过滤器 pre_get_posts 仅查看特定类别的待处理产品。有关详细信息,请参阅 WordPress 文档。

4. 这是否会影响其他用户?

此代码仅会影响当前登录的用户。其他用户将继续以常规方式查看产品列表。

5. 我可以将此代码与其他自定义 WooCommerce 代码一起使用吗?

在大多数情况下,可以将此代码与其他自定义 WooCommerce 代码一起使用。但是,请务必测试您的更改以确保它们按预期工作。