Как в Wordpress Woocommerce добавить и настроить свою сотртировку товара

Стоит задача в Woocommerce настройках товара добавить чекбокс - "Charity" и добавить в сортировку товара, на странице магазина, фильтр "Charity" и если в настройках товаров отмечена галочка на "Charity" то можно было фильтром найти этот товар. Чекбокс я добавил, Надпись в сортировку я добавил, но всязать это вместе не получается. Мой код:

//Добавляю чекбокс в настройки товара Woocommerce 
add_action( 'woocommerce_product_options_general_product_data', 'art_woo_add_custom_fields' );
function art_woo_add_custom_fields() {
    global $product, $post;
    echo '<div class="options_group">';// Группировка полей 
    // Чекбокс
    woocommerce_wp_checkbox( 
        array(
           'id'            => '_charity',
           'wrapper_class' => 'show_if_simple',
           'label'         => 'Charity',
           'description'   => 'Yes'
        ) 
    );
    echo '</div>';
}

//Сохраняю выбор нажатия чекбокса
add_action( 'woocommerce_process_product_meta', 'art_woo_custom_fields_save', 10 );
function art_woo_custom_fields_save( $post_id ) {
  
   // Сохранение чекбоксов
   $woocommerce_checkbox = isset( $_POST['_charity'] ) ? 'yes' : 'no';
   update_post_meta( $post_id, '_charity', $woocommerce_checkbox );
}

// Добавляю возможность выбора сортировки в настройках каталога woocommerce 
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['charity'] = __( 'Charity', 'woocommerce' );

    return $sortby;
}

// Пытаюсь сортировать товар по галочке "Charity", но ничего не получаетя
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 ( 'charity' == $orderby_value ) {
        $args = [
            'orderby'  => 'meta_value_num',
            'meta_key' => '_charity',
            'order'    => 'ASC',
        ];
    }

    return $args;
}

Ответы (0 шт):