Enter
2019-10-11 22:39:00
655

Доброго времени суток. В данной статье я хотел бы поделиться парсером, который я писал на phpQuery для woocommerce. В какой-то мере в этом парсере присутствуют элементы костылей, но общий принцип работы будет понятен, здесь нет ничего сложного и сверхъестественного. Ситуация была такая что спарсить товары нужно было срочно, а времени на раздумья особо не было. Сразу скажу что можно было сделать. Можно было сделать генерацию переменных для полей и создание полей если они отсутствуют, в зависимости от списка характеристик к определённым полям у товара т.к. разделов очень много и характеристики к товарам постоянно могли изменяться. Т.е. например одна и таже характеристика в списке у разного товара могла называться по разному (Вид, вид оборудования, вид изделия), а привязаться можно было именно только к названию характеристики т.к. другого индетификатора в списке не имелось. Но это всё лирика)) Вот собственно код:  (код пока не отображается феном всё портит))) )

 


<?php
header('Content-Type: text/html; charset= utf-8');
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );

$parts = parse_url($_GET['url']);
print_r($parts);
$item = [];
$items =[];
$Attributes = [];
$hostlink = 'https://eurosmed.ru';

if($_GET['page'] > 1) $pageurl = 'page-'.$_GET['page'];
else $pageurl = '';

if($_GET['url']){

    if(include('phpQuery.php')){ echo 'Y';}
    else{echo '';}

    $html = file_get_contents($_GET['url'].$pageurl);
    $pq = phpQuery::newDocument($html);

    $links = $pq->find('.product-items-list .product-item-title');


    /** Работаем с информацией в общем списке **/
    $i=0; foreach ($links as $link) {
        $pqLink = pq($link);



        /** Работаем с детальной информацией **/
        $detailPrice = file_get_contents('https://eurosmed.ru/'.$pqLink->attr('href'));
        $pqDetail = phpQuery::newDocument($detailPrice);


        $NAME = $pqDetail->find('.titleh1 h1')->text();
        $CONTENT = $pqDetail->find('#category_description')->html();
        $CONTENT = preg_replace("/<img.+?>/","",$CONTENT);
        $PRICE = $pqDetail->find('.price span')->text();


        $PRICE = str_replace(' ', '', $PRICE);

        if($PRICE != 'позапросу')
        $PRICE  =  (int)$PRICE ;
        else  $PRICE = '';

        $items = array('name' => $NAME, 'price' => $PRICE  , 'content' => $CONTENT );

        $dimg = $pqDetail->find('.fancybox')->attr('href');
        $thumb_url  = $hostlink.$dimg;

        $image_gallery = $pqDetail->find('.carousel-inner .item a');


        $propertiesList = $pqDetail->find('.features')->find('li');

        $prop_proizvoditelnost_min = [];            $prop_tip_klinka = [];
        $prop_zadavaemyj_obyom =[];                 $prop_vid_tovara = [];
        $prop_rabota_akkumulyatora = [];            $prop_proizvodimye_gazy = [];
        $prop_vid_dozatora = [];                    $prop_vid_skanera=[];
        $prop_chastota_ventilyacii_dyx_min = [];    $prop_dyxatelnyj_obemml = [];
        $prop_kolichestvo_sekcij = [];              $prop_ugol_naklona_golenimin_max = [];
        $prop_pokazaniya_k_primeneniyu = [];        $prop_gruzopodemnost_kg = [];
        $prop_regulirovka_vysoty_min_max_mm = [];   $prop_ugol_naklona_spinki_min_max = [];
        $prop_tip_svetilnikov = [];                 $prop_vid_reabilitacii = [];
        $prop_diametr_bloka_osveshheniya_mm = [];   $prop_uroven_osveshhennosti_klk = [];
        $prop_type_regim_raboty = [];               $prop_type_rezanie_s_koagulaciei = [];
        $prop_type_rabocha_chastota = [];           $prop_type_ganarator = [];
        $prop_type_aparat = [];                     $prop_type_instrument =[];
        $prop_type_endoskopii = [];                 $prop_derzatel_flakona  = [];
        $prop_type_siduhka  = [];                   $prop_type_stoika =[];
        $prop_section = [];                         $prop_material = [];
        $prop_vmestimost  = [];                     $prop_type_spa = [];
        $prop_num_forsun = [];                      $objom_prop = [];
        $city_prop = [];                            $prop_type_item = [];
        $prop_functional = [];                      $brend = [];

        foreach ($propertiesList as $propItem){
            $prop_el = pq($propItem);


            if($prop_el->find('label')->attr('feature_id') == '221') {
                if($prop_el->find('span'))
                    $prop_proizvoditelnost_min[] = $prop_el->find('span')->text();
                else $prop_proizvoditelnost_min = false;}

            if($prop_el->find('label')->attr('feature_id') == '250') {
                if($prop_el->find('span'))
                    $prop_zadavaemyj_obyom[] = $prop_el->find('span')->text();
                else $prop_zadavaemyj_obyom = false;}

                       if($prop_el->find('label')->attr('feature_id') == '252') {
                if($prop_el->find('span'))
                    $prop_rabota_akkumulyatora[] = $prop_el->find('span')->text();
                else $prop_rabota_akkumulyatora = false;}

            if($prop_el->find('label')->attr('feature_id') == '247') {
                if($prop_el->find('span'))
                    $prop_vid_dozatora[] = $prop_el->find('span')->text();
                else $prop_vid_dozatora = false;}

            if($prop_el->find('label')->attr('feature_id') == '260') {
                if($prop_el->find('span'))
                    $prop_tip_klinka[] = $prop_el->find('span')->text();
                else $prop_tip_klinka = false;}


            if($prop_el->find('label')->attr('feature_id') == '259') {
                if($prop_el->find('span'))
                    $prop_vid_tovara[] = $prop_el->find('span')->text();
                else $prop_vid_tovara = false;}


                 if($prop_el->find('label')->attr('feature_id') == '257') {
                if($prop_el->find('span'))
                    $prop_proizvodimye_gazy[] = $prop_el->find('span')->text();
                else $prop_proizvodimye_gazy = false;}


                        if($prop_el->find('label')->attr('feature_id') == '288') {
                if($prop_el->find('span'))
                    $prop_vid_skanera[] = $prop_el->find('span')->text();
                else $prop_vid_skanera = false;}


            if($prop_el->find('label')->attr('feature_id') == '395') {
                if($prop_el->find('span'))
                    $prop_chastota_ventilyacii_dyx_min[] = $prop_el->find('span')->text();
                else $prop_chastota_ventilyacii_dyx_min = false;}

                        if($prop_el->find('label')->attr('feature_id') == '396') {
                if($prop_el->find('span'))
                    $prop_dyxatelnyj_obemml[] = $prop_el->find('span')->text();
                else $prop_dyxatelnyj_obemml = false;}

            if($prop_el->find('label')->attr('feature_id') == '377') {
                if($prop_el->find('span'))
                    $prop_kolichestvo_sekcij[] = $prop_el->find('span')->text();
                else $prop_kolichestvo_sekcij = false;}


             if($prop_el->find('label')->attr('feature_id') == '387') {
                if($prop_el->find('span'))
                    $prop_ugol_naklona_golenimin_max[] = $prop_el->find('span')->text();
                 else $prop_ugol_naklona_golenimin_max = false;}


            if($prop_el->find('label')->attr('feature_id') == '276') {
                if($prop_el->find('span'))
                    $prop_pokazaniya_k_primeneniyu[] = $prop_el->find('span')->text();
                else $prop_pokazaniya_k_primeneniyu = false;}


            if($prop_el->find('label')->attr('feature_id') == '322') {
                if($prop_el->find('span'))
                    $prop_gruzopodemnost_kg[] = $prop_el->find('span')->text();
                else $prop_gruzopodemnost_kg = false;}


            if($prop_el->find('label')->attr('feature_id') == '318') {
                if($prop_el->find('span'))
                    $prop_regulirovka_vysoty_min_max_mm[] = $prop_el->find('span')->text();
                else $prop_regulirovka_vysoty_min_max_mm = false;}


            if($prop_el->find('label')->attr('feature_id') == '319') {
                if($prop_el->find('span'))
                    $prop_ugol_naklona_spinki_min_max[] = $prop_el->find('span')->text();
                else $prop_ugol_naklona_spinki_min_max = false;}


            if($prop_el->find('label')->attr('feature_id') == '195') {
                if($prop_el->find('span'))
                    $prop_tip_svetilnikov[] = $prop_el->find('span')->text();
                else $prop_tip_svetilnikov = false;}


            if($prop_el->find('label')->attr('feature_id') == '212') {
                if($prop_el->find('span'))
                    $prop_vid_reabilitacii[] = $prop_el->find('span')->text();
                else $prop_vid_reabilitacii = false;}


            if($prop_el->find('label')->attr('feature_id') == '291') {
                if($prop_el->find('span'))
                    $prop_diametr_bloka_osveshheniya_mm[] = $prop_el->find('span')->text();
                else $prop_diametr_bloka_osveshheniya_mm = false;}

            if($prop_el->find('label')->attr('feature_id') == '197') {
                if($prop_el->find('span'))
                    $prop_uroven_osveshhennosti_klk[] = $prop_el->find('span')->text();
                else $prop_uroven_osveshhennosti_klk = false;}

            if($prop_el->find('label')->attr('feature_id') == '159') {
                if($prop_el->find('span'))
                    $prop_type_regim_raboty[] = $prop_el->find('span')->text();
                else $prop_type_regim_raboty = false;}

            if($prop_el->find('label')->attr('feature_id') == '380') {
                if($prop_el->find('span'))
                    $prop_type_rezanie_s_koagulaciei[] = $prop_el->find('span')->text();
                else $prop_type_rezanie_s_koagulaciei = false;}

            if($prop_el->find('label')->attr('feature_id') == '379') {
                if($prop_el->find('span'))
                    $prop_type_mohnost_razreza[] = $prop_el->find('span')->text();
                else $prop_type_mohnost_razreza = false;}

            if($prop_el->find('label')->attr('feature_id') == '378') {
                if($prop_el->find('span'))
                    $prop_type_rabocha_chastota[] = $prop_el->find('span')->text();
                else $prop_type_rabocha_chastota = false;}

            if($prop_el->find('label')->attr('feature_id') == '261') {
                if($prop_el->find('span'))
                    $prop_type_ganarator[] = $prop_el->find('span')->text();
                else $prop_type_ganarator = false;}

            if($prop_el->find('label')->attr('feature_id') == '177') {
                if($prop_el->find('span'))
                    $prop_type_aparat[] = $prop_el->find('span')->text();
                else $prop_type_aparat = false;}


            if($prop_el->find('label')->attr('feature_id') == '289') {
                if($prop_el->find('span'))
                    $prop_type_instrument[] = $prop_el->find('span')->text();
                else $prop_type_instrument = false;}

            if($prop_el->find('label')->attr('feature_id') == '411') {
                if($prop_el->find('span'))
                    $prop_type_endoskopii[] = $prop_el->find('span')->text();
                else $prop_type_endoskopii = false;}

            if($prop_el->find('label')->attr('feature_id') == '375') {
                if($prop_el->find('span'))
                    $prop_derzatel_flakona[] = $prop_el->find('span')->text();
                else $prop_derzatel_flakona = false;}


            if($prop_el->find('label')->attr('feature_id') == '183') {
                if($prop_el->find('span'))
                    $prop_type_siduhka[] = $prop_el->find('span')->text();
                else $prop_type_siduhka = false;}

            if($prop_el->find('label')->attr('feature_id') == ' 374') {
                if($prop_el->find('span'))
                    $prop_type_stoika[] = $prop_el->find('span')->text();
                else $prop_type_stoika = false;}


            if($prop_el->find('label')->attr('feature_id') == '377') {
                if($prop_el->find('span'))
                    $prop_section[] = $prop_el->find('span')->text();
                else $prop_section = false;}

            if($prop_el->find('label')->attr('feature_id') == '214') {
                if($prop_el->find('span'))
                    $prop_material[] = $prop_el->find('span')->text();
                else $prop_material = false;}

            if($prop_el->find('label')->attr('feature_id') == '340') {
                if($prop_el->find('span'))
                    $prop_vmestimost[] = $prop_el->find('span')->text();
                else $prop_vmestimost = false;}

            if($prop_el->find('label')->attr('feature_id') == '339') {
                if($prop_el->find('span'))
                    $prop_forma[] = $prop_el->find('span')->text();
                else $prop_forma = false;}

            if($prop_el->find('label')->attr('feature_id') == '338') {
                if($prop_el->find('span'))
                    $prop_type_spa[] = $prop_el->find('span')->text();
                else $prop_type_spa = false;}


            if($prop_el->find('label')->attr('feature_id') == '298') {
                if($prop_el->find('span'))
                    $prop_num_forsun[] = $prop_el->find('span')->text();
                else $prop_num_forsun = false;
            }


            if($prop_el->find('label')->attr('feature_id') == '295') {
                if($prop_el->find('span'))
                    $objom_prop[] = $prop_el->find('span')->text();
                else $objom_prop = false;
            }


            if($prop_el->find('label')->attr('feature_id') == '181' || $prop_el->find('label')->attr('feature_id') == '219') {
               if($prop_el->find('span'))
                $city_prop[] = $prop_el->find('span')->text();
               else $city_prop = false;
            }

            if($prop_el->find('label')->attr('feature_id') == '271' || $prop_el->find('label')->attr('feature_id') =='210') {
                if($prop_el->find('span'))
                    $prop_type_item[] = $prop_el->find('span')->text();
                else $prop_type_item = false;
            }

            if($prop_el->find('label')->attr('feature_id') == '263') {
                if($prop_el->find('span'))
                    $prop_functional[] = $prop_el->find('span')->text();
                else $prop_functional = false;
            }


            if($prop_el->find('label')->text() == 'Бренд:') {
                if($prop_el->find('span'))
                    $brend[] = $prop_el->find('span')->text();
                else $brend = false;
            }


        }
                $post_data = array(
                    'post_title'    => wp_strip_all_tags( $NAME),
                    'post_content'  => $CONTENT,
                    'post_status'   => 'publish',
                    'post_author'   => 1,
                    'post_category' => 0,
                    'post_type' => 'product',
                    'tax_input' => array('product_cat'=>array($_GET['cat']))

                );



                $post_id = wp_insert_post( $post_data );


                wp_set_object_terms($post_id, 'simple', 'product_type');     //Тип товара (Простой товар)
                update_post_meta( $post_id, '_visibility', 'visible' );           // Видимость: открыто
                update_post_meta( $post_id, '_stock_status', 'instock');

               if($PRICE) {
                   update_post_meta($post_id, '_regular_price', $PRICE);
                   update_post_meta($post_id, '_price', $PRICE);
               }




                if($prop_rabota_akkumulyatora){
                    wp_set_object_terms($prop_rabota_akkumulyatora, 'pa_rabota-ot-akkumulyatora-ch');
                    $thedata = Array(
                        'name'=>'pa_rabota-ot-akkumulyatora-ch',
                        'value'=>$prop_rabota_akkumulyatora,
                        'is_visible' => '1',
                        'is_variation' => '0',
                        'is_taxonomy' => '1'
                    );
                    $Attributes = array_merge (array( 'pa_rabota-ot-akkumulyatora-ch' => $thedata), $Attributes);
                }

                if($prop_zadavaemyj_obyom){
                    wp_set_object_terms($prop_zadavaemyj_obyom, 'pa_zadavaemyj-obyom-ml');
                    $thedata = Array(
                        'name'=>'pa_zadavaemyj-obyom-ml',
                        'value'=>$prop_zadavaemyj_obyom,
                        'is_visible' => '1',
                        'is_variation' => '0',
                        'is_taxonomy' => '1'
                    );
                    $Attributes = array_merge (array( 'pa_zadavaemyj-obyom-ml' => $thedata), $Attributes);
                }

                          if($prop_gruzopodemnost_kg){
                    wp_set_object_terms($prop_gruzopodemnost_kg, 'pa_gruzopodemnost-kg');
                    $thedata = Array(
                        'name'=>'pa_gruzopodemnost-kg',
                        'value'=>$prop_gruzopodemnost_kg,
                        'is_visible' => '1',
                        'is_variation' => '0',
                        'is_taxonomy' => '1'
                    );
                    $Attributes = array_merge (array( 'pa_gruzopodemnost-kg' => $thedata), $Attributes);
                }


                 if($prop_vid_dozatora){
                    wp_set_object_terms($prop_vid_dozatora, 'pa_vid-dozatora');
                    $thedata = Array(
                        'name'=>'pa_vid-dozatora',
                        'value'=>$prop_vid_dozatora,
                        'is_visible' => '1',
                        'is_variation' => '0',
                        'is_taxonomy' => '1'
                    );
                    $Attributes = array_merge (array( 'pa_vid-dozatora' => $thedata), $Attributes);
                }


                   if($prop_tip_klinka){
                    wp_set_object_terms($prop_tip_klinka, 'pa_tip-klinka');
                    $thedata = Array(
                        'name'=>'pa_tip-klinka',
                        'value'=>$prop_tip_klinka,
                        'is_visible' => '1',
                        'is_variation' => '0',
                        'is_taxonomy' => '1'
                    );
                    $Attributes = array_merge (array( 'pa_tip-klinka' => $thedata), $Attributes);
                }


                 if($prop_vid_tovara){
                            wp_set_object_terms($prop_vid_tovara, 'pa_vid-tovara');
                            $thedata = Array(
                                'name'=>'pa_vid-tovara',
                                'value'=>$prop_vid_tovara,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_vid-tovara' => $thedata), $Attributes);
                }


                if($prop_proizvodimye_gazy){
                            wp_set_object_terms($prop_proizvodimye_gazy, 'pa_proizvodimye-gazy');
                            $thedata = Array(
                                'name'=>'pa_proizvodimye-gazy',
                                'value'=>$prop_proizvodimye_gazy,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_proizvodimye-gazy' => $thedata), $Attributes);
                }


                 if($prop_proizvoditelnost_min){
                            wp_set_object_terms($prop_proizvoditelnost_min, 'pa_proizvoditelnost-l-min');
                            $thedata = Array(
                                'name'=>'pa_proizvoditelnost-l-min',
                                'value'=>$prop_proizvoditelnost_min,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_proizvoditelnost-l-min' => $thedata), $Attributes);
                }


                 if($prop_dyxatelnyj_obemml){
                            wp_set_object_terms($prop_dyxatelnyj_obemml , 'pa_dyxatelnyj-obemml');
                            $thedata = Array(
                                'name'=>'pa_dyxatelnyj-obemml',
                                'value'=>$prop_dyxatelnyj_obemml,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_dyxatelnyj-obemml' => $thedata), $Attributes);
                }


                           if($prop_chastota_ventilyacii_dyx_min){
                            wp_set_object_terms($prop_chastota_ventilyacii_dyx_min, 'pa_chastota-ventilyacii-dyx-min');
                            $thedata = Array(
                                'name'=>'pa_chastota-ventilyacii-dyx-min',
                                'value'=>$prop_chastota_ventilyacii_dyx_min,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_chastota-ventilyacii-dyx-min' => $thedata), $Attributes);
                }


                     if($prop_vid_skanera){
                            wp_set_object_terms($prop_vid_skanera, 'pa_vid-skanera');
                            $thedata = Array(
                                'name'=>'pa_vid-skanera',
                                'value'=>$prop_vid_skanera,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_vid-skanera' => $thedata), $Attributes);
                }


                if($prop_pokazaniya_k_primeneniyu){
                            wp_set_object_terms($prop_pokazaniya_k_primeneniyu, 'pa_pokazaniya-k-primeneniyu');
                            $thedata = Array(
                                'name'=>'pa_pokazaniya-k-primeneniyu',
                                'value'=>$prop_pokazaniya_k_primeneniyu,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_pokazaniya-k-primeneniyu' => $thedata), $Attributes);
                }


                if($prop_ugol_naklona_golenimin_max){
                            wp_set_object_terms($prop_ugol_naklona_golenimin_max, 'pa_ugol-naklona-golenimin-max');
                            $thedata = Array(
                                'name'=>'pa_ugol-naklona-golenimin-max',
                                'value'=>$prop_ugol_naklona_golenimin_max,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_ugol-naklona-golenimin-max' => $thedata), $Attributes);
                }


              if($prop_kolichestvo_sekcij){
                            wp_set_object_terms($prop_kolichestvo_sekcij, 'pa_kolichestvo-sekcij');
                            $thedata = Array(
                                'name'=>'pa_kolichestvo-sekcij',
                                'value'=>$prop_kolichestvo_sekcij,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_kolichestvo-sekcij' => $thedata), $Attributes);
                }



                 if($prop_ugol_naklona_spinki_min_max){
                            wp_set_object_terms($prop_ugol_naklona_spinki_min_max, 'pa_ugol-naklona-spinki-min-max');
                            $thedata = Array(
                                'name'=>'pa_ugol-naklona-spinki-min-max',
                                'value'=>$prop_ugol_naklona_spinki_min_max,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_ugol-naklona-spinki-min-max' => $thedata), $Attributes);
              }



                if($prop_vid_reabilitacii){
                            wp_set_object_terms($prop_vid_reabilitacii, 'pa_vid-reabilitacii');
                            $thedata = Array(
                                'name'=>'pa_vid-reabilitacii',
                                'value'=>$prop_vid_reabilitacii,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_vid-reabilitacii' => $thedata), $Attributes);
              }


                if($prop_regulirovka_vysoty_min_max_mm){
                            wp_set_object_terms($prop_regulirovka_vysoty_min_max_mm, 'pa_regulirovka-vysoty-min-max-mm');
                            $thedata = Array(
                                'name'=>'pa_regulirovka-vysoty-min-max-mm',
                                'value'=>$prop_regulirovka_vysoty_min_max_mm,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_regulirovka-vysoty-min-max-mm' => $thedata), $Attributes);
              }

                if($prop_type_regim_raboty){
                            wp_set_object_terms($prop_type_regim_raboty, 'pa_rezhim-raboty');
                            $thedata = Array(
                                'name'=>'pa_rezhim-raboty',
                                'value'=>$prop_type_regim_raboty,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_rezhim-raboty' => $thedata), $Attributes);
              }


                if($prop_diametr_bloka_osveshheniya_mm){
                            wp_set_object_terms($prop_diametr_bloka_osveshheniya_mm, 'pa_diametr-bloka-osveshheniya-mm');
                            $thedata = Array(
                                'name'=>'pa_diametr-bloka-osveshheniya-mm',
                                'value'=>$prop_diametr_bloka_osveshheniya_mm,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_diametr-bloka-osveshheniya-mm' => $thedata), $Attributes);
              }

                if($prop_uroven_osveshhennosti_klk){
                            wp_set_object_terms($prop_uroven_osveshhennosti_klk, 'pa_uroven-osveshhennosti-klk');
                            $thedata = Array(
                                'name'=>'pa_uroven-osveshhennosti-klk',
                                'value'=>$prop_uroven_osveshhennosti_klk,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_rezhim-raboty' => $thedata), $Attributes);
              }

                if($prop_tip_svetilnikov){
                            wp_set_object_terms($prop_tip_svetilnikov, 'pa_tip-svetilnikov');
                            $thedata = Array(
                                'name'=>'pa_tip-svetilnikov',
                                'value'=>$prop_tip_svetilnikov,
                                'is_visible' => '1',
                                'is_variation' => '0',
                                'is_taxonomy' => '1'
                            );
                            $Attributes = array_merge (array( 'pa_tip-svetilnikov' => $thedata), $Attributes);
              }


             if($prop_type_rezanie_s_koagulaciei){
                 wp_set_object_terms($prop_type_rezanie_s_koagulaciei, 'pa_rezanie-s-koagulyaciej-vt');
                 $thedata = Array(
                     'name'=>'pa_rezanie-s-koagulyaciej-vt',
                     'value'=>$prop_type_rezanie_s_koagulaciei,
                     'is_visible' => '1',
                     'is_variation' => '0',
                     'is_taxonomy' => '1'
                 );
                 $Attributes = array_merge (array( 'pa_rezanie-s-koagulyaciej-vt' => $thedata), $Attributes);
             }


            if($prop_type_mohnost_razreza){
                wp_set_object_terms($prop_type_mohnost_razreza, 'pa_moshhnost-razreza-vt');
                $thedata = Array(
                    'name'=>'pa_moshhnost-razreza-vt',
                    'value'=>$prop_type_mohnost_razreza,
                    'is_visible' => '1',
                    'is_variation' => '0',
                    'is_taxonomy' => '1'
                );
                $Attributes = array_merge (array( 'pa_moshhnost-razreza-vt' => $thedata), $Attributes);
            }

          if($prop_type_rabocha_chastota){
              wp_set_object_terms($prop_type_rabocha_chastota, 'pa_rabochaya-chastota-mgc');
              $thedata = Array(
                  'name'=>'pa_rabochaya-chastota-mgc',
                  'value'=>$prop_type_ganarator,
                  'is_visible' => '1',
                  'is_variation' => '0',
                  'is_taxonomy' => '1'
              );
              $Attributes = array_merge (array( 'pa_rabochaya-chastota-mgc' => $thedata), $Attributes);
          }


        if($prop_type_ganarator){
            wp_set_object_terms($prop_type_ganarator, 'pa_generator');
            $thedata = Array(
                'name'=>'pa_generator',
                'value'=>$prop_type_ganarator,
                'is_visible' => '1',
                'is_variation' => '0',
                'is_taxonomy' => '1'
            );
            $Attributes = array_merge (array( 'pa_generator' => $thedata), $Attributes);
        }


         if($prop_type_aparat){
                wp_set_object_terms($prop_type_aparat, 'pa_tip');
                $thedata = Array(
                    'name'=>'pa_tip',
                    'value'=>$prop_type_aparat,
                    'is_visible' => '1',
                    'is_variation' => '0',
                    'is_taxonomy' => '1'
                );
                $Attributes = array_merge (array( 'pa_tip' => $thedata), $Attributes);
         }


        if($prop_type_instrument){
            wp_set_object_terms($prop_type_instrument, 'pa_vid-instrumenta');
            $thedata = Array(
                'name'=>'pa_vid-instrumenta',
                'value'=>$prop_type_instrument,
                'is_visible' => '1',
                'is_variation' => '0',
                'is_taxonomy' => '1'
            );
            $Attributes = array_merge (array( 'pa_tip-endoskopii' => $thedata), $Attributes);
        }


        if($prop_type_endoskopii){
            wp_set_object_terms($prop_type_endoskopii, 'pa_tip-endoskopii');
            $thedata = Array(
                'name'=>'pa_tip-endoskopii',
                'value'=>$prop_type_endoskopii,
                'is_visible' => '1',
                'is_variation' => '0',
                'is_taxonomy' => '1'
            );
            $Attributes = array_merge (array( 'pa_tip-endoskopii' => $thedata), $Attributes);
        }


            if($prop_derzatel_flakona){
                wp_set_object_terms($prop_derzatel_flakona, 'pa_derzhatel-flakona-sht');
                $thedata = Array(
                    'name'=>'pa_derzhatel-flakona-sht',
                    'value'=>$prop_derzatel_flakona,
                    'is_visible' => '1',
                    'is_variation' => '0',
                    'is_taxonomy' => '1'
                );
                $Attributes = array_merge (array( 'pa_derzhatel-flakona-sht' => $thedata), $Attributes);
            }


            if($prop_type_stoika){
                wp_set_object_terms($prop_type_stoika, 'pa_stojka');
                $thedata = Array(
                    'name'=>'pa_stojka',
                    'value'=>$prop_type_stoika,
                    'is_visible' => '1',
                    'is_variation' => '0',
                    'is_taxonomy' => '1'
                );
                $Attributes = array_merge (array( 'pa_stojka' => $thedata), $Attributes);
            }


            if($prop_type_siduhka){
                wp_set_object_terms($prop_type_siduhka, 'pa_tip-sidushki');
                $thedata = Array(
                    'name'=>'pa_tip-sidushki',
                    'value'=>$prop_type_siduhka,
                    'is_visible' => '1',
                    'is_variation' => '0',
                    'is_taxonomy' => '1'
                );
                $Attributes = array_merge (array( 'pa_tip-sidushki' => $thedata), $Attributes);
            }

             if($prop_section){
                 wp_set_object_terms($prop_section, 'pa_kolichestvo-sekcij');
                $thedata = Array(
                'name'=>'pa_kolichestvo-sekcij',
                'value'=>$prop_section,
                'is_visible' => '1',
                'is_variation' => '0',
                'is_taxonomy' => '1'
             );
             $Attributes = array_merge (array( 'pa_kolichestvo-sekcij' => $thedata), $Attributes);
            }


             if($prop_material){
                    wp_set_object_terms($prop_material, 'pa_material');
                    $thedata = Array(
                        'name'=>'pa_material',
                        'value'=>$prop_material,
                        'is_visible' => '1',
                        'is_variation' => '0',
                        'is_taxonomy' => '1'
                    );
                    $Attributes = array_merge (array( 'pa_vmestimost-chel' => $thedata), $Attributes);
             }

            if($prop_vmestimost) {
                wp_set_object_terms($prop_vmestimost, 'pa_vmestimost-chel');
                $thedata = Array(
                    'name'=>'pa_vmestimost-chel',
                    'value'=>$prop_vmestimost,
                    'is_visible' => '1',
                    'is_variation' => '0',
                    'is_taxonomy' => '1'
                );
                $Attributes = array_merge (array( 'pa_vmestimost-chel' => $thedata), $Attributes);
            }


            if($prop_forma) {
                wp_set_object_terms($prop_forma, 'pa_forma');
                $thedata = Array(
                    'name'=>'pa_forma',
                    'value'=>$prop_forma,
                    'is_visible' => '1',
                    'is_variation' => '0',
                    'is_taxonomy' => '1'
                );
                $Attributes = array_merge (array( 'pa_forma' => $thedata), $Attributes);
            }


             if($prop_type_spa) {
                 wp_set_object_terms($prop_type_spa, 'pa_vid-spa-bassejna');
                 $thedata = Array(
                     'name'=>'pa_vid-spa-bassejna',
                     'value'=>$prop_type_spa,
                     'is_visible' => '1',
                     'is_variation' => '0',
                     'is_taxonomy' => '1'
                 );
                 $Attributes = array_merge (array( 'pa_vid-spa-bassejna' => $thedata), $Attributes);
             }


                if($prop_num_forsun) {
                    wp_set_object_terms($prop_num_forsun, 'pa_kolichestvo-forsunok-sht');
                    $thedata = Array(
                        'name'=>'pa_kolichestvo-forsunok-sht',
                        'value'=>$prop_num_forsun,
                        'is_visible' => '1',
                        'is_variation' => '0',
                        'is_taxonomy' => '1'
                    );
                    $Attributes = array_merge (array( 'pa_kolichestvo-forsunok-sht' => $thedata), $Attributes);
                }


                if($city_prop) {
                    wp_set_object_terms($post_id, $city_prop, 'pa_strana-proisxozhdeniya');
                    $thedata = Array(
                        'name'=>'pa_strana-proisxozhdeniya',
                        'value'=>$city_prop,
                        'is_visible' => '1',
                        'is_variation' => '0',
                        'is_taxonomy' => '1'
                    );
                    $Attributes = array_merge (array( 'pa_strana-proisxozhdeniya' => $thedata), $Attributes);
                }



                if($objom_prop){

                    wp_set_object_terms($post_id, $objom_prop, 'pa_zadavaemyj-obyom-ml');
                    $thedata = Array(
                        'name'=>'pa_zadavaemyj-obyom-ml',
                        'value'=>$objom_prop,
                        'is_visible' => '1',
                        'is_variation' => '0',
                        'is_taxonomy' => '1'
                    );
                    $Attributes = array_merge (array( 'pa_zadavaemyj-obyom-ml' => $thedata), $Attributes);

                }


                if($brend) {
                    wp_set_object_terms($post_id, $brend, 'pa_brend');
                    $thedata = Array(
                        'name'=>'pa_brend',
                        'value'=>$brend,
                        'is_visible' => '1',
                        'is_variation' => '0',
                        'is_taxonomy' => '1'
                    );
                    $Attributes = array_merge (array( 'pa_brend' => $thedata), $Attributes);

                }


                if($prop_functional){

                    wp_set_object_terms($post_id, $prop_functional, 'pa_funkcii');
                    $thedata = Array(
                        'name'=>'pa_funkcii',
                        'value'=>$prop_functional,
                        'is_visible' => '1',
                        'is_variation' => '0',
                        'is_taxonomy' => '1'
                    );
                    $Attributes = array_merge (array( 'pa_funkcii' => $thedata), $Attributes);

                }


                if($prop_type_item){
                    wp_set_object_terms($post_id, $prop_type_item, 'pa_naznachenie');
                    $thedata = Array(
                        'name'=>'pa_naznachenie',
                        'value'=>$prop_type_item,
                        'is_visible' => '1',
                        'is_variation' => '0',
                        'is_taxonomy' => '1'
                    );
                    $Attributes = array_merge (array( 'pa_naznachenie' => $thedata), $Attributes);
                }


        update_post_meta( $post_id, '_product_attributes', $Attributes);




        require_once(ABSPATH . 'wp-admin/includes/file.php');
        require_once(ABSPATH . 'wp-admin/includes/media.php');
        require_once(ABSPATH . "wp-admin" . '/includes/image.php');


        $tmp = download_url( $thumb_url );

        if(!is_wp_error($tmp)) {

       // Set variables for storage
       // fix file name for query strings

        preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $thumb_url, $matches);
        $file_array['name'] = basename($matches[0]);
        $file_array['tmp_name'] = $tmp;
        //print_r ($file_array);
        //use media_handle_sideload to upload img:
        $thumbid = media_handle_sideload($file_array, $post_id, $NameProd); //Описание изображения
        set_post_thumbnail($post_id, $thumbid);}


/*
        foreach($image_gallery as $key => $itemImg){

        $values = pq($itemImg);
            $value = $hostlink.$values->attr('href');
            echo $value.'<br>';

                //print_r($tmp2);
                $tmp2 = download_url( $value );
                if ($tmp2) {
                    // fix file name for query strings
                    preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $value, $matches);
                    $file_array2['name'] = basename($matches[0]);
                    $file_array2['tmp_name'] = $tmp2;
                    $imgID[$key] = media_handle_sideload( $file_array2, $post_id, $NameProd);   //Описание изображения
                    //print_r($imgID);
                };


            update_post_meta( $post_id, '_product_image_gallery', implode(", ", $imgID));
        };
*/

        shell_exec('rm -rf /tmp/*');

       /* break;*/


    }





 if($_GET['page'] < $_GET['stop']){
        $page = $_GET["page"]+1;
        echo '
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

<script>   
   $( document ).ready(function() {
     setTimeout(function() {
     window.location.href = "?url='.$_GET["url"].'&page='.$page.'&stop='.$_GET["stop"].'&cat='.$_GET["cat"].'"; 
 }, 1000);
});

</script>   ';
    }




}
?>


Комментарии (49)