用于wooccommerce类别图像的jsonapi控制器


json api controller for woocommerce category images

我尝试使用json-api来获取一些wooccommerce数据。使用常规的wp-jasonAPI,我可以使用自定义的帖子类型"product"来获取大部分帖子数据,但我也需要类别数据,比如名称和特别的类别图像。为此,我想围绕函数get_terms("product_cat")编写一个简单的控制器。我敢打赌,这是因为我缺乏php oop知识,无法添加键(image)和值(image_url)。我甚至只在json中添加了最后一个图像对的详细信息,但我真的很想找到每个类别对象的这些详细信息,作为所有其他键、值对之间的图像值

这是我的控制器:

        <?php
        /*
         Controller name: WooCommerce Category Images
         Controller description: Get Woocommmerce category images controller
         */
        final class JSON_API_woocatimages_Controller {
          public function info() {
            return array(
              'version' => '1.0'
            );
          }
           public function get_category_images() {
            $args = array(
                'number'     => $number,
                'orderby'    => $orderby,
                'order'      => $order,
                'hide_empty' => $hide_empty,
                'include'    => $ids
            );
            $product_categories = get_terms( 'product_cat', $args );
            foreach( $product_categories as $cat ) { 
            // get the thumbnail id user the term_id
            $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true ); 
            // get the image URL
            $image = wp_get_attachment_url( $thumbnail_id ); 
            // here i probably do something wrong.....
            $product_categories['image'] = $image;
            }
            return array(
                "WooCommerce Categories" => $product_categories
            );
           }
        }

结果如下:http://funshopping.mystagingwebsite.com/api/woocatimages/get_category_images/

我可以在如何为每个product_categories数组添加这些图像数据和/或如何使用标准json-api方法(如"get_category_index")以不同的方式进行添加方面提供一些帮助。老实说,我不知道谁该用它,除了取回类别索引。这与我所看到的关于如何获取菜单索引的控制器相同,但我希望能够获取所使用的实际菜单的值和id。我确信我在这里错过了什么。

控制器应为:

            <?php
        /*
         Controller name: WooCommerce Category Images
         Controller description: Get Woocommmerce category images controller
         */
        final class JSON_API_woocatimages_Controller {
          public function info() {
            return array(
              'version' => '1.0'
            );
          }
           public function get_category_images() {
            $args = array(
                'number'     => $number,
                'orderby'    => $orderby,
                'order'      => $order,
                'hide_empty' => $hide_empty,
                'include'    => $ids
            );
            $product_categories = get_terms( 'product_cat', $args );
            foreach( $product_categories as $cat ) { 
            // get the thumbnail id user the term_id
            $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true ); 
            // get the image URL
            $image = wp_get_attachment_url( $thumbnail_id ); 
            $cat->{'image'}=$image;
            }
            return array(
                "WooCommerce Categories" => $product_categories
            );
           }
        }