# tier-pricing-table/2.2.2/src/Admin/Admin.php

Tiered Pricing Table for WooCommerce, version 2.2.2. 126 lines.

- Page: https://pluginprobe.com/plugins/tier-pricing-table/2.2.2/code/src/Admin/Admin.php
- Raw: https://pluginprobe.com/plugins/tier-pricing-table/2.2.2/raw/src/Admin/Admin.php
- Modified: 2019-05-07T09:38:42+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/tier-pricing-table/2.2.2/code/src/Admin/Admin.php#L10-L20`.

```php
<?php

namespace TierPricingTable\Admin;

use  TierPricingTable\Freemius ;
use  TierPricingTable\Settings\Settings ;
use  TierPricingTable\TierPricingTablePlugin ;
use  Premmerce\SDK\V2\FileManager\FileManager ;
use  TierPricingTable\Admin\ProductManagers\SimpleProductManager ;
use  TierPricingTable\Admin\ProductManagers\VariationProductManager ;
use  TierPricingTable\Admin\Export\Woocommerce as WooCommerceExport ;
use  TierPricingTable\Admin\Import\Woocommerce as WooCommerceImport ;
/**
 * Class Admin
 *
 * @package TierPricingTable\Admin
 */
class Admin
{
    /**
     * @var FileManager
     */
    private  $fileManager ;
    /**
     * @var Settings
     */
    private  $settings ;
    /**
     * @var array
     */
    private  $managers ;
    /**
     * @var Freemius
     */
    private  $licence ;
    /**
     * Admin constructor.
     *
     * Register menu items and handlers
     *
     * @param FileManager $fileManager
     * @param Freemius $licence
     * @param Settings $settings
     */
    public function __construct( FileManager $fileManager, Freemius $licence, Settings $settings )
    {
        $this->fileManager = $fileManager;
        $this->settings = $settings;
        $this->licence = $licence;
        $this->initManagers();
        add_action( 'admin_enqueue_scripts', [ $this, 'enqueueAssets' ] );
        if ( get_transient( 'tier_pricing_table_activated' ) ) {
            add_action( 'admin_notices', [ $this, 'showActivationMessage' ] );
        }
        
        if ( $this->licence->isFree() ) {
            
            if ( tpt_fs()->is_anonymous() || !tpt_fs()->is_installed_on_site() ) {
                $template = 'opt-in-alert.php';
            } else {
                $template = 'upgrade-alert.php';
            }
            
            add_action( 'woocommerce_settings_' . Settings::SETTINGS_PAGE, function () use( $template ) {
                $this->fileManager->includeTemplate( 'admin/alerts/' . $template, [
                    'upgradeUrl'   => $this->licence->getUpgradeLink(),
                    'contactUsUrl' => $this->licence->getContactUsPageUrl(),
                ] );
                $this->fileManager->includeTemplate( 'admin/only-in-premium-script.php' );
            } );
        }
    
    }
    
    /**
     * Init Managers
     */
    public function initManagers()
    {
        $this->managers = [
            SimpleProductManager::class    => new SimpleProductManager( $this->fileManager, $this->settings, $this->licence ),
            VariationProductManager::class => new VariationProductManager( $this->fileManager, $this->settings, $this->licence ),
            WooCommerceExport::class       => new WooCommerceExport(),
            WooCommerceImport::class       => new WooCommerceImport(),
        ];
    }
    
    /**
     * Show message about activation plugin and advise next step
     */
    public function showActivationMessage()
    {
        $link = $this->settings->getLink();
        $this->fileManager->includeTemplate( 'admin/alerts/activation-alert.php', [
            'link' => $link,
        ] );
        delete_transient( 'tiered_pricing_table_activated' );
    }
    
    /**
     * Register assets on product create/update page
     *
     * @param $page
     */
    public function enqueueAssets( $page )
    {
        global  $post, $page ;
        
        if ( isset( $_GET['tab'] ) && $_GET['tab'] == Settings::SETTINGS_PAGE || ($page == 'post.php' || ($page = 'post_new.php')) && $post && $post->post_type == 'product' ) {
            wp_enqueue_script(
                'tier-pricing-table-admin-js',
                $this->fileManager->locateAsset( 'admin/main.js' ),
                'jquery',
                TierPricingTablePlugin::VERSION
            );
            wp_enqueue_style(
                'tier-pricing-table-admin-css',
                $this->fileManager->locateAsset( 'admin/style.css' ),
                null,
                TierPricingTablePlugin::VERSION
            );
        }
    
    }

}
```
