1076626_1508431284 Posted March 14, 2022 Share Posted March 14, 2022 (edited) Buenos Dias, alguien me podrá ayudar a desburrarme, les comento. necesito agregar un boton de whatsapp en el pedido que estoy viendo actualmente, para poder contactar directamente desde ahi a la persona que realizo una compra, (esto lo tengo en otra tienda y es muy útil). el boton ya lo agregue y quedo perfecto como queria, el problema se da con la variable de telefono que no se cual es, para que coloque el teléfono del comprador en el link del boton de whapp. les dejo captura y el codigo para ver si alguien tiene idea de cual es la variable que toma el telefono de la cuenta del comprador del pedido para poder usarlo en el botón. espero se entienda. <form action="https://wa.me/(aca va la variable de tel que no se cual es)" target="_blank"> <div class="input-group"> <button type="submit" class="btn btn-action1"> <i class="material-icons" aria-hidden="true">phone</i> {{ 'Whatsapp'|trans }} </button> </div> </form> Edited March 22, 2022 by 1076626_1508431284 (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted March 15, 2022 Share Posted March 15, 2022 Lo mejor es que realices la modificación mediante un módulo que sobreescriba el archivo order_actions.html.twig.Y que utilice el parámetro del id del pedido para obtener el dato necesario Link to comment Share on other sites More sharing options...
1076626_1508431284 Posted March 15, 2022 Author Share Posted March 15, 2022 8 hours ago, ventura said: Lo mejor es que realices la modificación mediante un módulo que sobreescriba el archivo order_actions.html.twig.Y que utilice el parámetro del id del pedido para obtener el dato necesario a bien! ahi si me la complicaste. entiendo muy poco y pense que quiza utilizando una variable podria acceder a ese dato tal como pasa con el email. <a href="mailto:{{ orderForViewing.customer.email }}"> {{ orderForViewing.customer.email }} </a> se podra hacer algo asi? Link to comment Share on other sites More sharing options...
ventura Posted March 15, 2022 Share Posted March 15, 2022 El módulo precisamente por eso, para crear un hook con un parametro y luego renderizarlo con el orderForViewing.id Link to comment Share on other sites More sharing options...
Manuel_GT Posted March 15, 2022 Share Posted March 15, 2022 Hola. Puedes añadir ese botón con el hook: ActionGetAdminOrderButtons Mas info aqui Ese hook recibe como parámetro el id_order del que puedes sacar el objeto Order con toda la información del pedido (incluida la dirección de entrega o el cliente) y por tanto el teléfono. $order = new Order($params['id_order']); /** @var \Symfony\Bundle\FrameworkBundle\Routing\Router $router */ $router = $this->get('router'); /** @var \PrestaShopBundle\Controller\Admin\Sell\Order\ActionsBarButtonsCollection $bar */ $bar = $params['actions_bar_buttons_collection']; /* Algunos ejemplos de botones con links $bar->add( new ActionsBarButton('btn-info', ['href' => 'https://www.prestashop.com/'], 'Go to prestashop')); $bar->add( new ActionsBarButton('btn-dark', ['href' => 'https://github.com/PrestaShop/example-modules/tree/master/demovieworderhooks'], 'Go to GitHub')); $createAnOrderUrl = $router->generate('admin_orders_create'); $bar->add( new ActionsBarButton('btn-link', ['href' => $createAnOrderUrl], 'Create an order')); */ En tu caso el verde seria de una clase btn-success creo. Claro, todo esto en un módulo. 🤔 Link to comment Share on other sites More sharing options...
1076626_1508431284 Posted March 19, 2022 Author Share Posted March 19, 2022 On 3/15/2022 at 2:33 PM, Manuel_GT said: Hola. Puedes añadir ese botón con el hook: ActionGetAdminOrderButtons Mas info aqui Ese hook recibe como parámetro el id_order del que puedes sacar el objeto Order con toda la información del pedido (incluida la dirección de entrega o el cliente) y por tanto el teléfono. $order = new Order($params['id_order']); /** @var \Symfony\Bundle\FrameworkBundle\Routing\Router $router */ $router = $this->get('router'); /** @var \PrestaShopBundle\Controller\Admin\Sell\Order\ActionsBarButtonsCollection $bar */ $bar = $params['actions_bar_buttons_collection']; /* Algunos ejemplos de botones con links $bar->add( new ActionsBarButton('btn-info', ['href' => 'https://www.prestashop.com/'], 'Go to prestashop')); $bar->add( new ActionsBarButton('btn-dark', ['href' => 'https://github.com/PrestaShop/example-modules/tree/master/demovieworderhooks'], 'Go to GitHub')); $createAnOrderUrl = $router->generate('admin_orders_create'); $bar->add( new ActionsBarButton('btn-link', ['href' => $createAnOrderUrl], 'Create an order')); */ En tu caso el verde seria de una clase btn-success creo. Claro, todo esto en un módulo. 🤔 Hola Manuel gracias por tu ayuda, estoy perdido con el tema de generar un módulo (estoy metiendo mano de metido que soy ya que entiendo poco y nada de programación y ahi está mi problema). me parece que la idea esta buena pero no podre aplicarla. pense que seria mas facil. Link to comment Share on other sites More sharing options...
1076626_1508431284 Posted March 19, 2022 Author Share Posted March 19, 2022 On 3/15/2022 at 2:33 PM, Manuel_GT said: Hola. Puedes añadir ese botón con el hook: ActionGetAdminOrderButtons Mas info aqui Ese hook recibe como parámetro el id_order del que puedes sacar el objeto Order con toda la información del pedido (incluida la dirección de entrega o el cliente) y por tanto el teléfono. $order = new Order($params['id_order']); /** @var \Symfony\Bundle\FrameworkBundle\Routing\Router $router */ $router = $this->get('router'); /** @var \PrestaShopBundle\Controller\Admin\Sell\Order\ActionsBarButtonsCollection $bar */ $bar = $params['actions_bar_buttons_collection']; /* Algunos ejemplos de botones con links $bar->add( new ActionsBarButton('btn-info', ['href' => 'https://www.prestashop.com/'], 'Go to prestashop')); $bar->add( new ActionsBarButton('btn-dark', ['href' => 'https://github.com/PrestaShop/example-modules/tree/master/demovieworderhooks'], 'Go to GitHub')); $createAnOrderUrl = $router->generate('admin_orders_create'); $bar->add( new ActionsBarButton('btn-link', ['href' => $createAnOrderUrl], 'Create an order')); */ En tu caso el verde seria de una clase btn-success creo. Claro, todo esto en un módulo. 🤔 ese codigo esta en /src/PrestaShopBundle/Controller/Admin/Sell/Order/OrderController.php ? por que no lo encuentro Link to comment Share on other sites More sharing options...
Manuel_GT Posted March 19, 2022 Share Posted March 19, 2022 Bueno a ver. Como veo que lo del módulo te ha generado mas problemas de los que ya tenías, quizas podamos hacerlo de otra forma. Mencionas en tu código: On 3/15/2022 at 2:26 PM, 1076626_1508431284 said: orderForViewing.customer.email Ese objeto (orderForViewing) es enorme. Su definición de clase esta en src\Core\Domain\Order\QueryResult\OrderForViewing.php Allí verás que la propiedad customer es realmente un objeto llamado OrderCustomerForViewing con las propiedades de nombre, email etc. Pero no de teléfono. Pero tambien hay otra propiedad llamada shippingAddress que realmente es un objeto de la clase OrderShippingAddressForViewing que si tiene la propiedad phoneNumber y mobilePhoneNumber y otro llamado invoiceAddress de tipo OrderInvoiceAddressForViewing que tambien las tiene. Asi pues, debería funcionar algo como: orderForViewing.shippingAddress.mobilePhoneNumber o orderForViewing.invoiceAddress.mobilePhoneNumber Pero CUIDADO. Estas clases están marcadas "deprecated" y serán eliminadas en el futuro. Si las usas y luego subes de versión en el futuro, el código dará error. En su lugar aparece el método getInvoiceAddressFormatted() que devuelve un string!! Sinceramente me parece un error eliminar esas clases con tanta información valiosa por un string. Espero te sirva. Link to comment Share on other sites More sharing options...
1076626_1508431284 Posted March 19, 2022 Author Share Posted March 19, 2022 18 minutes ago, Manuel_GT said: Bueno a ver. Como veo que lo del módulo te ha generado mas problemas de los que ya tenías, quizas podamos hacerlo de otra forma. Mencionas en tu código: Ese objeto (orderForViewing) es enorme. Su definición de clase esta en src\Core\Domain\Order\QueryResult\OrderForViewing.php Allí verás que la propiedad customer es realmente un objeto llamado OrderCustomerForViewing con las propiedades de nombre, email etc. Pero no de teléfono. Pero tambien hay otra propiedad llamada shippingAddress que realmente es un objeto de la clase OrderShippingAddressForViewing que si tiene la propiedad phoneNumber y mobilePhoneNumber y otro llamado invoiceAddress de tipo OrderInvoiceAddressForViewing que tambien las tiene. Asi pues, debería funcionar algo como: orderForViewing.shippingAddress.mobilePhoneNumber o orderForViewing.invoiceAddress.mobilePhoneNumber Pero CUIDADO. Estas clases están marcadas "deprecated" y serán eliminadas en el futuro. Si las usas y luego subes de versión en el futuro, el código dará error. En su lugar aparece el método getInvoiceAddressFormatted() que devuelve un string!! Sinceramente me parece un error eliminar esas clases con tanta información valiosa por un string. Espero te sirva. Sos un Genio anduvo perfecto con "orderForViewing.shippingAddress.mobilePhoneNumber" era lo que buscaba.. entiendo lo que me decis, con subir de version te referis a hacer un update de prestashop? por que si es asi en este momento estoy usando la 1.7.7.7 y corre perfecto, actualice hace poco a 1.7.8.3 y me enloquecio la cantidad de errores que me dio asi que volvi al 1.7.7.7 y ahi me quedare. Link to comment Share on other sites More sharing options...
Manuel_GT Posted March 19, 2022 Share Posted March 19, 2022 Me alegro que te haya servido. 😉 Segun la documentación las clases desaparecerán en la next "Mayor" version, por tanto en la 1.8. La 1.7.7.x las mantendrá aunque con un aviso de "deprecated". Por favor, marca el post como "solucionado" Gracias! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now