如何在 magento 2 的结账页面上获取步骤名称?

Mar*_*lia 1 javascript checkout magento magento2

我在结帐页面的“订单摘要”中添加了一个自定义块。它显示在两个步骤 - 运输和付款。但我需要知道当前的步骤是什么。我怎样才能在这个块上得到它?

Sia*_*bau 7

您可以在自定义块模板/组件中使用Magento_Checkout/js/view/progress-bar组件或Magento_Checkout/js/model/step-navigator组件(由进度条使用)。

使用进度条:

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

progressBar.isProcessed(firstStep); // returns bool, shipping step by default 
Run Code Online (Sandbox Code Playgroud)

结果

使用步进导航器:

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

或者:

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

注:第二步名称默认为支付

PS:在您自己的组件中,您可以将Magento_Checkout/js/view/progress-bar或添加Magento_Checkout/js/model/step-navigator到定义列表中:

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