id = 'advanced';
$this->text = esc_html__( 'Advanced', 'learnpress' );
parent::__construct();
}
public function get_settings( $section = '', $tab = '' ) {
return parent::get_settings( $section, $tab );
}
/**
* Settings fields for the general section.
*
* @return mixed
*/
public function get_settings_general() {
return Config::instance()->get( 'advanced', 'settings' );
}
/**
* Settings fields for the MCP section.
*
* @return mixed
*/
public function get_settings_mcp() {
if ( ! self::is_mcp_available() ) {
return array();
}
return Config::instance()->get( 'mcp', 'settings' );
}
/**
* Settings fields for the Webhook section.
*
* @return mixed
*/
public function get_settings_webhook() {
return Config::instance()->get( 'webhook', 'settings' );
}
/**
* Check whether MCP capabilities are available in current WordPress runtime.
*
* @return bool
*/
public static function is_mcp_available(): bool {
return learn_press_is_mcp_available();
}
/**
* Backward-compatible alias for MCP availability checks.
*
* @return bool
*/
public static function is_mcp_adapter_active(): bool {
return self::is_mcp_available();
}
/**
* Render MCP unavailable notice.
*
* @return void
*/
protected function render_mcp_unavailable_notice(): void {
Template::print_message(
sprintf(
'This feature requires the %s and WP from 6.9+. Please install and activate it to access the settings. %s',
sprintf(
'%s',
esc_url_raw( 'https://github.com/wordpress/mcp-adapter/' ),
esc_html__( 'MCP Adapter plugin', 'learnpress' )
),
sprintf(
'%s',
esc_url_raw( 'https://learnpresslms.com/docs/learnpress-developer-documentation/model-context-protocol-mcp-integration/' ),
esc_html__( 'Learn more', 'learnpress' )
)
),
'warning'
);
}
/**
* Render Advanced settings sections.
*
* @param string $section
* @param string $tab
*
* @return void
*/
public function admin_page_settings( $section = null, $tab = '' ) {
parent::admin_page_settings( $section, $tab );
if ( 'mcp' === $section ) {
if ( ! self::is_mcp_available() ) {
$this->render_mcp_unavailable_notice();
return;
}
//parent::admin_page_settings( $section, $tab );
if ( 'yes' === LP_Settings::get_option( 'enable_mcp_integration', 'no' ) && class_exists( 'LP_Admin_MCP_API_Keys' ) ) {
LP_Admin_MCP_API_Keys::instance()->render_page();
}
return;
}
if ( 'webhook' === $section && 'yes' === LP_Settings::get_option( 'enable_webhook_integration', 'no' ) ) {
LP_Admin_Webhooks::instance()->render_page();
}
}
/**
* Save Advanced settings sections.
*
* @param string $section
* @param string $tab
*
* @return void
*/
public function save_settings( $section = null, $tab = '' ) {
if ( 'mcp' === $section && ! self::is_mcp_available() ) {
return;
}
parent::save_settings( $section, $tab );
}
/**
* Get sections for advanced settings.
*
* @return array
*/
public function get_sections() {
return array(
'general' => esc_html__( 'General', 'learnpress' ),
'mcp' => esc_html__( 'MCP', 'learnpress' ),
'webhook' => esc_html__( 'Webhook', 'learnpress' ),
);
}
}
return new LP_Settings_Advanced();