php Woocommerce如何在主页上首先显示可供购买的产品?(在他们“不可用”之后)

anauzrmj  于 2023-02-28  发布在  PHP
关注(0)|答案(1)|浏览(114)

我尝试在functions.php中添加以下代码

class iWC_Orderby_Stock_Status {
public function __construct() {
    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);
    }
}
public function order_by_stock_status($posts_clauses) {
    global $wpdb;   
    if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag())) {
        $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;

它确实有效,但只适用于产品类别页面(每个类别都有自己的商品页面),而且在这些页面上有一个过滤选项供用户使用。在主页上,所有类别都通过小部件“OS Filter products by category”显示,网站页面本身没有过滤,用户可以看到。
我想为主页工程的代码太。一个模板是兰花商店。有插件或代码吗?我不想添加一个视觉过滤器,根据用户可以选择自己的选项,但这样的产品可供购买首先是默认可见的,然后“不可用”。
以下是网站在主页上的外观:“类别名称”“不可用产品”,“可供购买”
“第二类名称”“无货产品”,“可供购买”。

9q78igpj

9q78igpj1#

WooCommerce允许您根据各种标准对产品进行排序,如价格、添加日期或可用性。要在主页上显示可供购买的产品,您可以按照以下步骤操作:
登录WordPress管理面板,转到“产品”部分,点击“所有产品”,找到“排序方式”选项,选择“可用性”,点击“应用”或“过滤器”应用排序,现在可供购买的产品将首先显示在列表中,不可用的产品将稍后显示。
如果您希望此订单成为您主页的默认设置,您可以更改WooCommerce主页设置。要做到这一点,请按照以下步骤操作:
进入WordPress管理面板中的“WooCommerce”部分并点击“设置”。进入“产品”标签并找到“默认排序顺序”选项。选择“辅助功能”作为第一个选项。点击“保存更改”。
按照这些步骤操作后,可供购买的产品将首先显示在主页上,不可用的产品将稍后显示。

相关问题