Для каждой категория своя таблица WordPress

216
08 июля 2017, 10:48

Доброго времени суток, помогите пожалуйста с фильтрацией Мне нужно чтобы для каждой категории была своя таблица , но не знаю как это реализовать

Код

 if(isset($_POST['wqo_hval']) && isset($_POST['product_cat']) && $_POST['product_cat']!=''){
    /*$args = array(
            'post_type'             => 'product',
            'post_status'           => 'publish',           
            'orderby'               => $_POST['wqo_front_order_by'],
            'order'                 => $_POST['wqo_front_order'],
      'type' => 'numeric',
            'posts_per_page'        => 1000,
            'meta_query'            => array(
                array(
                    'key'           => '_visibility',
                    'value'         => array('catalog', 'visible'),
                    'compare'   => 'IN'
                )
            ),
            'tax_query'             => array(
            array(
            'taxonomy'      => 'product_cat',
            'terms'         => array( esc_attr($_POST['product_cat']) ),
            'field'         => 'slug',
            'operator'      => 'IN'
          )
            )
        );*/
    $args = array(
    'post_type'             => 'product',
    'post_status'           => 'publish',
    'ignore_sticky_posts'   => 1,
    'posts_per_page'        => 1000,
    'orderby'               => $_POST['wqo_front_order_by'],
      'order'               => $_POST['wqo_front_order'],    
    'tax_query'             => array(
        array(
            'taxonomy'      => 'product_cat',
            'field'         => 'slug',
            'terms'         => array( esc_attr($_POST['product_cat']) ),
            'operator'      => 'IN'
        )
      )
    );

  }else{
    $args = array(
        'post_status'         => 'publish',
        'post_type'           => 'product',
        /*'ignore_sticky_posts' => 1,*/
        'orderby'                   => $ordby,
        'type' => 'numeric',
        'order'                       => $ord,
        'posts_per_page'        => -1,
            'tax_query'             => array(
        array(
            'taxonomy'      => 'product_cat',
            'field'         => 'term_id',
            'terms'         => [242,243,244,245],
            'operator'      => 'IN'
        )
      )
   );
  }
   // echo '<pre>';
  //  print_r($args);
   //die('-----------');

    $loop = new WP_Query( $args );


      if ($loop->have_posts()){


        echo '<table class="wqo_vew_table"><tr><th>Имя</th><th>Картинка</th><th>Цена</th><th>Кол-во</th><th></th></tr>';

        foreach($loop->posts as $val){
          $product = get_product($val->ID ); 
            $variation_display=false;
            $variation=false;
            if (get_option('wqo_display_variation')=='1'){
              $variation_display= true;
            }            
            if ($variation_display == true){
                $variation_query = new WP_Query();
                $args_variation = array(
                  'post_status' => 'publish',
                  'post_type' => 'product_variation',
                  'posts_per_page'   => -1,  
                  'post_parent' => $val->ID
                );                
                $variation_query->query($args_variation);
                if ($variation_query->have_posts()){
                  $variation=true;
                }
            }
             ini_set('display_errors','Off');                     
            if($variation==true && $product->is_type( 'variable' )){
              $product_name_org=$val->post_title;

              foreach($variation_query->posts as $var_data){
                 $product = get_product($var_data->ID);
                 $max_stock=1000;                                  
                 if($product->variation_has_stock==1){
                   //$max_stock=$product->total_stock;
                   $max_stock=$product->get_stock_quantity();
                 }
                 $availability=$product->get_availability();
                  if($availability['class']=='out-of-stock'){
                    $max_stock=0;
                  }
                  $prod_att=woocommerce_get_formatted_variation($product->get_variation_attributes(),true);
                  if($prod_att){
                    $product_name='<a href="'. plugins_url().'/woo-quick-order/includes/wqo-popup-data.php?pid='.$var_data->ID.'&wqo_v=1" class="simple-ajax-popup-align-top">'.$product_name_org.'('.$prod_att.')</a>';
                  }else{
                    $product_name='<a href="'. plugins_url().'/woo-quick-order/includes/wqo-popup-data.php?pid='.$var_data->ID.'&wqo_v=1" class="simple-ajax-popup-align-top">'.$product_name_org.'</a>';
                  }
                  $product_price=woocommerce_price($product->get_price());
                  $img_url = WQO_BASE_URL. '/images/placeholder.png';
                  if (has_post_thumbnail($var_data->ID)){
                    $img_url2 = wp_get_attachment_url( get_post_thumbnail_id($var_data->ID) );                    
                    $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($var_data->ID), 'thumbnail' );
                    $img_url = $thumb['0'];
                  } else if (has_post_thumbnail($val->ID)){
                    $img_url2 = wp_get_attachment_url( get_post_thumbnail_id($val->ID) );                    
                    $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($val->ID), 'thumbnail' );
                    $img_url = $thumb['0'];                   
                  }
                  if (get_option('wqo_display_image_preview')=='1'){
                  echo '<tr><td>'.$product_name.'</td><td><a href="'.$img_url.'" class="preview"><img src="'.$img_url.'" height="'.$wqo_img_size.'" width="'.$wqo_img_size.'" /></a></td><td>'.$product_price.'</td>';
                  }else{
                    echo '<tr><td>'.$product_name.'</td><td><img src="'.$img_url.'" height="'.$wqo_img_size.'" width="'.$wqo_img_size.'" /></td><td>'.$product_price.'</td>';
                  }                  
                  ?>
                    <td>
                        <?php
                        if($max_stock!=0){                            
                          ?><input type="number" style="width:70px;" value="1" min="1" class="product_qty"  max="<?php echo $max_stock;?>" name="product_qty_<?php echo $var_data->ID?>" id="product_qty_<?php echo $var_data->ID?>" /><?php                            
                        }else{                            
                           ?><input type="number" style="width:70px;" value="0" min="0" class="product_qty" max="0" name="product_qty_<?php echo $var_data->ID?>" id="product_qty_<?php echo $var_data->ID?>" /><?php
                        }
                        ?>
                    </td>  
                  <?php
                  if($product->regular_price && $max_stock!=0){  
                  echo '<td><div class="wqo_add_btn"><a onclick="wqo_add_prod('.$val->ID.','.$var_data->ID.');"><div class="wqo_add_cart"></div></a></div></td></tr>';
                  }  else {
                    echo '<td></td></tr>';
                  }
              }//end foreach    
            }else{
                wqo_show_prod($val->ID,$wqo_img_size, $val->post_title);
            }
        }//end foreach
          echo '</table>';
      }//if 




}  
READ ALSO
Принимать GET-параметры и делать Ajax-запрос

Принимать GET-параметры и делать Ajax-запрос

У меня есть файл conretephp, в котором, в зависимости от выбранного <option>, выводятся соответствующие данные по Ajax-запросу (отдельный скрипт)

172
Интерфейсы в ООП (Java), по-простому?

Интерфейсы в ООП (Java), по-простому?

Объясните по-простому, на пальцах, зачем и для чего нужны интерфейсы (Java)? Все эти заумные книжные определения и формулировки, ясности совсем...

271
Загрузка нескольких фотографий сразу

Загрузка нескольких фотографий сразу

Есть функция создания объявления, с возможностью загружать одну фотографиюНе могу переделать таким образом, чтобы можно было загружать...

221
дополнять значение в бд mysql+php

дополнять значение в бд mysql+php

я хочу чтобы в поле results с каждым запросом дополнялось значение, а не обновлялосьну сохранить результаты теста

165