Здравствуйте! Я нашел этот код в stackoverflow и пытаюсь внедрить его в свой сайт. Проблема, с которой я сталкиваюсь, заключается в том, что, когда foreach l oop завершен, он возвращает имена переменных, например, «3,0 сантиметра» вместо «3,0 сантиметра». Я изменил некоторый код, чтобы отобразить некоторые изменения, но как только я добавил свой код, он больше не показывается на складе. Иногда текст «Нет на складе» не отображается в раскрывающемся списке переменных продуктов при добавлении кода.
add_filter( 'woocommerce_variation_option_name', 'customizing_variations_terms_name', 999, 1 );
function customizing_variations_terms_name( $term_name ) {
global $product;
// Get available product variations
$product_variations = $product->get_available_variations();
// product_variation terms are normalized to lowercase with
// spaces replaced by dashes.
// if your term name contains capital letters or spaces i.e. 'SIZE 6'
// the product variation will be lowercase with dashes, i.e. 'size-6'
$term_name = str_replace(' ', '-', strtolower($term_name));
foreach ( $product_variations as $product_variation ) {
if( isset( $product_variation['attributes'] ) ) {
$key = array_search($term_name, $product_variation['attributes']);
if( $key !== false && ! $product_variation['is_in_stock'] ) {
return $term_name . ' - Out of Stock';
}
}
}
return $term_name;
}
Я пытался изменить код на:
foreach ( $product_variations as $product_variation ) {
if( isset( $product_variation['attributes'] ) ) {
$key = array_search($term_name, $product_variation['attributes']);
if( $key !== false && ! $product_variation['is_in_stock'] ) {
**$term_name = str_replace('-', ' ', strtolower($term_name));**
return $term_name . ' - Out of Stock';
}
}
}
**$term_name = str_replace('-', ' ', strtolower($term_name));**
return $term_name;
}