Woocommerce Front-office, заказ товаров по определенному атрибуту не работает - PullRequest
0 голосов
/ 07 ноября 2019

Я должен реализовать порядок по определенному атрибуту продукта, я уже добавил фрагмент кода для этой функции, он отображается в раскрывающемся списке sortby, но он не упорядочивает продукты. Ссылка на страницу с товарами: https://serenity -bijoux.com / pet-lovers /

add_filter('woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args');

function custom_woocommerce_get_catalog_ordering_args( $args ) {
    global $wp_query;
        // Changed the $_SESSION to $_GET
    if (isset($_GET['orderby'])) {
        switch ($_GET['orderby']) :
            case 'pa_metal' :
                $args['order'] = 'ASC';
                $args['meta_key'] = 'pa_metal';
                $args['orderby'] = 'meta_value';
            break;
        endswitch;
    }
    return $args;
}

/**
 *  Adds the sorting options to dropdown list .. The logic/criteria is in the method above
 */
add_filter('woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby');

function custom_woocommerce_catalog_orderby( $sortby ) {
    $sortby['pa_metal'] = 'Metal';
    return $sortby;
}

/**
 *  Save custom attributes as post's meta data as well so that we can use in sorting and searching
 */
add_action( 'save_post', 'save_woocommerce_attr_to_meta' );
function save_woocommerce_attr_to_meta( $post_id ) {
        // Get the attribute_names .. For each element get the index and the name of the attribute
        // Then use the index to get the corresponding submitted value from the attribute_values array.
    foreach( $_REQUEST['attribute_names'] as $index => $value ) {
        update_post_meta( $post_id, $value, $_REQUEST['attribute_values'][$index] );
    }
}

Спасибо!

1 Ответ

0 голосов
/ 09 ноября 2019

UP вопрос, мне все еще нужна помощь!

...