Перейти к содержанию
Официальный форум поддержки Simpla

alexivchenko

Пользователь
  • Публикаций

    359
  • Зарегистрирован

Сообщения, опубликованные alexivchenko

  1. 7 часов назад, volonter сказал:

    А при чем тут редирект? если с морды добавить товар в корзину, в информере он появляется, перехожу например в контакты, в информере - 0 товаров, обновляю контакты - товар в информере появляется. Так же на других страницах. Тоже самое с удалением.

    Скорее всего у вас FastPanel управление хостингом или сервером. Если так, то нужно в панели убрать кеширование и снизать сжатие для домена. 
    Иначе нужно смотреть индивидуально. 

  2. В 15.08.2022 в 19:00, megauser сказал:

    Помогите с запросом чтоб сделать фильтр в админке по товарам без фото. Примерно знаю где что добавить, но сам запрос составить не могу

    в api/Products.php

    public function get_products($filter = array()) {
    ..
    $has_images_filter = '';
    ..
    if(isset($filter['has_images'])) {
    	$has_images_filter = $this->db->placehold('AND (SELECT count(*)>0 FROM __images pi WHERE pi.product_id=p.id LIMIT 1) = ?', intval($filter['has_images']));
    }
    ..
    $has_images_filter
    ..
    }
    
    public function count_products($filter = array()) {
    ..
    $has_images_filter = '';
    ..
    if(isset($filter['has_images'])) {
    	$has_images_filter = $this->db->placehold('AND (SELECT count(*)>0 FROM __images pi WHERE pi.product_id=p.id LIMIT 1) = ?', intval($filter['has_images']));
    }
    ..
    $has_images_filter
    ..
    }

    в simpla/ProductsAdmin.php

    if($f = $this->request->get('filter', 'string')) {
    ..
    elseif($f == 'without_images') {
    	$filter['has_images'] = 0;
    }
    }

    в simpla/design/html/products.tpl 

    <!-- Фильтры -->
    <ul>
    ..
    <li {if $filter=='without_images'}class="selected"{/if}>
    	<a href="{url keyword=null brand_id=null category_id=null page=null limit=null filter='without_images'}">Без изображений</a>
    </li>
    </ul>
    <!-- Фильтры -->

     

  3. Какая-то индивидуальная проблема в системе

    Либо у клиента стоит автовставка номера в браузере и при отправке формы подставляется номер введенный им ранее на других ресурсах 

    Чтобы это выяснить, нужно смотреть код и делать тестовые заказы. Вылавливать отправку и смотреть.

  4. {literal}
    <script type="text/javascript">
    	$('.credit-form-submit').on('click',function(){
    		tinkoff.createDemo(
        		{
          		sum: 100500,
          		items: [{name: 'iphone 11', price: 100000, quantity: 1}, {name: 'Чехол', price: 500, quantity: 1}],
         		demoFlow: 'sms',
          		promoCode: 'installment_0_0_6_6',
          		shopId: 'SHOP_ID',
          		showcaseId: 'SHOWCASE_ID',
        		},
        		{view: 'newTab'}
      		)
    	});
    </script>
    {/literal}

     

  5. 3 часа назад, marsell сказал:

    А как можно то? Дайте решение если не жалко

    в view/View.php

    до 

    // Все валюты

    вставить 

    if($product_id = $this->request->get('id')){
    	$product_url = $this->products->get_product(intval($product_id));
    	if($product_url){
    		header('Location: /products/' . $product_url->url, true, 302);
    	} else {
    		header('Location: /', true, 302);
    	}
    }

    вызов 
    site.com/?id=8

  6. 1 минуту назад, Kami сказал:

    странная вещь, в режиме инкогнито не входя в админку, все супер, оформилось и редирект. а вот из под админки был вот такой трабл.

    надо смотреть где-то затирается сессия или задваивается

    может когда меняли код, забыли где-то убрать 

  7. Замените у себя в view/OrderView.php

    if($url = $this->request->get('url', 'string'))
    			$order = $this->orders->get_order((string)$url);
    		elseif(!empty($_SESSION['order_id']))
    			$order = $this->orders->get_order(intval($_SESSION['order_id']));
    		else
    			return false;

    на 

    		if($url = $this->request->get('url', 'string')) {
    			$order = $this->orders->get_order((string)$url);
    		} elseif(!empty($_SESSION['order_id'])) {
    			$order = $this->orders->get_order(intval($_SESSION['order_id']));
    			header('Location: ' . $this->config->root_url . '/order/' . $order->url, true, 302);
    		} else {
    			return false;
    		}	

    Получается, если у нас в $_SESSION['order_id'] есть id номер заказа и мы переходим на страницу https://site.ru/order/, то нас перекинет на станицу с url заказа https://site.ru/order/453453545

  8. 6 минут назад, Kami сказал:

    Спасибо при оформлении заказа

    
    Array ( [current_page] => /cart/ [id] => bfe7d172342ca3b926b565fb8546baa6 [admin] => admin [order_id] => 65 )

    Получается это url заказа?  - bfe7d172342ca3b926b565fb8546baa6

    
    		//$order->url = md5(uniqid($this->config->salt, true));
    		$order->url = substr(time(), 2, 8);

    Тут в функции add_order , доработка которая делает числовой , возможно из за нее и весь сыр бор?

    1.

    Забудем про 

    $order->url

    2.

    [id] => bfe7d172342ca3b926b565fb8546baa6

    Никакого отношения не имеет к заказу и url

    3. 

    Нас интересует 

    [order_id] => 65

    4. 

    Перейдите на страницу https://site.ru/order/ и вы увидите на этой странице данные заказа под №65?

     

  9. @Kosjak76 прав

    При переходе, если в $_SESSION['order_id'] есть данные, допустим заказ №60 то клиенту на странице https://site.ru/order/ будет показана информация заказа №60 даже без url

    Вам нужно смотреть, что с сессией 

  10. В 15.02.2022 в 11:34, Kami сказал:

    При настройке робокассы указываю 

    Success Url -  https://site.ru/order/

    Fail Url -  https://site.ru/order/

    Но при возврате кидает на страницу  https://site.ru/order/  ну и соответственно 404.

    Кто недавно ставил робокассу? Может что поменялось?

    Кстати на сайте дорабатывался url заказа.(не мной) , по сути переделан в числовой чтоб можно было отслеживать заказ.

     

     

    в Robokassa/callback.php есть 

    header('Location: ' . $simpla->config->root_url . '/order/' . $order->url, true, 302);

    возможно идет верный редирект на страницу https://site.ru/order/ и должно быть подставлен url заказа, но так как у вас url был переделан видимо есть какие-то проблемы с выводом 

    $order->url

     

  11. 30 минут назад, Kami сказал:

    Так пробовал , но при  оплате и возврате в магазин, всё равно кидает на site.ru/order/

    и без вариантов.

    Нужно прописать не в конце файла

    die(print_r($_POST));

    а допустим выше 

    $order_id = intval($_POST['InvId']);

     

  12. 26 минут назад, Kami сказал:

    а блин .Точно, но по факту получается робокасса не возвращает постом номер заказа, хотя при отправке заказа и его оплате все передается и оплата на робокассе проходит как надо

    
    // Установим статус оплачен
    $simpla->orders->update_order(intval($order->id), $order_update);
    
    // Спишем товары  
    $simpla->orders->close(intval($order->id));

    Ну раз это срабатывает, то значит в принципе $order->id на месте.

    Получается как мне посмотреть что прилетает POST запросом с робокассы?

    die(print_r($_POST));

  13. 5 минут назад, alexivchenko сказал:

    Так там получение id заказа методом POST а не GET

    Для теста, замените 

    $order_id = intval($_POST['InvId']);

    на 

    $order_id = intval($_GET['InvId']);

    И проверяйте site.ru/payment/Robokassa/callback.php?InvId=60

  14. Робокасса отработала нормально.

    Тут нужно смотреть на работу callback. Если статус заказ меняется и он становится оплачен. Дальше должна быть отправка писем покупателю и админу, может быть ошибка отправки и происходит остановка. Дальше нужно распечатать $order->url и посмотреть вывод 

  15. 1 час назад, cypherpunks сказал:

    Форков-плагиатов и так уже достаточно.

    Что тогда мешает вам перейти на OkayCMS. Тот же форк Simpla. Только там ребята обновили структуру и переписали код, работает под PHP8. Местами ещё встречается логика Simpla. Модули пишутся не сложно, не трогая корневой код. Так что перенести плагины с Simpla, если у вас их много, дело времени. 

×
×
  • Создать...