Ten*_*eno 3 php wordpress wordpress-plugin
当用户的PHP版本不足时,我正在使用下面的代码来停用插件本身.一个问题是黄色消息框出现说该插件已被激活,尽管该功能已成功拒绝该插件.那么有没有办法不显示黄色信息?
function Plugin_Requirements() {
global $wp_version;
$plugin = plugin_basename( __FILE__ );
$plugin_data = get_plugin_data( __FILE__, false );
$numPHPver='5.1.2';
$strMsg .= $plugin_data['Name'] . ': ' . __('requires PHP') . ' ' . $numPHPver . __(' or higher. Your PHP version is : ') . phpversion() . __('. Deactivating the plugin.') . '<br />';
if ( version_compare(phpversion(), $numPHPver, "<" ) ) {
echo '<div class="error"><p>' . $strMsg . '</p></div>';
deactivate_plugins( $plugin );
}
}
add_action( 'admin_init', 'Plugin_Requirements' );
Run Code Online (Sandbox Code Playgroud)
您可以取消设置$_GET触发消息的变量:
if ( version_compare(phpversion(), $numPHPver, "<" ) ) {
echo '<div class="error"><p>' . $strMsg . '</p></div>';
deactivate_plugins( $plugin );
unset($_GET['activate']);
}
Run Code Online (Sandbox Code Playgroud)
我认为更好的方法是不允许你的插件被激活,退出(或抛出错误)它的激活钩子.Wordpress将显示一条错误消息,指出由于致命错误导致插件无法激活,但这似乎是合适的.
function my_activation_hook() {
$required_php_version = '5.1.2';
if (version_compare(PHP_VERSION, $required_php_version, '<')) {
$plugin_data = get_plugin_data(__FILE__, false);
$message = $plugin_data['Name'] . ' ' . __('requires PHP') . ' ' . $required_php_version . __(' or higher. Your PHP version is ') . phpversion() . '.';
echo "<p>{$message}</p>";
exit;
}
}
register_activation_hook(__FILE__, 'my_activation_hook');
Run Code Online (Sandbox Code Playgroud)