| 1 |
<?php namespace TierPricingTable\Addons\CustomColumns; |
| 2 |
|
| 3 |
use TierPricingTable\Addons\CustomColumns\Columns\CustomDataColumn; |
| 4 |
use TierPricingTable\Addons\CustomColumns\Columns\PriceExcludingTaxesColumn; |
| 5 |
use TierPricingTable\Addons\CustomColumns\Columns\PriceIncludingTaxesColumn; |
| 6 |
use TierPricingTable\Addons\CustomColumns\Columns\RowTotalPriceColumn; |
| 7 |
use TierPricingTable\Addons\CustomColumns\Columns\SavingPerItemColumn; |
| 8 |
use TierPricingTable\Addons\CustomColumns\Columns\SkuColumn; |
| 9 |
|
| 10 |
class Schema { |
| 11 |
public static function getAvailableCustomColumnsTypes() { |
| 12 |
return apply_filters( 'tiered_pricing_table/custom_columns/available_columns_types', array( |
| 13 |
'custom' => __( 'Custom column', 'tier-pricing-table' ), |
| 14 |
'price_excl_taxes' => __( 'Price excluding taxes', 'tier-pricing-table' ), |
| 15 |
'price_incl_taxes' => __( 'Price including taxes', 'tier-pricing-table' ), |
| 16 |
'total_price' => __( 'Total row price', 'tier-pricing-table' ), |
| 17 |
'saving_per_item' => __( 'Saving per item', 'tier-pricing-table' ), |
| 18 |
) ); |
| 19 |
} |
| 20 |
|
| 21 |
public static function getAvailableDataTypes() { |
| 22 |
return apply_filters( 'tiered_pricing_table/custom_columns/available_data_types', array( |
| 23 |
'price' => __( 'Price', 'tier-pricing-table' ), |
| 24 |
'number' => __( 'Number', 'tier-pricing-table' ), |
| 25 |
'text' => __( 'Text', 'tier-pricing-table' ), |
| 26 |
) ); |
| 27 |
} |
| 28 |
|
| 29 |
public static function isValidColumnType( $type ): bool { |
| 30 |
return in_array( $type, array_keys( self::getAvailableCustomColumnsTypes() ) ); |
| 31 |
} |
| 32 |
|
| 33 |
public static function isValidDataType( $type ): bool { |
| 34 |
return in_array( $type, array_keys( self::getAvailableDataTypes() ) ); |
| 35 |
} |
| 36 |
|
| 37 |
public static function getClassForType( $type ) { |
| 38 |
$classes = apply_filters( 'tiered_pricing_table/custom_columns/columns_handlers', array( |
| 39 |
'custom' => CustomDataColumn::class, |
| 40 |
'price_excl_taxes' => PriceExcludingTaxesColumn::class, |
| 41 |
'price_incl_taxes' => PriceIncludingTaxesColumn::class, |
| 42 |
'total_price' => RowTotalPriceColumn::class, |
| 43 |
'saving_per_item' => SavingPerItemColumn::class, |
| 44 |
) ); |
| 45 |
|
| 46 |
return $classes[ $type ] ?? null; |
| 47 |
} |
| 48 |
} |
| 49 |
|