Insert an instance of \Magento\Catalog\Model\Product\Attribute\Repository into your constructor (in a block, helper class, or anywhere):
protected $_productAttributeRepository; public function __construct( ... \Magento\Catalog\Model\Product\Attribute\Repository $productAttributeRepository, ... ) { ... $this->_productAttributeRepository = $productAttributeRepository; ... }
Then create a method in your class to get the attribute by code:
public function getProductAttributeByCode($code) { $attribute = $this->_productAttributeRepository->get($code); return $attribute; }
Then you can call this method like this inside the .phtml file
$attrTest = $block->getProductAttributeByCode('test');
Then you can make calls to the attribute object, for example.
- Get parameters:
$attrTest->getOptions() - Get interface labels for each store:
$attrTest->getFrontendLabels() - Debugging a dataset:
echo '> ' . print_r($attrTest->debug(), true); echo '> ' . print_r($attrTest->debug(), true);
debug: Array ([attribute_id] => 274 [entity_type_id] => 4 [attribute_code] => product_manual_download_label [backend_type] => varchar [frontend_input] => text [frontend_label] => Download Guide Download shortcut [is_required] => 0 [is_user_defined] => 1 [default_value] => Download Guide Download [is_unique] => 0 [is_global] => 0 [is_visible] => 1 [is_searchable] => 0 [is_filterable] => 0 [is_comparable] => 0 [is_visible_on_front] => 0 [is_html_allowed_on_front] => 1 [is_used_for_price_rules] => 0 [is_filterable_in_search] => 0 [used_in_product_listing] => 0 [used_for_sort_by] => 0 [is_visible_in 0] => 0] is_wysiwyg_enabled] => 0 [is_used_for_promo_rules] => 0 [is_required_in_admin_store] => 0 [is_used_in_grid] => 1 [is_ visible_in_grid] => 1 [is_filterable_in_grid] => 1 [search_weight] => 1)
source share