=' ) || ( $downgraded_from && version_compare( $downgraded_from, '3.0-beta1', '>=' ) ) ) { /* * This site probably just downgraded from EDD 3.0. Let's perform a downgrade. */ $did_downgrade = edd_maybe_downgrade_from_v3(); } } if ( $did_downgrade ) { update_option( 'edd_version', preg_replace( '/[^0-9.].*/', '', EDD_VERSION ) ); delete_option( 'edd_version_downgraded_from' ); } return $did_downgrade; } add_action( 'admin_init', 'edd_do_downgrade' ); /** * Performs a database downgrade from EDD 3.0 to 2.11 if one is needed. * The main operation here is changing the customer meta column from `edd_customer_id` (v3.0 version) * back to `customer_id` for v2.x. * * @since 2.11 * @return bool Whether the downgrade was performed. */ function edd_maybe_downgrade_from_v3() { global $wpdb; $customer_meta_table = EDD()->customer_meta->table_name; // If there is no column called `edd_customer_id`, then we don't need to downgrade. $columns = $wpdb->query( "SHOW COLUMNS FROM {$customer_meta_table} LIKE 'edd_customer_id'"); if ( empty( $columns ) ) { return false; } $wpdb->query( "ALTER TABLE {$customer_meta_table} CHANGE `edd_customer_id` `customer_id` bigint(20) unsigned NOT NULL default '0'" ); $wpdb->query( "ALTER TABLE {$customer_meta_table} DROP INDEX edd_customer_id" ); $wpdb->query( "ALTER TABLE {$customer_meta_table} ADD INDEX customer_id (customer_id)" ); // These two calls re-add the table version numbers for us. EDD()->customer_meta->create_table(); EDD()->customers->create_table(); edd_debug_log( 'Completed downgrade from EDD 3.0.', true ); return true; }