如何在销售日期前订购“WooCommerce Products Widget”?

时间:2017-04-10 作者:AndreasK

我正在Woocommerce中使用Wordpress,希望在“销售日期”前订购“Woocommerce产品小部件”。默认订单选项为“日期、价格、随机、销售”。

在“class wc widget products.php”第50行中,我发现

        \'orderby\' => array(
            \'type\'  => \'select\',
            \'std\'   => \'date\',
            \'label\' => __( \'Order by\', \'woocommerce\' ),
            \'options\' => array(
                \'date\'   => __( \'Date\', \'woocommerce\' ),
                \'price\'  => __( \'Price\', \'woocommerce\' ),
                \'rand\'   => __( \'Random\', \'woocommerce\' ),
                \'sales\'  => __( \'Sales\', \'woocommerce\' ),
            ),
在这里我可以补充

                \'sales_date\'  => __( \'Sales_Date\', \'woocommerce\' ),
这会在drow下拉菜单中添加选项,但如何将其与销售日期的实际数据连接?在这些下拉条目之后,会出现函数“get\\u product”,该函数的一部分是:

    switch ( $orderby ) {
        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\';
    }
因此,我想我必须添加另一个案例,如:

        case \'sales_date_case\' :
            $query_args[\'meta_key\'] = \'sales_date\';
            $query_args[\'orderby\']  = \'meta_value_num\';
            break;
但我不知道“sales\\u date”是从哪里来的!

1 个回复
最合适的回答,由SO网友:AndreasK 整理而成

这就是解决方案!经过一些搜索,我找到了元键

 case \'sales_date\' :
        $query_args[\'meta_key\'] = \'_sale_price_dates_from\';
        $query_args[\'orderby\']  = \'meta_value_num\';
        break;

相关推荐

My widgets do not save

每次我保存我的小部件并离开页面时,我的小部件都会消失。侧边栏已完全清空,不会保存任何更改。控制台或PHP日志中没有任何错误。如果我将小部件直接复制并保存在数据库中widgets_text, 它们将被显示,但我仍然无法在侧边栏中添加或删除任何内容。这只发生在我的右侧边栏上,左侧边栏工作正常,但它们都以相同的方式注册。这是我注册侧边栏的方式:function my_widgets_init() { register_sidebar( array ( \'name\'