Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 在OpenCart中将客户电子邮件地址获取到success.tpl_Email_Variables_Opencart - Fatal编程技术网

Email 在OpenCart中将客户电子邮件地址获取到success.tpl

Email 在OpenCart中将客户电子邮件地址获取到success.tpl,email,variables,opencart,Email,Variables,Opencart,我已经能够在OpenCart(1.5.4版)的成功页面上获得订单id和订单总价值,通过在中应用Shadyyx(谢谢!)的非常有用的建议来处理它们。但是,我无法获得(注册或客人)客户的电子邮件地址,即: 如果我插入$this->data['email']=$this->session->data['email']cart->clear()之前的success.php中的code> 提交订单时,success.php中出现未定义的索引错误 如果我插入$this->data['email']=$thi

我已经能够在OpenCart(1.5.4版)的成功页面上获得订单id和订单总价值,通过在中应用Shadyyx(谢谢!)的非常有用的建议来处理它们。但是,我无法获得(注册或客人)客户的电子邮件地址,即:

如果我插入
$this->data['email']=$this->session->data['email']$this->cart->clear()之前的success.php中的code>

提交订单时,success.php中出现未定义的索引错误

如果我插入
$this->data['email']=$this->cart->getEmail()

相反,我避免了未定义的索引错误,但电子邮件地址仍然不会通过输入标记加载到html表单中(但这对订单id和总数有效),如下所示:


$this->customer->getEmail()-这将使您登录客户的电子邮件id

catalog/controller/checkout/success.php
中,在

if(isset($this->session->data['order\u id']){

$this->cart->clear();

要添加的代码:

if (isset($this->session->data['guest'])) { 
    $this->data['customer_email'] = $this->session->data['guest']['email'];  // Guest user's email
} elseif($this->customer->isLogged()) {
    $this->data['customer_email'] = $this->customer->getEmail(); // Customer's email
} 
然后在success.tpl中添加:

<?php if(isset($customer_email)){ ?>
<input name="email" type="hidden" value="<?php echo $customer_email ?>">
<?php } ?>


要正确执行此操作,您需要打开
/catalog/controller/checkout/success.php
并找到这行代码

if (isset($this->session->data['order_id'])) {
在它之后,添加以下内容

    $this->load->model('account/order');
    $order = $this->model_account_order->getOrder($this->session->data['order_id']);
    if($order) {
        $this->data['email'] = $order['email'];
    }
在模板
/catalog/view/theme/your theme name/template/common/success.tpl中,您需要

<?php if(!empty($email)) echo $email; ?>


无论您想在哪里查看电子邮件地址

非常感谢您的快速回复!它几乎完美!您的解决方案对客户电子邮件非常有效,但对客户电子邮件没有任何价值。可能是因为客户电子邮件的变量名称不同吗?在success.php中,处理电子邮件的相关3行表单中的地址(无论是来宾还是客户)为:“”