我是WP的新手,正在开发许可证验证功能。我需要显示一个表单给用户输入许可证密钥,然后激活插件。我有这样的代码:
Show a notice to ask license key
function show_license_notice() { ?>
<div class="notice notice-warning">
<p>Please enter license key to continue</p>
<form action="<?php echo admin_url("admin.php?page=theme_options");?>" method="post" enctype="multipart/form-data">
<input name="license_key" type="text" value="" />
<input name="validate" type="submit" value="Validate" />
</form>
</div>
<?php }
add_action( \'admin_notices\' , \'show_license_notice\'); // run it
接下来我有一个validate函数function validate_license($licenseKey){ ... }
按enter键提交表单时,我有代码:// when submit license key
if(isset($_POST[\'validate\']))
{
$licenseKey = $_POST["license_key"]; // get key from the validate from
$response = validate_license($licenseKey); // validate it
if($response->status == \'VALID\') {
add_action(\'admin_notices\', \'license_valid\'); // show success notice
remove_action(\'admin_notices\', \'show_license_notice\', 1); // remove the validate form
} if($response->status == \'INVALID\') {
add_action(\'admin_notices\', \'license_invalid\');
} if($response->status == \'EXPIRED\') {
add_action(\'admin_notices\', \'license_expired\');
} if($response->status == \'\') {
add_action(\'admin_notices\', \'license_null\');
}
}
我想在激活插件后,它会显示验证表单通知,禁用插件的所有功能。用户提交许可证密钥后,如果成功,将永远删除此验证表单。但当我重新加载页面时,它会再次显示表单,我无法删除它。我怎样才能解决这个问题?如何使此验证窗体在插件激活时运行,并在验证成功后将其删除?
非常感谢你。