ErikSebastia2 Posted May 23, 2012 Share Posted May 23, 2012 Hola, Quiero modificar el paso final de una compra con Transferencia Bancaria. o que quiero hacer es que en el paso de "Pago" aparezca directamente toda la información de la cuenta bancaria para mejorar la información. En el paso después de confirmación ponga "Gracias" y nada más. E la foto que adjunto se ve que he podido poner la información del TPL bankwire pero no me coge las variables ni las traducciones. Como se puede arreglar? Gracias Link to comment Share on other sites More sharing options...
nadie Posted May 23, 2012 Share Posted May 23, 2012 Hola, Quiero modificar el paso final de una compra con Transferencia Bancaria. o que quiero hacer es que en el paso de "Pago" aparezca directamente toda la información de la cuenta bancaria para mejorar la información. En el paso después de confirmación ponga "Gracias" y nada más. E la foto que adjunto se ve que he podido poner la información del TPL bankwire pero no me coge las variables ni las traducciones. Como se puede arreglar? Gracias Revisa el bankwire y fijate en las siguiente: public function execPayment($cart) { if (!$this->active) return ; if (!$this->_checkCurrency($cart)) Tools::redirectLink(__PS_BASE_URI__.'order.php'); global $cookie, $smarty; $smarty->assign(array( 'nbProducts' => $cart->nbProducts(), 'cust_currency' => $cart->id_currency, 'currencies' => $this->getCurrency((int)$cart->id_currency), 'total' => $cart->getOrderTotal(true, Cart::BOTH), 'this_path' => $this->_path, 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->name.'/' )); return $this->display(__FILE__, 'payment_execution.tpl'); } public function hookPayment($params) { if (!$this->active) return ; if (!$this->_checkCurrency($params['cart'])) return ; global $smarty; $smarty->assign(array( 'this_path' => $this->_path, 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->name.'/' )); return $this->display(__FILE__, 'payment.tpl'); } public function hookPaymentReturn($params) { if (!$this->active) return ; global $smarty; $state = $params['objOrder']->getCurrentState(); if ($state == Configuration::get('PS_OS_BANKWIRE') OR $state == Configuration::get('PS_OS_OUTOFSTOCK')) $smarty->assign(array( 'total_to_pay' => Tools::displayPrice($params['total_to_pay'], $params['currencyObj'], false), 'bankwireDetails' => nl2br2($this->details), 'bankwireAddress' => nl2br2($this->address), 'bankwireOwner' => $this->owner, 'status' => 'ok', 'id_order' => $params['objOrder']->id )); else $smarty->assign('status', 'failed'); return $this->display(__FILE__, 'payment_return.tpl'); } execPayment -> El ultimo paso antes del confirmar al pago. hookPayment -> Donde se muestran los métodos de pagos. hookPaymentReturn -> Donde vas, una vez has finalizado el pago. (Donde dices Gracias) Cuando en el código de arriba dice return $this->display(__FILE__, 'xxx.tpl'); se refiere al fichero que carga en ese momento. Cuando haces en el codigo dices esto: $smarty->assign(array( 'bankwireOwner' => $this->owner, ............ ... Le estas asignando el tpl que luego defines como te dije en el anterior paso, como vas a llamar a esa variable, que luego en este caso la llamas así: {$bankwireOwner} ect... ect.. ect.. ect.. Una pequeña introducción te he dado, para que te animes a modificarlo Link to comment Share on other sites More sharing options...
ErikSebastia2 Posted May 23, 2012 Author Share Posted May 23, 2012 Uish... muy bien explicado. Aqui hay bastante tema jeje. Me pongo en ello! Gracias Link to comment Share on other sites More sharing options...
ErikSebastia2 Posted May 24, 2012 Author Share Posted May 24, 2012 No consigo que funcione. Lo que he hecho es modificar la funcion hookPaymentReturn con este código: public function hookPaymentReturn($params) { global $cookie, $smarty; $smarty->assign(array( 'nbProducts' => $cart->nbProducts(), 'cust_currency' => $cart->id_currency, 'currencies' => $this->getCurrency((int)$cart->id_currency), 'total' => $cart->getOrderTotal(true, Cart::BOTH), 'this_path' => $this->_path, 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->name.'/' )); } Gracias Link to comment Share on other sites More sharing options...
ErikSebastia2 Posted May 25, 2012 Author Share Posted May 25, 2012 Creo que no me explico bien. Segun lo que me comentaste: execPayment -> Para cuando finalizas el proceso de pago. (Donde luego pones gracias) hookPayment -> Donde se muestran los métodos de pagos (en tu caso comentas que solo quieres utilizar transferencia bancaria) hookPaymentReturn -> Donde vas, una vez has pulsado la elección del método de pago. Yo no quiero perder todos los metodos de pago, quiero que aparezcan todos, solo que despues de hacer click en Tranferencia Bancaria, la ventana que se muestra tiene que ser diferente. Entonces, yo lo que he modificado es hookPaymentReturn donde quiero que aparezca la información que sale en execPayment. Esto es lo que he hecho copiando y pegando el código de bankwire. Gracias Link to comment Share on other sites More sharing options...
nadie Posted May 26, 2012 Share Posted May 26, 2012 Creo que no me explico bien. Segun lo que me comentaste: execPayment -> Para cuando finalizas el proceso de pago. (Donde luego pones gracias) hookPayment -> Donde se muestran los métodos de pagos (en tu caso comentas que solo quieres utilizar transferencia bancaria) hookPaymentReturn -> Donde vas, una vez has pulsado la elección del método de pago. Yo no quiero perder todos los metodos de pago, quiero que aparezcan todos, solo que despues de hacer click en Tranferencia Bancaria, la ventana que se muestra tiene que ser diferente. Entonces, yo lo que he modificado es hookPaymentReturn donde quiero que aparezca la información que sale en execPayment. Esto es lo que he hecho copiando y pegando el código de bankwire. Gracias Pero comentas esto: Yo no quiero perder todos los metodos de pago, quiero que aparezcan todos, solo que despues de hacer click en Tranferencia Bancaria, la ventana que se muestra tiene que ser diferente. Entonces, yo lo que he modificado es hookPaymentReturn donde quiero que aparezca la información que sale en execPayment. Entonces para que estas tocando el código, si lo quieres igual que lo tienes por defecto? El execPayment es el paso anterior al confirmar el pago. Link to comment Share on other sites More sharing options...
ErikSebastia2 Posted May 26, 2012 Author Share Posted May 26, 2012 Voy a exponer los pasos y lo que quiero. Primero Aparece las opciones de pago (correcto, tal como esta) http://desmond.imageshack.us/Himg96/scaled.php?server=96&filename=79767970.png&res=landing Despues veien la ventana importante, aqui aparece normalmente un texto de información, pero no los datos bancarios. Yo quiero que aparezca esto (pero con las variables correctas que ahora aparece en ___________ ) http://desmond.imageshack.us/Himg268/scaled.php?server=268&filename=59103614.png&res=landing Y por ultimo donde normalmente en Prestashop aparece lo que yo quiero poner en la imagen anterior, ahora quiero que ponga esto (pero repito, lo importante para mi es la imagen anterior, es lo que no consigo): http://desmond.imageshack.us/Himg571/scaled.php?server=571&filename=84415598.png&res=landing P.D. He puesto las imagenes y el foro me dice "You are not allowed to use that image extension on this community." ... 1 Link to comment Share on other sites More sharing options...
nadie Posted May 26, 2012 Share Posted May 26, 2012 Creo que no me explico bien. Segun lo que me comentaste: execPayment -> Para cuando finalizas el proceso de pago. (Donde luego pones gracias) hookPayment -> Donde se muestran los métodos de pagos (en tu caso comentas que solo quieres utilizar transferencia bancaria) hookPaymentReturn -> Donde vas, una vez has pulsado la elección del método de pago. Yo no quiero perder todos los metodos de pago, quiero que aparezcan todos, solo que despues de hacer click en Tranferencia Bancaria, la ventana que se muestra tiene que ser diferente. Entonces, yo lo que he modificado es hookPaymentReturn donde quiero que aparezca la información que sale en execPayment. Esto es lo que he hecho copiando y pegando el código de bankwire. Gracias El execPayment es el paso antes de confirmar el pago, el de las gracias es el PaymentReturn Link to comment Share on other sites More sharing options...
nadie Posted May 26, 2012 Share Posted May 26, 2012 Voy a exponer los pasos y lo que quiero. Primero Aparece las opciones de pago (correcto, tal como esta) http://desmond.image...png&res=landing Primer Paso Esto corresponde a esto: public function hookPayment($params) { if (!$this->active) return ; if (!$this->_checkCurrency($params['cart'])) return ; global $smarty; $smarty->assign(array( 'this_path' => $this->_path, 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->name.'/' )); return $this->display(__FILE__, 'payment.tpl'); } Despues veien la ventana importante, aqui aparece normalmente un texto de información, pero no los datos bancarios. Yo quiero que aparezca esto (pero con las variables correctas que ahora aparece en ___________ ) http://desmond.image...png&res=landing Segundo Paso Esto corresponde a esto: public function execPayment($cart) { if (!$this->active) return ; if (!$this->_checkCurrency($cart)) Tools::redirectLink(__PS_BASE_URI__.'order.php'); global $cookie, $smarty; $smarty->assign(array( 'nbProducts' => $cart->nbProducts(), 'cust_currency' => $cart->id_currency, 'currencies' => $this->getCurrency((int)$cart->id_currency), 'total' => $cart->getOrderTotal(true, Cart::BOTH), 'this_path' => $this->_path, 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->name.'/' )); return $this->display(__FILE__, 'payment_execution.tpl'); } Voy a exponer los pasos y lo que quiero. Y por ultimo donde normalmente en Prestashop aparece lo que yo quiero poner en la imagen anterior, ahora quiero que ponga esto (pero repito, lo importante para mi es la imagen anterior, es lo que no consigo): http://desmond.image...png&res=landing Tercer Paso Y esto corresponde a esto: public function hookPaymentReturn($params) { if (!$this->active) return ; global $smarty; $state = $params['objOrder']->getCurrentState(); if ($state == Configuration::get('PS_OS_BANKWIRE') OR $state == Configuration::get('PS_OS_OUTOFSTOCK')) $smarty->assign(array( 'total_to_pay' => Tools::displayPrice($params['total_to_pay'], $params['currencyObj'], false), 'bankwireDetails' => nl2br2($this->details), 'bankwireAddress' => nl2br2($this->address), 'bankwireOwner' => $this->owner, 'status' => 'ok', 'id_order' => $params['objOrder']->id )); else $smarty->assign('status', 'failed'); return $this->display(__FILE__, 'payment_return.tpl'); } Hasta aquí, has entendido la situación de los Hooks? Por lo que si quieres cargar los datos del banco en el paso anterior al confirmar el pago lo deberias de dejar así: public function execPayment($cart) { if (!$this->active) return ; if (!$this->_checkCurrency($cart)) Tools::redirectLink(__PS_BASE_URI__.'order.php'); global $cookie, $smarty; $smarty->assign(array( 'nbProducts' => $cart->nbProducts(), 'cust_currency' => $cart->id_currency, 'bankwireDetails' => nl2br2($this->details), 'bankwireAddress' => nl2br2($this->address), 'bankwireOwner' => $this->owner, 'currencies' => $this->getCurrency((int)$cart->id_currency), 'total' => $cart->getOrderTotal(true, Cart::BOTH), 'this_path' => $this->_path, 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->name.'/' )); return $this->display(__FILE__, 'payment_execution.tpl'); } Luego en el TPL, tienes que imprimir y asignar las nuevas variables. Link to comment Share on other sites More sharing options...
Recommended Posts