-- HikaShop version -- : 2.2.2
-- Joomla version -- : 3.2
-- PHP version -- :5.3.17
Bonjour
Comme deja exposé dans un topic precedent, vous proposiez de modifier la variable de session adresse de livraison avec:
$app=JFactory::getApplication();
$app->setUserState('com_hikashop.shipping_address',$address_id);
http://www.hikashop.com/forum/5-support-en-francais-french-support-/863024-forcer-une-adresse-de-livraison.html
J'essaye de mettre en place cela mais rien ne se passe.
Voici ma fonction onBeforeOrderCreate que j'ai creer, et je ne vois pas l'erreur.
function onBeforeOrderCreate(&$order, &$do){
$app = JFactory::getApplication();
$shipping_method = $app->getUserState('com_hikashop.shipping_data');
if ($shipping_method[0]->id_relais!='0') //Mise en memoire de l'adresse et creation de l'adresse du relais
{
$user_id = hikashop_loadUser();//chargement de l'id du client
$address_company=$shipping_method[0]->shipping_name;
$address_street=$shipping_method[0]->adresse1;
$address_street2=$shipping_method[0]->adresse2;
$address_post_code=$shipping_method[0]->cp;
$address_city=$shipping_method[0]->ville;
$address_country=$shipping_method[0]->pays;
$address_published='0';
$address_default='0';
$db =& JFactory::getDBO(); // enregistrement de l'adresse du relais dans la base de données
$query = "INSERT INTO ".hikashop_table('address')." (address_user_id,address_company, address_street, address_street2, address_post_code, address_city, address_country, address_published, address_default)
VALUES ('".$user_id."', '".$address_company."', '".$address_street."', '".$address_street2."', '".$address_post_code."', '".$address_city."', '".$address_country."', '0', '0' )";
$db->setQuery( $query );
$db->query();
$db = JFactory::getDBO(); //Recuperation l'id de l'adresse du client qui vient d'etre enregistrer
$db->setQuery('SELECT address_id FROM '.hikashop_table('address').' WHERE address_user_id = '.$user_id. ' ORDER BY address_id DESC LIMIT 1');
$address_id = $db->loadResult();
$app=JFactory::getApplication();//Rajout l'ID de l'adresse dans la session
$app->setUserState('com_hikashop.shipping_address',$address_id);
}
$order->id_relais = $shipping_method[0]->id_relais;
$order->adresse_relais = $shipping_method[0]->adresse_relais;
}
Merci par avance pour votre aide.
Nicolas