admin管理员组

文章数量:1394544

I added a custom block to "Order Summary" on checkout page. It's displaying on both steps - shipping and payment. But I need to know what is the current step. How I can get it on this block?

I added a custom block to "Order Summary" on checkout page. It's displaying on both steps - shipping and payment. But I need to know what is the current step. How I can get it on this block?

Share Improve this question asked May 30, 2017 at 12:21 Maria BarauliaMaria Baraulia 331 silver badge4 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 8

You can use the Magento_Checkout/js/view/progress-bar ponent or Magento_Checkout/js/model/step-navigator ponen (used by progress-bar) inside your custom block template/ponent.

Using progress-bar:

var registry = require('uiRegistry'),
    progressBar = registry.get('index = progressBar'),
    firstStep = progressBar.steps()[0];

progressBar.isProcessed(firstStep); // returns bool, shipping step by default 

Using step-navigator:

var stepnav = require('Magento_Checkout/js/model/step-navigator');
stepnav.getActiveItemIndex() // returns int - 0 for shipping & 1 for payment by default

or:

var registry = require('Magento_Checkout/js/model/step-navigator');
registry.isProcessed('shipping'); // returns bool, you are on shipping step

Note: the second step name is payment by default

PS: inside your own ponent you can add the Magento_Checkout/js/view/progress-bar or Magento_Checkout/js/model/step-navigator to the define list:

define(
    [
        'Magento_Checkout/js/model/step-navigator'
    ],
    function (
        stepNavigator
    ) {
        // do something with stepNavigator
    }
);

本文标签: javascriptHow to get step name on checkout page in magento 2Stack Overflow