WC_Install
in package
WC_Install Class.
Table of Contents
- INITIAL_INSTALLED_VERSION = 'woocommerce_initial_installed_version'
- Option name used to track new installation versions of WooCommerce.
- NEWLY_INSTALLED_OPTION = 'woocommerce_newly_installed'
- Option name used to track new installations of WooCommerce.
- STORE_ID_OPTION = 'woocommerce_store_id'
- Option name used to uniquely identify installations of WooCommerce.
- $db_updates : array<string|int, mixed>
- DB updates and callbacks that need to be run per version.
- add_admin_note_after_page_created() : void
- Adds an admin inbox note after a page has been created to notify user. For example to take action to edit the page such as the Refund and returns page.
- add_coming_soon_option() : void
- Add the coming soon options for new shops.
- background_installer() : void
- Install a plugin from .org in the background via a cron job (used by installer - opt in).
- check_version() : void
- Check WooCommerce version and run the updater is required.
- create_pages() : void
- Create pages that the plugin relies on, storing page IDs in variables.
- create_roles() : void
- Create roles and capabilities.
- create_tables() : array<string|int, mixed>
- Set up the database tables which the plugin needs to function.
- create_terms() : void
- Add the default terms for WC taxonomies - product types and order statuses. Modify this at your own risk.
- cron_schedules() : array<string|int, mixed>
- Add more cron schedules.
- delete_obsolete_notes() : void
- Delete obsolete notes.
- drop_tables() : void
- Drop WooCommerce tables.
- enable_analytics_scheduled_import() : void
- Set scheduled import mode as the default for new installations.
- enable_customer_stock_notifications_signups() : void
- Enable customer stock notifications signups by default for new shops.
- enable_email_improvements_for_existing_merchants() : void
- Enable email improvements by default for existing shops if conditions are met.
- enable_email_improvements_for_newly_installed() : void
- Enable email improvements by default for new shops.
- get_core_capabilities() : array<string|int, mixed>
- Get capabilities for WooCommerce - these are assigned to admin/shop manager during installation or reset.
- get_db_update_callbacks() : array<string|int, mixed>
- Get list of DB update callbacks.
- get_tables() : array<string|int, mixed>
- Return a list of WooCommerce tables. Used to make sure all WC tables are dropped when uninstalling the plugin in a single site or multi site environment.
- init() : void
- Hook in tabs.
- install() : void
- Install WC.
- install_actions() : void
- Install actions when a update button is clicked within the admin area.
- is_db_auto_update_enabled() : bool
- Is DB auto-update enabled? This controls whether database updates are applied without prompting the admin.
- is_new_install() : bool
- Is this a brand new WC install?
- manual_database_update() : void
- Performan manual database update when triggered by WooCommerce System Tools.
- maybe_create_pages() : void
- Create pages on installation.
- maybe_enable_hpos() : void
- Enable HPOS by default for new shops.
- maybe_set_store_id() : void
- Set the Store ID if not already present.
- migrate_options() : void
- Migrate option values to their new keys/names.
- needs_db_update() : bool
- Is a DB update needed?
- page_created() : void
- When pages are created, we might want to take some action.
- plugin_action_links() : array<string|int, mixed>
- Show action links on the plugin screen.
- plugin_row_meta() : array<string|int, mixed>
- Show row meta on the plugin screen.
- remove_mailchimps_redirect() : void
- Removes redirect added during MailChimp plugin's activation.
- remove_roles() : void
- Remove WooCommerce roles.
- remove_update_db_notice() : void
- Removes the db update notice.
- run_manual_database_update() : void
- Run manual database update.
- run_update_callback() : void
- Run an update callback when triggered by ActionScheduler.
- theme_background_installer() : void
- Install a theme from .org in the background via a cron job (used by installer - opt in).
- update_db_version() : void
- Update DB version to current.
- verify_base_tables() : array<string|int, mixed>
- Check if all the base tables are present.
- wc_admin_db_update_notice() : void
- Add WC Admin based db update notice.
- wpmu_drop_tables() : array<string|int, string>
- Uninstall tables when MU blog is deleted.
- get_cart_block_content() : string
- Get the Cart block content.
- get_checkout_block_content() : string
- Get the Checkout block content.
- run_update_callback_end() : void
- Triggered when a callback has ran.
- run_update_callback_start() : void
- Triggered when a callback will run.
- add_update_db_notice() : void
- Adds the db update notice.
- associate_plugin_file() : array<string|int, mixed>
- Get slug from path and associate it with the path.
- clear_cron_jobs() : void
- Removes old cron jobs now that we moved to Action Scheduler.
- create_files() : void
- Create files/directories.
- create_lock() : bool
- Attempts to acquire an installation lock.
- create_options() : void
- Default options.
- create_placeholder_image() : void
- Create a placeholder image in the media library.
- get_order_stats_table_schema() : string
- Get the wc_order_stats table schema.
- get_refunds_return_policy_page_content() : string
- Gets the content of the sample refunds and return policy page.
- get_schema() : string
- Get Table schema.
- install_core() : void
- Core function that performs the WooCommerce install.
- maybe_activate_legacy_api_enabled_option() : void
- If in a previous version of WooCommerce the Legacy REST API plugin was installed manually but the core Legacy REST API was kept disabled, now the Legacy API is still disabled and can't be manually enabled from settings UI (the plugin, which is now in control, won't allow that), which is weird and confusing. So we detect this case and explicitly enable it.
- maybe_set_activation_transients() : void
- See if we need to set redirect transients for activation or not.
- maybe_update_db_version() : void
- See if we need to show or run database updates during install.
- release_lock() : void
- Releases the installation lock.
- remove_admin_notices() : void
- Reset any notices added to admin.
- set_paypal_standard_load_eligibility() : void
- Sets whether PayPal Standard will be loaded on install.
- setup_environment() : void
- Setup WC environment - post types, taxonomies, endpoints.
- should_enable_hpos_for_new_shop() : bool
- Checks whether HPOS should be enabled for new shops.
- update() : void
- Push all needed DB updates to the queue for processing.
- update_wc_version() : void
- Update WC version to current.
Constants
INITIAL_INSTALLED_VERSION
Option name used to track new installation versions of WooCommerce.
public
string
INITIAL_INSTALLED_VERSION
= 'woocommerce_initial_installed_version'
NEWLY_INSTALLED_OPTION
Option name used to track new installations of WooCommerce.
public
string
NEWLY_INSTALLED_OPTION
= 'woocommerce_newly_installed'
STORE_ID_OPTION
Option name used to uniquely identify installations of WooCommerce.
public
string
STORE_ID_OPTION
= 'woocommerce_store_id'
Properties
$db_updates
DB updates and callbacks that need to be run per version.
private
static array<string|int, mixed>
$db_updates
= array('2.0.0' => array('wc_update_200_file_paths', 'wc_update_200_permalinks', 'wc_update_200_subcat_display', 'wc_update_200_taxrates', 'wc_update_200_line_items', 'wc_update_200_images', 'wc_update_200_db_version'), '2.0.9' => array('wc_update_209_brazillian_state', 'wc_update_209_db_version'), '2.1.0' => array('wc_update_210_remove_pages', 'wc_update_210_file_paths', 'wc_update_210_db_version'), '2.2.0' => array('wc_update_220_shipping', 'wc_update_220_order_status', 'wc_update_220_variations', 'wc_update_220_attributes', 'wc_update_220_db_version'), '2.3.0' => array('wc_update_230_options', 'wc_update_230_db_version'), '2.4.0' => array('wc_update_240_options', 'wc_update_240_shipping_methods', 'wc_update_240_api_keys', 'wc_update_240_refunds', 'wc_update_240_db_version'), '2.4.1' => array('wc_update_241_variations', 'wc_update_241_db_version'), '2.5.0' => array('wc_update_250_currency', 'wc_update_250_db_version'), '2.6.0' => array('wc_update_260_options', 'wc_update_260_termmeta', 'wc_update_260_zones', 'wc_update_260_zone_methods', 'wc_update_260_refunds', 'wc_update_260_db_version'), '3.0.0' => array('wc_update_300_grouped_products', 'wc_update_300_settings', 'wc_update_300_product_visibility', 'wc_update_300_db_version'), '3.1.0' => array('wc_update_310_downloadable_products', 'wc_update_310_old_comments', 'wc_update_310_db_version'), '3.1.2' => array('wc_update_312_shop_manager_capabilities', 'wc_update_312_db_version'), '3.2.0' => array('wc_update_320_mexican_states', 'wc_update_320_db_version'), '3.3.0' => array('wc_update_330_image_options', 'wc_update_330_webhooks', 'wc_update_330_product_stock_status', 'wc_update_330_set_default_product_cat', 'wc_update_330_clear_transients', 'wc_update_330_set_paypal_sandbox_credentials', 'wc_update_330_db_version'), '3.4.0' => array('wc_update_340_states', 'wc_update_340_state', 'wc_update_340_last_active', 'wc_update_340_db_version'), '3.4.3' => array('wc_update_343_cleanup_foreign_keys', 'wc_update_343_db_version'), '3.4.4' => array('wc_update_344_recreate_roles', 'wc_update_344_db_version'), '3.5.0' => array('wc_update_350_reviews_comment_type', 'wc_update_350_db_version'), '3.5.2' => array('wc_update_352_drop_download_log_fk'), '3.5.4' => array('wc_update_354_modify_shop_manager_caps', 'wc_update_354_db_version'), '3.6.0' => array('wc_update_360_product_lookup_tables', 'wc_update_360_term_meta', 'wc_update_360_downloadable_product_permissions_index', 'wc_update_360_db_version'), '3.7.0' => array('wc_update_370_tax_rate_classes', 'wc_update_370_mro_std_currency', 'wc_update_370_db_version'), '3.9.0' => array('wc_update_390_move_maxmind_database', 'wc_update_390_change_geolocation_database_update_cron', 'wc_update_390_db_version'), '4.0.0' => array('wc_update_product_lookup_tables', 'wc_update_400_increase_size_of_column', 'wc_update_400_reset_action_scheduler_migration_status', 'wc_admin_update_0201_order_status_index', 'wc_admin_update_0230_rename_gross_total', 'wc_admin_update_0251_remove_unsnooze_action', 'wc_update_400_db_version'), '4.4.0' => array('wc_update_440_insert_attribute_terms_for_variable_products', 'wc_admin_update_110_remove_facebook_note', 'wc_admin_update_130_remove_dismiss_action_from_tracking_opt_in_note', 'wc_update_440_db_version'), '4.5.0' => array('wc_update_450_sanitize_coupons_code', 'wc_update_450_db_version'), '5.0.0' => array('wc_update_500_fix_product_review_count', 'wc_admin_update_160_remove_facebook_note', 'wc_admin_update_170_homescreen_layout', 'wc_update_500_db_version'), '5.6.0' => array('wc_update_560_create_refund_returns_page', 'wc_update_560_db_version'), '6.0.0' => array('wc_update_600_migrate_rate_limit_options', 'wc_admin_update_270_delete_report_downloads', 'wc_admin_update_271_update_task_list_options', 'wc_admin_update_280_order_status', 'wc_admin_update_290_update_apperance_task_option', 'wc_admin_update_290_delete_default_homepage_layout_option', 'wc_update_600_db_version'), '6.3.0' => array('wc_update_630_create_product_attributes_lookup_table', 'wc_admin_update_300_update_is_read_from_last_read', 'wc_update_630_db_version'), '6.4.0' => array('wc_update_640_add_primary_key_to_product_attributes_lookup_table', 'wc_admin_update_340_remove_is_primary_from_note_action', 'wc_update_640_db_version'), '6.5.0' => array('wc_update_650_approved_download_directories'), '6.5.1' => array('wc_update_651_approved_download_directories'), '6.7.0' => array('wc_update_670_purge_comments_count_cache', 'wc_update_670_delete_deprecated_remote_inbox_notifications_option'), '7.0.0' => array('wc_update_700_remove_download_log_fk', 'wc_update_700_remove_recommended_marketing_plugins_transient'), '7.2.1' => array('wc_update_721_adjust_new_zealand_states', 'wc_update_721_adjust_ukraine_states'), '7.2.2' => array('wc_update_722_adjust_new_zealand_states', 'wc_update_722_adjust_ukraine_states'), '7.5.0' => array('wc_update_750_add_columns_to_order_stats_table', 'wc_update_750_disable_new_product_management_experience'), '7.7.0' => array('wc_update_770_remove_multichannel_marketing_feature_options'), '7.9.0' => array('wc_update_790_blockified_product_grid_block'), '8.1.0' => array('wc_update_810_migrate_transactional_metadata_for_hpos'), '8.3.0' => array('wc_update_830_rename_checkout_template', 'wc_update_830_rename_cart_template'), '8.6.0' => array('wc_update_860_remove_recommended_marketing_plugins_transient'), '8.7.0' => array('wc_update_870_prevent_listing_of_transient_files_directory'), '8.9.0' => array('wc_update_890_update_connect_to_woocommerce_note', 'wc_update_890_update_paypal_standard_load_eligibility'), '8.9.1' => array('wc_update_891_create_plugin_autoinstall_history_option'), '9.1.0' => array('wc_update_910_add_launch_your_store_tour_option', 'wc_update_910_remove_obsolete_user_meta'), '9.2.0' => array('wc_update_920_add_wc_hooked_blocks_version_option'), '9.3.0' => array('wc_update_930_add_woocommerce_coming_soon_option', 'wc_update_930_migrate_user_meta_for_launch_your_store_tour'), '9.4.0' => array('wc_update_940_add_phone_to_order_address_fts_index', 'wc_update_940_remove_help_panel_highlight_shown'), '9.5.0' => array('wc_update_950_tracking_option_autoload'), '9.6.1' => array('wc_update_961_migrate_default_email_base_color'), '9.8.0' => array('wc_update_980_remove_order_attribution_install_banner_dismissed_option'), '9.8.5' => array('wc_update_985_enable_new_payments_settings_page_feature'), '9.9.0' => array('wc_update_990_remove_wc_count_comments_transient', 'wc_update_990_remove_email_notes'), '10.0.0' => array('wc_update_1000_multisite_visibility_setting', 'wc_update_1000_remove_patterns_toolkit_transient'), '10.2.0' => array('wc_update_1020_add_old_refunded_order_items_to_product_lookup_table'), '10.3.0' => array('wc_update_1030_add_comments_date_type_index'), '10.4.0' => array('wc_update_1040_add_idx_date_paid_status_parent', 'wc_update_1040_cleanup_legacy_ptk_patterns_fetching'), '10.5.0' => array('wc_update_1050_migrate_brand_permalink_setting', 'wc_update_1050_enable_autoload_options', 'wc_update_1050_add_idx_user_email', 'wc_update_1050_remove_deprecated_marketplace_option'), '10.6.0' => array('wc_update_1060_add_woo_idx_comment_approved_type_index'))
Please note that these functions are invoked when WooCommerce is updated from a previous version, but NOT when WooCommerce is newly installed.
Database schema changes must be incorporated to the SQL returned by get_schema, which is applied via dbDelta at both install and update time. If any other kind of database change is required at install time (e.g. populating tables), use the 'woocommerce_installed' hook.
IMPORTANT:
When adding new update callbacks after feature freeze, always use a unique version key with a suffix (e.g. 10.2.0-1)
if the base version already exists in the array.
This ensures all users, including those on beta or RC versions, receive the update.
Methods
add_admin_note_after_page_created()
Adds an admin inbox note after a page has been created to notify user. For example to take action to edit the page such as the Refund and returns page.
public
static add_admin_note_after_page_created() : void
Tags
Return values
void —add_coming_soon_option()
Add the coming soon options for new shops.
public
static add_coming_soon_option() : void
Ensure that the options are set for all shops for performance even if core profiler is disabled on the host.
Tags
Return values
void —background_installer()
Install a plugin from .org in the background via a cron job (used by installer - opt in).
public
static background_installer(string $plugin_to_install_id, array<string|int, mixed> $plugin_to_install) : void
Parameters
- $plugin_to_install_id : string
-
Plugin ID.
- $plugin_to_install : array<string|int, mixed>
-
Plugin information.
Tags
Return values
void —check_version()
Check WooCommerce version and run the updater is required.
public
static check_version() : void
This check is done on all requests and runs if the versions do not match.
Return values
void —create_pages()
Create pages that the plugin relies on, storing page IDs in variables.
public
static create_pages() : void
Return values
void —create_roles()
Create roles and capabilities.
public
static create_roles() : void
Return values
void —create_tables()
Set up the database tables which the plugin needs to function.
public
static create_tables() : array<string|int, mixed>
WARNING: If you are modifying this method, make sure that its safe to call regardless of the state of database.
This is called from install method and is executed in-sync when WC is installed or updated. This can also be called optionally from verify_base_tables.
TODO: Add all crucial tables that we have created from workers in the past.
Tables: woocommerce_attribute_taxonomies - Table for storing attribute taxonomies - these are user defined woocommerce_downloadable_product_permissions - Table for storing user and guest download permissions. KEY(order_id, product_id, download_id) used for organizing downloads on the My Account page woocommerce_order_items - Order line items are stored in a table to make them easily queryable for reports woocommerce_order_itemmeta - Order line item meta is stored in a table for storing extra data. woocommerce_tax_rates - Tax Rates are stored inside 2 tables making tax queries simple and efficient. woocommerce_tax_rate_locations - Each rate can be applied to more than one postcode/city hence the second table.
Return values
array<string|int, mixed> — Strings containing the results of the various update queries as returned by dbDelta.create_terms()
Add the default terms for WC taxonomies - product types and order statuses. Modify this at your own risk.
public
static create_terms() : void
Return values
void —cron_schedules()
Add more cron schedules.
public
static cron_schedules(array<string|int, mixed> $schedules) : array<string|int, mixed>
Parameters
- $schedules : array<string|int, mixed>
-
List of WP scheduled cron jobs.
Return values
array<string|int, mixed> —delete_obsolete_notes()
Delete obsolete notes.
public
static delete_obsolete_notes() : void
Return values
void —drop_tables()
Drop WooCommerce tables.
public
static drop_tables() : void
Return values
void —enable_analytics_scheduled_import()
Set scheduled import mode as the default for new installations.
public
static enable_analytics_scheduled_import() : void
Uses add_option() which only sets the option if it doesn't already exist. This ensures existing installations are not affected.
Tags
Return values
void —enable_customer_stock_notifications_signups()
Enable customer stock notifications signups by default for new shops.
public
static enable_customer_stock_notifications_signups() : void
Tags
Return values
void —enable_email_improvements_for_existing_merchants()
Enable email improvements by default for existing shops if conditions are met.
public
static enable_email_improvements_for_existing_merchants() : void
Tags
Return values
void —enable_email_improvements_for_newly_installed()
Enable email improvements by default for new shops.
public
static enable_email_improvements_for_newly_installed() : void
Tags
Return values
void —get_core_capabilities()
Get capabilities for WooCommerce - these are assigned to admin/shop manager during installation or reset.
public
static get_core_capabilities() : array<string|int, mixed>
Return values
array<string|int, mixed> —get_db_update_callbacks()
Get list of DB update callbacks.
public
static get_db_update_callbacks() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —get_tables()
Return a list of WooCommerce tables. Used to make sure all WC tables are dropped when uninstalling the plugin in a single site or multi site environment.
public
static get_tables() : array<string|int, mixed>
Return values
array<string|int, mixed> — WC tables.init()
Hook in tabs.
public
static init() : void
Return values
void —install()
Install WC.
public
static install() : void
Return values
void —install_actions()
Install actions when a update button is clicked within the admin area.
public
static install_actions() : void
This function is hooked into admin_init to affect admin only.
Return values
void —is_db_auto_update_enabled()
Is DB auto-update enabled? This controls whether database updates are applied without prompting the admin.
public
static is_db_auto_update_enabled() : bool
This is the default behavior since 9.9.0 and can be overridden via filter 'woocommerce_enable_auto_update_db'.
Tags
Return values
bool — TRUE if database auto-updates are enabled. FALSE otherwise.is_new_install()
Is this a brand new WC install?
public
static is_new_install() : bool
A brand new install has no version yet. Also treat empty installs as 'new'.
Tags
Return values
bool —manual_database_update()
Performan manual database update when triggered by WooCommerce System Tools.
public
static manual_database_update() : void
Tags
Return values
void —maybe_create_pages()
Create pages on installation.
public
static maybe_create_pages() : void
Return values
void —maybe_enable_hpos()
Enable HPOS by default for new shops.
public
static maybe_enable_hpos() : void
Tags
Return values
void —maybe_set_store_id()
Set the Store ID if not already present.
public
static maybe_set_store_id() : void
Tags
Return values
void —migrate_options()
Migrate option values to their new keys/names.
public
static migrate_options() : void
Return values
void —needs_db_update()
Is a DB update needed?
public
static needs_db_update() : bool
Tags
Return values
bool —page_created()
When pages are created, we might want to take some action.
public
static page_created(int $page_id, array<string|int, mixed> $page_data) : void
In this case we want to create an admin note when the refund and returns page is created.
Parameters
- $page_id : int
-
ID of the page.
- $page_data : array<string|int, mixed>
-
The data of the page created.
Tags
Return values
void —plugin_action_links()
Show action links on the plugin screen.
public
static plugin_action_links(mixed $links) : array<string|int, mixed>
Parameters
- $links : mixed
-
Plugin Action links.
Return values
array<string|int, mixed> —plugin_row_meta()
Show row meta on the plugin screen.
public
static plugin_row_meta(mixed $links, mixed $file) : array<string|int, mixed>
Parameters
- $links : mixed
-
Plugin Row Meta.
- $file : mixed
-
Plugin Base file.
Return values
array<string|int, mixed> —remove_mailchimps_redirect()
Removes redirect added during MailChimp plugin's activation.
public
static remove_mailchimps_redirect(string $option, string $value) : void
Parameters
- $option : string
-
Option name.
- $value : string
-
Option value.
Return values
void —remove_roles()
Remove WooCommerce roles.
public
static remove_roles() : void
Return values
void —remove_update_db_notice()
Removes the db update notice.
public
static remove_update_db_notice() : void
Tags
Return values
void —run_manual_database_update()
Run manual database update.
public
static run_manual_database_update() : void
Return values
void —run_update_callback()
Run an update callback when triggered by ActionScheduler.
public
static run_update_callback(string $update_callback) : void
Parameters
- $update_callback : string
-
Callback name.
Tags
Return values
void —theme_background_installer()
Install a theme from .org in the background via a cron job (used by installer - opt in).
public
static theme_background_installer(string $theme_slug) : void
Parameters
- $theme_slug : string
-
Theme slug.
Tags
Return values
void —update_db_version()
Update DB version to current.
public
static update_db_version([string|null $version = null ]) : void
Parameters
- $version : string|null = null
-
New WooCommerce DB version or null.
Return values
void —verify_base_tables()
Check if all the base tables are present.
public
static verify_base_tables([bool $modify_notice = true ][, bool $execute = false ]) : array<string|int, mixed>
Parameters
- $modify_notice : bool = true
-
Whether to modify notice based on if all tables are present.
- $execute : bool = false
-
Whether to execute get_schema queries as well.
Return values
array<string|int, mixed> — List of queries.wc_admin_db_update_notice()
Add WC Admin based db update notice.
public
static wc_admin_db_update_notice() : void
Tags
Return values
void —wpmu_drop_tables()
Uninstall tables when MU blog is deleted.
public
static wpmu_drop_tables(array<string|int, mixed> $tables) : array<string|int, string>
Parameters
- $tables : array<string|int, mixed>
-
List of tables that will be deleted by WP.
Return values
array<string|int, string> —get_cart_block_content()
Get the Cart block content.
protected
static get_cart_block_content() : string
Tags
Return values
string —get_checkout_block_content()
Get the Checkout block content.
protected
static get_checkout_block_content() : string
Tags
Return values
string —run_update_callback_end()
Triggered when a callback has ran.
protected
static run_update_callback_end(string $callback, bool $result) : void
Parameters
- $callback : string
-
Callback name.
- $result : bool
-
Return value from callback. Non-false need to run again.
Tags
Return values
void —run_update_callback_start()
Triggered when a callback will run.
protected
static run_update_callback_start(string $callback) : void
Parameters
- $callback : string
-
Callback name.
Tags
Return values
void —add_update_db_notice()
Adds the db update notice.
private
static add_update_db_notice() : void
Tags
Return values
void —associate_plugin_file()
Get slug from path and associate it with the path.
private
static associate_plugin_file(array<string|int, mixed> $plugins, string $key) : array<string|int, mixed>
Parameters
- $plugins : array<string|int, mixed>
-
Associative array of plugin files to paths.
- $key : string
-
Plugin relative path. Example: woocommerce/woocommerce.php.
Return values
array<string|int, mixed> —clear_cron_jobs()
Removes old cron jobs now that we moved to Action Scheduler.
private
static clear_cron_jobs() : void
Return values
void —create_files()
Create files/directories.
private
static create_files() : void
Return values
void —create_lock()
Attempts to acquire an installation lock.
private
static create_lock() : bool
Return values
bool — True if a lock was acquired, otherwise false.create_options()
Default options.
private
static create_options() : void
Sets up the default options used on the settings page.
Return values
void —create_placeholder_image()
Create a placeholder image in the media library.
private
static create_placeholder_image() : void
Tags
Return values
void —get_order_stats_table_schema()
Get the wc_order_stats table schema.
private
static get_order_stats_table_schema(string $collate) : string
Parameters
- $collate : string
-
Database collation.
Tags
Return values
string — SQL schema for wc_order_stats table.get_refunds_return_policy_page_content()
Gets the content of the sample refunds and return policy page.
private
static get_refunds_return_policy_page_content() : string
Tags
Return values
string — The content for the pageget_schema()
Get Table schema.
private
static get_schema() : string
See https://github.com/woocommerce/woocommerce/wiki/Database-Description/
A note on indexes; Indexes have a maximum size of 767 bytes. Historically, we haven't need to be concerned about that. As of WordPress 4.2, however, we moved to utf8mb4, which uses 4 bytes per character. This means that an index which used to have room for floor(767/3) = 255 characters, now only has room for floor(767/4) = 191 characters.
Changing indexes may cause duplicate index notices in logs due to https://core.trac.wordpress.org/ticket/34870 but dropping indexes first causes too much load on some servers/larger DB.
When adding or removing a table, make sure to update the list of tables in WC_Install::get_tables().
Return values
string —install_core()
Core function that performs the WooCommerce install.
private
static install_core() : void
Return values
void —maybe_activate_legacy_api_enabled_option()
If in a previous version of WooCommerce the Legacy REST API plugin was installed manually but the core Legacy REST API was kept disabled, now the Legacy API is still disabled and can't be manually enabled from settings UI (the plugin, which is now in control, won't allow that), which is weird and confusing. So we detect this case and explicitly enable it.
private
static maybe_activate_legacy_api_enabled_option() : void
Return values
void —maybe_set_activation_transients()
See if we need to set redirect transients for activation or not.
private
static maybe_set_activation_transients() : void
Tags
Return values
void —maybe_update_db_version()
See if we need to show or run database updates during install.
private
static maybe_update_db_version() : void
Tags
Return values
void —release_lock()
Releases the installation lock.
private
static release_lock() : void
Return values
void —remove_admin_notices()
Reset any notices added to admin.
private
static remove_admin_notices() : void
Tags
Return values
void —set_paypal_standard_load_eligibility()
Sets whether PayPal Standard will be loaded on install.
private
static set_paypal_standard_load_eligibility() : void
Tags
Return values
void —setup_environment()
Setup WC environment - post types, taxonomies, endpoints.
private
static setup_environment() : void
Tags
Return values
void —should_enable_hpos_for_new_shop()
Checks whether HPOS should be enabled for new shops.
private
static should_enable_hpos_for_new_shop() : bool
Return values
bool —update()
Push all needed DB updates to the queue for processing.
private
static update() : void
Return values
void —update_wc_version()
Update WC version to current.
private
static update_wc_version() : void
