// 1. Добавление новой колонки для количества товаров на складе перед столбцом "В наличии" add_filter('manage_edit-product_columns', 'custom_product_columns'); function custom_product_columns($columns) { // Проверяем роль пользователя if (!current_user_can('admin_shop') && !current_user_can('administrator')) { return $columns; // Возвращаем исходные колонки, если роль не соответствует } // Создаем новый массив с колонками $reordered_columns = array(); // Проходимся по всем существующим колонкам foreach ($columns as $key => $value) { // Перед добавлением колонки 'is_in_stock' (В наличии) добавляем нашу новую колонку if ($key == 'is_in_stock') { $reordered_columns['stock_quantity'] = __('Количество на складе', 'woocommerce'); } $reordered_columns[$key] = $value; } return $reordered_columns; } // 2. Заполнение колонки данными add_action('manage_product_posts_custom_column', 'custom_product_column_content', 10, 2); function custom_product_column_content($column, $post_id) { // Проверяем роль пользователя if (!current_user_can('admin_shop') && !current_user_can('administrator')) { return; // Прекращаем выполнение, если роль не соответствует } if ($column === 'stock_quantity') { $stock = get_post_meta($post_id, '_stock', true); echo ''; echo ''; echo ''; } } // 3. AJAX обработка изменения количества товаров add_action('wp_ajax_update_stock_quantity', 'update_stock_quantity'); function update_stock_quantity() { // Проверяем роль пользователя if (!current_user_can('admin_shop') && !current_user_can('administrator')) { wp_send_json_error(); // Прекращаем выполнение, если роль не соответствует return; } if (isset($_POST['product_id']) && isset($_POST['quantity'])) { $product_id = intval($_POST['product_id']); $quantity = intval($_POST['quantity']); update_post_meta($product_id, '_stock', $quantity); wp_send_json_success(); } else { wp_send_json_error(); } } // 4. Скрипт для обработки изменения количества товаров в колонке add_action('admin_footer', 'stock_quantity_editable_script'); function stock_quantity_editable_script() { // Проверяем роль пользователя if (!current_user_can('admin_shop') && !current_user_can('administrator')) { return; // Прекращаем выполнение, если роль не соответствует } global $pagenow; if ($pagenow !== 'edit.php' || get_post_type() !== 'product') { return; } ?>
Добавить выбор количества в список товаров
with
no comment