我正在努力修改客户注册管理模块中的一些代码。即时结账不是应有的方式。当客户注册管理模块被禁用时,即时结账工作正常,在提交时无误,我们进入下一步/屏幕。当客户注册模块启用后,一旦我们点击了即时结账下的提交按钮,我们就不会进入下一步/屏幕,而是返回到相同的屏幕,表单为空,在url中我们有这个:认证? = order.php%3Fstep%3D1 我设法识别一段代码,该代码阻止客户从即时结账表单转到以下屏幕。它在功能hookCreateAccount代码($ params)方法Prestashop - 客户注册管理模块 - 轻微修改
function hookCreateAccount($params)
{
require_once (dirname(__FILE__).'/ApprovedCustomer.php');
global $cookie, $back;
$registration_code = pSQL(Tools::getValue('registration_code'));
if ($registration_code != '' AND $registration_code == $this->_registrationCode) {
$customer = $params['newCustomer'];
$customer->cleanGroups();
$customer->addGroups ($this->_defaultGroups);
}
$cookie->logged = $this->_isCustomerRegistredByDefault;
$cust = $params['newCustomer'];
$approval = new ApprovedCustomer($cust->id);
$approval->is_approved = $this->_isCustomerRegistredByDefault;
$approval->privilege_request = intval(Tools::getValue('privilege_request'),0);
$approval->privilege_message = pSQL(Tools::getValue('privilege_message'), '');;
if (! $approval->save())
Tools::D('Unable to save approval information');
if ($this->_sendAdminMail)
$this->sendMail('pending_registration', array('customer' => $cust, 'approval'=>$approval));
if (! $approval->is_approved) {
$back = 'modules/'.basename(__FILE__, '.php').'/messages.php?msg=noconnect&back=my-account.php';
$cookie->logged = 0;
$cookie->id_customer = 0;
}
elseif ($back == '')
$back = 'my-account.php';
}
任何人有任何想法,在此代码是什么原因造成的?任何帮助将非常感激。
究竟发生了什么:一旦用户填写即时结帐表单并点击提交,表单将被重定向到同一页面:... /authentication?back=order.php%3Fstep%3D1 但它应该去到:/?顺序步骤= 2
即时结帐表单动作:
<form action="{$link->getPageLink('authentication.php', true)}?back={$back}" method="post" id="new_account_form" class="std">
所以,我应该改变作用部呢?这个怎么用?有人能指引我走向正确的方向吗?任何帮助将非常感激。
非常感谢您的帮助保罗!这给了我一个开始。 – Petra