А если блок кода на этой строчке
foreach ( $attributes as $param ) :
if ( true === $param['variation'] ) {
$param_value = $offer->get_attribute( wc_attribute_taxonomy_name_by_id( $param->get_id() ) );
} else {
$param_value = $product->get_attribute( wc_attribute_taxonomy_name_by_id( $param->get_id() ) );
}
/* @var WC_Product_Attribute $param */
$yml .= ' <param name="' . wc_attribute_label( wc_attribute_taxonomy_name_by_id( $param->get_id() ) ) . '">' . $param_value . '</param>' . PHP_EOL;
endforeach;
заменить на:
foreach ( $attributes as $param ) :
if ( self::woo_latest_versions() ) {
$taxonomy = wc_attribute_taxonomy_name_by_id( $param->get_id() );
} else {
$taxonomy = wc_attribute_taxonomy_name_by_id( $param['id'] );
}
if ( true === $param['variation'] ) {
$param_value = $offer->get_attribute( $taxonomy );
} else {
$param_value = $product->get_attribute( $taxonomy );
}
/* @var WC_Product_Attribute $param */
$yml .= ' <param name="' . wc_attribute_label( $taxonomy ) . '">' . $param_value . '</param>' . PHP_EOL;
endforeach;
А вот так работает, спасибо!
только аттрибуты все пустые http://take.ms/17HH0
Виноват. Вот верный кусок кода:
foreach ( $attributes as $param ) :
if ( self::woo_latest_versions() ) {
$taxonomy = wc_attribute_taxonomy_name_by_id( $param->get_id() );
} else {
$taxonomy = $param['name'];
}
if ( true === $param['variation'] ) {
$param_value = $offer->get_attribute( $taxonomy );
} else {
$param_value = $product->get_attribute( $taxonomy );
}
/* @var WC_Product_Attribute $param */
$yml .= ' <param name="' . wc_attribute_label( $taxonomy ) . '">' . $param_value . '</param>' . PHP_EOL;
endforeach;
А вот теперь все отлично работает, спасибо!