что значит обновление с новым остатком? какую ошибку? нельзя добавить в корзину потому что нет кнопки купить или в корзине пишется ошибка?
Для доступа к БД с удаленных компьютеров нужно указать IP-адрес или доменное имя компьютера, с которого будет производиться подключение.
Можно создать уникальные пароли для отдельных адресов или единый пароль для всех сразу.
Можно указать в качестве доступа localhost, если вы удаляли его ранее.
// Hook to set stock status and quantity of size 125
add_action('woocommerce_before_single_product', 'update_size_125_stock_status_and_quantity');
function update_size_125_stock_status_and_quantity() {
global $product;
// Check if it's a variable product
if ($product->is_type('variable')) {
$attribute_name = 'pa_razmer'; // Replace with your actual attribute name
$attribute_value_125 = '125';
// Get the product ID
$product_id = $product->get_id();
// Set stock status and quantity of size 125
set_stock_status_and_quantity($product_id, $attribute_name, $attribute_value_125);
}
}
// Function to set stock status and quantity of size 125
function set_stock_status_and_quantity($product_id, $attribute_name, $attribute_value) {
$variations = get_variations_by_attribute($product_id, $attribute_name, $attribute_value);
foreach ($variations as $variation) {
$variation_id = $variation['variation_id'];
update_post_meta($variation_id, '_stock_status', 'instock'); // Set stock status to "in stock"
update_post_meta($variation_id, '_stock', 1); // Set stock quantity to 1 (you can change this to your desired quantity)
}
}
// Function to get variations based on attribute value
function get_variations_by_attribute($product_id, $attribute_name, $attribute_value) {
$variations = array();
$args = array(
'post_type' => 'product_variation',
'post_status' => 'publish',
'posts_per_page' => -1,
'orderby' => 'menu_order',
'order' => 'asc',
'meta_query' => array(
array(
'key' => 'attribute_' . $attribute_name,
'value' => $attribute_value,
'compare' => '=',
),
),
'fields' => 'ids',
);
$variation_ids = get_posts($args);
foreach ($variation_ids as $variation_id) {
$variation = wc_get_product($variation_id);
$variations[] = array(
'variation_id' => $variation_id,
'attributes' => $variation->get_variation_attributes(),
);
}
return $variations;
}
document.addEventListener('DOMContentLoaded', () => {
const size120 = document.querySelector('[data-value="120"]');
const size125 = document.querySelector('[data-value="125"]');
setInterval(() => {
if (size120 && size125) {
if (size120.classList.contains('disabled')) {
size125.style.display = "none";
size125.classList.add('disabled');
}
}
}, 1000)
});
Зачем изначально было делать 120 и 125 разными вариациями, если это одно и тоже?для пользователя это "разные размеры", так требует маркетолог
Нужно сделать (переделать) это одной вариацией.К сожалению не вариант
А если необходимо чтобы пользователь уточнял что ему нужно, то можно добавить кастомные поля для вариантов.
в логах не удалось найти информацию о данной ошибке, но судя по всему удалось вылечить: установил галочку в настройках woocommerce "Прямые обновления - Обновлять таблицу непосредственно при изменении товара, вместо того, чтобы планировать отложенное обновление"
Также в приложении по синхронизации добавлено обновление "1.Поддержка нескольких складов для передачи остатков - Ранее можно было выбрать или все склады разом или какой-то конкретный, теперь же можно выбрать определенный перечень складов на основе которых будет собираться информация по остаткам."
Пока не понятно что помогло вылечить баг, вроде все работает стабильно. Если снова будут баги отпишусь. Спасибо за участие