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( '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_stock_status', array( __CLASS__, 'delete_product_query_transients' ) );
|
||||||
add_action( 'woocommerce_product_set_visibility', 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( 'edit_term', array( __CLASS__, 'edit_term' ), 10, 3 );
|
||||||
add_action( 'edited_term', array( __CLASS__, 'edited_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.
|
* When editing a term, check for product attributes.
|
||||||
* @param id $term_id
|
* @param id $term_id
|
||||||
|
|
Loading…
Reference in New Issue