为了账号安全,请及时绑定邮箱和手机立即绑定

如何将WooCommerce产品排序手动设置为“受欢迎程度”?

如何将WooCommerce产品排序手动设置为“受欢迎程度”?

PHP
动漫人物 2021-04-02 15:15:45
在WooCommerce中,我使用以下代码将特定产品类别归档页面的默认排序设置为按日期排序:add_filter('woocommerce_default_catalog_orderby', 'custom_catalog_ordering_args', 20, 1);function custom_catalog_ordering_args($sortby){    $product_category = 'specials'; // <== HERE define your product category slug     // Only for defined product category archive page    if (! is_product_category($product_category)) {        return;    }    return 'date';}但是,这会影响我的总体默认排序设置“按受欢迎程度”,因为当我在商店页面上查看时,它的排序不正确,但是如果我手动将其更改为按其他顺序排序,然后又将其正确排序。如何解决此问题,或者如何手动设置商店的其余部分以通过php用Popularity进行订购,因为这可能会解决问题?
查看完整描述

1 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

随着过滤钩子,你需要总是返回第一个函数参数变量,而不仅仅是return 单纯没有价值或默认函数变量参数...所以在你的代码:


add_filter('woocommerce_default_catalog_orderby', 'custom_catalog_ordering_args', 10, 1);

function custom_catalog_ordering_args( $orderby )

{

    $product_category = 'specials'; // <== HERE define your product category slug 


    // For all other archives pages

    if ( ! is_product_category($product_category)) {

        return $orderby; // <====  <====  <====  <====  <====  HERE

    }

    // For the defined product category archive page

    return 'date'; 

}

或者这样更好:


add_filter('woocommerce_default_catalog_orderby', 'custom_catalog_ordering_args', 10, 1);

function custom_catalog_ordering_args( $orderby ) {

    // HERE define your product category slug

    $product_category = 'specials';  


    // Only for the defined product category archive page

    if ( is_product_category($product_category)) {

        $orderby = 'date'; 

    }

    return $orderby; 

}

现在应该可以工作了。


查看完整回答
反对 回复 2021-04-23
  • 1 回答
  • 0 关注
  • 381 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信