-- HikaShop version -- : 2.6.3
-- Joomla version -- : 3.7.2
-- PHP version -- : 7.0
-- Browser(s) name and version -- : Firefox 53.0.3 (64 bits)
-- Error-message(debug-mod must be tuned on) -- : Notice: Trying to get property of non-object in /var/www/clients/client2/web16/web/administrator/components/com_hikashop/views/order/tmpl/show_additional.php on line 79
Bonjour, je suis actuellement en train de développer un plugin hikashop en reprenant pour exemple le plugin mondialrelay qui permet de sélectionner un point relais via un champ personnalisé dédié dans le "checkout".
J'ai procédé de la même manière que cet exemple :
Mondialrelaymondialrelay
Je rencontre des difficultés pour configurer l'affichage de ce plug in en front-end et dans le panneau d'administration après le passage d'une commande.
J'ai une fonction toute prête : displayPickupPoints() qui fonctionne lorsque je le met dans une fonction onBeforeCheckoutStep($controller, &$go_back, $original_go_back), mais je n'ai aucune idée de comment faire afficher mes points relais dans le champ personnalisé "DPD relais" dans la section "Informations complémentaires"
Voici ce que j'aimerai obtenir :
Voici ma configuration du champ personnalisé :
La valeur du point-relais choisi par l'utilisateur est transmise à la page courante en ajax via une méthode post, et la variable s'appelle :
Lors du choix du point-relais je souhaite affecter cette valeur du point-relais choisi à ce champ personnalisé, comment puis-je l'affecter ?
$orderData = $app->getUserState( HIKASHOP_COMPONENT.'.checkout_fields');
var_dump($orderData->pickup);
me retourne :
Existe-t-il une méthode set() pour ce champs personnalisé ?
Ce que j'attends de mon plugin sera aussi de mentionner dans le panneau d'administration de commande le numéro du point-relais choisi pour une commande dans la valeur du champ personnalisé "Point relais DPD" :
Pour information voici le code de mon plugin :
class plgHikashopDpdpickup extends JPlugin
{
/**
*
*/
public function __construct(&$subject, $config) {
parent::__construct($subject, $config);
$this->loadLanguage('plg_hikashop_dpdpickup', JPATH_ADMINISTRATOR );
}
/**
*
*/
public function onFieldsLoad(&$externalValues) {
$me = new stdClass();
$me->name = 'dpdpickup';
$me->text = 'Sélecteur point relais DPD';
$me->options = array('required', 'default', 'columnname', 'format', 'allow', 'dpdpickup_options');
$fields[] = $me;
$opt = new stdClass();
$opt->name = 'dpdpickup_options';
$opt->text = 'Point relais DPD';
$options[$opt->name] = $opt;
}
public function displayPickupPoints() {
//Return html code which contains the DPD pickup list as you can see in the first screen at the top of this topic
//Cette fonction retourne la liste des points-relais DPD tels que vous pouvez le voir dans la première image en haut de ce topic
return $html;
}
}