Handle variation type change event
This commit is contained in:
parent
61ce6a2d21
commit
19913f4d6c
|
@ -35,6 +35,7 @@ class WC_Post_Data {
|
|||
add_action( 'transition_post_status', array( __CLASS__, 'transition_post_status' ), 10, 3 );
|
||||
add_action( 'woocommerce_product_set_stock_status', array( __CLASS__, 'delete_product_query_transients' ) );
|
||||
add_action( 'woocommerce_product_set_visibility', array( __CLASS__, 'delete_product_query_transients' ) );
|
||||
add_action( 'woocommerce_product_type_changed', array( __CLASS__, 'product_type_changed' ), 10, 3 );
|
||||
|
||||
add_action( 'edit_term', array( __CLASS__, 'edit_term' ), 10, 3 );
|
||||
add_action( 'edited_term', array( __CLASS__, 'edited_term' ), 10, 3 );
|
||||
|
@ -117,6 +118,22 @@ class WC_Post_Data {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle type changes.
|
||||
*
|
||||
* @since 2.7.0
|
||||
* @param WC_Product $product
|
||||
* @param string $from
|
||||
* @param string $to
|
||||
*/
|
||||
public static function product_type_changed( $product, $from, $to ) {
|
||||
if ( 'variable' === $from ) {
|
||||
// If the product is no longer variable, we should ensure all variations are removed.
|
||||
$data_store = WC_Data_Store::load( 'product-variable' );
|
||||
$data_store->delete_variations( $product );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* When editing a term, check for product attributes.
|
||||
* @param id $term_id
|
||||
|
|
Loading…
Reference in New Issue