How to create model containing list of product tax classes?
Question
My current model is:
<?php
namespace Vendor\Modulename\Model\Config;
class Taxes implements \Magento\Framework\Option\ArrayInterface
{
protected $_tax;
/**
* to option array
*
* @return array
*/
public function __construct(
\Magento\Tax\Model\Calculation\Rate $taxModelConfig){
$this->_tax = $taxModelConfig;
}
public function toOptionArray()
{
$taxes = Array();
foreach($this->_tax->getCollection()->getData() as $tax){
//echo '<pre>';var_dump($tax);echo '</pre>';
array_push($taxes, ['value' => $tax['code'],'label' => $tax['code']]);
}
return $taxes;
}
}
It lists all tax rules. Is there any similar (without direct database query) way to list all Product Tax Classes (like default "Taxable Goods")?
Thank you in advance for any help.
Solution
protected $_taxClasses;
public function __construct(
\Magento\Tax\Model\TaxClass\Source\Product $taxClasses){
$this->_taxClasses = $taxClasses;
}
public function toOptionArray()
{
return $this->_taxClasses->getAllOptions();
}
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange