Snippets

Martin Urbánek WooCommerce - řazení podle dostupnosti

Created by Martin Urbánek
<?php
/**
 *    Řazení produktů podle dostupnosti - front-end
 */
add_filter( 'woocommerce_get_catalog_ordering_args', 'razeni_produktu_podle_dostupnosti', 9999 );
 
function razeni_produktu_podle_dostupnosti( $args ) {
/**
*    POZOR - přetlačuje filtr v katalogu,
*            takže i když dáte jiné řazení,
*            tak zůstane toto -> přidat podmínku pro $_GET['order']...
*/
   $args['orderby'] = 'meta_value';
   $args['order'] = 'ASC';
   $args['meta_key'] = '_stock_status';
   return $args;
}

/**
*    Řazení produktů podle dostupnosti - back-end    
*    
*    Přidání funkčnosti tlačítka
*/
add_filter( 'manage_edit-product_sortable_columns', 'rei_product_sortable_columns' );
function rei_product_sortable_columns( $columns ) {
    $custom = array(
        'is_in_stock' => 'is_in_stock'
    );
    return wp_parse_args( $custom, $columns );
}

add_action( 'pre_get_posts', 'products_admin_filter' );
 
function products_admin_filter( $query ) {
	// if it is not admin area, exit the filter immediately
	if ( ! is_admin() ) return;
 
	if( empty( $_GET['orderby'] ) || empty( $_GET['order'] ) ) return;
 
	if( $_GET['orderby'] == 'is_in_stock' ) {
		$query->set('meta_key', '_stock_status' );
		$query->set('orderby', 'meta_value'); // or meta_value_num
		$query->set('order', $_GET['order'] );
	}
 
	return $query;
 
}

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.