Jump to content

Añadiendo usuarios a un grupo al crear un pedido (SOLUCIONADO)


o1dskoo1

Recommended Posts

Hola,

 

Estoy tratando de crear un sencillo módulo donde añadir al usuario a un nuevo grupo cuando éste crea un pedido, pero en el momento que escojo el método de pago (para pruebas tengo puesto tanto el cheque como la transferencia bancaria) y completo el pedido, la columna central aparece vacía y no muestra el mensaje indicando que el pedido se ha completado.

 

Tampoco el código de la función 'hookNewOrder' funciona y eso que cuando imprimo por pantalla la variable '$row' los datos son los correctos.

 

Soy nuevo desarrollando en Prestashop y posiblemente sea alguna tontería que he dejado pasar por alto, así que si alguien pudiese echarme una mano le estaría muy agradecido.

 

Un saludo.

 

<?php
if (!defined('_PS_VERSION_'))
  exit;

class Changegroup extends Module
{
  public function __construct()
  {
	$this->name = 'changegroup';
	$this->tab = 'Test';
	$this->version = 1.0;
	$this->author = 'o1dskoo1';
	$this->need_instance = 0;

	parent::__construct();

	$this->displayName = $this->l( 'Change Group' );
	$this->description = $this->l( 'Change customer\'s group.' );
  }

  public function install()
  {
	if ( parent::install() == false )
		return false;
	return true;
  }

  public function uninstall()
  {
	if ( parent::uninstall() == false )
		return false;
	return true;
  }

  public function hookNewOrder($params)
  {
	$groups = array(2);
	foreach ($groups as $group)
	{
			$row = array('id_customer' => (int)$params['customer']->id, 'id_group' => (int)$group);
			Db::getInstance()->insert('customer_group', $row);
	}
	return true;
  }
}
?>

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

Hola,

 

Al final funcionó. Por si a alguien más le ocurre algo parecido, el fallo pasaba por el contenido del foreach, ya que no reconocía el método 'insert'. Haciendo el siguiente cambio funcionó correctamente:

 

foreach ($groups as $group)
{
	Db::getInstance()->Execute('INSERT INTO `'._DB_PREFIX_.'customer_group` (`id_customer`, `id_group`) VALUES('.$params['customer']->id.', '.$group.')');
}

Link to comment
Share on other sites

Hola,

 

Al final funcionó. Por si a alguien más le ocurre algo parecido, el fallo pasaba por el contenido del foreach, ya que no reconocía el método 'insert'. Haciendo el siguiente cambio funcionó correctamente:

 

foreach ($groups as $group)
{
	Db::getInstance()->Execute('INSERT INTO `'._DB_PREFIX_.'customer_group` (`id_customer`, `id_group`) VALUES('.$params['customer']->id.', '.$group.')');
}

Si has solucionado el tema, edita el titulo del tema, editando el primer mensaje y pulsando en "Usar editor completo"; añadiendo la palabra "Solucionado" al titulo, esto ayudara, a mantener una mayor organización en el foro.

 

Un saludo

Link to comment
Share on other sites

Si has solucionado el tema, edita el titulo del tema, editando el primer mensaje y pulsando en "Usar editor completo"; añadiendo la palabra "Solucionado" al titulo, esto ayudara, a mantener una mayor organización en el foro.

 

Un saludo

¡Modificado!

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...