2

我正在使用 prestashop,我想运行 a/b 测试。这意味着您在将 50% 的流量重定向到模板 A 和 50% 的流量到模板 B 的同时测试您网站的 2 个不同模板。

我必须在我的文件夹中设置主题:

-主题A -主题B

要运行测试,我需要通过不同的 url 表单 themeA 访问 themeB。

因此,在文件夹“/config”中,我修改了文件 setting.inc.php,如下所示:

if(isset($_GET['ab'])) { define('_THEME_NAME_', 'themeB'); } else{ define('_THEME_NAME_', 'themeA'); }

现在我可以通过键入以下内容访问主题:www.myshop.com/?ab

我的问题是,每当我单击链接时, ?ab 参数都会丢失并返回到模板 A。

我发现有人使用另一个 cms 解决了使用此代码的问题:

`$this->redirect(array('name')); `

但我不知道如何使其适应 prestashop 以及我应该把它放在哪里。

任何帮助将不胜感激。

谢谢

4

1 回答 1

0

如果在“主题检查”之前启动了会话([http://sg3.php.net/manual/en/function.session-start.php][1]),则一种快速的解决方法可能是使用会话。

// Page => watermelons.php    
<?php
session_start();

if(isset($_GET['ab']) || isset($_SESSION['ab'])) {
    $_SESSION['ab'] = 'themeB';
    define('_THEME_NAME_', 'themeB');
} else{
    define('_THEME_NAME_', 'themeA');
}

echo _THEME_NAME_;

?>
<br /><a href="coconuts.php">go to coconuts</a>



// Page => coconuts.php    
<?php
session_start();

if(isset($_GET['ab']) || isset($_SESSION['ab'])) {
    $_SESSION['ab'] = 'themeB';
    define('_THEME_NAME_', 'themeB');
} else{
    define('_THEME_NAME_', 'themeA');
}

echo _THEME_NAME_;

?>
<br /><a href="watermelons.php">go to watermelons</a>
于 2012-10-25T09:57:46.310 回答