Joomla 1.5 VirtueMart: Контактная информация плательщика, пустые поля вместо заполненых.

Discussion in 'Магазины, электронная коммерция' started by Serj, Mar 9, 2010.

  1. Offline

    Serj Недавно здесь

    Joined:
    Jan 27, 2010
    Messages:
    4
    Likes Received:
    0
    Gender:
    Male
    Помогите будьте добры решить проблему. Настроил поля заполняемые пользователем при покупке товара так (регистрация отключена в главном конфиге):
    [​IMG]

    После они отображаются так
    [​IMG]

    Содержимое файла customer_info.tpl.php
    Код (PHP):
    1. <?php
    2. if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
    3. ?>
    4. <!-- Customer Information -->
    5.     <table border="0" cellspacing="0" cellpadding="2" width="100%">
    6.         <tr class="sectiontableheader">
    7.             <th colspan="2" align="left"><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_CUST_BILLING_LBL') ?></th>
    8.         </tr>
    9.         <tr>
    10.            <td nowrap="nowrap" width="10%" align="right"><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_EMAIL') ?>: </td>
    11.            <td width="90%">
    12.            <?php
    13.              $db->p("email");
    14.            ?>
    15.            </td>
    16.         </tr>
    17.         <tr>
    18.            <td nowrap="nowrap" width="10%" align="right"><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_CITY') ?>: </td>
    19.            <td width="90%"><?php
    20.              echo $db->p("city") ?>
    21.            </td>
    22.         </tr>
    23.         <tr>
    24.            <td nowrap="nowrap" width="10%" align="right"><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_PHONE') ?>: </td>
    25.            <td width="90%">
    26.            <?php
    27.              $db->p("phone_1");
    28.            ?>
    29.            </td>
    30.         </tr>
    31.         <tr>
    32.            <td nowrap="nowrap" width="10%" align="right">&nbsp;</td>
    33.            <td width="90%">
    34.            <?php
    35.              $db->p("city");
    36.              echo ", ";
    37.              // for state, can be used: state_name, state_2_code, state_3_code
    38.              $db->p("state_2_code");
    39.              echo " ";
    40.              $db->p("zip");
    41.              echo "<br /> ";
    42.              // for country, can be used: country_name, country_2_code, country_3_code
    43.              $db->p("country_name");
    44.            ?>
    45.            </td>
    46.         </tr>
    47.         <tr>
    48.            <td nowrap="nowrap" width="10%" align="right"><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_PHONE') ?>: </td>
    49.            <td width="90%">
    50.            <?php
    51.              $db->p("phone_1");
    52.            ?>
    53.            </td>
    54.         </tr>
    55.         <tr>
    56.            <td nowrap="nowrap"width="10%" align="right"><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_FAX') ?>: </td>
    57.            <td width="90%">
    58.            <?php
    59.              $db->p("fax");
    60.            ?>
    61.            </td>
    62.         </tr>
    63.         <tr>
    64.            <td nowrap="nowrap" width="10%" align="right"><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_EMAIL') ?>: </td>
    65.            <td width="90%">
    66.            <?php
    67.              $db->p("user_email");
    68.            ?>
    69.            </td>
    70.         </tr>
    71.         <tr><td align="center" colspan="2"><a href="<?php $sess->purl( SECUREURL ."index.php?page=account.billing&next_page=$page"); ?>">
    72.             (<?php echo $VM_LANG->_('PHPSHOP_UDATE_ADDRESS') ?>)</a>
    73.             </td>
    74.         </tr>
    75.     </table>
    76.     <!-- customer information ends -->
    77.     <br />

    И дамп таблицы _vm_userfield прикреплен.
    Где я что не так делаю или как мне исправить чтобы выводилась инфа?
     

    Attached Files:

  2.  
  3. Offline

    alex0802 Недавно здесь

    Joined:
    Sep 11, 2007
    Messages:
    82
    Likes Received:
    7
    Gender:
    Male
    ты бы лучше sql запрос на выборку данных привел ) у тебя данные пустые, потому и не отображается нифига
     
  4. Offline

    Serj Недавно здесь

    Joined:
    Jan 27, 2010
    Messages:
    4
    Likes Received:
    0
    Gender:
    Male
    Ну в коде все выглядит так
    Код (PHP):
    1. //$steps = ps_checkout::get_checkout_steps();
    2.         if(empty($_REQUEST['ship_to_info_id']) && ps_checkout::noShipToNecessary()) {
    3.  
    4.             $db = new ps_DB();
    5.  
    6.             /* Select all the ship to information for this user id and
    7.             * order by modification date; most recently changed to oldest
    8.             */
    9.             $q  = "SELECT user_info_id from `#__{vm}_user_info` WHERE ";
    10.             $q .= "user_id='" . $_SESSION['auth']["user_id"] . "' ";
    11.             $q .= "AND address_type='BT'";
    12.             $db->query($q);
    13.             $db->next_record();
    14.  
    15.             $_REQUEST['ship_to_info_id'] = $db->f("user_info_id");

    В базе при заказе товара создается некий бзер с заполнеными полями.
    SELECT `user_info_id` FROM `jos_vm_user_info` WHERE user_info_id='a7c67e468b6834f9c35c6e3686b74fc0' банальный пашет ))
    Ну вообще считай что проблема может в . $_SESSION['auth']["user_id"] . "' "; ?
     
  5. OlegM
    Offline

    OlegM Russian Joomla! Team Staff Member

    Joined:
    Apr 12, 2007
    Messages:
    4,310
    Likes Received:
    375
    Gender:
    Male
    Serj, надо ковырять ps_checkout.php, функцию
    Код (PHP):
    1. function display_address($address_type='BT') {
    2.         $auth = $_SESSION['auth'];
    3.        
    4.         $address_type = $address_type == 'BT' ? $address_type : 'ST';
    5.        
    6.         $db = new ps_DB;
    7.         $q  = "SELECT * FROM #__{vm}_user_info i ";
    8.         $q .= "INNER JOIN #__{vm}_country c ON (i.country=c.country_3_code OR i.country=c.country_2_code) ";
    9.         $q .= "LEFT JOIN #__{vm}_state s ON (i.state=s.state_2_code AND s.country_id=c.country_id) ";
    10.         $q .= "WHERE user_id='" . $auth["user_id"] . "' ";
    11.         $q .= "AND address_type='BT'";
    12.         $db->query($q);
    13.         $db->next_record();
    14.         $theme = new $GLOBALS['VM_THEMECLASS']();
    15.         $theme->set('db', $db );
    16.        
    17.         return $theme->fetch('checkout/customer_info.tpl.php');
    18.        
    19.     }

    Я у себя вообще закомментировал
    Код (PHP):
    1. $q .= "INNER JOIN #__{vm}_country c ON (i.country=c.country_3_code OR i.country=c.country_2_code) ";
    2.         $q .= "LEFT JOIN #__{vm}_state s ON (i.state=s.state_2_code AND s.country_id=c.country_id) ";

    потому что не использую Страну, Город, Область
     
  6. Offline

    Serj Недавно здесь

    Joined:
    Jan 27, 2010
    Messages:
    4
    Likes Received:
    0
    Gender:
    Male
    Сделал по своему:
    Код (PHP):
    1. $db->query( 'SELECT `user_email` FROM `#__{vm}_user_info`');
    2. $db->p( 'user_email' );

    Как пример для почты.

    В файле customer_info.tpl.php
     
  7. Offline

    alex0802 Недавно здесь

    Joined:
    Sep 11, 2007
    Messages:
    82
    Likes Received:
    7
    Gender:
    Male
    гы... так он у тебя первую запись будет брать ) а если у тебя там их 100 будет? ) и нужная нифига не первая? )))
     
  8. Offline

    gnjbs Недавно здесь

    Joined:
    Dec 11, 2009
    Messages:
    8
    Likes Received:
    0
    Gender:
    Male
    Спасибо помогло.
     
    Last edited by a moderator: Apr 5, 2014
  9. Offline

    Antonio Samaran4 Недавно здесь

    Joined:
    Jun 26, 2011
    Messages:
    5
    Likes Received:
    0
    Gender:
    Female
    А мне не помогло, я конечно понимаю что при появлении профессиональных навыков все остальные кажутся придурками.....

    будьте добры объясните ламеру ))

    как добиться что бы отображалась контактная информация плательщика....

    где что заменить??
     
  10. Offline

    fatiniya Недавно здесь

    Joined:
    Apr 23, 2012
    Messages:
    2
    Likes Received:
    0
    Gender:
    Female
    У меня те же проблемы. Подскажите, пожалуйста.
     
  11. Offline

    fatiniya Недавно здесь

    Joined:
    Apr 23, 2012
    Messages:
    2
    Likes Received:
    0
    Gender:
    Female
    Нашла ответ здесь http://miksstyle.ru/razrabotka-saytov/pustir-polya-v-vm.html
    Скачала файл, заменила и все заработало.
     
  12. Offline

    M.T. Недавно здесь

    Joined:
    Mar 23, 2012
    Messages:
    3
    Likes Received:
    0
    Gender:
    Female
    Скачала файл, но не помогло.

    В файле customer_info.tpl.php вместо:
    Код (PHP):
    1. <?php  echo $db->f("first_name")." " . $db->f("middle_name") ." " . $db->f("last_name"); ?>

    Написала:
    Код (PHP):
    1. <?php  echo $auth["first_name"] . " " . $auth["middle_name"] . " " . $auth["last_name"]." ";?>


    Имя выводит, а вот всё остальное пустое (этот способ не работает).
     

Share This Page

Loading...