Hi everybody, I am Cuong, Welcome back to my Magento 2 tutorial video series.
Recently, I got a request from a fan on my YouTube channel. It was a request from @asfarwaheed3913 Youtube channel, that he wanted to create a customization button on the checkout page, when clicking this button it will show a popup content with the Google Maps content, and then the client can close this popup by clicking the close button.
At this time I have free time, so I created this video so everybody can watch, please subscribe to my channel and share my videos so I will get motivated to make new videos.
Let's do this practice, we must create a new customization module called PHPCuong_CustomerAddress. This module will override the default template of the street field. Then we can add a customization button called "Show Google Maps" next to this street field.
Watch the video about this practice here https://www.youtube.com/watch?v=3ANR_SfyIAY&list=PL98CDCbI3TNvPczWSOnpaMoyxVISLVzYQ&index=98
Hi @PHPCuong,
To add a customization button on the checkout page:
First create a file at Vendor_Module/view/frontend/layout/checkout_index_index.xml
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="checkout.root"> <arguments> <argument name="jsLayout" xsi:type="array"> <item name="components" xsi:type="array"> <item name="checkout" xsi:type="array"> <item name="children" xsi:type="array"> <item name="steps" xsi:type="array"> <item name="children" xsi:type="array"> <item name="billing-step" xsi:type="array"> <item name="children" xsi:type="array"> <item name="payment" xsi:type="array"> <item name="children" xsi:type="array"> <item name="afterMethods" xsi:type="array"> <item name="children" xsi:type="array"> <item name="custom-form" xsi:type="array"> <!-- Add this item to configure your js file --> <item name="component" xsi:type="string">Milople_Customization/js/popup</item> <item name="config" xsi:type="array"> <!-- And this to add your html template --> <item name="template" xsi:type="string">Milople_Customization/checkout/popup-content</item> </item> </item> </item> </item> </item> </item> </item> </item> </item> </item> </item> </item> </item> </argument> </arguments> </referenceBlock> </body> </page>
<!-- app/code/YourVendor/YourModule/view/frontend/templates/checkout/popup-content.phtml --> <button id="custom-button">Customize Checkout</button> <div id="popup-content" style="display: none;"> <!-- Google Maps content goes here --> <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3152.754452651938!2d-122.0840864843229!3d37.422040079827695!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x808580cf7e26cf19%3A0xa90477e837e49695!2sGoogleplex!5e0!3m2!1sen!2sus!4v1588735338476!5m2!1sen!2sus" width="600" height="450" frameborder="0" style="border:0;" allowfullscreen="" aria-hidden="false" tabindex="0"></iframe> <button id="close-button">Close</button> </div>
// app/code/YourVendor/YourModule/view/frontend/web/js/popup.js require(['jquery'], function($) { $(document).ready(function() { $('#custom-button').on('click', function() { // Show the popup $('#popup-content').show(); }); $('#close-button').on('click', function() { // Close the popup $('#popup-content').hide(); }); }); });After this new button will be created when clicking this button it will show a popup content with the Google Maps content, and then the client can close this popup by clicking the close button.
To add a customization button on the Magento 2 checkout page for showing Google Maps in a popup, you need to create a new module, perhaps named PHPCuong_CustomerAddress. This module should override the default template of the checkout's street field to include your custom button. When clicked, this button will trigger a popup displaying Google Maps, allowing the client to view the map and close the popup afterward. This involves editing Magento's layout XML files, creating a new template file for the button, and possibly adding JavaScript for the popup functionality and integrating the Google Maps API.