[Skip to main content](#vessel-content)

#   Création d'un plugin de champ personnalisé pour point-relais DPD

##

- **[skorweb](/forum/user/35005-skorweb "View skorweb's Profile")**
- [![skorweb's Avatar](https://www.hikashop.com/media/kunena/core/svg/person.svg)](/forum/user/35005-skorweb "View skorweb's Profile") Topic Author
- [ Offline](/forum/user/35005-skorweb)

Less More

- Posts: 12
- Thank you received: 0
-
-

9 years 5 months ago -  9 years 5 months ago [\#271668](#271668) by [skorweb](/forum/user/35005-skorweb "View skorweb's Profile")  *[Création d'un plugin de champ personnalisé pour point-relais DPD](/forum/5-support-en-francais-french-support-/890662-creation-dun-plugin-de-champ-personnalise-pour-point-relais-dpd#271668 "-- 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&#95;hikashop/views/order/tmpl/show&#95;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 &quot;checkout&quot;. J'ai procédé de la même manière que cet exemple :  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, &amp;$go&#95;back, $original&#95;go&#95;back), mais je n'ai aucune idée de comment faire afficher mes points relais dans le champ personnalisé &quot;DPD relais&quot; dans la section &quot;Informations complémentaires&quot; 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 ?  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é &quot;Point relais DPD&quot; :  Pour information voici le code de mon plugin :")* was created by *[skorweb](/forum/user/35005-skorweb "View skorweb's Profile")*

-- 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](https://www.hikashop.com/support/documentation/292-integration-with-mondial-relay.html)

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, &amp;$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 :
[ ![&#91;img](http://imageshack.com/a/img924/8969/F3Idpz.png) ](http://imageshack.com/a/img924/8969/F3Idpz.png "&#91;img")

Voici ma configuration du champ personnalisé :
[ ![&#91;img](http://imageshack.com/a/img922/4408/GCjxdk.png) ](http://imageshack.com/a/img922/4408/GCjxdk.png "&#91;img")

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 : Code:

$_POST['pickup_id']

Lors du choix du point-relais je souhaite affecter cette valeur du point-relais choisi à ce champ personnalisé, comment puis-je l'affecter ?
Code:

$orderData = $app-&gt;getUserState( HIKASHOP_COMPONENT.'.checkout_fields'); var_dump($orderData-&gt;pickup);

me retourne : Code:

string(0) ""

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" :
[ ![&#91;img](http://imageshack.com/a/img922/3593/qotXSY.png) ](http://imageshack.com/a/img922/3593/qotXSY.png "&#91;img")

Pour information voici le code de mon plugin : Code:

class plgHikashopDpdpickup extends JPlugin { /** * */ public function __construct(&amp;$subject, $config) { parent::__construct($subject, $config); $this-&gt;loadLanguage('plg_hikashop_dpdpickup', JPATH_ADMINISTRATOR ); } /** * */ public function onFieldsLoad(&amp;$externalValues) { $me = new stdClass(); $me-&gt;name = 'dpdpickup'; $me-&gt;text = 'Sélecteur point relais DPD'; $me-&gt;options = array('required', 'default', 'columnname', 'format', 'allow', 'dpdpickup_options'); $fields[] = $me; $opt = new stdClass(); $opt-&gt;name = 'dpdpickup_options'; $opt-&gt;text = 'Point relais DPD'; $options[$opt-&gt;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; } }

Last edit: 9 years 5 months ago by [skorweb](/forum/user/35005-skorweb "View skorweb's Profile").

Please [Log in](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtLzUtc3VwcG9ydC1lbi1mcmFuY2Fpcy1mcmVuY2gtc3VwcG9ydC0vODkwNjYyLWNyZWF0aW9uLWR1bi1wbHVnaW4tZGUtY2hhbXAtcGVyc29ubmFsaXNlLXBvdXItcG9pbnQtcmVsYWlzLWRwZD90bXBsPW1hcmtkb3du) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

- **[nicolas](/forum/user/63-nicolas "View nicolas's Profile")**
- [![nicolas's Avatar](https://www.hikashop.com/media/kunena/avatars/resized/size144/users/avatar63.png?1793428657)](/forum/user/63-nicolas "View nicolas's Profile")
- [ Away](/forum/user/63-nicolas)

Less More

- Posts: 86556
- Thank you received: 14304
-
-

9 years 5 months ago [\#271685](#271685) by [nicolas](/forum/user/63-nicolas "View nicolas's Profile")  Replied by *[nicolas](/forum/user/63-nicolas "View nicolas's Profile")* on topic *[Création d'un plugin de champ personnalisé pour point-relais DPD](/forum/5-support-en-francais-french-support-/890662-creation-dun-plugin-de-champ-personnalise-pour-point-relais-dpd#271685 "-- 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&#95;hikashop/views/order/tmpl/show&#95;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 &quot;checkout&quot;. J'ai procédé de la même manière que cet exemple :  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, &amp;$go&#95;back, $original&#95;go&#95;back), mais je n'ai aucune idée de comment faire afficher mes points relais dans le champ personnalisé &quot;DPD relais&quot; dans la section &quot;Informations complémentaires&quot; 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 ?  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é &quot;Point relais DPD&quot; :  Pour information voici le code de mon plugin :")*

Bonjour,

Si vous voulez utiliser l'API checkout pour faire l'affichage, c'est une bonne idée.
Mais si vous voulez faire un affichage comme Mondial relai, je vous recommande plutôt de passer par un type de champs personnalisé comme vous avez commencé à faire. Il suffit de faire comme le plugin mondial relai, avec un fichier mondialrelay_class.php qui est require par le fichier principal du plugin, et qui contient une class qui permet l'affichage et la gestion votre champs personnalisé. Dans la fonction display($field, $value, $map, $inside, $options = '', $test = false, $allFields = null, $allValues = null), vous faites appel à displayPickupPoints(), dans la fonction check(&amp;$field, &amp;$value, $oldvalue), vous récupérer la variable $_POST pour la stocker dans la variable $value
et ensuite HikaShop fera la sauvegarde automatiquement pour vous dans la commande.
Donc pas besoin de passer par la session, etc.
Vous pouvez également regarder le plugin plugins/hikashop/datepickerfield qui permet de rajouter le type de champs personnalisé "advanced date picker". Il contient nottamment une fonction "check" alors que le plugin mondial relai n'en contient pas car le javascript de mondial relai se charger de stocker le point relai sélectionné directement dans l'input du champs personnalisé.

Please [Log in](/login?return=aHR0cHM6Ly93d3cuaGlrYXNob3AuY29tL2ZvcnVtLzUtc3VwcG9ydC1lbi1mcmFuY2Fpcy1mcmVuY2gtc3VwcG9ydC0vODkwNjYyLWNyZWF0aW9uLWR1bi1wbHVnaW4tZGUtY2hhbXAtcGVyc29ubmFsaXNlLXBvdXItcG9pbnQtcmVsYWlzLWRwZD90bXBsPW1hcmtkb3du) or [Create an account](/component/users/registration?Itemid=101) to join the conversation.

Board Categories HikaShop Install &amp; Update Product &amp; Category Display Content Creation Sales and Orders Orders management Reports &amp; Statistics Customers Checkout Payment Methods Shipping Methods Import &amp; Export (CSV, XLS…) Specific Features Affilation Taxes Wishlist Vote Carousel &amp; Slider Mass Actions Filters &amp; Search Discount &amp; Coupon Feature Request Integrations Showcase General Talk about HikaShop Development HikaShop 3.0 Beta Translation Commercial Jobs HikaShop Components HikaMarket Market: Feature requests Market: How to? Market: Bug Report HikaSerial General talk about HikaSerial Serial: Bug Report Serial: How to? Support en Français de HikaSerial (French Support) HikaSubscription HikaAuction Auction: Feature requests Auction: How to? Auction: Bug report Hikashop around the world Support en Français (French Support) Russian FAQ. Курс выживания с Hikashop. Частые вопросы и о Расширения Hikashop Наши сайты на Hikashop 日本語版サポート(Japanese Support) Thai German Archives Bug Report How to?

[](/forum/topics/feed/mode-topics?format=feed&type=rss)

Time to create page: 0.060 seconds

[Powered by](/forum/credits) [Kunena Forum](https://www.kunena.org)
