Фильтр по категориям товаров в админке WP E-commerce
3 августа 2011 в 2:30 в категории Статьи о 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); } } }
Вроде на этом и все. Спасибо за внимание, и за то что читаете мой блог. Пробуем, пишем отзывы, если помогло — говорим «Спасибо»! 🙂
Всем удачного кодинга!
4 комментария
Снизу плагин в виде травы классный=)..не можешь подсказать, как называется?..или сам делал?)..если можно напиши на почту=)
Спасибо =) Это не плагин. Это я делал.
А не подскажите как сделать сортировку товара в самой категории? т.е. что б добавленный в последнюю очередь товар показывался сверху списка товаров, а не в конце?
В админке в настройках магазина вкладка вроде «Презентация».
Там можно выбрать как сортировать товары в категориях. Если хотите, там есть Drag’n’Drop — сортировка перетягиваниями (Тяни и бросай — такой корявый перевод дает русификатор вроде, не помню точно).
Т.е. можете выбрать D’n’Drop и потом просто войдя в админке в список продуктов, выбрать в фильтре нужную категорию и перетаскивая сортировать продукты.
Других способов пока не знаю и не искал, если честно — не было надобности 🙂