2014-03-30 196 views
0

獲取當前的Prestashop用戶爲了讓我得到的Prestashop用戶的購物車,我首先需要知道用戶是在我的外部應用程序笨誰。在外部網站

我已經嘗試了各種嘗試這樣的:http://www.prestashop.com/forums/topic/204227-webservice-and-check-if-user-is-logged-in/http://www.prestashop.com/forums/topic/156218-solvedish-integrating-prestashop-into-a-pre-developed-website/甚至Prestashop: Session cookies & loginhttp://webilyst.com/prestashop-cookie-structure/

但我無法得到它的工作。出於某種原因,當我包含config.inc.php時,它將重定向到商店 - 而不是讓我獲得所需的ID。

我的問題:不知道如何從的Prestashop得到這個當前用戶ID在外部epplication?

編輯1 我使用CI 2.1.4和PrestaShop 1.5.6.x.

編輯2似乎我已閱讀的文章是針對舊版PS。該代碼實際上已到達商店被初始化的地步,一旦完成,在Shop.php中,用戶被重定向到商店。我不希望發生這種情況 - 我只想知道當前登錄的用戶是誰。

回答

2

你可以用下面的代碼目前客戶ID:

include($prestashopBasePath . '/config/config.inc.php'); 
$context = Context::getContext(); 
$customerId = $context->customer->id; 

爲什麼你會被重定向的原因是,你是從後臺定義的店鋪URL不同的URL執行腳本 - >首選項 - >設置店鋪網址。例如,商店網址是example.com/presta,腳本位於example.com/other/script.php。

的解決方案是你的腳本移動到的PrestaShop目錄。

+0

太感謝你了。然而,我的腳本是CI中的一個控制器,所以不知道如何移動腳本。 –

+0

我感動的代碼到在商店目錄中名爲test.php的文件,然後包含在我的腳本test.php的,並沒有奏效。任何其他想法? –

+0

我嘗試將我的商店移動到CI目錄中,那將覆蓋CI index.php,所以這也不是一個選項。我認爲如果我包含()一個文件,包含的文件將在其駐留的位置執行?出於某種原因,似乎並非如此。看起來就像PHP讀取文件一樣,將代碼放在您稱爲include()文件的位置,因此,與以前一樣。這是唯一對我有意義的事情。雖然我知道這很可能不起作用,但我絕望了,所以我也嘗試過file_get_contents()和fopen()/ fread()。不成功... –