Pregunta

Estoy intentando agregar la configuración del número de teléfono de la tienda en Tiendas > Configuración > General > General > Información de la tienda al encabezado de mi tema.En un módulo creo que esto podría hacerse usando getValue() en \Magento\Framework\App\Config\ScopeConfigInterface pero no veo la manera de utilizar esto dentro de un tema.Hasta ahora he agregado esto a default.xml

 <referenceContainer name="header-wrapper">
      <block class="Magento\Framework\View\Element\Template" name="store.phone.number" template="Magento_Theme::phone.phtml" />
 </referenceContainer>

pero no se como meter el numero de telefono adentro phone.phtml

¿Fue útil?

Solución

Te sugiero que crees tu propio bloque, que ampliará el Magento\Framework\View\Element\Template clase.

como el Magento\Framework\App\Config\ScopeConfigInterface es parte de Magento\Framework\View\Element\AbstractBlock (el padre del Template clase) declarado en $_scopeConfig, puede agregar la siguiente función a su bloque personalizado:

public function getConfig()
{
    return $this->_scopeConfig;
}

Luego en tu plantilla puedes hacer:

$block->getConfig()->getValue('value/you/need');

No olvides actualizar tu diseño de esta manera:

<referenceContainer name="header-wrapper">
      <block class="Vendor\Module\Block\View\Element\Template" name="store.phone.number" template="Magento_Theme::phone.phtml" />
</referenceContainer>

Otros consejos

Podemos obtener directamente una configuración de tienda en la plantilla obteniendo una instancia de Magento\Framework\App\Config\ScopeConfig:

 \Magento\Framework\App\ObjectManager::getInstance()
  ->get('Magento\Framework\App\Config\ScopeConfigInterface')
  ->getValue('value/you/need');

Técnicamente, cuando alguien pide una instancia de Magento\Framework\App\Config\ScopeConfigInterface, le daremos una instancia del Magento\Framework\App\Config\ScopeConfig.Por ejemplo, podemos obtener la configuración predeterminada para el modo de cuadrícula o de lista:

$productListMode = \Magento\Framework\App\ObjectManager::getInstance()
   ->get('Magento\Framework\App\Config\ScopeConfigInterface')
   ->getValue('catalog/frontend/list_mode');

Nota: Evitar el uso directo del Administrador de objetos.Debemos mantener nuestras plantillas limpias.Intente agregar configuración al bloque.Debería seguir la respuesta de @Raphael.

Pruebe esto en Block, me está funcionando después de muchas búsquedas.

$isEnabled = \Magento\Framework\App\ObjectManager::getInstance()
->get('Magento\Framework\App\Config\ScopeConfigInterface') ->getValue('sección/grupo/campo');

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top