/** * Returns customer's CPF based on your module configuration * @param Mage_Sales_Model_Order $order * @param Mage_Payment_Model_Method_Abstract $payment * * @return mixed */ private function _getCustomerCpfValue(Mage_Sales_Model_Order $order, $payment) { $customerCpfAttribute = Mage::getStoreConfig('payment/pagseguro/customer_cpf_attribute'); if (empty($customerCpfAttribute)) { //Asked with payment data if (isset($payment['additional_information'][$payment->getMethod() . '_cpf'])) { return $payment['additional_information'][$payment->getMethod() . '_cpf']; } } $entity = explode('|', $customerCpfAttribute); $cpf = ''; if (count($entity) == 1 || $entity[0] == 'customer') { if (count($entity) == 2) { $customerCpfAttribute = $entity[1]; } $customer = $order->getCustomer(); $cpf = $customer->getData($customerCpfAttribute); } else { if (count($entity) == 2 && $entity[0] == 'billing') { //billing $cpf = $order->getShippingAddress()->getData($entity[1]); } } $cpfObj = new Varien_Object(array('cpf' => $cpf)); //you can create a module to get customer's CPF from somewhere else Mage::dispatchEvent('ricardomartins_pagseguro_return_cpf_before', array('order' => $order, 'payment' => $payment, 'cpf_obj' => $cpfObj)); return $cpfObj->getCpf(); }
/** * Retorna o CPF do cliente baseado na selecao realizada na configuração do modulo * @param Mage_Customer_Model_Customer $customer * @param Mage_Payment_Model_Method_Abstract $payment * * @return mixed */ private function _getCustomerCpfValue(Mage_Customer_Model_Customer $customer, $payment) { $customer_cpf_attribute = Mage::getStoreConfig('payment/pagseguro/customer_cpf_attribute'); if (empty($customer_cpf_attribute)) { if (isset($payment['additional_information'][$payment->getMethod() . '_cpf'])) { return $payment['additional_information'][$payment->getMethod() . '_cpf']; } } $cpf = $customer->getResource()->getAttribute($customer_cpf_attribute)->getFrontend()->getValue($customer); return $cpf; }