我已经加密了客户的名称,姓氏和电子邮件,并且需要解密数据以显示前端。
我会覆盖 public function getCustomer() 位于 app/code/core/Mage/Model/Session.php 文件。从中检索的客户数据$customer = Mage::getModel('customer/customer') ->setWebsiteId(Mage::app()->getStore()->getWebsiteId()); $customer->load($this->getId());

更新

我每次使用 print_r($customer) 要打印登录客户的数据,我得到了 Mage_Customer_Model_Customer Object.

问题

我想用数组替换名称,lastname和电子邮件的解密值 $customer['_origData:protected']$customer['_Data:protected']由于方法受到保护,因此我已将对象转换为数组并在传递解密函数后再次转换为对象,但是转换后的对象没有受保护的方法。当转换对象传递到功能时,我会遇到致命错误 $this->setCustomer($customer);

我想要的是 在对象中替换三个加密值的名称,姓氏和电子邮件 Mage_Customer_Model_Customer Object

基本问题是: - 如何替换对象中的值?

有帮助吗?

解决方案

利用 setData($key, $value) 改变 _datasetOrigData($key, $value) 改变 _origData.

另外,而不是 setData('firstname', 'John') 你总是可以写 setFirstname('John'), ,即使没有声明该方法,也要在 Varien_Object.

其他提示

我不完全理解您的问题,但是如果您想将数组转换为stdclass实例,这是一种简单的方法。

$arr = YOUR ARRAY HERE;
$encoded = json_encode($arr);
$obj = json_decode($encoded);
许可以下: CC-BY-SA归因
scroll top