#php #wordpress #woocommerce
Вопрос:
Я пытаюсь добавить новую колонку на свою страницу администратора WordPress/Woocommerce, которая отображает категорию продукта в рамках заказов на странице заказов администратора. Я получил следующий скрипт с другого сайта, который почти делает то, что я хотел, но он просто отображает случайные категории, так как многие продукты имеют разные категории, прикрепленные к ним.
Можно ли отредактировать этот скрипт так, чтобы он искал только одну конкретную категорию? Например, если у меня 100 заказов, я хотел бы видеть, какие заказы содержат товары из категории X, чтобы их можно было отфильтровать непосредственно со страницы заказов администратора, вместо того, чтобы просматривать более 100 заказов, поэтому выделите их.
Ценю любую помощь с кодом или совет, если уже есть доступные плагины для этих типов настроек.
add_action( 'manage_shop_order_posts_custom_column', 'shop_order_posts_custom_column' ); function shop_order_posts_custom_column( $column ){ global $post, $the_order; if ( empty( $the_order ) || $the_order-gt;get_id() != $post-gt;ID ) { $the_order = wc_get_order( $post-gt;ID ); } $category_name_array = array(); $i=0; foreach ($the_order-gt;get_items() as $item_id =gt; $item_data) { $product = $item_data-gt;get_product(); $category = $product-gt;get_category_ids(); $name = get_product_category_by_id($category[0]); $category_name_array[$i] = $name; $i ; } if ( $column == 'category' ) { $arrlength = count($category_name_array); $category_to_display = ''; for($x = 0; $x lt; $arrlength; $x ){ if($x == 0){ $category_to_display = $category_name_array[$x]; } else{ $category_to_display = $category_to_display.", ".$category_name_array[$x]; } } echo($category_to_display); } } function get_product_category_by_id( $category_id ) { $term = get_term_by( 'id', $category_id, 'product_cat', 'ARRAY_A' ); return $term['name']; }