我想是的can 完成。
我使用这个过程来检查插件激活的最低版本。您可以在升级过程中使用此代码的变体进行检查(尽管我认为升级到包含此代码的新版本会导致插件停用)。
检查最低版本的代码:
function is_requirements_met()
{
$min_wp = \'4.6\' ; // minimum WP version
$min_php = \'5.3\' ; // minimum PHP version
// Check for WordPress version
if ( version_compare( get_bloginfo(\'version\'), $min_wp, \'<\' ))
{
return false ;
}
// Check the PHP version
if ( version_compare(PHP_VERSION, $min_php, \'<\'))
{
return false ;
}
return true ;
}
。。。。然后,如果版本不符合要求,则禁用插件(函数返回false)
if ( is_plugin_active( plugin_basename(__FILE__)))
{
deactivate_plugins( plugin_basename(__FILE__)) ;
// Hide the default "Plugin activated" notice
if ( isset ($_GET[\'activate\']))
{
unset ($_GET[\'activate\']) ;
}
}
然后我显示一条管理消息,让他们知道插件已被禁用:
add_action(\'admin_notices\', \'show_notice\') ;
其中
show_notice
函数显示可解雇的管理员通知。
function show_notice()
{
echo \'<div class="notice notice-error is-dismissible"><h3><strong>Plugin </strong></h3><p> cannot be activated - requires at least WordPress 4.6 and PHP 5.3. Plugin automatically deactivated.</p></div>\' ;
return ;
}
很好用。
Edited to add
如果您在插件中添加代码以阻止插件升级(类似于以下内容:
https://stackoverflow.com/questions/17897044/wordpress-how-to-disable-plugin-update ).
新版本的插件有一个预加载存根。它将检查PHP版本。如果OK,加载插件的其余部分。如果没有,请不要加载插件的其余部分。预加载存根中的代码将在所有PHP版本中工作。
预存根不包含任何PHP 7x代码,因此预处理存根不会导致错误。pre-stub还将使用与我的原始答案类似的东西禁用插件。
如果PHP版本是7x,那么预加载存根将加载插件的其余部分。鲍勃是你叔叔。