如何在管理页面中调用插件中的特定功能。 我在WordPress插件中提交表单。在提交时我想检查在表单中输入的密钥的有效性。我有一个功能,检查密钥的有效性。我想从表单的函数中调用该函数。 我尝试了一些东西,但它给了我错误 不在对象上下文中时使用$ this
这是我的代码
class WP_Cms_Plugin{
function __construct() {
add_action( 'admin_menu', array( $this, 'cms_options_panel' ));
}
function cms_options_panel() {
add_menu_page('CMS', 'Cms', 'manage_options', 'cms-dashboard', array(__CLASS__,'cms_setting_form'), 'dashicons-building');
}
function cms_setting_form()
{
if(isset($_POST['btn_submit']))
{
$secret_key = $_POST['project_secret_key'];
if($secret_key=='' || empty($secret_key))
{
$error['project_secret_key'] = 'Please enter Secret Key.';
}
if(empty($error)){
call to cms_check_key();
echo "Key validated successfully";
}
else
{
echo "Please use proper Key";
}
}
?>
<form method="post">
<div>Secret Key</div>
<input type="text" name="project_secret_key" value="<?php echo esc_attr( get_option('cms_secret_key') ); ?>" required/>
<?php submit_button('Submit','primary','btn_submit'); ?>
</form>
<?php
}
function cms_check_key($secret_key)
{
code to check validity
}
}
$cmsservice = new WP_Cms_Plugin();
答案 0 :(得分:1)
问题是你的callable指定使用WP_Cms_Plugin
类而不是它的实例(对象)。
cms_options_panel
功能更改为:add_menu_page('CMS', 'Cms', 'manage_options', 'cms-dashboard', array($this,'cms_setting_form'), 'dashicons-building');
(将__CLASS__
替换为$this
)
static function cms_check_key($secret_key)
然后从表单中调用WP_Cms_Plugin::cms_check_key($secret_key)
。