Для того чтобы изменить статус вариации продукта в WooCommerce (плагин для создания интернет-магазина на платформе WordPress) с «нет в наличии» на «доступно для предзаказа» вам необходимо использовать функции и хуки WordPress и WooCommerce, а также изменить шаблоны для отображения этого статуса.
Вот шаги, которые вам следует выполнить:
1. Добавьте следующий код в файл functions.php вашей темы или в файл с пользовательскими функциями WordPress:
function custom_stock_status( $statuses ) { $statuses['preorder'] = __( 'Доступно для предзаказа', 'woocommerce' ); return $statuses; } add_filter( 'woocommerce_product_stock_status_options', 'custom_stock_status' );
2. Затем добавьте следующий код в файл functions.php или файл пользовательских функций, чтобы сохранить изменения статуса при редактировании продукта:
function save_custom_stock_status( $product ) { $stock = isset( $_POST['_stock_status'] ) ? sanitize_text_field( wp_unslash( $_POST['_stock_status'] ) ) : ''; if ( 'preorder' === $stock ) { update_post_meta( $product->get_id(), '_stock_status', 'preorder' ); } } add_action( 'woocommerce_admin_process_product_object', 'save_custom_stock_status' );
3. Теперь вам нужно обновить файл шаблона товара WooCommerce, чтобы отображать новый статус. Создайте файл с именем single-product/add-to-cart/variation.php
в директории вашей темы или дочерней темы и добавьте следующий код:
<?php foreach ( $attributes as $attribute_name => $options ) : ?> // здесь ваш текущий код для отображения вариаций товара <?php $stock_status = $variation->get_stock_status(); if ( 'preorder' === $stock_status ) { echo '<p class="stock in-stock">' . __( 'Доступно для предзаказа', 'woocommerce' ) . '</p>'; } ?> <?php endforeach; ?>
Сохраните файлы и проверьте ваш интернет-магазин. Теперь у вас должна быть возможность изменить статус вариации продукта с "нет в наличии" на "доступно для предзаказа" и отобразить это новое состояние на странице продукта.