Woocomerce - обновить максимальное количество для вариации продукта
Я пытаюсь обновить максимальное количество для всех вариаций моего переменного продукта, например, до 345.
$available_variations = $product->get_available_variations();
foreach ($available_variations as $variation)
{
$variation_ID = $variation->ID;
update_post_meta( $variation_ID , 'max_qty', 345 );
}
Не бывает.
2 ответа
Вы не используете правильный способ получения идентификатора варианта и метаключа продукта. max_qty
не существует в базе данных WooCommerce на wp_postmeta
стол для product_variation
тип сообщения.
Вместо этого вы можете использовать следующий фильтр для установки определенного максимального количества для вариантов продукта:
add_filter( 'woocommerce_available_variation', 'wc_available_variation_max_qty', 10, 3 );
function wc_available_variation_max_qty( $data, $product, $variation ) {
$data['max_qty'] = 345;
return $data;
}
Код находится в файле functions.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Почему бы не установить по умолчанию 345?
$max_m = $max_l = $max_xl = $max_xxl = $max_xxxl = '345';
if($max_qty != 345){
//Limit Reached error
}
ИЛИ
$product->get_available_variations = '345';
if($variation_ID != 345){
$variation_ID->max_qty = 345;
}
Так как это интернет-магазин, почему бы не использовать MySQLi? Он работает на PHP, так почему бы и нет? таким образом вы можете выполнить MySQLi-> запрос и ОБНОВИТЬ значение.
Отредактировано