<?php
function add_payment($abonent_id, $amount, $action, $rnn, $rc) {
global $wpdb;
$table_name = $wpdb->prefix . ‘payments’;
$check = $wpdb->get_results( «SELECT id FROM $table_name as p WHERE p.abonent_id=$abonent_id AND p.rnn=’$rnn’ AND p.amount LIKE ‘$amount’ «);
if(empty($check) && !empty($abonent_id))
$wpdb->insert(
$table_name,
array(
‘abonent_id’ => $abonent_id,
‘amount’ => $amount,
‘action’ => $action,
‘date’ => current_time(‘mysql’),
‘rnn’ => $rnn,
‘rc’ => $rc
)
);
}
function get_last_order() {
global $wpdb;
// $table_name = $wpdb->prefix . ‘payments’;
// $get_id = $wpdb->get_row(«SHOW TABLE STATUS LIKE ‘$table_name’»);
// $last_id = $get_id->Auto_increment;
$last_id = time();
return str_pad($last_id, 20, ‘0’, STR_PAD_LEFT);
}
function generate_payment_form($abonent_id, $amount) {
$key1 = ’63BE9B28789C32653F4771337E380F9F’;
$key2 = ‘3DB48C7E9833BC4BF8378513734EF512’;
$_merchant_name = ‘CHERNIVTSI TEPLO’;
$_merchant_url = ‘https://teplo.cv.ua/account’;
$_backhref = ‘https://teplo.cv.ua/account?payments=1’;
$_merchant = ‘22500597’;
$_terninal = ‘22500755’;
$_email = ‘teplo.cv.ua@gmail.com’;
$_currency = ‘UAH’;
$_country = ‘UA’;
$_merchant_gmt = ‘+2’;
$auth_array = array(
‘AMOUNT’ => $amount,
‘CURRENCY’ => $_currency,
‘ORDER’ => get_last_order(),
‘DESC’ => $abonent_id,
‘MERCH_NAME’ => $_merchant_name,
‘MERCH_URL’ => $_merchant_url,
‘MERCHANT’ => $_merchant,
‘TERMINAL’ => $_terninal,
‘EMAIL’ => $_email,
‘TRTYPE’ => ‘1’,
‘COUNTRY’ => $_country,
‘MERCH_GMT’ => $_merchant_gmt,
‘TIMESTAMP’ => gmdate(‘YmdHis’),
‘NONCE’ => md5(rand(1, 10000)),
‘BACKREF’ => $_backhref,
);
$sign_key = pack(«H*», bin2hex(pack(‘H*’, $key1) ^ pack(‘H*’, $key2)));
$auth_array[‘P_SIGN’] = encodePSign($auth_array, $sign_key);
$form = »;
$form .= ‘<form method=»POST» action=»https://3ds.oschadbank.ua/cgi-bin/cgi_link» class=»form-pay form-style»>’;
foreach ($auth_array as $k => $v)
$form .= ‘<input type=»hidden» name=»‘ . $k . ‘» value=»‘ . $v . ‘»>’;
$form .= ‘<button type=»submit» class=»btn btn-primary»>Перейти до оплати</button>’;
$form .= ‘</form>’;
return $form;
}
function encodePSign($arr, $sign_key) {
$res = »;
foreach ($arr as $v) {
if (strlen($v) == 0) {
$res .= ‘-‘;
continue;
}
$res .= strlen($v);
$res .= $v;
}
return hash_hmac(‘sha1’, $res, $sign_key);
}
function generate_xml() {
global $wpdb;
$date_now = date(‘Y-m-d’);
$table_name = $wpdb->prefix . ‘payments’;
$payments = $wpdb->get_results( «SELECT p.abonent_id, p.amount, DATE(p.date) as date, p.rnn FROM $table_name as p WHERE p.rnn<>» AND p.action=’0′ AND DATE(p.date)=’$date_now’»);
$xml = ‘<payments>’;
foreach($payments as $p)
$xml .=‘
<payment>
<date>’.str_replace(‘-‘,»,$p->date).‘</date>
<value>’.$p->amount.‘</value>
<authCode>’.$p->rnn.‘</authCode>
<abonentID>’.$p->abonent_id.‘</abonentID>
</payment>
‘;
$xml .= ‘</payments>’;
$dom = new DOMDocument(‘1.0’);
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml);
$dom->save(get_template_directory().‘/payments/payments_’.$date_now.‘.xml’);
$attachments = array(get_template_directory().‘/payments/payments_’.$date_now.‘.xml’);
wp_mail( array(‘abon.cv@gmail.com’), ‘Онлайн платежі за ‘.$date_now, ‘Онлайн платежі за ‘.$date_now, ‘From: Водоканал <no-reply@vodokanal.cv.ua>’, $attachments );
}
add_action(‘admin_menu’, function(){
add_menu_page( ‘Онлайн платежі’, ‘Онлайн платежі’, ‘manage_options’, ‘payments’, ‘show_payments’, ‘dashicons-update’, 76 );
} );
function show_payments(){
global $wpdb;
$limit = 15;
$pagenum = isset( $_GET[‘pagenum’] ) ? absint( $_GET[‘pagenum’] ) : 1;
$offset = ( $pagenum — 1 ) * $limit;
echo ‘<h1>’.get_admin_page_title().‘</h1>’;
$table_name = $wpdb->prefix . ‘payments’;
if(isset($_GET[‘success’]) && $_GET[‘success’]==1)
$payments = $wpdb->get_results( «SELECT * FROM $table_name as p WHERE p.action=0 ORDER BY id DESC LIMIT $offset, $limit «);
else
$payments = $wpdb->get_results( «SELECT * FROM $table_name as p ORDER BY id DESC LIMIT $offset, $limit «);
$success_count = $wpdb->get_var( «SELECT COUNT(*) FROM $table_name WHERE action=0»);
$all_count = $wpdb->get_var( «SELECT COUNT(*) FROM $table_name» );
if(isset($_GET[‘success’]) && $_GET[‘success’]==1)
$num_of_pages = ceil($success_count/$limit);
else
$num_of_pages = ceil($all_count/$limit);
$all_status = (!isset($_GET[‘success’]) || $_GET[‘success’]!=1) ? ‘current’:»;
$suc_status = (isset($_GET[‘success’]) && $_GET[‘success’]==1) ? ‘current’:»;
echo ‘
<ul class=»subsubsub»>
<li class=»all»><a href=»admin.php?page=payments» class=»‘.$all_status.‘»>Всі платежі (‘.$all_count.‘)</a> |</li>
<li class=»active»><a href=»admin.php?page=payments&success=1″ class=»‘.$suc_status.‘»>Успішні (‘.$success_count.‘)</a></li>
</ul>
<div class=»wrap»>
‘;
$page_links = paginate_links( array(
‘base’ => add_query_arg( ‘pagenum’, ‘%#%’ ),
‘format’ => »,
‘prev_text’ => __( ‘«’, ‘text-domain’ ),
‘next_text’ => __( ‘»’, ‘text-domain’ ),
‘total’ => $num_of_pages,
‘current’ => $pagenum
) );
echo ‘
<table class=»wp-list-table widefat plugins»>
<thead>
<tr>
<td style=»width:5px;» id=»cb» class=»manage-column column-cb check-column»></td>
<td style=»width:15px;»></td>
<th scope=»col» id=»name» class=»manage-column column-name column-primary»>Особовий рахунок</th>
<th scope=»col» id=»amount» class=»manage-column column-description»>Сума (грн)</th>
<th scope=»col» id=»rnn» class=»manage-column column-description»>Код підтвердження</th>
<th scope=»col» id=»date» class=»manage-column column-description»>Дата</th>
<th scope=»col» id=»action» class=»manage-column column-description»>Дія</th>
<th scope=»col» id=»rc» class=»manage-column column-description»>Помилка</th>
</tr>
</thead>
<tbody id=»the-list»>
‘;
foreach($payments as $p) {
$stat = ($p->action==0) ? ‘active’:‘inactive’;
echo ‘
<tr class=»‘.$stat.‘»>
<th style=»width:5px;» scope=»row» class=»check-column»></th>
<td style=»width:15px;»>#’.$p->id.‘</td>
<td class=»plugin-title column-primary»>
‘.$p->abonent_id.‘
</td>
<td class=»column-description desc»>
‘.$p->amount.‘
</td>
<td class=»column-description desc»>
‘.$p->rnn.‘
</td>
<td class=»column-description desc»>
‘.$p->date.‘
</td>
<td class=»column-description desc»>
‘.$p->action.‘
</td>
<td class=»column-description desc»>
‘.$p->rc.‘
</td>
</tr>
‘;
}
echo ‘
</tbody>
</table>
‘;
if($page_links) {
echo ‘<style> .tablenav-pages span.current { height: 16px; border-color: #ddd; background: #f7f7f7; color: #a0a5aa; display: inline-block; min-width: 17px; border: 1px solid #ccc; padding: 5px 5px 7px; font-size: 16px; line-height: 1; font-weight: 400; text-align: center; } .tablenav .tablenav-pages a, .tablenav-pages-navspan { padding: 5px 5px 7px; } </style>’;
echo ‘<div class=»tablenav»><div class=»tablenav-pages» style=»margin: 1em 0″>’ . $page_links . ‘</div></div>’;
}
echo ‘</div>’;
}
function get_member_payments($abonent_id) {
global $wpdb;
$table_name = $wpdb->prefix . ‘payments’;
$limit = 10;
$payments = $wpdb->get_results( «SELECT * FROM $table_name WHERE abonent_id=$abonent_id ORDER BY id DESC LIMIT $limit «);
return $payments;
}
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Активные темы Темы без ответов
Ошибка при загрузке базы данных
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
1 2018-12-10 10:04:27 (изменено: Alexx25, 2018-12-10 10:06:21)
- Alexx25
- Редкий гость
- Неактивен
- Зарегистрирован: 2018-12-10
- Сообщений: 3
Тема: Ошибка при загрузке базы данных
Всем привет! Возникает такая ошибка:
> Статический анализ:
>
> Найдено 2 ошибок при анализе.
>
> Неожиданное начало выражения. (near «phpMyAdmin» at position 0)
> Неизвестный оператор. (near «SQL» at position 11)
> SQL запрос:
>
> phpMyAdmin SQL Dump — version 4.2.10.1 — http://www.phpmyadmin.net — — Хост: localhost — Время создания: Янв 20 2015 г., 15:27 — Версия сервера: 5.5.40-0+wheezy1 — Версия PHP: 5.4.4-14+deb7u9 SET SQL_MODE = «NO_AUTO_VALUE_ON_ZERO»
>
> Ответ MySQL: Документация
>
> #1064 — У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около ‘phpMyAdmin SQL Dump
> — version 4.2.10.1
> — http://www.phpmyadmin.net
> —
> — Хо’ на строке 1
Заранее благодарю за ответ!
2 Ответ от Hanut 2018-12-10 11:16:46
- Hanut
- Модератор
- Неактивен
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,722
Re: Ошибка при загрузке базы данных
Откройте дам в Notepad++ и посмотрите наличие комментария (два дефиса) перед первой строкой.
3 Ответ от Alexx25 2018-12-10 11:33:42
- Alexx25
- Редкий гость
- Неактивен
- Зарегистрирован: 2018-12-10
- Сообщений: 3
Re: Ошибка при загрузке базы данных
Hanut сказал:
Откройте дам в Notepad++ и посмотрите наличие комментария (два дефиса) перед первой строкой.
— phpMyAdmin SQL Dump
— version 4.2.10.1
— http://www.phpmyadmin.net
—
— Хост: localhost
— Время создания: Янв 20 2015 г., 15:27
— Версия сервера: 5.5.40-0+wheezy1
— Версия PHP: 5.4.4-14+deb7u9
4 Ответ от Hanut 2018-12-10 11:55:32
- Hanut
- Модератор
- Неактивен
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,722
Re: Ошибка при загрузке базы данных
Попробуйте в Notepad++ проверить наличие BOM байта при сохранении файла и сохраните файл без него.
5 Ответ от Alexx25 2018-12-10 12:07:29
- Alexx25
- Редкий гость
- Неактивен
- Зарегистрирован: 2018-12-10
- Сообщений: 3
Re: Ошибка при загрузке базы данных
Hanut сказал:
Попробуйте в Notepad++ проверить наличие BOM байта при сохранении файла и сохраните файл без него.
Спс) получилось)
Сообщения 5
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Why, when I try to do an order by query, do I always get an error telling me to check the syntax by the ORDER BY ‘order’ DESC?
Here’s my query:
SELECT * FROM posts ORDER BY order DESC;
What am I doing wrong?
Dharman♦
29.2k21 gold badges79 silver badges131 bronze badges
asked Apr 11, 2012 at 2:16
0
order
is a reserved word in SQL; case does not matter. It must be quoted when used as an identifier. From the MySQL Reserved Words documentation:
Certain words such as SELECT, DELETE, or BIGINT [or ORDER] are reserved and require special treatment for use as identifiers such as table and column names.
Traditional MySQL quotes:
SELECT * FROM posts ORDER BY `order` DESC;
Proper (ANSI) SQL quotes (some databases support [order]
as well):
SELECT * FROM posts ORDER BY "order" DESC;
Although I would consider renaming the column to avoid such confusing issues in the future.
answered Apr 11, 2012 at 2:18
Order is a reserved keyword.
Try,
SELECT * FROM posts ORDER BY `order` DESC;
answered Apr 11, 2012 at 2:18
KV PrajapatiKV Prajapati
92.9k19 gold badges146 silver badges184 bronze badges
The column name is order
which is a keyword. You need to do this:
SELECT * FROM posts ORDER BY `order` DESC;
answered Apr 11, 2012 at 2:18
joshuahealyjoshuahealy
3,47921 silver badges29 bronze badges
Re: [leon-mbs/zstore] Не удалось загрузить initdata.sql (#5)
Hello, Алексей,
потерялась буковка
должно быть SET NAMES ‘utf8’;
я пару дней назад обновлял версию — возмите последнюю
Sunday, March 24, 2019, 5:55:10 AM, you wrote:
Приветствую!
Развернул на хостинге ваше приложение.
При попытки загрузить initdata.sql после db.sql получаю ошибку.
Ошибка
Статический анализ:
Найдено 2 ошибок при анализе.
Неожиданное начало выражения. (near «ET» at position 0)
Неизвестный оператор. (near «NAMES» at position 3)
SQL запрос:
ET NAMES ‘utf8’
Ответ MySQL: Документация
#1064 — У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около ‘ET NAMES ‘utf8» на строке 1
В итоге данных в таблицах нет и нет видов документов в меню
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
…
—
Best regards,
Leon
leon.mbs@gmail.com
mailto:leon.mbs@gmail.com
Ребята, понимаю что вопрос детский, но не могу понять, в чем проблема с этим простейшим SQL запросом
INSERT INTO users(image) VALUES (‘somevalue’) WHERE email = ‘cz@cz.cz’
Задача, вставить в таблицу users, в столбец image значение somevalue в ту строку, где поле email равняется значению cz@cz.cz
MySQL версия 5.6, локальная машина. Строка со значением email равному cz@cz.cz есть
Получаю ошибку:
Ошибка
Статический анализ:
Найдено 2 ошибок при анализе.
Неожиданный токен. (near «WHERE» at position 46)
Неизвестный оператор. (near «WHERE» at position 46)
SQL запрос:
INSERT INTO users(image) VALUES (‘somevalue’) WHERE email = ‘cz@cz.cz’
Ответ MySQL: Документация
1064 — У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около ‘WHERE email = ‘cz@cz.cz» на строке 1
Благодарю!
Месяц назад или даже чуть больше переустанавливал локальный сервер Open Server и забыл экспортировать БД, но вчера мне удалось восстановить удаленную базу в формате .opt И теперь когда я ее пытаюсь импортировать происходит следующее, вот скрин в сринее такое уведомление:
Ошибка Статический анализ: Найдено 1 ошибок при анализе. Неизвестный оператор. (near "default" at position 0) SQL запрос: default-character-set=utf8 default-collation=utf8_general_ci Ответ MySQL: Документация #1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MariaDB на предмет корректного синтаксиса около 'default-character-set=utf8 default-collation=utf8_general_ci' на строке 1
Что это означает и как это исправить?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Активные темы Темы без ответов
Ошибка при загрузке базы данных
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
1 2018-12-10 10:04:27 (изменено: Alexx25, 2018-12-10 10:06:21)
- Alexx25
- Редкий гость
- Неактивен
- Зарегистрирован: 2018-12-10
- Сообщений: 3
Тема: Ошибка при загрузке базы данных
Всем привет! Возникает такая ошибка:
> Статический анализ:
>
> Найдено 2 ошибок при анализе.
>
> Неожиданное начало выражения. (near «phpMyAdmin» at position 0)
> Неизвестный оператор. (near «SQL» at position 11)
> SQL запрос:
>
> phpMyAdmin SQL Dump — version 4.2.10.1 — http://www.phpmyadmin.net — — Хост: localhost — Время создания: Янв 20 2015 г., 15:27 — Версия сервера: 5.5.40-0+wheezy1 — Версия PHP: 5.4.4-14+deb7u9 SET SQL_MODE = «NO_AUTO_VALUE_ON_ZERO»
>
> Ответ MySQL: Документация
>
> #1064 — У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около ‘phpMyAdmin SQL Dump
> — version 4.2.10.1
> — http://www.phpmyadmin.net
> —
> — Хо’ на строке 1
Заранее благодарю за ответ!
2 Ответ от Hanut 2018-12-10 11:16:46
- Hanut
- Модератор
- Неактивен
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: Ошибка при загрузке базы данных
Откройте дам в Notepad++ и посмотрите наличие комментария (два дефиса) перед первой строкой.
3 Ответ от Alexx25 2018-12-10 11:33:42
- Alexx25
- Редкий гость
- Неактивен
- Зарегистрирован: 2018-12-10
- Сообщений: 3
Re: Ошибка при загрузке базы данных
Hanut сказал:
Откройте дам в Notepad++ и посмотрите наличие комментария (два дефиса) перед первой строкой.
— phpMyAdmin SQL Dump
— version 4.2.10.1
— http://www.phpmyadmin.net
—
— Хост: localhost
— Время создания: Янв 20 2015 г., 15:27
— Версия сервера: 5.5.40-0+wheezy1
— Версия PHP: 5.4.4-14+deb7u9
4 Ответ от Hanut 2018-12-10 11:55:32
- Hanut
- Модератор
- Неактивен
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,726
Re: Ошибка при загрузке базы данных
Попробуйте в Notepad++ проверить наличие BOM байта при сохранении файла и сохраните файл без него.
5 Ответ от Alexx25 2018-12-10 12:07:29
- Alexx25
- Редкий гость
- Неактивен
- Зарегистрирован: 2018-12-10
- Сообщений: 3
Re: Ошибка при загрузке базы данных
Hanut сказал:
Попробуйте в Notepad++ проверить наличие BOM байта при сохранении файла и сохраните файл без него.
Спс) получилось)
Сообщения 5
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
<?php
function add_payment($abonent_id, $amount, $action, $rnn, $rc) {
global $wpdb;
$table_name = $wpdb->prefix . ‘payments’;
$check = $wpdb->get_results( «SELECT id FROM $table_name as p WHERE p.abonent_id=$abonent_id AND p.rnn=’$rnn’ AND p.amount LIKE ‘$amount’ «);
if(empty($check) && !empty($abonent_id))
$wpdb->insert(
$table_name,
array(
‘abonent_id’ => $abonent_id,
‘amount’ => $amount,
‘action’ => $action,
‘date’ => current_time(‘mysql’),
‘rnn’ => $rnn,
‘rc’ => $rc
)
);
}
function get_last_order() {
global $wpdb;
// $table_name = $wpdb->prefix . ‘payments’;
// $get_id = $wpdb->get_row(«SHOW TABLE STATUS LIKE ‘$table_name'»);
// $last_id = $get_id->Auto_increment;
$last_id = time();
return str_pad($last_id, 20, ‘0’, STR_PAD_LEFT);
}
function generate_payment_form($abonent_id, $amount) {
$key1 = ’63BE9B28789C32653F4771337E380F9F’;
$key2 = ‘3DB48C7E9833BC4BF8378513734EF512’;
$_merchant_name = ‘CHERNIVTSI TEPLO’;
$_merchant_url = ‘https://teplo.cv.ua/account’;
$_backhref = ‘https://teplo.cv.ua/account?payments=1’;
$_merchant = ‘22500597’;
$_terninal = ‘22500755’;
$_email = ‘teplo.cv.ua@gmail.com’;
$_currency = ‘UAH’;
$_country = ‘UA’;
$_merchant_gmt = ‘+2’;
$auth_array = array(
‘AMOUNT’ => $amount,
‘CURRENCY’ => $_currency,
‘ORDER’ => get_last_order(),
‘DESC’ => $abonent_id,
‘MERCH_NAME’ => $_merchant_name,
‘MERCH_URL’ => $_merchant_url,
‘MERCHANT’ => $_merchant,
‘TERMINAL’ => $_terninal,
‘EMAIL’ => $_email,
‘TRTYPE’ => ‘1’,
‘COUNTRY’ => $_country,
‘MERCH_GMT’ => $_merchant_gmt,
‘TIMESTAMP’ => gmdate(‘YmdHis’),
‘NONCE’ => md5(rand(1, 10000)),
‘BACKREF’ => $_backhref,
);
$sign_key = pack(«H*», bin2hex(pack(‘H*’, $key1) ^ pack(‘H*’, $key2)));
$auth_array[‘P_SIGN’] = encodePSign($auth_array, $sign_key);
$form = »;
$form .= ‘<form method=»POST» action=»https://3ds.oschadbank.ua/cgi-bin/cgi_link» class=»form-pay form-style»>’;
foreach ($auth_array as $k => $v)
$form .= ‘<input type=»hidden» name=»‘ . $k . ‘» value=»‘ . $v . ‘»>’;
$form .= ‘<button type=»submit» class=»btn btn-primary»>Перейти до оплати</button>’;
$form .= ‘</form>’;
return $form;
}
function encodePSign($arr, $sign_key) {
$res = »;
foreach ($arr as $v) {
if (strlen($v) == 0) {
$res .= ‘-‘;
continue;
}
$res .= strlen($v);
$res .= $v;
}
return hash_hmac(‘sha1’, $res, $sign_key);
}
function generate_xml() {
global $wpdb;
$date_now = date(‘Y-m-d’);
$table_name = $wpdb->prefix . ‘payments’;
$payments = $wpdb->get_results( «SELECT p.abonent_id, p.amount, DATE(p.date) as date, p.rnn FROM $table_name as p WHERE p.rnn<>» AND p.action=’0′ AND DATE(p.date)=’$date_now'»);
$xml = ‘<payments>’;
foreach($payments as $p)
$xml .=‘
<payment>
<date>’.str_replace(‘-‘,»,$p->date).‘</date>
<value>’.$p->amount.‘</value>
<authCode>’.$p->rnn.‘</authCode>
<abonentID>’.$p->abonent_id.‘</abonentID>
</payment>
‘;
$xml .= ‘</payments>’;
$dom = new DOMDocument(‘1.0’);
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml);
$dom->save(get_template_directory().‘/payments/payments_’.$date_now.‘.xml’);
$attachments = array(get_template_directory().‘/payments/payments_’.$date_now.‘.xml’);
wp_mail( array(‘abon.cv@gmail.com’), ‘Онлайн платежі за ‘.$date_now, ‘Онлайн платежі за ‘.$date_now, ‘From: Водоканал <no-reply@vodokanal.cv.ua>’, $attachments );
}
add_action(‘admin_menu’, function(){
add_menu_page( ‘Онлайн платежі’, ‘Онлайн платежі’, ‘manage_options’, ‘payments’, ‘show_payments’, ‘dashicons-update’, 76 );
} );
function show_payments(){
global $wpdb;
$limit = 15;
$pagenum = isset( $_GET[‘pagenum’] ) ? absint( $_GET[‘pagenum’] ) : 1;
$offset = ( $pagenum — 1 ) * $limit;
echo ‘<h1>’.get_admin_page_title().‘</h1>’;
$table_name = $wpdb->prefix . ‘payments’;
if(isset($_GET[‘success’]) && $_GET[‘success’]==1)
$payments = $wpdb->get_results( «SELECT * FROM $table_name as p WHERE p.action=0 ORDER BY id DESC LIMIT $offset, $limit «);
else
$payments = $wpdb->get_results( «SELECT * FROM $table_name as p ORDER BY id DESC LIMIT $offset, $limit «);
$success_count = $wpdb->get_var( «SELECT COUNT(*) FROM $table_name WHERE action=0»);
$all_count = $wpdb->get_var( «SELECT COUNT(*) FROM $table_name» );
if(isset($_GET[‘success’]) && $_GET[‘success’]==1)
$num_of_pages = ceil($success_count/$limit);
else
$num_of_pages = ceil($all_count/$limit);
$all_status = (!isset($_GET[‘success’]) || $_GET[‘success’]!=1) ? ‘current’:»;
$suc_status = (isset($_GET[‘success’]) && $_GET[‘success’]==1) ? ‘current’:»;
echo ‘
<ul class=»subsubsub»>
<li class=»all»><a href=»admin.php?page=payments» class=»‘.$all_status.‘»>Всі платежі (‘.$all_count.‘)</a> |</li>
<li class=»active»><a href=»admin.php?page=payments&success=1″ class=»‘.$suc_status.‘»>Успішні (‘.$success_count.‘)</a></li>
</ul>
<div class=»wrap»>
‘;
$page_links = paginate_links( array(
‘base’ => add_query_arg( ‘pagenum’, ‘%#%’ ),
‘format’ => »,
‘prev_text’ => __( ‘«’, ‘text-domain’ ),
‘next_text’ => __( ‘»’, ‘text-domain’ ),
‘total’ => $num_of_pages,
‘current’ => $pagenum
) );
echo ‘
<table class=»wp-list-table widefat plugins»>
<thead>
<tr>
<td style=»width:5px;» id=»cb» class=»manage-column column-cb check-column»></td>
<td style=»width:15px;»></td>
<th scope=»col» id=»name» class=»manage-column column-name column-primary»>Особовий рахунок</th>
<th scope=»col» id=»amount» class=»manage-column column-description»>Сума (грн)</th>
<th scope=»col» id=»rnn» class=»manage-column column-description»>Код підтвердження</th>
<th scope=»col» id=»date» class=»manage-column column-description»>Дата</th>
<th scope=»col» id=»action» class=»manage-column column-description»>Дія</th>
<th scope=»col» id=»rc» class=»manage-column column-description»>Помилка</th>
</tr>
</thead>
<tbody id=»the-list»>
‘;
foreach($payments as $p) {
$stat = ($p->action==0) ? ‘active’:‘inactive’;
echo ‘
<tr class=»‘.$stat.‘»>
<th style=»width:5px;» scope=»row» class=»check-column»></th>
<td style=»width:15px;»>#’.$p->id.‘</td>
<td class=»plugin-title column-primary»>
‘.$p->abonent_id.‘
</td>
<td class=»column-description desc»>
‘.$p->amount.‘
</td>
<td class=»column-description desc»>
‘.$p->rnn.‘
</td>
<td class=»column-description desc»>
‘.$p->date.‘
</td>
<td class=»column-description desc»>
‘.$p->action.‘
</td>
<td class=»column-description desc»>
‘.$p->rc.‘
</td>
</tr>
‘;
}
echo ‘
</tbody>
</table>
‘;
if($page_links) {
echo ‘<style> .tablenav-pages span.current { height: 16px; border-color: #ddd; background: #f7f7f7; color: #a0a5aa; display: inline-block; min-width: 17px; border: 1px solid #ccc; padding: 5px 5px 7px; font-size: 16px; line-height: 1; font-weight: 400; text-align: center; } .tablenav .tablenav-pages a, .tablenav-pages-navspan { padding: 5px 5px 7px; } </style>’;
echo ‘<div class=»tablenav»><div class=»tablenav-pages» style=»margin: 1em 0″>’ . $page_links . ‘</div></div>’;
}
echo ‘</div>’;
}
function get_member_payments($abonent_id) {
global $wpdb;
$table_name = $wpdb->prefix . ‘payments’;
$limit = 10;
$payments = $wpdb->get_results( «SELECT * FROM $table_name WHERE abonent_id=$abonent_id ORDER BY id DESC LIMIT $limit «);
return $payments;
}