Фильтр по категориям товаров в админке WP E-commerce
в категории Статьи о php 4 комментарияДанный пост написан в связи обнаружением недоработки в связке WordPress 3.2.x и WP e-Commerce 3.8.5. Хотя эта недоработка находиться именно в файлах плагина WP E-commerce версии 3.8.5, возможно в ранних версиях так же может быть замечен данный баг.
Проблема состоит в том, что в админ-панеле, в разделе «Товары», не отображается корректно список всех категорий магазина.
Сегодня мы это исправим! Итак, функция вывода списка категорий для фильтра реализована в файле display-items.page.php, который находится по адресу: wp-content/plugins/wp-e-commerce/wpsc-admin/
Итак, находим нужную нам функцию на строке ~285 под названием wpsc_cats_restrict_manage_posts_print_terms.
И вносим свои изменения и корректировки:
вместо
$terms = get_terms( $taxonomy, array( 'parent' => $parent ) ); if( !($terms instanceof WP_Error) && !empty($terms) )
пишем
$terms = get_terms( $taxonomy, array('hide_empty'=>0, 'parent'=>$parent)); if( !($terms instanceof WP_Error) && !empty($terms) ){
и не забываем добавить } (фигурную скобку) в конце функции.
Вот как выглядит готовая функция:
function wpsc_cats_restrict_manage_posts_print_terms($taxonomy, $parent = 0, $level = 0){ $prefix = str_repeat( ' ' , $level ); // Закоментируйте, ибо может пригодиться // $terms = get_terms( $taxonomy, array( 'parent' => $parent ) ); // if( !($terms instanceof WP_Error) && !empty($terms) ) // То что вставили, чтобы знали что удалить потом =) $terms = get_terms( $taxonomy, array('hide_empty'=>0, 'parent'=>$parent)); if( !($terms instanceof WP_Error) && !empty($terms) ){ // Конец хака foreach ( $terms as $term ){ echo '<option value="'. $term->slug . '"', ( isset($_GET[$term->taxonomy]) && $_GET[$term->taxonomy] == $term->slug) ? ' selected="selected"' : '','>' . $prefix . $term->name .' (' . $term->count .')</option>'; wpsc_cats_restrict_manage_posts_print_terms($taxonomy, $term->term_id, $level+1); } } }
Вроде на этом и все. Спасибо за внимание, и за то что читаете мой блог. Пробуем, пишем отзывы, если помогло — говорим «Спасибо»! 🙂
Всем удачного кодинга!