49 lines
2.1 KiB
Markdown
49 lines
2.1 KiB
Markdown
---
|
|
post_title: How to check if WooCommerce is active
|
|
menu_title: Check if WooCommerce is active
|
|
tags: how-to
|
|
---
|
|
|
|
When developing for WooCommerce, ensuring that WooCommerce is installed and active before your code runs is crucial. This prevents errors related to missing WooCommerce functions or classes.
|
|
|
|
There are a few methods to achieve this. The first is to execute your code on the `woocommerce_loaded` action. This approach guarantees that WooCommerce and its functionalities are fully loaded and available for use. This is fired around the same time as the core `plugins_loaded` action.
|
|
|
|
```php
|
|
add_action( 'woocommerce_loaded', 'prefix_woocommerce_loaded' );
|
|
|
|
function prefix_woocommerce_loaded() {
|
|
// Custom code here. WooCommerce is active and all plugins have been loaded...
|
|
}
|
|
```
|
|
|
|
**Note**: At this stage, WordPress has not yet initialized the current user data.
|
|
|
|
Another method is to execute your code on the `woocommerce_init` action. This is executed right _after_ WooCommerce is active and initialized. This action (and the `before_woocommerce_init` action) fires in the context of the WordPress `init` action so at this point current user data has been initialized.
|
|
|
|
```php
|
|
add_action( 'woocommerce_init', 'prefix_woocommerce_init' );
|
|
|
|
function prefix_woocommerce_init() {
|
|
// Custom code here. WooCommerce is active and initialized...
|
|
}
|
|
```
|
|
|
|
**Note**: The `before_woocommerce_init` hook is also an option, running just _before_ WooCommerce's initialization
|
|
|
|
Using the above hooks grants access to WooCommerce functions, enabling further condition checks. For instance, you might want to verify WooCommerce's version to ensure compatibility with your code:
|
|
|
|
```php
|
|
add_action( 'woocommerce_init', 'prefix_woocommerce_init' );
|
|
|
|
function prefix_woocommerce_init() {
|
|
// Only continue if we have access to version 8.7.0 or higher.
|
|
if ( version_compare( wc()->version, '8.7.0', '<' ) ) {
|
|
return;
|
|
}
|
|
|
|
// Custom code here. WooCommerce is active and initialized...
|
|
}
|
|
```
|
|
|
|
Choosing the right hook based on your development needs ensures your WooCommerce extensions or customizations work seamlessly and efficiently.
|