2019-10-10 20:54:44 +00:00
< ? php
/**
* WooCommerce Admin Updates
*
* Functions for updating data , used by the background updater .
*
2020-08-11 19:18:47 +00:00
* @ package WooCommerce\Admin
2019-10-10 20:54:44 +00:00
*/
use \Automattic\WooCommerce\Admin\Install as Installer ;
2020-09-28 04:35:10 +00:00
use \Automattic\WooCommerce\Admin\Notes\Notes ;
2020-10-28 17:12:14 +00:00
use \Automattic\WooCommerce\Admin\Notes\DeactivatePlugin ;
2019-10-10 20:54:44 +00:00
/**
* Update order stats `status` index length .
* See : https :// github . com / woocommerce / woocommerce - admin / issues / 2969.
*/
function wc_admin_update_0201_order_status_index () {
global $wpdb ;
// Max DB index length. See wp_get_db_schema().
$max_index_length = 191 ;
$index = $wpdb -> get_row ( " SHOW INDEX FROM { $wpdb -> prefix } wc_order_stats WHERE key_name = 'status' " );
if ( property_exists ( $index , 'Sub_part' ) ) {
// The index was created with the right length. Time to bail.
if ( $max_index_length === $index -> Sub_part ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName
return ;
}
// We need to drop the index so it can be recreated.
$wpdb -> query ( " DROP INDEX `status` ON { $wpdb -> prefix } wc_order_stats " );
}
// Recreate the status index with a max length.
$wpdb -> query ( $wpdb -> prepare ( " ALTER TABLE { $wpdb -> prefix } wc_order_stats ADD INDEX status (status(%d)) " , $max_index_length ) );
}
/**
* Update DB Version .
*/
function wc_admin_update_0201_db_version () {
Installer :: update_db_version ( '0.20.1' );
}
2019-11-22 15:06:14 +00:00
/**
* Rename " gross_total " to " total_sales " .
* See : https :// github . com / woocommerce / woocommerce - admin / issues / 3175
*/
function wc_admin_update_0230_rename_gross_total () {
global $wpdb ;
// We first need to drop the new `total_sales` column, since dbDelta() will have created it.
$wpdb -> query ( " ALTER TABLE { $wpdb -> prefix } wc_order_stats DROP COLUMN `total_sales` " );
// Then we can rename the existing `gross_total` column.
$wpdb -> query ( " ALTER TABLE { $wpdb -> prefix } wc_order_stats CHANGE COLUMN `gross_total` `total_sales` double DEFAULT 0 NOT NULL " );
}
/**
* Update DB Version .
*/
function wc_admin_update_0230_db_version () {
Installer :: update_db_version ( '0.23.0' );
}
2020-02-20 11:59:02 +00:00
/**
* Remove the note unsnoozing scheduled action .
*/
function wc_admin_update_0251_remove_unsnooze_action () {
2020-09-28 04:35:10 +00:00
as_unschedule_action ( Notes :: UNSNOOZE_HOOK , null , 'wc-admin-data' );
as_unschedule_action ( Notes :: UNSNOOZE_HOOK , null , 'wc-admin-notes' );
2020-02-20 11:59:02 +00:00
}
/**
* Update DB Version .
*/
function wc_admin_update_0251_db_version () {
Installer :: update_db_version ( '0.25.1' );
}
2020-04-08 20:25:59 +00:00
/**
* Remove Facebook Extension note .
*/
function wc_admin_update_110_remove_facebook_note () {
2020-09-28 04:35:10 +00:00
Notes :: delete_notes_with_name ( 'wc-admin-facebook-extension' );
2020-04-08 20:25:59 +00:00
}
2020-05-08 19:35:06 +00:00
/**
* Update DB Version .
*/
function wc_admin_update_110_db_version () {
Installer :: update_db_version ( '1.1.0' );
}
2020-06-10 14:16:56 +00:00
/**
* Remove Dismiss action from tracking opt - in admin note .
*/
function wc_admin_update_130_remove_dismiss_action_from_tracking_opt_in_note () {
global $wpdb ;
$wpdb -> query ( " DELETE actions FROM { $wpdb -> prefix } wc_admin_note_actions actions INNER JOIN { $wpdb -> prefix } wc_admin_notes notes USING (note_id) WHERE actions.name = 'tracking-dismiss' AND notes.name = 'wc-admin-usage-tracking-opt-in' " );
}
2020-06-24 12:23:35 +00:00
/**
* Update DB Version .
*/
function wc_admin_update_130_db_version () {
Installer :: update_db_version ( '1.3.0' );
}
2020-07-08 00:15:00 +00:00
/**
* Change the deactivate plugin note type to 'info' .
*/
function wc_admin_update_140_change_deactivate_plugin_note_type () {
global $wpdb ;
2020-10-28 17:12:14 +00:00
$wpdb -> query ( $wpdb -> prepare ( " UPDATE { $wpdb -> prefix } wc_admin_notes SET type = 'info' WHERE name = %s " , DeactivatePlugin :: NOTE_NAME ) );
2020-07-08 00:15:00 +00:00
}
2020-07-16 16:08:40 +00:00
/**
* Update DB Version .
*/
function wc_admin_update_140_db_version () {
Installer :: update_db_version ( '1.4.0' );
}
2020-09-17 17:50:49 +00:00
/**
* Remove Facebook Experts note .
*/
function wc_admin_update_160_remove_facebook_note () {
2020-10-28 17:12:14 +00:00
Notes :: delete_notes_with_name ( 'wc-admin-facebook-marketing-expert' );
2020-09-17 17:50:49 +00:00
}
/**
* Update DB Version .
*/
function wc_admin_update_160_db_version () {
Installer :: update_db_version ( '1.6.0' );
}
2020-11-06 17:53:03 +00:00
/**
* Set " two column " homescreen layout as default for existing stores .
*/
function wc_admin_update_170_homescreen_layout () {
add_option ( 'woocommerce_default_homepage_layout' , 'two_columns' , '' , 'no' );
}
/**
* Update DB Version .
*/
function wc_admin_update_170_db_version () {
Installer :: update_db_version ( '1.7.0' );
}