首页 > 解决方案 > 使用 dbDelta 的 WordPress 创建表在插件中不起作用

问题描述

我的自定义 WordPress 插件使用 dbDelta 创建表时遇到问题。为了创建,我创建了一个函数,当我调用 dbDelta 时它会返回我的表:

private function get_db_schema(): string {
    $collate = '';

    if ( $this->wpdb->has_cap( 'collation' ) ) {
        $collate = $this->wpdb->get_charset_collate();
    }

    return "
    CREATE TABLE {$this->wpdb->prefix}woomex_exported_orders (
        id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
        order_id BIGINT UNSIGNED NOT NULL,
        status varchar(255) NOT NULL,
        payment_status varchar(255) NOT NULL DEFAULT 'pending',
        invoice_status varchar(255) NOT NULL DEFAULT 'pending',
        cancellation_invoice_status varchar(255) NOT NULL DEFAULT 'pending',
        delivery_status varchar(255) NOT NULL DEFAULT 'pending',
        date_exported timestamp NOT NULL default CURRENT_TIMESTAMP
    PRIMARY KEY  (id)
    ) $collate;
    ";
}

之后我打电话给:

dbDelta( $this->get_db_schema() );

我没有收到任何错误,但也没有表格。我确定我的函数被调用了,因为我通过登录验证了这一点。有谁知道我在这里做错了什么?

标签: phpwordpress

解决方案


推荐阅读