gpt4 book ai didi

joomla1.5 - Virtuemart/用户字段

转载 作者:行者123 更新时间:2023-12-02 03:58:32 24 4
gpt4 key购买 nike

我在“管理用户字段”中添加了一个字段,当向管理员发送电子邮件通知他们新用户注册时,我想包括此新字段。

我编写了一些代码,从_sendMail函数的/administrator/components/com_virtuemart/classes/ps_shopper.php中的#__vm_user_info获取此新字段,并将变量添加到$ message2中。

已修改ASEND_MSG以接受该参数,但是在创建用户时,发给管理员的电子邮件中不包含该字段。当我去看表时,数据就在那里。因此,为了解决问题,我在select语句中对用户名进行了硬编码,添加了另一个用户,并且为硬编码用户(而不是刚刚添加的用户)发送了正确的值。我现在认为这是MySQL的提交问题,因此我在尝试获取值之前在代码中添加了sleep(4)...没有运气。

谁能为我照亮这一切?

拉里·R ....

最佳答案

  • 管理员/组件/com_virtuemart/classses/ps_shopper.php

  • 需要在“return true”行之前在函数add()中添加以下代码:

    / ****************************** **************** ******* /
    $ pwd = $ _POST ['password'];
                $db = JFactory::getDBO();

    $query = "SELECT id, name, email, username"

    . "\n FROM #__users"

    . "\n ORDER by id DESC LIMIT 1"

    ;

    $db->setQuery( $query );

    $rows = $db->loadObjectList();

    $namee = $rows[0]->name;

    $emaill = $rows[0]->email;

    $usern = $rows[0]->username;

    $pwd;

    $lid = $rows[0]->id;

    $dbv = new ps_DB;

    echo $query = "SELECT *"

    . "\n FROM #__{vm}_user_info"

    . "\n WHERE user_id=$lid"

    ;

    $dbv->setQuery( $query );

    $fid = $db->loadObjectList();



    $field = $fid[0]->extra_field_1;

    $user = clone(JFactory::getUser());

    $usersConfig = &JComponentHelper::getParams( 'com_users' );

    if ($usersConfig->get('allowUserRegistration') == '0') {

    JError::raiseError( 403, JText::_( 'Access Forbidden' ));

    return false;

    }

    // If user activation is turned on, we need to set the activation information

    $useractivation = $usersConfig->get( 'useractivation' );

    if ($useractivation == '1')

    {

    jimport('joomla.user.helper');

    $user->set('activation', md5( JUserHelper::genRandomPassword()) );

    $user->set('block', '1');

    }

    $component = 'com_user';

    $activation_link = $mosConfig_live_site."/index.php?option=$component&task=activate&activation=".$user->get('activation');



    $this->_sendMail( $namee , $emaill, $usern, $pwd, $activation_link);

    /************************************************** Spinz ********************************************/

    注意:在这里,我们为用户邮件的用户名和密码创建了邮件功能。
  • 管理员/组件/com_virtuemart/classses/ps_shopper.php

  • 需要在“return true”行之前注释函数register_save()中的行:
        // Send the registration email

    //$this->_sendMail( $name, $email, $username, $password, $activation_link );

    注意:在这里,生成的邮件函数首先需要注释该邮件函数,并在ps_shopper.php的add()函数中创建另一个邮件函数。
  • 管理员/组件/com_virtuemart/classses/ps_shopper.php

  • 需要使用以下代码在函数_sendmail()中的jos_vm_user_info表中获取额外添加的字段(extra_field_1),并通过以下代码将该字段通过邮件发送给用户。
        /****************************************************************/


    $db = JFactory::getDBO();

    $query = "SELECT id, name, email, username"

    . "\n FROM #__users"

    . "\n ORDER by id DESC LIMIT 1"

    ;

    $db->setQuery( $query );

    $rows = $db->loadObjectList();

    $lid = $rows[0]->id;

    $dbv = new ps_DB;

    $query = "SELECT *"

    . "\n FROM #__{vm}_user_info"

    . "\n WHERE user_id=$lid"

    ;

    $dbv->setQuery( $query );

    $fid = $db->loadObjectList();



    $field = $fid[0]->extra_field_1;



    $subject = sprintf ($VM_LANG->_('SEND_SUB',false), $name, $mosConfig_sitename);

    $subject = vmHtmlEntityDecode($subject, ENT_QUOTES);

    if ($mosConfig_useractivation=="1"){

    $message = sprintf ($VM_LANG->_('USEND_MSG_ACTIVATE',false), $name, $mosConfig_sitename, $activation_link, $mosConfig_live_site, $username, $pwd, $field );

    } else {

    $message = sprintf ($VM_LANG->_('PHPSHOP_USER_SEND_REGISTRATION_DETAILS',false), $name, $mosConfig_sitename, $mosConfig_live_site, $username, $pwd, $field);

    }

    / ************************************* /

    注意 :
  • 初始化变量“$ field”,使用查询获取额外添加的字段值。然后,该额外字段值由邮件的消息部分分配。(初始化变量$ field的值加上一个值,在美洲码中添加了额外字段)。
  • 管理员/组件/ com_virtuemart /语言/ public /英语

  • 替换以下代码的消息:
  • 'USEND_MSG_ACTIVATE'=>'你好%s,

  • 感谢您在%s注册。您的帐户已创建,必须先激活才能使用。
    要激活该帐户,请单击以下链接或将其复制粘贴到您的浏览器中:
    %s

    激活后,您可以使用以下用户名和密码登录%s:

    用户名-%s
    密码-%s
    学位-%s'

    2.'PHPSHOP_USER_SEND_REGISTRATION_DETAILS'=>'您好%s,

    感谢您在%s注册。您的客户帐户已创建。
    您可以使用以下用户名和密码登录%s:

    用户名-%s
    密码-%s
    学位-%s
    '
    注意:
  • 语言文件中字符串%s分配的附加值。
  • 该消息的消息的字符串值在viemart中具有额外添加的字段值。
  • 度显示添加的额外字段
  • 关于joomla1.5 - Virtuemart/用户字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11496698/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com