代码之家  ›  专栏  ›  技术社区  ›  Peter Verschuere

Woocommerce Widget产品订单(按标题)

  •  2
  • Peter Verschuere  · 技术社区  · 7 年前

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

    我能够在中的两个部分中添加标题排序选项

    '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 回复  |  直到 7 年前
        1
  •  0
  •   LoicTheAztec    7 年前


    开发者禁止使用
    .

    第一次不方便 (正如你们已经知道的):当插件更新时,你们会失去你们的更改。

    没有人覆盖核心文件 因此,请删除所有更改或取回原始文件。

    这就是为什么 actions and filters exist

    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;
    }
    

    这应该适合你。

    然后你可以 add some conditions


    官方文件: WooCommerce Action and Filter Hook Reference