Jump to content

Agregar imagen a modulo de transferencia bancaria


guh9090

Recommended Posts

  • 2 weeks later...

Hola,
Esa necesidad no la habia tenido y cachareeando un poco en el codigo del modulo de Paypal entendí como lo hace.

primero lo que debes identificar es la imagen que quieres poner en el modulo y en las medidas que la necesitas, puedes usar como base la de paypal ya que probe con el logo del modulo y desajusta todo...

Cuando tengas la imagen vas a la siguiente ruta (via FTP o filemanager segun sea el caso) $home/modules/ps_wirepayment/ y subes la imagen con un nombre que identifiques y sin reemplazar el logo del modulo.

Lo siguiente es que modificas el archivo ps_wirepayment.php que se encuentra ahi en ese mismo folder y vas a la linea 198

public function hookPaymentOptions($params)
    {
        if (!$this->active) {
            return;
        }

        if (!$this->checkCurrency($params['cart'])) {
            return;
        }

        $this->smarty->assign(
            $this->getTemplateVarInfos()
        );

        $newOption = new PaymentOption();
        $newOption->setModuleName($this->name)
                ->setCallToActionText($this->trans('Pay by bank wire', array(), 'Modules.Wirepayment.Shop'))
                ->setAction($this->context->link->getModuleLink($this->name, 'validation', array(), true))
                ->setAdditionalInformation($this->fetch('module:ps_wirepayment/views/templates/hook/ps_wirepayment_intro.tpl'));
        $payment_options = [
            $newOption,
        ];

        return $payment_options;
    }

Y agregarias el siguiente texto, reemplazando logo.png por el nombre identificador de tu imagen

->setLogo(Media::getMediaPath(_PS_MODULE_DIR_.$this->name.'/logo.png'))

Quedando de la siguiente manera:
 

    public function hookPaymentOptions($params)
    {
        if (!$this->active) {
            return;
        }

        if (!$this->checkCurrency($params['cart'])) {
            return;
        }

        $this->smarty->assign(
            $this->getTemplateVarInfos()
        );

        $newOption = new PaymentOption();
        $newOption->setModuleName($this->name)
                ->setCallToActionText($this->trans('Pay by bank wire', array(), 'Modules.Wirepayment.Shop'))
                ->setAction($this->context->link->getModuleLink($this->name, 'validation', array(), true))
                ->setLogo(Media::getMediaPath(_PS_MODULE_DIR_.$this->name.'/logo.png'))
                ->setAdditionalInformation($this->fetch('module:ps_wirepayment/views/templates/hook/ps_wirepayment_intro.tpl'));
        $payment_options = [
            $newOption,
        ];

        return $payment_options;
    }

Si refrescas tu pagina de pagos ya deberia aparecer la imagen en el metodo de pago

Captura de pantalla de 2018-01-17 09:28:43.png

Edited by juan.diegomdc
Falto cargar una imagen que faltaba (see edit history)
Link to comment
Share on other sites

Es como comenta el compañero @juan.diegomdc

El año pasado (noviembre del año pasado (2017)) estuve comentado también este aspecto en un articulo: http://victor-rodenas.com/2017/11/21/creacion-de-un-modulo-de-pago-en-prestashop-1-7/ junto con otras novedades que incluyen los métodos de pago en Prestashop 1.7 respecto a Prestashop 1.6

 

PD: Añado que se me olvidaba comentar, recordar que es recomendable hacer override del fichero que ha comentado el compañero, ya que si se actualiza el modulo se perderán los cambios.

Edited by nadie (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Hola @samura87 comentaste el codigo en ese modulo, pero puedes mostrar la funcion donde lo hiciste por favor, la idea es que sea dentro de 

function hookPaymentOptions

Algo que no logramos ver en tu captura de pantalla, Si puedes copiar el codigo de la funcion que modificaste te podemos ayudar de mejor manera.

Saludos!

Link to comment
Share on other sites

Antes, gracias por la ayuda Juan y Nadie.

 

    public function hookPaymentOptions($params) {
        if (!$this->active) {
            return;
        }

        if (!$this->checkCurrency($params['cart'])) {
            return;
        }

        $blockme = false;
        $categories_search = array();
        $limited_categories = explode(",", Configuration::get('PPAL_FEE_DISABLECAT'));
        $product_by_category = $params['cart']->getProducts(true);
        $ppal_fee_limit = Configuration::get('PPAL_FEE_LIMIT');
        
        if($params['cart']->id_currency != Configuration::get('PS_CURRENCY_DEFAULT')){
            $current_currency = new Currency($params['cart']->id_currency);
            $conversion_rate = $current_currency->conversion_rate;
            $ppal_fee_limit = round($ppal_fee_limit * $conversion_rate,6);
        }
        
        foreach ($product_by_category as $value) {
            $categories_search[] = $value['id_category_default'];
            foreach ($categories = $this->getCategoriesByProduct($value['id_product']) as $category) {
                $categories_search[] = $category['id_category'];
            }
        }

        foreach ($limited_categories as $value) {
            if (in_array($value, $categories_search)) {
                $blockme = true;
                break;
            }
        }

        if ($ppal_fee_limit >= 0 && !$blockme) {
            $total_compare = $this->context->cart->getOrderTotal(true);
            if ($total_compare <= $ppal_fee_limit || $ppal_fee_limit == 0) {
                $fee = $this->getFee($this->context->cart);
                $link = new Link();
                $path_controller = Configuration::get('PS_SSL_ENABLED') == 0 ? $this->context->link->getModuleLink('paypalwithfee', 'payment') : $this->context->link->getModuleLink('paypalwithfee', 'payment', array(), true);
                $return_url = Configuration::get('PS_SSL_ENABLED') == 0 ? $this->context->link->getModuleLink('paypalwithfee', 'validation') : $this->context->link->getModuleLink('paypalwithfee', 'validation', array(), true);
                $cancel_url = Configuration::get('PS_SSL_ENABLED') == 0 ? $link->getPageLink('order') : $link->getPageLink('order', true);

                $this->context->smarty->assign(array(
                    'limitpay' => $ppal_fee_limit,
                    'returnURL' => $return_url,
                    'cancelURL' => $cancel_url,
                    'path_controller' => $path_controller,
                    'module_path' => $this->_path,
                    'fee_real' => $this->getFee($this->context->cart),
                    'fee' => Tools::displayPrice($this->getFee($this->context->cart)),
                    'total_amount' => Tools::displayPrice($total_compare + $this->getFee($this->context->cart)),
                ));

                $externalOption = new PaymentOption();
                $externalOption->setCallToActionText($fee > 0 ? $this->l('Pay with Paypal').' +'.Tools::displayPrice($fee) : $this->l('Pay with Paypal'))//$this->trans('Pay with Paypal', array(), 'Modules.Paypalwithfee.Shop'))
                        ->setAction($path_controller)
                         ->setLogo(Media::getMediaPath(_PS_MODULE_DIR_.$this->name.'/paypal_sm.png'))

                         ->setInputs([
                            'cancelURL' => [
                                'name' => 'cancelURL',
                                'type' => 'hidden',
                                'value' => $cancel_url,
                            ],
                            'returnURL' => [
                                'name' => 'returnURL',
                                'type' => 'hidden',
                                'value' => $return_url,
                            ],
                        ])
                        ->setAdditionalInformation($this->context->smarty->fetch('module:paypalwithfee/views/templates/front/payment_infos.tpl'))
                        ->setLogo(Media::getMediaPath(_PS_MODULE_DIR_ . $this->name . 'views/img/paypal_logo.jpg'));
                return [$externalOption];
            }
        }
    }

    public function hookActionValidateOrder($params) {

Link to comment
Share on other sites

Revisa bien porque puede ser algo de la configuracion o de la plantilla porque en la penultima linea ya estaba agregado que saliera el LOGO

Quote

->setAdditionalInformation($this->context->smarty->fetch('module:paypalwithfee/views/templates/front/payment_infos.tpl'))
                        ->setLogo(Media::getMediaPath(_PS_MODULE_DIR_ . $this->name . 'views/img/paypal_logo.jpg'));
                return [$externalOption];

Si compraste el modulo, checalo con los devs... porque no esta saliendo o si es que la plantilla no soporta las imagenes

Link to comment
Share on other sites

  • 2 months later...

Hola A todos 

Para mi lo mejor es modificar cada modulo y diseñarlo en html y así lo ponemos como queramos y todo sigue una estética como el ejemplo que paso.

Seguro que se podrá modificar cada modulo para que la imagen se cargue automáticamente pero ya no tengo tiempo para eso y lo hago en html 

 Espero que a alguien le ayuda 

 

Saludos

pagos.jpg

Link to comment
Share on other sites

hace 4 horas, ortopediamimas dijo:

Hola A todos 

Para mi lo mejor es modificar cada modulo y diseñarlo en html y así lo ponemos como queramos y todo sigue una estética como el ejemplo que paso.

Seguro que se podrá modificar cada modulo para que la imagen se cargue automáticamente pero ya no tengo tiempo para eso y lo hago en html 

 Espero que a alguien le ayuda 

 

Saludos

 

Está genial, ¿cómo lo hiciste? 

¿Vendes tu modulo? 

 

 

Saludos!

Link to comment
Share on other sites

  • 1 year later...
En 25/1/2018 a las 2:35 PM, nadie dijo:

Es como comenta el compañero @juan.diegomdc

El año pasado (noviembre del año pasado (2017)) estuve comentado también este aspecto en un articulo: http://victor-rodenas.com/2017/11/21/creacion-de-un-modulo-de-pago-en-prestashop-1-7/ junto con otras novedades que incluyen los métodos de pago en Prestashop 1.7 respecto a Prestashop 1.6

 

PD: Añado que se me olvidaba comentar, recordar que es recomendable hacer override del fichero que ha comentado el compañero, ya que si se actualiza el modulo se perderán los cambios.

Hola Victor.
¿Como se podrían usar estas instrucciones para añadir un logo VISA  o similar al módulo de pago oficial de Redsys en Prestashop 1.7 ?

No soy capaz de encontrar la solución.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...