PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution / 4.5.1
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution v4.5.1
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 4 years ago action.php 3 years ago api.php 3 years ago base.php 2 years ago plugin-status.php 3 years ago
base.php
201 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 'ajaxurl' => admin_url( ).'admin-ajax.php',
108 'nonce' => wp_create_nonce(),
109 'banner_show' => \ShopEngine\Utils\Util::get_settings( 'shopengine_user_consent_for_banner', 'true' )
110 ]);
111
112 wp_enqueue_style('shopengine-admin-style', \ShopEngine::plugin_url() . 'assets/css/admin-style.css', false, \ShopEngine::version());
113 }
114
115 if($screen->id == 'edit-shopengine-entry' || $screen->id == 'shopengine-entry') {
116 wp_enqueue_style('shopengine-ui', \ShopEngine::plugin_url() . 'assets/css/design-ui.css', false, \ShopEngine::version());
117 wp_enqueue_script('shopengine-entry-script', \ShopEngine::plugin_url() . 'assets/js/admin-entry-script.js', [], \ShopEngine::version(), true);
118 }
119 }
120
121
122 function menu_getting_started() {
123 add_menu_page(
124 esc_html__('ShopEngine', 'shopengine'),
125 esc_html__('ShopEngine', 'shopengine'),
126 'manage_options',
127 'shopengine-settings',
128 [$this, 'redirect_to_content'],
129 \ShopEngine::plugin_url() . 'assets/images/icons/shopengine_icon_white.svg',
130 '58.7'
131 );
132
133 add_submenu_page(
134 'shopengine-settings',
135 esc_html__('Getting Started', 'shopengine'),
136 esc_html__('Getting Started', 'shopengine'),
137 'manage_options',
138 $this->menu_link_part . '#getting-started'
139 );
140 }
141
142 public function menu_others() {
143 add_submenu_page(
144 'shopengine-settings',
145 esc_html__('Modules', 'shopengine'),
146 esc_html__('Modules', 'shopengine'),
147 'manage_options',
148 $this->menu_link_part . '#shopengine-modules'
149 );
150
151 add_submenu_page(
152 'shopengine-settings',
153 esc_html__('Widgets', 'shopengine'),
154 esc_html__('Widgets', 'shopengine'),
155 'manage_options',
156 $this->menu_link_part . '#shopengine-widgets'
157 );
158
159 add_submenu_page(
160 'shopengine-settings',
161 esc_html__('Get Help', 'shopengine'),
162 esc_html__('Get Help', 'shopengine'),
163 'manage_options',
164 $this->menu_link_part . '#shopengine-get-help'
165 );
166
167 // license activation & go premium menu links
168 if(\ShopEngine::package_type() != 'free') { // is pro
169 add_submenu_page(
170 'shopengine-settings',
171 '<span style="color: #49dd85;" class="shopengine_pro_license pro">' . esc_html__('License', 'shopengine') . '</span>',
172 '<span style="color: #49dd85;" class="shopengine_pro_license pro">' . esc_html__('License', 'shopengine') . '</span>',
173 'manage_options',
174 $this->menu_link_part . '#shopengine-license'
175 );
176 } else { // is free
177 add_submenu_page(
178 'shopengine-settings',
179 '<span style="color: #f9b015;" class="shopengine_pro_aware pro">' . esc_html__('Upgrade to Premium', 'shopengine') . '</span>',
180 '<span style="color: #f9b015;" class="shopengine_pro_aware pro">' . esc_html__('Upgrade to Premium', 'shopengine') . '</span>',
181 'manage_options',
182 \ShopEngine::landing_page()
183 );
184 }
185 }
186
187 function redirect_to_content() {
188 wp_safe_redirect($this->menu_link_part . '#getting-started');
189 exit;
190 }
191
192 function content() {
193 $screen = get_current_screen();
194
195 if($screen->id == 'edit-' . Template_Cpt::TYPE) {
196 include_once \ShopEngine::plugin_dir() . 'core/settings/screens/default.php';
197 }
198 }
199
200 }
201