Я борюсь с решением для изменения изображений на основе выбранных цветов. У меня есть 3 типа атрибутов: цвет, размер и ветви. Мое изображение образца работает, когда все эти 3 типа будут сопоставлены, например: изображение будет изменено, когда вы выберете: цвет + размер + ветвь. Но я хочу заставить его как-то изменить изображение на основе выбранного цвета и игнорировать 2 других атрибута. Вот мой код, который я сейчас использую.
if( defined('DOING_AJAX') && DOING_AJAX && ! isset($etheme_global['quick_view']) ) {
if( ! empty( $_REQUEST['product_id'] ) ) {
$post_id = (int) $_REQUEST['product_id'];
setup_postdata( $post_id );
$main_attachment_id = get_post_thumbnail_id( $post_id );
$product = wc_get_product($post_id);
if( ! empty($_REQUEST['option']) ) {
$option = esc_attr($_REQUEST['option']);
$attributes = $product->get_attributes();
$variations = $product->get_available_variations();
$images = '';
$thumb = '';
$attachment_ids = array();
foreach($variations as $variation) {
if( isset( $variation['attributes']['attribute_' . $swatch] ) && $variation['attributes']['attribute_' . $swatch] == $option && has_post_thumbnail( $variation['variation_id'] ) ) {
$main_attachment_id = get_post_thumbnail_id( $variation['variation_id'] );
}
}
}
}
} else {
$attachment_ids = $product->get_gallery_image_ids();
$main_attachment_id = get_post_thumbnail_id( $post_id );
}
Возможно ли придумать это решение? какие-либо предложения?
Заранее спасибо за любые советы.
Приветствия.