WordPress Woo Commerce получает продукты по брендам - PullRequest
0 голосов
/ 04 октября 2018

В моем WordPress проекте я пытаюсь показать products list на основе brand name

Это моя структура папок.Здесь я создаю API внутри папки Android.

enter image description here

В android / brands_products.php я хочу показать список продуктов по названию бренда.

Iпопробовал этот код:

<?php
require_once( '../wp-load.php' );
if ( woocommerce_product_loop() ) {

woocommerce_product_loop_start();

    if ( wc_get_loop_prop( 'total' ) ) {
        while ( have_posts() ) {
            the_post();

            /**
             * Hook: woocommerce_shop_loop.
             *
             * @hooked WC_Structured_Data::generate_product_data() - 10
             */
            do_action( 'woocommerce_shop_loop' );

            wc_get_template_part( 'content', 'product' );
        }
    }

}
?>

но не работает.

пример: Pbs is brand name хочу выбрать фирменные продукты Pbs

Ответы [ 2 ]

0 голосов
/ 04 октября 2018
require_once('../wp-load.php');   
global $woocommerce;
global $product;
$brand_product_args = array(
                'post_type' => 'product',
                'posts_per_page' => -1,
                'post_status' => 'publish',
                'pwb-brand' => 'pbs',

                'order' => 'desc',
                'orderby' => 'date',
            );

            $brand_product_list = new WP_Query( $brand_product_args);

            while($brand_product_list->have_posts()) : $brand_product_list->the_post(); 
            $product_data = wc_get_product( $post->ID ); 

            endwhile; wp_reset_query();

            if(!empty($product_data))
            {
                $data['status']= true;
                $data['product']= $product_data;
            }
            else
            {
                $data['status']= false;
                $data['product']= array();
            }
    echo'<pre>'; print_r($data);exit;

    echo json_encode($data);
0 голосов
/ 04 октября 2018

Пожалуйста, используйте ниже код:

<?php
require_once('../wp-load.php');   
global $woocommerce;
global $product;
$brand_product_args = array(
                'post_type' => 'product',
                'posts_per_page' => -1,
                'post_status' => 'publish',
                'product_cat' => 'pbs',
                'order' => 'desc',
                'orderby' => 'date'
            );

            $brand_product_list = new WP_Query( $brand_product_args);
            while($brand_product_list->have_posts()) : $brand_product_list->the_post(); 
            $product_data = wc_get_product( $post->ID ); 
            endwhile; wp_reset_query();
            if(!empty($product_list))
            {
                $data['status']= true;
                $data['product']= $product_data;
            }
            else
            {
                $data['status']= false;
                $data['product']= array();
            }
            echo json_encode($data);
?>
...