Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WP更新插件数据库表_Php_Wordpress_Plugins - Fatal编程技术网

Php WP更新插件数据库表

Php WP更新插件数据库表,php,wordpress,plugins,Php,Wordpress,Plugins,我正在建立一个插件,在激活和停用将创建和删除数据库,这很好 问题在于,当我尝试为DB表创建更新时,它会出错并中断 我有一个名为类WIP_Forecast的类文件,下面是我的类中的更新函数 我是一个新的插件建设,真的想一些帮助解决这个问题 global $wip_forecast_db_version, $current_version; $wip_forecast_db_version = '1.1'; $get_current_version = get_option('wip_foreca

我正在建立一个插件,在激活和停用将创建和删除数据库,这很好

问题在于,当我尝试为DB表创建更新时,它会出错并中断

我有一个名为类WIP_Forecast的类文件,下面是我的类中的更新函数

我是一个新的插件建设,真的想一些帮助解决这个问题

global $wip_forecast_db_version, $current_version;

$wip_forecast_db_version = '1.1';
$get_current_version = get_option('wip_forecast_db_version');

class WIP_Forecast
{
    public function __construct()
    {
        // register actions
        add_action( 'plugins_loaded', 'update_db_checker' );            
    }

    public static function activate(){
    // Works
    }
....
    /**
     * Update Plugin DB
     */
    function update_db_checker()
    {
        if ( $get_current_version != $wip_forecast_db_version ) {
            wip_forecast_updates($wip_forecast_db_version);
        }
    }

    function wip_forecast_updates($wip_forecast_db_version)
    {           
        global $wpdb;
        $table_name = $wpdb->prefix . 'wip_forecast';

        if ($get_current_version === 1.1)
        {
            $wpdb->query("ALTER TABLE $table_name ADD COLUMN `count` SMALLINT(6) NOT NULL");
        } else if ($get_current_version === 1.2){
            //$wpdb->query("ALTER TABLE $table_name ADD COLUMN `count` SMALLINT(6) NOT NULL");
        }else{
            //Do Nothing
        }

        update_option('wip_forecast_db_version', $wip_forecast_db_version);
    }
...
    public static function deactivate(){
    // Works
    }
}
if(class_exists('WIP_Forecast'))
{
    // Installation and uninstallation hooks
    register_activation_hook(__FILE__, array('WIP_Forecast', 'activate'));
    register_activation_hook( __FILE__, 'wip_forecast_create_db' );

    register_deactivation_hook(__FILE__, array('WIP_Forecast', 'deactivate'));

    // instantiate the plugin class
    $wip_forecast = new WIP_Forecast();
}

那会是什么错误呢?您还需要考虑到这一点我得到的错误是:PHP警告:call_user_func_array()希望参数1是有效的回调,在第287行的…/class-wp-hook.PHP中未找到函数“check_plugin_db_version”或函数名无效,这会是什么错误?您还需要考虑到这一点我得到的错误是:PHP警告:call\u user\u func\u array()希望参数1是有效的回调,在第287行的…/class-wp-hook.PHP中找不到函数“check\u plugin\u db\u version”,或者函数名无效
global $wip_forecast_db_version, $get_current_version;

class WIP_Forecast
{
private $wip_forecast_db_version;
private $get_current_version;

public function __construct()
{
    $wip_forecast_db_version = '1.1';
    $get_current_version = get_option('wip_forecast_db_version');

    // register actions
    add_action( 'plugins_loaded', 'update_db_checker' );
}
}