Grouped product child support

This commit is contained in:
claudiulodro 2017-05-26 13:30:17 -07:00
parent c96f8b5bc1
commit 9b925d28ec
3 changed files with 34 additions and 5 deletions

View File

@ -375,6 +375,7 @@ class WC_Product_CSV_Importer_Controller {
'download_limit',
'download_expiry',
'parent_id',
'children',
'upsell_ids',
'cross_sell_ids',
'product_url',
@ -426,6 +427,7 @@ class WC_Product_CSV_Importer_Controller {
'download_limit' => __( 'Download Limit', 'woocommerce' ),
'download_expiry' => __( 'Download Expiry Days', 'woocommerce' ),
'parent_id' => __( 'Parent', 'woocommerce' ),
'children' => __( 'Children', 'woocommerce' ),
'upsell_ids' => __( 'Upsells', 'woocommerce' ),
'cross_sell_ids' => __( 'Cross-sells', 'woocommerce' ),
'product_url' => __( 'External URL', 'woocommerce' ),
@ -537,6 +539,7 @@ class WC_Product_CSV_Importer_Controller {
'shipping_class_id' => __( 'Shipping Class', 'woocommerce' ),
'image_id' => __( 'Images', 'woocommerce' ),
'parent_id' => __( 'Parent', 'woocommerce' ),
'children' => __( 'Children', 'woocommerce' ),
'upsell_ids' => __( 'Upsells', 'woocommerce' ),
'cross_sell_ids' => __( 'Cross-sells', 'woocommerce' ),
'external' => array(

View File

@ -108,6 +108,7 @@ class WC_Product_CSV_Exporter extends WC_CSV_Batch_Exporter {
'download_limit' => __( 'Download Limit', 'woocommerce' ),
'download_expiry' => __( 'Download Expiry Days', 'woocommerce' ),
'parent_id' => __( 'Parent', 'woocommerce' ),
'children' => __( 'Children', 'woocommerce' ),
'upsell_ids' => __( 'Upsells', 'woocommerce' ),
'cross_sell_ids' => __( 'Cross-sells', 'woocommerce' ),
'product_url' => __( 'External URL', 'woocommerce' ),
@ -293,16 +294,40 @@ class WC_Product_CSV_Exporter extends WC_CSV_Batch_Exporter {
protected function get_column_value_parent_id( $product ) {
if ( $product->get_parent_id( 'edit' ) ) {
$parent = wc_get_product( $product->get_parent_id( 'edit' ) );
if ( $parent && $parent->get_sku() ) {
return $parent->get_sku();
} else {
return 'id:' . $parent->get_id();
if ( ! $parent ) {
return '';
}
return $parent->get_sku( 'edit' ) ? $parent->get_sku( 'edit' ) : 'id:' . $parent->get_id();
}
return '';
}
/**
* Get children value.
*
* @since 3.1.0
* @param WC_Product $product
* @return string
*/
protected function get_column_value_children( $product ) {
if ( 'grouped' !== $product->get_type() ) {
return '';
}
$value = array();
$child_ids = $product->get_children( 'edit' );
foreach ( $child_ids as $child_id ) {
$child = wc_get_product( $child_id );
if ( ! $child ) {
continue;
}
$value[] = $child->get_sku( 'edit' ) ? $child->get_sku( 'edit' ) : 'id:' . $child_id;
}
return implode( ',', $value );
}
/**
* Get download_limit value.
*

View File

@ -343,6 +343,7 @@ class WC_Product_CSV_Importer extends WC_Product_Importer {
'shipping_class_id' => array( $this, 'parse_shipping_class_field' ),
'images' => array( $this, 'parse_images_field' ),
'parent_id' => array( $this, 'parse_relative_field' ),
'children' => array( $this, 'parse_relative_comma_field' ),
'upsell_ids' => array( $this, 'parse_relative_comma_field' ),
'cross_sell_ids' => array( $this, 'parse_relative_comma_field' ),
'download_limit' => 'absint',