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