1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

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

Тема в разделе "Virtuemart", создана пользователем Евгений96, 18 мар 2015.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
  1. Евгений96

    Евгений96 Постоялец

    Регистр.:
    29 июн 2014
    Сообщения:
    69
    Симпатии:
    5
    Данный [Хак] был взят отсюда: http://aktual.com.ua/virtuemart-2/virtuemart-2-waiting-list/

    Создаем в корне сайта файл 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

    Теперь для просмотра всех желающих приобрести товар информацию можно получить по адресу http://ваш_сайт/имя_файла.php

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

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

    Для правильного отображения кодировки во всех браузерах в файле .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>
     
    Последнее редактирование модератором: 18 мар 2015
    testaross нравится это.
  2. aivalab

    aivalab

    Регистр.:
    18 ноя 2012
    Сообщения:
    382
    Симпатии:
    135
    У beagler есть готовое решение для админки и стоит копейки. Вот если бы еще автоматом уведомления рассылались...