Домой Каталог: Плагины WordPress WP Events&Places Редирект после успешной оплаты
18ответ(ов) в теме
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
1
21:17
Версия плагина: 1.4.2

Клиенты часто пишут неправильную почту, из за этого приходится исправлять почту и отправлять билеты им повторно. Вместо этого хотелось бы, чтобы после успешной оплаты пользователя перенаправляло, не просто на страницу "Успешной оплаты", а обратно на страницу заказа.
Не совсем понимаю как это сделать.
Понимаю что платёжная система отправляет номер заказа после успешной оплаты, раз создаётся строка в таблице evpl_payments.
Но как и где прописать редирект с evpl_get_hash_url($evpl_order->order_hash) не совсем понимаю.
Прошу помощи с этим, думаю другим владельцам данного плагина тоже будет интересно.

0
Андрей CS
не в сети 6 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16986
2
21:29

Добрый день.
В папке events-and-places/payment-gateways/ лежат файлы отвечающие за взаимодействие с платежной системой, откройте файл к которому у вас настроено подключение и замените

wp_redirect(get_permalink($evpl_options['page_successfully_pay'])); exit;

на это
$order = evpl_get_order( parent::get_pay((object)$data)->order_id );
wp_redirect(get_permalink(evpl_get_hash_url($order->order_hash))); exit;

1
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
3
02:27

Заменил, всё равно перекидывает на страницу успешной оплаты.
Вся функция:

			function success(){
				global $evpl_options;

				$data = array(
					'payment_id' => $_REQUEST["clientid"]
				);

				if(parent::get_pay((object)$data)){
					$order = evpl_get_order( parent::get_pay((object)$data)->order_id );
					wp_redirect(get_permalink(evpl_get_hash_url($order->order_hash))); exit;
				} else {
					wp_die(__('Запись о платеже не найдена в базе данных'));
				}
			}

0
Андрей CS
не в сети 6 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16986
4
08:39

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

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
5
14:48

Указана именно эта страница.

0
Андрей CS
не в сети 6 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16986
6
18:33

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

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
7
13:58

Настройки самого плагина:

0
Андрей CS
не в сети 6 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16986
8
18:01

если оплата производится функционалом самого плагина значит вносили изменения в неверном файле

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
9
22:35

Повозился с настройками платёжной системы.
Теперь после оплаты переводит на саму страницу "success".

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
10
23:38

Есть ещё какие нибудь варианты?
Мне кажется что не совсем верно передаётся номер заказа:
$order = evpl_get_order( parent::get_pay((object)$data)->order_id );
Но как и где это проверить?

На данный момент редирект идёт на страницу success.

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
11
13:05

В class-payments нашёл функцию:

    function get_success($connect){
        global $evpl_options,$evpl_payments;
        
        if(!$connect) $connect = $evpl_options['connect_sale'];

        if(isset($evpl_payments[$connect])){
            $obj = new $evpl_payments[$connect]->class;
            $method = 'success';
            $obj->$method();
        }else{
            return false;
        }

        if($this->get_pay()){
            wp_redirect(get_permalink($evpl_options['page_successfully_pay'])); exit;
        } else {
            wp_die(__('Данные платежа не найдены в базе данных.'));
        }
    }

Это не одно и тоже?

0
Андрей CS
не в сети 6 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16986
12
19:24

Fruit сказал(а)
Мне кажется что не совсем верно передаётся номер заказа

попробуйте распечатать что внутри $data, через print_r($data); тогда видно будет передается ли вообще номер заказа из платежной системы

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
13
17:51

Андрей CS сказал(а)
попробуйте распечатать что внутри $data

Пробовал, но не совсем понял где именно она потом выводится.

Поступил ответ от тех поддержки платёжной системы:

Вы можете использовать в форме оплаты параметр user_result_callback (

Вы не можете просматривать опубликованные ссылки

:~:text=user_result_callback )для перенаправления клиента, если используете интеграцию методом HTML-форма. В этом случае будут переданы query параметры payment_id, clientid и result (значения success или failed).

0
Андрей CS
не в сети 6 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16986
14
18:38

когда пользователь возвращается на сайт, то он должен пройти через метод success из сообщения выше

Вы не можете просматривать опубликованные ссылки

там можно распечатать и вывести на страницу принятые параметры, например так

print_r($_REQUEST);exit;

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

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
15
23:40

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

Просто переходит на страницу /success/ и ничего не выводит.

0
Андрей CS
не в сети 6 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16986
16
17:29

что за платежная система?

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
17
20:49

Андрей CS сказал(а)
что за платежная система?

paykeeper

0
Андрей CS
не в сети 6 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16986
18
12:06

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

0
Вы не имеете права на публикацию сообщений в этой теме