我正在努力修改客户注册管理模块中的一些代码。即时结帐没有按应有的方式工作。当客户注册管理模块被禁用时,即时结账工作正常,提交时没有错误,我们进入下一步/屏幕。启用客户注册模块后,一旦我们单击即时结帐下的提交按钮,我们就不会进入下一步/屏幕,而是返回相同的屏幕,表单为空,并且在 url 中我们有:authentication?back =order.php%3Fstep%3D1 我设法识别出一段代码,该代码阻止客户从即时结账表单转到以下屏幕。它是函数 hookCreateAccount($params) 中的代码
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 但它应该转到:/order?步=2
即时结帐表单操作:
<form action="{$link->getPageLink('authentication.php', true)}?back={$back}" method="post" id="new_account_form" class="std">
那么,我应该改变动作部分吗?这是如何运作的?有人能指出我正确的方向吗?任何帮助将非常感激。