Хак Virtuemart 2 — список ожидающих уведомления о поступлении товара

Евгений96

Постоялец
Регистрация
29 Июн 2014
Сообщения
95
Реакции
14
Данный [Хак] был взят отсюда: Для просмотра ссылки Войди или Зарегистрируйся

Создаем в корне сайта файл PHP
В него заносим следующий код
Код:
<?php
define('_JEXEC', 1);
define('JPATH_BASE', dirname(__FILE__));
define('DS', DIRECTORY_SEPARATOR);
require_once(JPATH_BASE.DS.'includes'.DS.'defines.php');
require_once(JPATH_BASE.DS.'includes'.DS.'framework.php');
JFactory::getApplication('site')->initialise();
$db = JFactory::getDBO();
$q = "SELECT * FROM `#__virtuemart_waitingusers` WHERE `notified`='0' ";
$db->setQuery($q);
$rows = $db->loadObjectList();
echo '<table border="1" cellpadding="2" cellspacing="2"><tr><td>Date</td><td>email</td><td>Registered user?</td><td>Product Sku</td><td>Product Name</td></tr>';
foreach ($rows as $row) {
    $db1 = JFactory::getDBO();
    $q1 = "SELECT  `name` FROM `#__virtuemart_userinfos` WHERE `virtuemart_user_id`='$row->virtuemart_user_id' ";
    $db1->setQuery($q1);
    $rows1 = $db1->loadObjectList();
        $username = '&nbsp;';
        foreach ($rows1 as $row1) {
            $username = $row1->name;
        }
    $db2 = JFactory::getDBO();
    $q2 = "SELECT  `product_sku` FROM `#__virtuemart_products` WHERE `virtuemart_product_id`='$row->virtuemart_product_id' ";
    $db2->setQuery($q2);
    $rows2 = $db2->loadObjectList();
        foreach ($rows2 as $row2) {
            $productsku = $row2->product_sku;
        }
    $db3 = JFactory::getDBO();
    $q3 = "SELECT  `product_name` FROM `#__virtuemart_products_ru_ru` WHERE `virtuemart_product_id`='$row->virtuemart_product_id' ";
    $db3->setQuery($q3);
    $rows3 = $db3->loadObjectList();
        foreach ($rows3 as $row3) {
            $productname = $row3->product_name;
        }
    echo '<tr><td>'.$row->created_on.'</td><td>'.$row->notify_email.'</td><td>'.$username.'</td><td>'.$productsku.'</td><td><a href="http://ваш_сайт.com.ua/administrator/index.php?option=com_virtuemart&view=product&task=edit&virtuemart_product_id='.$row->virtuemart_product_id.'" target="_blank">'.$productname.'</td></tr>';
}
echo '</table>';
?>

В четвертой строке снизу необходимо заменить ваш_сайт на урл вашего магазина. Это ссылка на карточку товара в админке — можно сразу перейти в карточку соответствующего товара и уведомить пользователя.

Для правильного отображения кодировки во всех браузерах в файле .htaccess (если нет создайте его в корне сайта) и вставить туда в начало самое AddDefaultCharset utf-8

Теперь для просмотра всех желающих приобрести товар информацию можно получить по адресу Для просмотра ссылки Войди или Зарегистрируйся

Решение рабочее, думаю будет полезно, так как вопросы по данной теме были

Пожелание к теме: Кто знает как эту таблицу перенести ссылкой в админуку, напишите свое решение, чтоб эта инфа была доступна из админки

классный хак, давно ждал что то подобное. Только у меня по ссылке
Для просмотра ссылки Войди или Зарегистрируйся кракозябры повылазили.... кодировка ютф-8

Для правильного отображения кодировки во всех браузерах в файле .htaccess (если нет создайте его в корне сайта) и вставить туда в начало самое AddDefaultCharset utf-8.

Вот еще только что дописал, так сказать модифицировал
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<title>Уведомление клиентов о поступлении товара</title>
<meta name="title" content="Уведомление о поступлении">
<meta name="description" content="Интернет-магазин г.Невьянск. Производство Россия.">
</head>
<body>
<?php
define('_JEXEC', 1);
define('JPATH_BASE', dirname(__FILE__));
define('DS', DIRECTORY_SEPARATOR);
require_once(JPATH_BASE.DS.'includes'.DS.'defines.php');
require_once(JPATH_BASE.DS.'includes'.DS.'framework.php');
JFactory::getApplication('site')->initialise();
$db = JFactory::getDBO();
$q = "SELECT * FROM `#__virtuemart_waitingusers` WHERE `notified`='0' ";
$db->setQuery($q);
$rows = $db->loadObjectList();
echo '<table border="1" cellpadding="2" cellspacing="2"><tr><td>Дата</td><td>Телефон</td><td>e-mail</td><td>Зарегистрирован?</td><td>Артикул</td><td>Имя продукта</td><td>Количество</td></tr>';
foreach ($rows as $row) {
    $db1 = JFactory::getDBO();
    $q1 = "SELECT  `name` FROM `#__virtuemart_userinfos` WHERE `virtuemart_user_id`='$row->virtuemart_user_id' ";
    $db1->setQuery($q1);
    $rows1 = $db1->loadObjectList();
        $username = '&nbsp;';
        foreach ($rows1 as $row1) {
            $username = $row1->name;
        }
    $db2 = JFactory::getDBO();
    $q2 = "SELECT  `product_sku` FROM `#__virtuemart_products` WHERE `virtuemart_product_id`='$row->virtuemart_product_id' ";
    $db2->setQuery($q2);
    $rows2 = $db2->loadObjectList();
        foreach ($rows2 as $row2) {
            $productsku = $row2->product_sku;
        }
    $db3 = JFactory::getDBO();
    $q3 = "SELECT  `product_name` FROM `#__virtuemart_products_ru_ru` WHERE `virtuemart_product_id`='$row->virtuemart_product_id' ";
    $db3->setQuery($q3);
    $rows3 = $db3->loadObjectList();
        foreach ($rows3 as $row3) {
            $productname = $row3->product_name;
        }
      
    $db4 = JFactory::getDBO();
    $q4 = "SELECT  `product_in_stock` FROM `#__virtuemart_products` WHERE `virtuemart_product_id`='$row->virtuemart_product_id' ";
    $db4->setQuery($q4);
    $rows4 = $db4->loadObjectList();
        foreach ($rows4 as $row4) {
            $productstock = $row4->product_in_stock;
        }
      
    echo '<tr><td>'.$row->created_on.'</td><td>'.$row->notify_phone.'</td><td>'.$row->notify_email.'</td><td>'.$username.'</td><td>'.$productsku.'</td><td><a href="http://deteo.ru/administrator/index.php?option=com_virtuemart&view=product&task=edit&virtuemart_product_id='.$row->virtuemart_product_id.'" target="_blank">'.$productname.'</td><td>'.$productstock.'</td></tr>';
}
echo '</table>';
?>
</body>
 
Последнее редактирование модератором:
У beagler есть готовое решение для админки и стоит копейки. Вот если бы еще автоматом уведомления рассылались...
 
Назад
Сверху