Home > Mobile >  WooCommerce get product type after save
WooCommerce get product type after save

Time:02-23

Can you please tell me how can I get product type after product save?

add_action( 'save_post_product', 'nd_update_group_product_attributes_func', 1001, 3 );   

function nd_update_group_product_attributes_func($post_ID, $post, $update)
{

    if($post->post_type == 'product'){

        $childrens   = $post->get_children();
        $product_type = $post->get_type();  /* this will return simple for all product type*/ 


    }

}

Even I have "grouped" product type. $product_type = $post->get_type(); on save_post_product hook will return the "simple" when we first create the product and later on update will return "grouped".

CodePudding user response:

if( $_product->is_type( 'simple' ) ) $product->is_type( 'variable' )

CodePudding user response:

Get the WooCommerce product object using the function wc_get_product

add_action('woocommerce_after_product_object_save', 'nd_update_group_product_attributes_func', 10, 2);

function nd_update_group_product_attributes_func($product, $data_store) {

    $product_type = $product->get_type();
    if ($product->is_type('grouped')) {

        $child_product_ids = $product->get_children();
        $all_child_bed_attributes = array();

        foreach ($child_product_ids as $child_product_id) {

            $child_product = wc_get_product($child_product_id);
            $pa_bedrooms = $child_product->get_attribute('pa_bedrooms');
            $all_child_bed_attributes = array_unique(array_merge($all_child_bed_attributes, $pa_bedrooms));
        }
        if ($all_child_bed_attributes) {

            foreach ($all_child_bed_attributes as $bed) {
                wp_set_object_terms($post_ID, $bed, 'pa_bedrooms', true);
            }
        }
    }
}

The hook woocommerce_after_product_object_save can be used here

  • Related