【发布时间】:2021-04-29 14:02:23
【问题描述】:
我正在尝试制作一个自定义产品排序选项,它排除了 POA 的产品,客户通过不为它们设置价格来做到这一点。
add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' );
function custom_woocommerce_get_catalog_ordering_args( $args ) {
$orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
if ('price_nopoa_asc' == $orderby_value) {
$args = array(
'meta_key' => '_price',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_compare' => '!=',
'meta_value' => '',
'meta_type' => 'numerical',
);
}
return $args;
}
add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby' );
add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' );
function custom_woocommerce_catalog_orderby( $sortby ) {
$sortby['price_nopoa_asc'] = 'Sort by Price: products Low to High';
return $sortby;
}
除了忽略没有设置价格的产品之外,其他所有方法都有效。
我是否以错误的方式检查空白字段?
【问题讨论】:
标签: wordpress sorting woocommerce price woocommerce-theming