Grouped product child support
This commit is contained in:
parent
c96f8b5bc1
commit
9b925d28ec
|
@ -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(
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
|
|
|
@ -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',
|
||||
|
|
Loading…
Reference in New Issue