2015-04-21 3 views
0

У меня есть проблема с WooCommerce и я думаю, что им довольно близко, чтобы найти решение, но есть ошибка:WooCommerce конкретная цена меняется

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

код здесь:

`if (is_user_logged_in()) { 

add_filter('woocommerce_get_price','change_price', 10, 2); 
add_filter('woocommerce_get_regular_price','change_price', 10, 2); 
add_filter('woocommerce_get_sale_price','change_price', 10, 2); 
} 

function change_price($price, $productd){ 
    $vrednost=$productd->get_sku(); 
     $current_user = wp_get_current_user(); //uzimam trenutno logovanog korisnika 
      global $wpdb; 
      global $mydb; 
      global $cena; 
      $cena=$productd->price; 
      $mydb= new wpdb('root','','wordpress123','localhost'); 
      $mydb->show_errors(); 
      $userna=$current_user->user_login; 
      $paypal_id = $mydb->get_results("select sifra_kupca from wp_prodajno_mjesto WHERE user ='$userna'"); 
       foreach ($paypal_id as $objs) { 
       $sifrovani=$objs->sifra_kupca; 
       } 
      $standard_rabat=$mydb->get_results("select standardni_rabat from wp_kupac WHERE sifra_kupca ='$sifrovani'"); 
       foreach ($standard_rabat as $objs) { 
       $ispis=$objs->standardni_rabat; 
       } 
      $konacnorabat=$ispis; 
      $price =intval($productd->price)-((intval($ispis)/100)*$productd->price); 
      $ima=$mydb->get_results("select sifra_kupca from wp_cjenik_kupca WHERE sifra_kupca ='$sifrovani'");  
      foreach ($ima as $objs) { 
       $ispis7=$objs->sifra_kupca; 
       } 
      if ($ispis7==NULL) 
      { 
      return $price; 
      exit; 
      } 
      $grupa=$mydb->get_results("select grupa_artikala from wp_cjenik_kupca WHERE sifra_kupca ='$sifrovani'"); 
      foreach ($grupa as $objs) { 
       $ispis4=$objs->grupa_artikala; 
       } 
      if (!($ispis4==NULL)) 
      { 
      global $post; 
      $args = array('taxonomy' => 'product_cat',); 
      $terms = wp_get_post_terms($post->ID,'product_cat', $args); 
      $count = count($terms); 
      if ($count > 0) { 
       foreach ($terms as $term) { 
       $cata=$term->name; 
       } 
      } 
      $sifbaza=$productd->get_sku(); 
      $nc=$mydb->get_results("select cjenik_cijena from wp_cjenik_kupca WHERE (sifra_kupca ='$sifrovani' AND sifra_artikla='$sifbaza')"); 
      foreach ($nc as $objs2) { 
       $novacen=$objs2->cjenik_cijena; 
       } 
      if (!($novacen==NULL)) 
       { 
       $konacnoprice=$novacen; 
       $rabat2=$mydb->get_results("select cjenik_rabat from wp_cjenik_kupca WHERE (sifra_kupca ='$sifrovani' AND sifra_artikla='$sifbaza') "); 
      foreach ($rabat2 as $objs5) { 
       $konacnorabat=$objs5->cjenik_rabat; 
       } 
       } 
      else { 
        $konacnoprice=$productd->price; 
        $rabat3=$mydb->get_results("select cjenik_rabat from wp_cjenik_kupca WHERE (sifra_kupca ='$sifrovani' AND grupa_artikala='$cata') "); 
      foreach ($rabat3 as $objs5) { 
       $konacnirabat=$objs5->cjenik_rabat; 
       } 
       } 

      if (!($konacnirabat==NULL)) 
       {$price='5000';return $price; 
       exit;} 
      else {$price=(intval($konacnoprice)-((intval($konacnorabat)/100)*intval($konacnoprice)));} 
       return $price; 
       exit; 
      } 
} 
` 

Теперь у меня есть проблема в одном случае:

`if (!($konacnirabat==NULL)) 
       {$price='5000';return $price; 
       exit;}` 

Так все цены правильно изменились на магазин странице, но когда я Добавить в корзину конкретного продукта где поле $ konacnirabat не является нулевым, это приводит к неправильному ценовому результату в корзине.

Здесь также скриншоты с таблицами базы данных, необходимых для этого: LINK

ответ

0

я столкнулся с той же проблемой в последние несколько дней, и я нашел решение - вы должны использовать различные фильтры - один, когда продукт добавить в корзину и один, когда цена поступает с сеанса тележки. Вот где я нашел ответ: source

+0

Я изменил некоторые параметры в своем коде, и он работает! Но теперь есть проблема - это работает только на локальном хосте (xamp). Когда я переносил свой сайт на хостинг, на странице магазина отображается правильная цена ТОЛЬКО ДЛЯ ПЕРВОГО продукта в магазине. Когда он добавлен в карточку, добавляется хорошая цена. – Lanchushki

Смежные вопросы