magento 2 - отображение логотипа способа доставки


Я создал модуль для добавления логотипа способа доставки. В бэкэнде он успешно работает нормально, например, загружает изображение логотипа, удаляет изображение логотипа и т.д. Пожалуйста, посмотрите на изображение ниже.

enter image description here

Но я застрял, чтобы отобразить это изображение логотипа на странице оформления заказа в списке способов доставки.

Как отобразить пользовательское значение конфигурации системы в html-файле knockoutjs. Я новичок в knockoutjs, пожалуйста, дайте мне инструкции по добавлению логотипа в тарифы массив.

Author: Chirag Patel, 2019-03-30

1 answers

Попробуйте использовать следующий способ.

App/code/Vendor/ModuleName/view/frontend/web/js/view/custom-shipping.js

define([
'ko',
'jquery',
'uiComponent',
'mage/storage',
'mage/url'

], функция (ko, $, компонент, хранилище, URL) { "использовать строгий";

return Component.extend({
    defaults: {
        template: 'Vendor_ModueName/payment/payment'
    },
    getconfigValue: function () {
        var serviceUrl = url.build('modulename/custom/storeconfig');

        storage.get(serviceUrl).done(
            function (response) {
                if (response.success) {
                    return response.value
                }
            }
        ).fail(
            function (response) {
                return response.value
            }
        );
        return false;
    }
});
});

Создать контроллер

App/code/Vendor/ModuleName/Controller/Custom/Storeconfig.php

namespace Vendor\ModuleName\Controller\Custom;

Класс Storeconfig расширяет \Magento\Рамки\Приложение\Действие\Действие {

protected $resultJsonFactory;

protected $storeManager;

protected $scopeConfig;

public function __construct(
    \Magento\Framework\App\Action\Context $context,
    \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory,
    \Magento\Store\Model\StoreManagerInterface $storeManager,
    \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
) {
    $this->resultJsonFactory = $resultJsonFactory;
    $this->storeManager = $storeManager;
    $this->scopeConfig = $scopeConfig;
    parent::__construct($context);
}

/**
 * Execute view action
 *
 * @return \Magento\Framework\Controller\ResultInterface
 */
public function execute()
{
    $response = [];
    try {
        $configValue = $this->scopeConfig->getValue(
            'your/path/config',
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
        $response = [
            'success' => true,
            'value' => __($configValue)
        ];

    } catch (\Exception $e) {
        $response = [
            'success' => false,
            'value' => __($e->getMessage())
        ];
        $this->messageManager->addError($e->getMessage());
    }
    $resultJson = $this->resultJsonFactory->create();
    return $resultJson->setData($response);
}

}

Показать значение конфигурации с помощью файла .html, как показано ниже код.

<div class="config-data-show" data-bind="html: getconfigValue"></div>

Возьмите ссылку ниже 2 ссылок

Используя приведенные выше 2 ссылки, вы определенно получите результат.

Надеюсь, это поможет!

 0
Author: Chirag Patel, 2019-03-30 13:29:47