PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution / 4.0.0
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution v4.0.0
4.9.1 4.9.0 2.0.0 2.1.0 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.0 2.5.1 3.0.0 3.1.0 3.1.1 4.0.0 4.0.1 4.1.0 4.1.1 4.2.0 4.2.1 4.3.0 4.3.1 4.4.0 4.5.0 4.5.1 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.6.8 4.6.9 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.8.9 trunk 0.1.2-beta 0.1.3-beta 0.1.4-beta 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.2.1 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.5.0 1.5.1 1.6.0 1.6.1 1.7.0 1.8.0 1.8.1 1.9.0
shopengine / core / settings / base.php
shopengine / core / settings Last commit date
screens 3 years ago action.php 3 years ago api.php 3 years ago base.php 3 years ago plugin-status.php 3 years ago
base.php
198 lines
1 <?php
2
3 namespace ShopEngine\Core\Settings;
4
5 use ShopEngine\Core\Builders\Action;
6 use ShopEngine\Core\PageTemplates\Page_Templates;
7 use ShopEngine\Core\Template_Cpt;
8 use ShopEngine\Traits\Singleton;
9
10 defined('ABSPATH') || exit;
11
12 class Base {
13 use Singleton;
14
15 private $menu_link_part;
16
17
18 /**
19 *
20 * @since 1.0.0
21 *
22 */
23 public function init() {
24
25 new Api();
26
27 $this->menu_link_part = admin_url('edit.php?post_type=' . \ShopEngine\Core\Template_Cpt::TYPE);
28
29 // check permission for manage user
30 if(current_user_can('manage_options')) {
31 add_action('admin_menu', [$this, 'menu_getting_started']);
32 add_action('admin_menu', [$this, 'menu_others'], 100);
33 }
34
35 add_action('admin_enqueue_scripts', function () {
36 //phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Just checking post type shopengine template or not
37 if(isset($_REQUEST['post_type']) && sanitize_text_field(wp_unslash($_REQUEST['post_type'])) === \ShopEngine\Core\Template_Cpt::TYPE) {
38
39 if(function_exists('wc_get_products') && !\ShopEngine\Core\Builders\Templates::has_simple_product()) {
40
41 \ShopEngine\Core\Builders\Templates::create_wc_simple_product();
42 }
43 }
44 }, 0);
45
46 add_action('before_delete_post', function($post_id, $post) {
47 if('shopengine-template' === $post->post_type) {
48 Action::delete_template_form_activated_list($post_id);
49 }
50 }, 10, 2);
51
52 add_action('admin_head', [$this, 'admin_head_enqueue_scripts']);
53 add_action('admin_enqueue_scripts', [$this, 'js_css_admin']);
54 add_action('admin_footer', [$this, 'content']);
55 }
56
57 public function admin_head_enqueue_scripts() {
58 echo "<script>
59 jQuery(document).ready( function($) {
60 $('.toplevel_page_shopengine-settings').find('.wp-first-item').css({display:'none'});
61 $('.shopengine_pro_aware').parent().attr('target','_blank');
62 });
63 </script>";
64 }
65
66 public function js_css_admin() {
67
68 wp_enqueue_style('shopengine-admin-style-common', \ShopEngine::plugin_url() . 'assets/css/admin-style-common.css', false, \ShopEngine::version());
69
70 // get screen id
71 $screen = get_current_screen();
72
73 $cptName = \ShopEngine\Core\Template_Cpt::TYPE;
74
75 $dashboardPage = 'toplevel_page_shopengine-settings';
76
77 if(in_array($screen->id, ['edit-' . $cptName, 'shopengine_page_mt-form-settings', $dashboardPage])) {
78
79 wp_enqueue_script('htm', \ShopEngine::plugin_url() . 'assets/js/htm.js', null, \ShopEngine::version(), true);
80
81 wp_enqueue_script('shopengine-admin-js', \ShopEngine::plugin_url() . 'assets/js/app.js', ['htm', 'jquery', 'wp-element'], \ShopEngine::version(), true);
82
83 // page template lists
84 $page_templates = Page_Templates::instance()->getTemplates();
85
86 wp_localize_script('shopengine-admin-js', 'shopengine_admin_var', [
87 'version' => \ShopEngine::version(),
88 'package_type' => \ShopEngine::package_type(),
89 'license_status' => \ShopEngine::license_status(),
90 'cpt' => $cptName,
91 'resturl' => get_rest_url(),
92 'adminurl' => get_admin_url(),
93 'siteurl' => get_option('siteurl'),
94 'rest_nonce' => wp_create_nonce('wp_rest'),
95 'plugin_url' => \ShopEngine::plugin_url(),
96 'pricing_page' => \ShopEngine::landing_page(),
97 'form_prefix' => \ShopEngine::SHOPENGINE_PREFIX,
98 'template_types' => json_encode($page_templates),
99 'elementor_installed' => did_action('elementor/loaded') ? 'yes' : 'no',
100 'supported_builders' => [
101 \ShopEngine\Core\Builders\Action::EDIT_WITH_ELEMENTOR => 'Elementor',
102 \ShopEngine\Core\Builders\Action::EDIT_WITH_GUTENBERG => 'Gutenberg',
103 ],
104 'default_builder' => did_action('elementor/loaded') ? \ShopEngine\Core\Builders\Action::EDIT_WITH_ELEMENTOR : \ShopEngine\Core\Builders\Action::EDIT_WITH_GUTENBERG,
105 'license_activated_message' => sprintf(esc_html__('Congratulations! Your product is activated for "%s"', 'shopengine'), parse_url(home_url(), PHP_URL_HOST)),
106 'is_rtl' => is_rtl() ? 'true' : 'false',
107 ]);
108
109 wp_enqueue_style('shopengine-admin-style', \ShopEngine::plugin_url() . 'assets/css/admin-style.css', false, \ShopEngine::version());
110 }
111
112 if($screen->id == 'edit-shopengine-entry' || $screen->id == 'shopengine-entry') {
113 wp_enqueue_style('shopengine-ui', \ShopEngine::plugin_url() . 'assets/css/design-ui.css', false, \ShopEngine::version());
114 wp_enqueue_script('shopengine-entry-script', \ShopEngine::plugin_url() . 'assets/js/admin-entry-script.js', [], \ShopEngine::version(), true);
115 }
116 }
117
118
119 function menu_getting_started() {
120 add_menu_page(
121 esc_html__('ShopEngine', 'shopengine'),
122 esc_html__('ShopEngine', 'shopengine'),
123 'manage_options',
124 'shopengine-settings',
125 [$this, 'redirect_to_content'],
126 \ShopEngine::plugin_url() . 'assets/images/icons/shopengine_icon_white.svg',
127 '58.7'
128 );
129
130 add_submenu_page(
131 'shopengine-settings',
132 esc_html__('Getting Started', 'shopengine'),
133 esc_html__('Getting Started', 'shopengine'),
134 'manage_options',
135 $this->menu_link_part . '#getting-started'
136 );
137 }
138
139 public function menu_others() {
140 add_submenu_page(
141 'shopengine-settings',
142 esc_html__('Modules', 'shopengine'),
143 esc_html__('Modules', 'shopengine'),
144 'manage_options',
145 $this->menu_link_part . '#shopengine-modules'
146 );
147
148 add_submenu_page(
149 'shopengine-settings',
150 esc_html__('Widgets', 'shopengine'),
151 esc_html__('Widgets', 'shopengine'),
152 'manage_options',
153 $this->menu_link_part . '#shopengine-widgets'
154 );
155
156 add_submenu_page(
157 'shopengine-settings',
158 esc_html__('Get Help', 'shopengine'),
159 esc_html__('Get Help', 'shopengine'),
160 'manage_options',
161 $this->menu_link_part . '#shopengine-get-help'
162 );
163
164 // license activation & go premium menu links
165 if(\ShopEngine::package_type() != 'free') { // is pro
166 add_submenu_page(
167 'shopengine-settings',
168 '<span style="color: #49dd85;" class="shopengine_pro_license pro">' . esc_html__('License', 'shopengine') . '</span>',
169 '<span style="color: #49dd85;" class="shopengine_pro_license pro">' . esc_html__('License', 'shopengine') . '</span>',
170 'manage_options',
171 $this->menu_link_part . '#shopengine-license'
172 );
173 } else { // is free
174 add_submenu_page(
175 'shopengine-settings',
176 '<span style="color: #f9b015;" class="shopengine_pro_aware pro">' . esc_html__('Upgrade to Premium', 'shopengine') . '</span>',
177 '<span style="color: #f9b015;" class="shopengine_pro_aware pro">' . esc_html__('Upgrade to Premium', 'shopengine') . '</span>',
178 'manage_options',
179 \ShopEngine::landing_page()
180 );
181 }
182 }
183
184 function redirect_to_content() {
185 wp_safe_redirect($this->menu_link_part . '#getting-started');
186 exit;
187 }
188
189 function content() {
190 $screen = get_current_screen();
191
192 if($screen->id == 'edit-' . Template_Cpt::TYPE) {
193 include_once \ShopEngine::plugin_dir() . 'core/settings/screens/default.php';
194 }
195 }
196
197 }
198