19 const ID =
'gk_licenses';
55 ( ! is_super_admin() &&
current_user_can(
'gk_foundation_view_licenses' ) ) ||
57 ( is_multisite() &&
current_user_can(
'manage_network_options' ) && CoreHelpers::is_network_admin() ),
59 ( ! is_super_admin() &&
current_user_can(
'gk_foundation_manage_licenses' ) ) ||
61 ( is_multisite() &&
current_user_can(
'manage_network_options' ) && CoreHelpers::is_network_admin() ),
64 ( ! is_super_admin() &&
current_user_can(
'gk_foundation_view_products' ) ) ||
68 ( ! is_super_admin() &&
current_user_can(
'gk_foundation_install_products' ) ) ||
70 ( is_multisite() &&
current_user_can(
'manage_network_plugins' ) && CoreHelpers::is_network_admin() ),
71 'activate_products' =>
72 ( ! is_super_admin() &&
current_user_can(
'gk_foundation_activate_products' ) ) ||
75 'deactivate_products' =>
76 ( ! is_super_admin() &&
current_user_can(
'gk_foundation_deactivate_products' ) ) ||
88 $this->_permissions = apply_filters(
'gk/foundation/licenses/permissions', $permissions );
99 if ( is_null( self::$_instance ) ) {
100 self::$_instance =
new self();
103 return self::$_instance;
118 if ( ! is_admin() || did_action(
'gk/foundation/licenses/initialized' ) ) {
122 add_action(
'admin_enqueue_scripts', [ $this,
'enqueue_assets' ] );
124 add_filter(
'gk/foundation/ajax/' . self::AJAX_ROUTER .
'/routes', [ $this,
'configure_ajax_routes' ] );
129 $this->_product_manager->init();
130 $this->_license_manager->init();
143 do_action(
'gk/foundation/licenses/initialized', $this );
158 return array_merge( $routes, [
159 'get_app_data' => [ $this,
'ajax_get_app_data' ],
175 $payload = wp_parse_args( $payload, [
176 'skip_cache' =>
false,
182 throw new Exception( esc_html__(
'You do not have permission to view this page.',
'gk-gravityview' ) );
214 return esc_html__(
'Products',
'gk-gravityview' );
216 return esc_html__(
'Licenses',
'gk-gravityview' );
218 return esc_html__(
'Products & Licenses',
'gk-gravityview' );
233 'capability' =>
'manage_options',
235 'callback' =>
'__return_false',
252 if ( strpos( $page, self::ID ) ===
false ) {
256 $script =
'licenses.js';
257 $style =
'licenses.css';
259 if ( ! file_exists( CoreHelpers::get_assets_path( $script ) ) ||
260 ! file_exists( CoreHelpers::get_assets_path( $style ) )
262 LoggerFramework::get_instance()->warning(
'UI assets not found.' );
269 CoreHelpers::get_assets_url( $script ),
271 filemtime( CoreHelpers::get_assets_path( $script ) )
274 $script_data = array_merge(
277 'isNetworkAdmin' => CoreHelpers::is_network_admin(),
278 'permissions' => $this->_permissions,
280 FoundationCore::get_ajax_params( self::AJAX_ROUTER )
283 if ( $this->_permissions[
'view_licenses'] ) {
290 [
'data' => $script_data ]
295 CoreHelpers::get_assets_url( $style ),
297 filemtime( CoreHelpers::get_assets_path( $style ) )
301 wp_deregister_style(
'forms' );
302 wp_register_style(
'forms',
false );
305 $registered_plugins = FoundationCore::get_instance()->get_registered_plugins();
306 $foundation_source_plugin_data = CoreHelpers::get_plugin_data( $registered_plugins[
'foundation_source'] );
307 TranslationsFramework::get_instance()->load_frontend_translations( $foundation_source_plugin_data[
'TextDomain'],
'',
'gk-foundation' );
318 return isset( $this->_permissions[ $permission ] ) ? $this->_permissions[ $permission ] :
false;
353 $admin_page =
'admin.php?page=' . self::ID;
355 $admin_url = CoreHelpers::is_network_admin() ? network_admin_url( $admin_page ) : admin_url( $admin_page );
357 return add_query_arg(
359 'filter' =>
'custom',
360 'search' =>
'id:' . $product_id,
static get_instance()
Returns class instance.
enqueue_assets( $page)
Enqueues UI assets.
get_framework_title()
Returns framework title used in admin menu and the UI.
add_gk_submenu_item()
Adds Licenses submenu to the GravityKit top-level admin menu.
current_user_can( $permission)
Checks if the current user has a certain permission.
ajax_get_app_data(array $payload)
AJAX request to get products and/or licenses data.
configure_ajax_routes(array $routes)
Configures AJAX routes handled by this class.
product_manager()
Returns Product Manager class instance.
static get_instance()
Returns class instance.
license_manager()
Returns License Manager class instance.
static get_instance()
Returns class instance.
static get_instance()
Returns class instance.
get_link_to_product_search( $product_id)
Returns link to product search in the licensing page.
init()
Initializes the License framework.
Logging framework for GravityKit.