diff --git a/src/Feed/Generator.php b/src/Feed/Generator.php index b0a55bda..99004ee8 100644 --- a/src/Feed/Generator.php +++ b/src/Feed/Generator.php @@ -172,7 +172,6 @@ function ( if ( ! empty( $images ) ) { $product->setAdditionalImages( $sf_product->get_images() ); } - $extra_fields = $sf_product->get_extra_fields(); if ( ! empty( $extra_fields ) ) { foreach ( $extra_fields as $field ) { @@ -233,6 +232,15 @@ function ( if ( ! empty( $sf_product_variation['height'] ) ) { $variation->setAttribute( 'height', (string) $sf_product_variation['height'] ); } + $variation_extra_fields = $sf_product->get_variation_extra_fields( $variation ); + if ( ! empty( $variation_extra_fields ) ) { + foreach ( $variation_extra_fields as $variation_extra_field ) { + if ( empty( $variation_extra_field['name'] ) ) { + continue; + } + $product->setAttribute( $variation_extra_field['name'], $variation_extra_field['value'] ); + } + } } } ); diff --git a/src/Products/Product.php b/src/Products/Product.php index 3548fc69..af22a02d 100644 --- a/src/Products/Product.php +++ b/src/Products/Product.php @@ -544,6 +544,14 @@ public function get_extra_fields() { return apply_filters( 'shopping_feed_extra_fields', [], $this->product ); } + /** + * Get Variation Extra fields + * Field : ['name'=>'', 'value'=>''] + */ + public function get_variation_extra_fields( $variation ) { + return apply_filters( 'shopping_feed_variation_extra_fields', [], $variation ); + } + /** * Get product's stock quantity. *