Как изменить статус вариации продукта, вместо «нет в наличии» — «доступно для предзаказа»?

Доброго дня,
подскажите пожалуйста, как изменить статус вариации продукта, вместо "нет в наличии" - "доступно для предзаказа"?

Есть вариативный товар с вариациями размеров,
для одной вариации необходимо поменять статус, чтобы для нее всегда был статус "доступен для предзаказа".
Идентифицировать вариацию хотелось бы через артикул (sku) и значение атрибута:

sku = 'TEST-001';
attribute_name = 'pa_size';
value = '35';

Я пытаюсь сделать так, но не работает:

add_filter( 'woocommerce_available_variation', 'enable_backorders_for_variation', 10, 3 );

function enable_backorders_for_variation( $data, $product, $variation ) {
        // Get the SKU, attribute name, and value you want to target
        $sku_to_find = 'TEST-001';
        $attribute_name = 'pa_size';
        $target_value = '35';

        // Check if the variation matches the SKU
        if ( $variation->get_sku() === $sku_to_find ) {
                // Get the variation attributes
                $attributes = $variation->get_attributes();

                // Check if the attribute exists and matches the target value
                if ( isset( $attributes[$attribute_name] ) && $attributes[$attribute_name] === $target_value ) {
                        // Enable backorders
                        $data['backorders'] = 'yes';
                }
        }

        return $data;
}


Что я делаю не так?
Заранее благодарю за ответ!
  • Вопрос задан
  • 28 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы