PluginProbe
Tiered Pricing Table for WooCommerce / trunk
Tiered Pricing Table for WooCommerce vtrunk
7.1.7 7.1.5 7.1.4 7.1.1 6.5.0 6.4.0 6.1.0 trunk 1.0 1.1 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2 2.2.3 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 All 90 releases
tier-pricing-table / src / Addons / AbstractAddon.php

AbstractAddon.php in Tiered Pricing Table for WooCommerce trunk, at src/Addons/AbstractAddon.php

54 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php namespace TierPricingTable\Addons;
2
3 use TierPricingTable\Core\ServiceContainerTrait;
4 use TierPricingTable\Settings\CustomOptions\TPTFeatureFlagOption;
5 use TierPricingTable\Settings\CustomOptions\TPTSwitchOption;
6 use TierPricingTable\Settings\Settings;
7
8 abstract class AbstractAddon {
9
10 use ServiceContainerTrait;
11
12 public function __construct() {
13 add_filter( 'tiered_pricing_table/settings/advanced_settings', array(
14 $this,
15 'addToAddonsSettings',
16 ) );
17 }
18
19 public function addToAddonsSettings( $addons ) {
20 $addons[] = array(
21 'title' => $this->getName(),
22 'id' => Settings::SETTINGS_PREFIX . '_addon_' . $this->getSlug(),
23 'default' => $this->isActiveByDefault() ? 'yes' : 'no',
24 'desc' => $this->getDescription(),
25 'icon' => $this->getIcon(),
26 'type' => TPTFeatureFlagOption::FIELD_TYPE,
27 );
28
29 return $addons;
30 }
31
32 public function isEnabled(): bool {
33
34 $settings = $this->getContainer()->getSettings();
35 $addonKey = '_addon_' . $this->getSlug();
36
37 return $settings->get( $addonKey, $this->isActiveByDefault() ? 'yes' : 'no' ) === 'yes';
38 }
39
40 protected function isActiveByDefault(): bool {
41 return true;
42 }
43
44 abstract public function getName();
45
46 abstract public function getDescription();
47
48 abstract public function getIcon(): string;
49
50 abstract public function getSlug();
51
52 abstract public function run();
53 }
54