WooCommerce 是用来做电商最好的选择之一,可它的后台管理其实并没有那么完善,因为它缺少一些我认为是基础的功能。比如设置的特色产品没有明确的显示,或者我们这次要说的过滤打折产品,尤其是当你有很多产品时,这个过滤可以帮你更快速的找到产品。

代码添加折扣产品过滤
WooCommerce 默认缺少很多东西,不过幸运的是我们可以完全自定义它。
一如既往,用代码来添加这个功能:
/* 折扣产品过滤 */
add_action( 'restrict_manage_posts', 'jhchen_filter_discounted_products', 9999 );
function jhchen_filter_discounted_products() {
global $typenow;
if ( 'product' === $typenow ) {
$selected = isset( $_GET['sale_status'] ) ? $_GET['sale_status'] : '';
?>
<select name="sale_status">
<option value="">按产品折扣过滤</option>
<option value="on_sale" <?php selected( $selected, 'on_sale' ); ?>>有折扣</option>
<option value="not_on_sale" <?php selected( $selected, 'not_on_sale' ); ?>>无折扣</option>
</select>
<?php
}
}
add_filter( 'request', 'jhchen_filter_products_status_offer' );
function jhchen_filter_products_status_offer( $query_vars ) {
global $typenow;
if ( 'product' === $typenow && isset( $_GET['sale_status'] ) && '' !== $_GET['sale_status'] ) {
$sale_status = sanitize_text_field( wp_unslash( $_GET['sale_status'] ) );
if ( 'on_sale' === $sale_status ) {
$query_vars['meta_query'][] = array(
'key' => '_sale_price',
'value' => '',
'compare' => '!=',
);
} elseif ( 'not_on_sale' === $sale_status ) {
$query_vars['meta_query'][] = array(
'key' => '_sale_price',
'value' => '',
'compare' => '=',
);
}
}
return $query_vars;
}
