当前位置: 首页 > 知识库问答 >
问题:

WooCommerce小部件产品按标题订购

华佐
2023-03-14

我最初的目标是能够在侧边栏中按标题排序显示Woocommerce产品。目前,此小部件中唯一的排序选项是日期、价格、随机和销售。

我能够在wc类小部件产品的两个部分中添加标题排序选项。php:

'orderby' => array(
                'type'  => 'select',
                'std'   => 'date',
                'label' => __( 'Order by', 'woocommerce' ),
                'options' => array(
                    'title'   => __( 'Title', 'woocommerce' ),
                    'date'   => __( 'Date', 'woocommerce' ),
                    'price'  => __( 'Price', 'woocommerce' ),
                    'rand'   => __( 'Random', 'woocommerce' ),
                    'sales'  => __( 'Sales', 'woocommerce' ),
                ),

在这里:

switch ( $orderby ) {
    case 'title' :
        $query_args['orderby']  = 'title';
        break;
    case 'price' :
        $query_args['meta_key'] = '_price';
        $query_args['orderby']  = 'meta_value_num';
        break;
    case 'rand' :
        $query_args['orderby']  = 'rand';
        break;
    case 'sales' :
        $query_args['meta_key'] = 'total_sales';
        $query_args['orderby']  = 'meta_value_num';
        break;
    default :
        $query_args['orderby']  = 'date';
}

此自定义工作正常,但:

我的问题:我应该在哪里保存这个定制的“class wc widget products.php”文件,以防止它在下一次更新时被覆盖<或者。。。有没有更优雅的方法来实现这一点?非常感谢。

共有1个答案

乐正涵忍
2023-03-14

好心的是,做你所做的事情确实是要避免的
这对开发者是禁止的(所以我不得不重命名你问题的标题)。

第一个不方便(正如你已经知道的):当你的插件更新松动你的变化。

没人能覆盖核心文件...所以请删除您所有的更改或获得原始文件。

这就是为什么操作和过滤器存在于整个代码中

通过标题强制orderby的正确方法可以这样做:

add_filter( 'woocommerce_products_widget_query_args','title_orderby_products_widget_query_arg', 10, 1 );
function title_orderby_products_widget_query_arg( $query_args ) {
    // set 'title' for orderby 
    $query_args['orderby'] = 'title';

    return $query_args;
}

代码进入函数。活动子主题(或主题)或任何插件文件中的php文件

这应该对你有用。

然后你可以添加一些条件来更好地针对这个...

官方文档:WooCommerce操作和过滤器挂钩参考

 类似资料:
  • 我第一次使用woocommerce(wordpress)。 我试图在树形中显示所有产品类别及其各自的子类别,但我似乎不能像在后端使用拖放方式订购它们那样订购它们。 WP get_terms()只允许按id、名称、计数、slug和none排序。 我使用的代码是:

  • 这有点奇怪,但是我很难找到如何做到这一点的答案: 我试图创建一个自定义查询,获取WooCommerce订单中包含的所有产品(及其元)。 例如,假设我有这些订单悬而未决: 产品1 产品2 产品3 产品4 产品5 产品6 我的目标是根据这些已订购的产品创建一个列表,该列表由产品的元数据进行订购。大概是这样的: 产品1 产品3 产品4 但同样,这些只是订单中的产品(包括其数量)。 我面临的问题是,数据库

  • 我使用Woocommerce插件在wordpress中开发了购物车。我需要按产品价格在购物车订单中显示产品,请帮助我做到这一点 谢啦

  • 我想按价格、日期和发布年份等项目对产品进行排序。在发布年份的情况下,我做了一个分类法=发布年份 但它是不工作.我怎么能改变代码可能排序按发布年份顺序?

  • 我在我的Wordpress网站上使用WooCommerce作为目录(即禁用购物车),我想根据产品是否具有特定标签将小部件添加到单个产品页面侧边栏。我尝试使用“小部件逻辑”插件和条件标签,但即使我禁用了所有其他插件,我也无法让它在网站的任何地方工作(即包括带标签的帖子和主侧边栏-所以不仅仅是带标签的产品WooCommerce)。 然后我添加了“PHP代码小部件”,并在其中添加了以下代码: 我已经用标

  • 我正在边栏和页脚小部件区域使用woocommerce产品类别小部件。 我有两个家长类别。我想这些被显示,但不是可点击的链接。 你可以在这里看到这一页http://www.terrykirkwood.co.uk/w 有人能建议添加什么css来阻止这些链接被点击吗? 谢谢 以下是第一次出现的代码: