WC_Meta_Box_Product_Data::save PHP Method

save() public static method

Save meta box data.
public static save ( $post_id, $post )
    public static function save($post_id, $post)
    {
        // Process product type first so we have the correct class to run setters.
        $product_type = empty($_POST['product-type']) ? 'simple' : sanitize_title(stripslashes($_POST['product-type']));
        $classname = WC_Product_Factory::get_classname_from_product_type($product_type);
        if (!class_exists($classname)) {
            $classname = 'WC_Product_Simple';
        }
        $product = new $classname($post_id);
        $attributes = self::prepare_attributes();
        $errors = $product->set_props(array('sku' => isset($_POST['_sku']) ? wc_clean($_POST['_sku']) : null, 'purchase_note' => wp_kses_post(stripslashes($_POST['_purchase_note'])), 'downloadable' => isset($_POST['_downloadable']), 'virtual' => isset($_POST['_virtual']), 'featured' => isset($_POST['_featured']), 'catalog_visibility' => wc_clean($_POST['_visibility']), 'tax_status' => wc_clean($_POST['_tax_status']), 'tax_class' => wc_clean($_POST['_tax_class']), 'weight' => wc_clean($_POST['_weight']), 'length' => wc_clean($_POST['_length']), 'width' => wc_clean($_POST['_width']), 'height' => wc_clean($_POST['_height']), 'shipping_class_id' => absint($_POST['product_shipping_class']), 'sold_individually' => !empty($_POST['_sold_individually']), 'upsell_ids' => array_map('intval', explode(',', $_POST['upsell_ids'])), 'cross_sell_ids' => array_map('intval', explode(',', $_POST['crosssell_ids'])), 'regular_price' => wc_clean($_POST['_regular_price']), 'sale_price' => wc_clean($_POST['_sale_price']), 'date_on_sale_from' => wc_clean($_POST['_sale_price_dates_from']), 'date_on_sale_to' => wc_clean($_POST['_sale_price_dates_to']), 'manage_stock' => !empty($_POST['_manage_stock']), 'backorders' => wc_clean($_POST['_backorders']), 'stock_status' => wc_clean($_POST['_stock_status']), 'stock_quantity' => wc_stock_amount($_POST['_stock']), 'download_limit' => '' === $_POST['_download_limit'] ? '' : absint($_POST['_download_limit']), 'download_expiry' => '' === $_POST['_download_expiry'] ? '' : absint($_POST['_download_expiry']), 'downloads' => self::prepare_downloads(isset($_POST['_wc_file_names']) ? $_POST['_wc_file_names'] : array(), isset($_POST['_wc_file_urls']) ? $_POST['_wc_file_urls'] : array(), isset($_POST['_wc_file_hashes']) ? $_POST['_wc_file_hashes'] : array()), 'product_url' => esc_url_raw($_POST['_product_url']), 'button_text' => wc_clean($_POST['_button_text']), 'children' => 'grouped' === $product_type ? self::prepare_children() : null, 'reviews_allowed' => !empty($_POST['_reviews_allowed']), 'attributes' => $attributes, 'default_attributes' => self::prepare_set_attributes($attributes, 'default_attribute_')));
        if (is_wp_error($errors)) {
            WC_Admin_Meta_Boxes::add_error($errors->get_error_message());
        }
        $product->save();
        do_action('woocommerce_process_product_meta_' . $product_type, $post_id);
    }