Jump to content

Restricción de Pago x Producto


Recommended Posts

Muy buenas...

 

Hace tiempo que estoy buscando de restringir una forma de pago por producto, he encontrado por transportista o zonas, pero no es mi caso. Se tratan específicamente de algunos productos que contienen DVD, estos no son aceptados por PayPal y necesito que no puedan ser pagados por el mismo. Encontre esto en un hilo:

 

public function hookPayment($params)
    {
        global $cart;
    
        $products
= $cart->getProducts();
        foreach($products as $product)
        {
            $results = Db::getInstance()->ExecuteS('
                SELECT *
                FROM `'
._DB_PREFIX_.'category_product` WHERE id_product=' . $product['id_product'] . ' AND id_category=111111');
            if(isset($results) AND count($results)>0)return;
        }
    
        
if (!$this->active)
            return ;
        return $this->display(__FILE__, 'paypal.tpl');
    }

 

La diferencia es que para el uso de este código es necesario colocarlos en una categoria especifica, algo que por configuracion en la importacion diaria con el proveedor, pierdo si lo hago. ¿Que modificación debería realizar en el código para que solo detecte los que contiene DVD? (DVD aparece en descripcion y/o nombre de los productos).

 

Gracias de antemano.

Link to comment
Share on other sites

Independientemente de la version de Prestashop que tengas instalada, la funcion del hook  hookPayment  debe de estar en el archivo .php principal del modulo de pago

Luego deberas instanciar de manera completa, algo asi

$products = $params['cart']->getProducts();
foreach($products as $product)
 {
if (strpos($product['name'] , 'Printed') !== false)
 return;
 }

De esta manera funcionaria de manera generica, es decir que cuando hubiera un solo producto con esa condición el modulo no aparecería. Si necesitas que solo desaparezca cuando incluya solo productos que se incluyan en esa condicion haría falta añadir un contador

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...