#StackBounty: #magento2 #checkout #popup #authentication how to show customer authentication popup when clicking on checkout button in …

Bounty: 50

I want to check if a user is logged in before proceeding to checkout. On the basis of customer login condition, i want to show the login popup if not login, and redirect to checkout if logged in already.

IMPORTANT: I have guest checkout enabled in the configuration. Because I want user to checkout with guest account

I am able to redirect user to login page when not logged in. But not able to use popup instead of redirecting it to login page.

to redirect user to login page, I did the following changes in my minicart.js file:

var cc = customerData.get('customer');
if(cc().firstname){
    console.log("customerData",true);
    var urls = window.checkout.checkoutUrl; 
}else{
    console.log("customerData",false);
    $( document.body ).removeClass( "logedin" );
    var urls = window.checkout.customerLoginUrl;
}

please help me find out how to use popup login instead redirecting to login page.


Get this bounty!!!

How to show Popup programmatically in Oracle ADF

When trying to open a Popup on JSF/JSFF page programmatically through Managed Bean, use the following method and pass the ID of the popup to the method:

 public void openPopup(String popupId) {
         ExtendedRenderKitService erkService =
         Service.getService(FacesContext.getCurrentInstance().getRenderKit(),
         ExtendedRenderKitService.class);
         erkService.addScript(FacesContext.getCurrentInstance(),
         "var hints = {autodismissNever:true}; " +
         "AdfPage.PAGE.findComponent('" + popupId +
         "').show(hints);");
 }
OR

On the button , write a method on the action event.
 public void ShowPopup(ActionEvent actionEvent) {
          RichPopup.PopupHints hints = new RichPopup.PopupHints();
          this.getPopUp().show(hints);
 
 }

If you want to hide the popup..you can write like this

  public void HidePopup(ActionEvent actionEvent) {
           RichPopup.PopupHints hints = new RichPopup.PopupHints();
           this.getPopUp().hide();
 
  }

General use is when you wish to call the a popup from a button press but first want to execute some actions/processings in the screen on the button click.

In the button on the JSFF, just add a actionListener and then call the openPopup() method from the action listener or any other method you wish to.

Source: Forum