woocommerce 在前端按库存和缺货对产品进行排序

2024-06-25

我想首先在产品类别中显示库存产品,或者如果可能的话在任何地方显示,然后我也想在 Woocommerce 中显示缺货产品

其实有很多产品没有数量但是有库存,所以需要检查库存状态,但我更喜欢先有更多的数量

在这种情况下,如何强制当前排序? 非常感谢


使用此代码:

<?php

/**
 * Order product collections by stock status, instock products first.
 */
class iWC_Orderby_Stock_Status
{

    public function __construct()
    {
        // Check if WooCommerce is active
        if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) {
            add_filter('posts_clauses', array($this, 'order_by_stock_status'), 2000, 2);
        }
    }

    public function order_by_stock_status($posts_clauses, $wp_query)
    {
        global $wpdb;
        // only change query on WooCommerce loops
        if (false === is_admin() && $wp_query->is_post_type_archive('product')) {
            $posts_clauses['join'] .= " INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) ";
            $posts_clauses['orderby'] = " istockstatus.meta_value ASC, " . $posts_clauses['orderby'];
            $posts_clauses['where'] = " AND istockstatus.meta_key = '_stock_status' AND istockstatus.meta_value <> '' " . $posts_clauses['where'];
        }
        return $posts_clauses;
    }
}

new iWC_Orderby_Stock_Status;

?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

woocommerce 在前端按库存和缺货对产品进行排序 的相关文章

随机推荐

  • 如何将画布转换为图像以上传到烧瓶?

    好吧 我正在尝试将调整大小的画布图像作为文件上传到 Flask 首先我尝试使用canvas toDataURL 将其转换为 base64 字符串 然后尝试使用以下命令将其作为图像上传formdata使用AJAX 就没那么幸运了 然后我尝试使
  • Castle.Windsor可以自动解析具体类型吗

    我们正在评估 C 项目的 IoC 容器 Unity 和 Castle Windsor 都表现出色 我喜欢 Unity 的一件事 NInject 和 StructureMap 也这样做 是 显而易见如何构造它们的类型不必向 IoC 容器注册
  • 使 DateTime::createFromFormat() 返回子类而不是父类

    我正在延长DateTime添加一些有用的方法和常量 使用时new创建一个新对象一切都很好 但是使用静态方法时createFromFormat它总是返回原来的DateTime对象 当然没有任何子方法可用 我正在使用以下代码来规避此问题 这是最
  • 以编程方式将样式应用于 MaterialButton

    我正在尝试创建一个扩展自的自定义视图MaterialButton并在代码中应用样式 这样我就不需要在 xml 中执行它 class CustomRedButton JvmOverloads constructor context Conte
  • 用于替换格式但保留单元格值的 VBA:部分解决

    我正在尝试组合 VBA 来搜索特定的单元格格式 然后更改该单元格格式 我从这篇文章中得到了灵感 Excel VBA 值替换后仍保持字符串格式 https stackoverflow com questions 25825136 excel
  • 当 SQL 包含变量时在 pgAdmin 中调试 SQL

    在 SQL Server 中 我可以从应用程序中复制 sql 代码并将其粘贴到 SSMS 中 声明并分配 sql 中存在的变量并运行 是的 很棒的调试场景 例如 请注意 我很生疏 语法可能不正确 declare x as varchar 1
  • 在 PowerShell 中提示用户输入

    我想提示用户进行一系列输入 包括密码和文件名 我有一个使用的例子host ui prompt 这似乎很合理 但我无法理解回报 有没有更好的方法在 PowerShell 中获取用户输入 Read Host http technet micro
  • HTML 中的字符限制

    如何对 HTML 中的文本输入施加字符限制 主要有2个解决方案 纯 HTML 的
  • 您可以通过 JavaScript 获取用户本地 LAN IP 地址吗?

    我知道对这个问题的最初反应是 不 和 它无法完成 和 你不应该需要它 你做错了 我想做的是获取用户的 LAN IP 地址 并将其显示在网页上 为什么 因为这就是我正在开发的页面的全部内容 显示尽可能多的关于您 访问者 的信息 https w
  • Pandas DataFrame 到嵌套 JSON 而不更改数据结构

    I have pandas DataFrame import pandas as pd import json df pd DataFrame 2016 04 30T20 02 25 693Z vmPowerOn vmName 2016 0
  • 如何将自定义 ISpecimenBuilders 与 OmitOnRecursionBehavior 结合使用?

    我如何使用自定义ISpecimenBuilder实例以及OmitOnRecursionBehavior我想将其全局应用于所有夹具创建的对象 我正在使用一个带有难闻的循环引用的 EF Code First 模型 就这个问题而言 无法消除该循环
  • Wpf ScrollViewer 滚动量

    是否可以更改 WPF ScrollViewer 滚动的量 我只是想知道是否可以更改滚动查看器 以便在使用鼠标滚轮或滚动查看器箭头时可以更改增量滚动量 简短的答案是 如果不编写一些自定义滚动代码 就无法做到这一点 但不要让这吓到你 这并不那么
  • 在 UI 更新或触摸事件之前动画不会开始

    我有一个奇怪的问题AlphaAnimation 它应该在以下情况下重复运行 AsyncTask调用处理程序 但是 第一次调用处理程序时Activity 除非我触摸屏幕或更新 UI 例如按手机的菜单按钮 否则动画不会启动 奇怪的是 一旦动画至
  • 更改 IIS URL 重写规则中的查询字符串值

    到目前为止我已经尝试了多种组合但没有运气 我有一个如下所示的网址 https teams company com Search pages results aspx url https teams2017 company com sites
  • Zend Framework 2 - 整数表单验证

    我有以下问题 我 根据教程 编写了一个表单验证 文本字段工作得很好 但整数字段的行为很奇怪 这是我的验证器 inputFilter gt add factory gt createInput array name gt zip requir
  • 将 IMPORTXML Xpath 查询格式化为 Google 表格的可读数据

    我正在将 XML 数据导入到具有以下结构的 google 工作表中 编辑 网址 https sonicstate com news tools revive stats client camp 3785 xml https sonicsta
  • 从Lua到C的Lua嵌套表

    我不幸未能将嵌套 Lua 表转换为 C json 对象 我正在使用 LuaTableToJson 请参阅后面的代码 其中 index 是要检索的参数索引 PopOneArg 是根据值的类型处理值的例程 当有嵌套表时 我想递归地调用 LuaT
  • Android OPEN 微调器,单击按钮即可

    我已经实现了按钮 单击并打开带有微调器的对话框 如下所述here http www dotnetexpertsforum com dialog box with spinner view in android t1485 html 然而 这
  • 如何编写一个简单的版本控制系统?

    我想做一个简单的版本控制系统 但我不知道如何构建我的数据和代码 这是一个简短的例子 用户登录 User has two options when uploading a file 提交新文件 提交文件的新版本 用户应该能够看到树 版本不同
  • woocommerce 在前端按库存和缺货对产品进行排序

    我想首先在产品类别中显示库存产品 或者如果可能的话在任何地方显示 然后我也想在 Woocommerce 中显示缺货产品 其实有很多产品没有数量但是有库存 所以需要检查库存状态 但我更喜欢先有更多的数量 在这种情况下 如何强制当前排序 非常感