Woocomerce - обновить максимальное количество для вариации продукта - PullRequest
2 голосов
/ 17 июня 2020

Я пытаюсь обновить максимальное количество для всех вариантов моего переменного продукта до ie 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 ]

1 голос
/ 18 июня 2020

Вы не используете правильный способ получения идентификатора варианта, а мета-ключ продукта max_qty не существует в базе данных WooCommerce в wp_postmeta таблице для product_variation типа сообщения.

Вместо этого вы можно использовать следующую ловушку фильтра для установки определенного c максимального количества для вариантов продукта:

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 файл вашей активной дочерней темы (или активной темы). Проверено и работает.

0 голосов
/ 17 июня 2020

Почему бы не установить по умолчанию 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-> запрос и ОБНОВИТЬ значение.

Отредактировано

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...