如何检查用户是否已登录 opencart 版本 3.x

How to check if user is logged in opencart version 3.x

我正在使用 OpenCart 3.0.3.2

我想在 opencart 文件夹外名为 test.php 的文件中检查用户是否登录。 例如,如果商店 URL 是 http://www.example.com/shop 然后要检查的 PHP 文件位于 http://www.example.com/test.php

我在这个link看到有人在2年前问过同样的问题。 check user is logged in to opencart or not

这是针对版本 2.x 的,当我尝试时它不起作用。 那么如何在3.0.3.2版本中做到这一点?

我在会话中尝试了不同的方法,但没有任何效果。

刚刚测试了这两个答案。工作完美。检查以下内容:

  1. OpenCart 和 test.php 应该在同一域和同一服务器上。高于 OpenCart root 级别的文件夹是可以的,因为我们正在使用 PHP $_SESSION.
  2. 首先,用户必须转到 OpenCart 并登录(或不登录),以便会话接收新数据。

让我们一起收集所有的解决方案。从您的 OpenCart 3 根目录打开 catalog/controller/common/header.php 并找到

class ControllerCommonHeader extends Controller {
    public function index() {

在下面添加

session_start();
$_SESSION['opencart'] = $this->session->data;   

现在转到您的 test.php 并添加

<?php
if(!empty($_SESSION['opencart']['customer_id'])){
  // User Loged in
}
?>