PluginProbe
Tiered Pricing Table for WooCommerce / 2.3.2
Tiered Pricing Table for WooCommerce v2.3.2
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 / Admin / Admin.php

Admin.php in Tiered Pricing Table for WooCommerce 2.3.2, at src/Admin/Admin.php

120 lines 3.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace TierPricingTable\Admin;
4
5 use TierPricingTable\Freemius ;
6 use TierPricingTable\Settings\Settings ;
7 use TierPricingTable\TierPricingTablePlugin ;
8 use Premmerce\SDK\V2\FileManager\FileManager ;
9 use TierPricingTable\Admin\ProductManagers\SimpleProductManager ;
10 use TierPricingTable\Admin\ProductManagers\VariationProductManager ;
11 use TierPricingTable\Admin\Export\Woocommerce as WooCommerceExport ;
12 use TierPricingTable\Admin\Import\Woocommerce as WooCommerceImport ;
13 /**
14 * Class Admin
15 *
16 * @package TierPricingTable\Admin
17 */
18 class Admin
19 {
20 /**
21 * @var FileManager
22 */
23 private $fileManager ;
24 /**
25 * @var Settings
26 */
27 private $settings ;
28 /**
29 * @var array
30 */
31 private $managers ;
32 /**
33 * @var Freemius
34 */
35 private $licence ;
36 /**
37 * Admin constructor.
38 *
39 * Register menu items and handlers
40 *
41 * @param FileManager $fileManager
42 * @param Freemius $licence
43 * @param Settings $settings
44 */
45 public function __construct( FileManager $fileManager, Freemius $licence, Settings $settings )
46 {
47 $this->fileManager = $fileManager;
48 $this->settings = $settings;
49 $this->licence = $licence;
50 $this->initManagers();
51 add_action( 'admin_enqueue_scripts', [ $this, 'enqueueAssets' ] );
52 if ( get_transient( 'tier_pricing_table_activated' ) ) {
53 add_action( 'admin_notices', [ $this, 'showActivationMessage' ] );
54 }
55
56 if ( $this->licence->isFree() ) {
57 $template = 'upgrade-alert.php';
58 add_action( 'woocommerce_settings_' . Settings::SETTINGS_PAGE, function () use( $template ) {
59 $this->fileManager->includeTemplate( 'admin/alerts/' . $template, [
60 'upgradeUrl' => tpt_fs()->get_upgrade_url(),
61 'contactUsUrl' => $this->licence->getContactUsPageUrl(),
62 ] );
63 $this->fileManager->includeTemplate( 'admin/only-in-premium-script.php' );
64 } );
65 }
66
67 }
68
69 /**
70 * Init Managers
71 */
72 public function initManagers()
73 {
74 $this->managers = [
75 SimpleProductManager::class => new SimpleProductManager( $this->fileManager, $this->settings, $this->licence ),
76 VariationProductManager::class => new VariationProductManager( $this->fileManager, $this->settings, $this->licence ),
77 WooCommerceExport::class => new WooCommerceExport(),
78 WooCommerceImport::class => new WooCommerceImport(),
79 ];
80 }
81
82 /**
83 * Show message about activation plugin and advise next step
84 */
85 public function showActivationMessage()
86 {
87 $link = $this->settings->getLink();
88 $this->fileManager->includeTemplate( 'admin/alerts/activation-alert.php', [
89 'link' => $link,
90 ] );
91 delete_transient( 'tiered_pricing_table_activated' );
92 }
93
94 /**
95 * Register assets on product create/update page
96 *
97 * @param $page
98 */
99 public function enqueueAssets( $page )
100 {
101 global $post, $page ;
102
103 if ( isset( $_GET['tab'] ) && $_GET['tab'] == Settings::SETTINGS_PAGE || ($page == 'post.php' || ($page = 'post_new.php')) && $post && $post->post_type == 'product' ) {
104 wp_enqueue_script(
105 'tier-pricing-table-admin-js',
106 $this->fileManager->locateAsset( 'admin/main.js' ),
107 'jquery',
108 TierPricingTablePlugin::VERSION
109 );
110 wp_enqueue_style(
111 'tier-pricing-table-admin-css',
112 $this->fileManager->locateAsset( 'admin/style.css' ),
113 null,
114 TierPricingTablePlugin::VERSION
115 );
116 }
117
118 }
119
120 }