Posts posted by Lafko
-
-
-
11 часов назад, Respected сказал:
Тема не актуальная, написано же
Что значит не актуальная? Я создал тему у себя на форуме, и пытаюсь оставить сообщение в этой же теме, но вот такое сообщение получаю, но в тоже время другой пользователь может оставить сообщение без этой ошибки. Подозреваю что это связано с объединением двух сообщений в один пост. Та же ошибка была после того как второй администратор попытался отредактировать моё сообщение. Я в разных местах получаю похожую ошибку, например в виджете когда пытаюсь добавить рекомендуемый продукт. Это началаось именно с 4.4.1 версии в 4.4.0 такого не было...
-
-
-
-
Подскажите как сломать счета продления? Чтобы их нельзя было продлевать даже если доступна кнопка продления.
Дело в том что IPS не генерирует лицензионный ключ если не включена функция продления счета
Дело в том что у меня на форуме при покупке данный ключ используется для доступа к программе и если пользователь случайно оплатит счет продления то новый ключ ему не придет. Новый ключ приходит только при новой покупке. Я думал что поможет указать счет продления через пару лет, но кривой IPS формирует его сразуМне надо убрать эту кнопку
-
В 27.01.2019 в 15:31, Daniil145 сказал:
для 4.4 есть возможность достать?
-
-
-
Если у кого-то из способов оплаты пропали методы оплаты то вам надо в файл по пути /applications/nexus/sources/Gateway/Gateway.php добавить в функцию gateways() ваш метод оплаты. Пример ниже.
public static function gateways() { $return = array( 'Stripe' => 'IPS\nexus\Gateway\Stripe', 'Braintree' => 'IPS\nexus\Gateway\Braintree', 'PayPal' => 'IPS\nexus\Gateway\PayPal', 'AuthorizeNet' => 'IPS\nexus\Gateway\AuthorizeNet', 'TwoCheckout' => 'IPS\nexus\Gateway\TwoCheckout', 'Manual' => 'IPS\nexus\Gateway\Manual', 'Robokassa' => 'IPS\nexus\Gateway\Robokassa', 'Payeer' => 'IPS\nexus\Gateway\Payeer', ); if ( \IPS\NEXUS_TEST_GATEWAYS ) { $return['Test'] = 'IPS\nexus\Gateway\Test'; } return $return; }
-
2 часа назад, Lafko сказал:
У меня слдетели модули оплаты после обновления до 4.4.1 подскажите как восстановить?
Или может быть у кого-то есть
https://invisioncommunity.com/files/file/7658-robokassa-payment-gateway/ ?Посмотрел изменения в 4.4.1
Commerce
-
Removed Braintree option for new payment gateways.
Что это значит?
-
Removed Braintree option for new payment gateways.
-
У меня слдетели модули оплаты после обновления до 4.4.1 подскажите как восстановить?
Или может быть у кого-то есть
https://invisioncommunity.com/files/file/7658-robokassa-payment-gateway/ ? -
-
-
3 минуты назад, WaNted сказал:
$this->purchase->expire возвращает объект \IPS\DateTime. Попробуйте использовать $this->purchase->expire->getTimestamp().
К сожалению не работает
если expire получает значение после метода save то скорее всего надо в другой метод вставлять код, только я вот без понятия в какой
-
1 час назад, WaNted сказал:
Вы можете нормально описать что в итоге Вам нужно? Зачем Вы трогаете запрос который относится к \IPS\nexus\Purchase::tree()? Покажите весь Ваш код (именно Ваш, а не весь класс целиком). Если все Ваши изменения находятся в классе IPS\nexus\Purchase\LicenseKey, то не нужно посылать никакие запросы, информация о покупке текущего ключа находится в переменной $this->purchase. Нужное Вам значение (ps_expire - ps_start) можно получить так: $this->purchase->expire - $this->purchase->start.
Вот что мне надо "Из таблицы _nexus_purchases взять значение ps_expire - ps_start где в таблице xxxxxxx_nexus_licensekeys.lkey_purchase как xxxxxxx_nexus_purchases.ps_id"
Выше я привел пример нужного мне запроса т.к. я не знаю как его составить.
$this->purchase->expire - $this->purchase->start - не работают, а точнее в них пустые значения если я пытаюсь их использовать из метода saveЯ не понимаю какой именно код вы хотите увидеть.
public function save() { if ( !$this->key ) { do { $this->key = $this->generate(); } while ( \count( \IPS\Db::i()->select( '*', 'nexus_licensekeys', array( 'lkey_key=?', $this->key ) ) ) ); /* create external connect */ \IPS\Db::i( 'xxxxxxx_nexus_purchases', array( 'sql_host' => '***', 'sql_user' => '***', 'sql_pass' => '***', 'sql_database' => '***', ) ); $purchase = $this->get_purchase(); \IPS\Db::i('_nexus_purchases')->insert('_nexus_purchases', array( 'ps_k' => $this->key, 'ps_a' => '1', 'Res' => $purchase->member->member_id, 'ps_time_k' => $this->purchase->expire, /* вот сюда не передаеться нужное мне значение */ )); } return parent::save(); }
-
Помогите пожалуйста переделать запрос так чтобы он брал 2 нужных мне значения из другой таблицы делал вычитание и присваивал результат в переменную
\IPS\Db::i()->select( '*', 'nexus_purchases', $where, 'ps_start DESC', $limit ), 'IPS\nexus\Purchase' ) as $purchase )
Из таблицы _nexus_purchases взять значение ps_expire - ps_start где в таблице xxxxxxx_nexus_licensekeys.lkey_purchase как xxxxxxx_nexus_purchases.ps_id
-
10 часов назад, siv1987 сказал:
Да не в коде, а в переменной. Где вы хотите получить, там и смотрите.
$purchase->expire
Если в том же месте где находится код для вставки в другую бд, то скорее всего так
$purchase = $this->get_purchase(); $purchase->expire;
9 часов назад, WaNted сказал:Если так же в методе save(), то $this->purchase->expire
Нет, не работает
-
-
15 минут назад, siv1987 сказал:
В таблицу?
\IPS\Db::i('remote_database_name')->insert('your_table', array( 'license_key' => $this->key, 'field2' => 'value2', 'field3' => 'value2', ));
И второй вопрос, как мне получить из другой таблицы форума количество оставшихся дней подписки?
SELECT * FROM `_nexus_purchases`.`ps_expire` WHERE `ps_member` LIKE '$purchase->member->member_id'
Только вот $purchase->member->member_id - не получает id пользователя
-
siv1987 И ещё 2 вопроса.
При переносе ключа мне в это-же поле ещё надо добавить данные подскажи пожалуйста как это сделать.
Я думал вот так
\IPS\Db::i('remote_database_name')->insert('your_table', array('license_key' => $this->key, 'ban' => 1));
-
3 минуты назад, siv1987 сказал:
Нет.
if ( !$this->key ) { do { $this->key = $this->generate(); } while ( \count( \IPS\Db::i()->select( '*', 'nexus_licensekeys', array( 'lkey_key=?', $this->key ) ) ) ); /* create external connect */ \IPS\Db::i( 'remote_database_name', array( 'sql_host' => 'host', 'sql_user' => 'user', 'sql_pass' => 'pass', 'sql_database' => 'database', ) ); \IPS\Db::i('remote_database_name')->insert('your_table', array('license_key' => $this->key)); }
Великолепно, работает. Огромное спасибо!
-
-
3 минуты назад, siv1987 сказал:
Есть ли доступ у форума к базе данных в которую мне надо внести ключ? Нет нету. Соединение надо создать заново
Вот так работать будет?
public function save() { \IPS\Db::i( 'remote_database_name', array( 'sql_host' => 'host', 'sql_user' => 'user', 'sql_pass' => 'pass', 'sql_database' => 'database', ) ); if ( !$this->key ) { do { $this->key = $this->generate(); } while ( \count( \IPS\Db::i()->select( '*', 'nexus_licensekeys', array( 'lkey_key=?', $this->key ) ) ) ); while ( \count( \IPS\Db::i('remote_database_name')->insert('you_table', array('license_key' => $this->key) ) ) ); } return parent::save(); }
Не отправляются сообщения
in Invision Community 4 Support
нет