Хотя это довольно поздно, поскольку вы спросили о ловушке: хотя, похоже, нет ловушки, действия или функции, специально предназначенной для включения опции Manage Stock
, вы все равно можете подключиться к сохранению записи функция и автоматически включите ее таким образом, поскольку это просто значение post_meta:
add_action('save_post', 'myWoo_savePost', 10, 2);
function myWoo_savePost($postID, $post) {
if (isset($post->post_type) && $post->post_type == 'product') {
update_post_meta($post->ID, '_manage_stock', 'yes');
}
}
Обратите внимание, что уровень запасов всегда по умолчанию равен 0, поэтому вы также можете добавить строку:
update_post_meta($post->ID, '_stock', '1');
... что обновит ваш запас до 1. Однако имейте в виду, что это будет происходить каждый раз, когда продукт сохраняется.
Я не уверен, имеет ли это влияние где-либо еще в WooCommerce для больших запасов, но, поскольку вы имеете дело с товарами с одним количеством, я предполагаю, что вы, вероятно, в порядке.
Обновление (с обновлением $):
Начиная с Wordpress 3.7, третий параметр был добавлен в save_post
, чтобы вы могли легко определить, это создается новое сообщение или обновляется существующее сообщение. Таким образом, вы можете активировать указанную выше функцию только при создании нового сообщения (что, возможно, является желаемым эффектом):
add_action('save_post_product', 'myWoo_savePost', 10, 3);
function myWoo_savePost($postID, $post, $update) {
if (!$update) {
// $update is false if we're creating a new post
update_post_meta($post->ID, '_manage_stock', 'yes');
update_post_meta($post->ID, '_stock', '1');
}
}
(Спасибо Дилану за напоминание о сохранениях для конкретных типов записей)
person
indextwo
schedule
25.08.2014