Ajaxを介して製品ページからカートに一時データ(IDおよび名前)を保存したい。問題は、Joomlaファイルの未処理を使用して、Cookieに新しい変数を記録することです。私は試した:
$inputCookie = JFactory::getApplication()->input->cookie;
$value = $inputCookie->get($name = 'myCookie', $defaultValue = null);
$cookieExists = ($value !== null);
$inputCookie->set($name = 'myCookie', $value = '123', $expire = 0);
しかし、var_dump($ _ COOKIE)には、値を持つ「myCoolie」変数はありません。
そして、おそらく安全のために、製品をカートに保管するためにCookieではなくSessionを使用する必要がありますか?
コードが最初に機能しないという問題が原因で、get値に基づいてset cookie値が試行されます。これは常にnull
です。初期値を設定することはありません。
Cookieを設定するには、以下を使用できます。
$app = JFactory::getApplication();
// Get the cookie
$value = $app->input->cookie->get('myCookie', null);
// If there's no cookie value, manually set it
if ($value == null)
{
$value = HOWEVER YOU GET THE CART DATA
}
// Set the cookie
$time = time() + 604800; // 1 week
$app->input->cookie->set('myCookie', $value, $time, $app->get('cookie_path', '/'), $app->get('cookie_domain'), $app->isSSLConnection());
これはあなたを助けることができます。
https://stackoverflow.com/questions/16206662/how-to-use-cookies-from-a-component
setvarメソッドとgetStringメソッドを使用する
JRequest::setVar($var, $value, 'cookie');
JRequest::getString($var, $default, 'cookie')
または
https://api.joomla.org/cms-3/classes/Joomla.Input.Cookie.html
または
http://blog.tormix.com/joomla/set-and-get-cookies-in-joomla-cms/