tascaral Posted December 2, 2016 Share Posted December 2, 2016 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 More sharing options...
ventura Posted December 2, 2016 Share Posted December 2, 2016 Puedes probar algo asi foreach($products as $product) { if (strpos($product['name'] , 'EL_NOMBRE_QUE_SEA') !== false) return; } Link to comment Share on other sites More sharing options...
tascaral Posted December 2, 2016 Author Share Posted December 2, 2016 Gracias Ventura, probaré a ver que tal, y ya te cuento el resultado. En el caso de buscar una palabra dentro de descripcion seria agregar otro condicionante?. Link to comment Share on other sites More sharing options...
ventura Posted December 2, 2016 Share Posted December 2, 2016 Gracias Ventura, probaré a ver que tal, y ya te cuento el resultado. En el caso de buscar una palabra dentro de descripcion seria agregar otro condicionante?. Si, así seria Link to comment Share on other sites More sharing options...
tascaral Posted December 2, 2016 Author Share Posted December 2, 2016 Ufff... esto me esta costando, pero porque creo que el ejemplo de codigo que han colocado no encaja con la version que tengo. Tengo Prestashop 1.6.1.1 y el modulo es Link to comment Share on other sites More sharing options...
tascaral Posted December 2, 2016 Author Share Posted December 2, 2016 el modulo es paypal version 3.10.10... no salio en la entrada anterior. Link to comment Share on other sites More sharing options...
ventura Posted December 2, 2016 Share Posted December 2, 2016 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now