Jump to content

Ayuda a comprender porque no se ejecuta esta sección de código.


MedinaAJ

Recommended Posts

Buenas,

 

Estoy probando a modificar un controlador, concretamente el CartController, y con el fin de ver los datos que van pasándose, voy incluyendo prints.

Actualmente estoy en la función "postProcess" de este controlador, he puesto un insert a la base de datos:

public function postProcess()
    {
        // Update the cart ONLY if $this->cookies are available, in order to avoid ghost carts created by bots
        if ($this->context->cookie->exists() && !$this->errors && !($this->context->customer->isLogged() && !$this->isTokenValid())) {
			
            if (Tools::getIsset('add') || Tools::getIsset('update')) {
				/*Code mio*/
				db::getInstance()->execute('INSERT INTO '. _DB_PREFIX_ .'cart_product_cama_articulada VALUES (1,2365)');
				/*Fin code mio*/
				$this->processChangeProductInCart();
				
            } elseif (Tools::getIsset('delete')) {
                $this->processDeleteProductInCart();
            } elseif (Tools::getIsset('changeAddressDelivery')) {
                $this->processChangeProductAddressDelivery();
            } elseif (Tools::getIsset('allowSeperatedPackage')) {
                $this->processAllowSeperatedPackage();
            } elseif (Tools::getIsset('duplicate')) {
                $this->processDuplicateProduct();
            }
            // Make redirection
            if (!$this->errors && !$this->ajax) {
                $queryString = Tools::safeOutput(Tools::getValue('query', null));
                if ($queryString && !Configuration::get('PS_CART_REDIRECT')) {
                    Tools::redirect('index.php?controller=search&search='.$queryString);
                }

                // Redirect to previous page
                if (isset($_SERVER['HTTP_REFERER'])) {
                    preg_match('!http(s?)://(.*)/(.*)!', $_SERVER['HTTP_REFERER'], $regs);
                    if (isset($regs[3]) && !Configuration::get('PS_CART_REDIRECT')) {
                        $url = preg_replace('/(\?)+content_only=1/', '', $_SERVER['HTTP_REFERER']);
                        Tools::redirect($url);
                    }
                }

                Tools::redirect('index.php?controller=order&'.(isset($this->id_product) ? 'ipa='.$this->id_product : ''));
            }
        } elseif (!$this->isTokenValid()) {
            if (Tools::getValue('ajax')) {
                $this->ajaxDie(Tools::jsonEncode(array(
                    'hasError' => true,
                    'errors' => array(Tools::displayError('Impossible to add the product to the cart. Please refresh page.')),
                )));
            } else {
                Tools::redirect('index.php');
            }
        }
    }

 

En la sección code mio hago un insert y se ve reflejado, hasta ahí sin problema, pero cuando me meto al método "processChangeProductInCart" justo debajo de esa linea, y hago lo mismo, no me inserta nada, el código queda asi:

protected function processChangeProductInCart()
	
    {
		/*Code mio*/
				db::getInstance()->execute('INSERT INTO '. _DB_PREFIX_ .'cart_product_cama_articulada VALUES (1,2365)');
				/*Fin code mio*/
		$mode = (Tools::getIsset('update') && $this->id_product) ? 'update' : 'add';
			
        if ($this->qty == 0) {
            $this->errors[] = Tools::displayError('Null quantity.', !Tools::getValue('ajax'));
        } elseif (!$this->id_product) {
            $this->errors[] = Tools::displayError('Product not found', !Tools::getValue('ajax'));
        }

        $product = new Product($this->id_product, true, $this->context->language->id);
        if (!$product->id || !$product->active || !$product->checkAccess($this->context->cart->id_customer)) {
            $this->errors[] = Tools::displayError('This product is no longer available.', !Tools::getValue('ajax'));
            return;
        }
....

 

Pues en la primera sección inserta, pero en la segunda no, y no entiendo el por qué.

Si alguien puede arrojar algo de luz sobre mi problema sería de gran ayuda.

 

Un saludo.

Link to comment
Share on other sites

  • 3 weeks later...

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