Пользовательский статус запасов для продуктов WooCommerce в WooCommerce 4
Добавление пользовательских статусов запасов к продуктам в WooCommerce 4 — относительно простой процесс. Однако требуется изменить определенные функции, чтобы гарантировать правильное отображение статусов во внешнем и внутреннем интерфейсе.
Добавление пользовательских статусов акций
Чтобы добавить пользовательские статусы акций, добавьте следующий код в ваш файл function.php:
function filter_woocommerce_product_stock_status_options( $status ) {
// Add new statuses
$status['pre_order'] = __('Pre Order', 'woocommerce');
$status['contact_us'] = __('Contact us', 'woocommerce');
return $status;
}
add_filter( 'woocommerce_product_stock_status_options', 'filter_woocommerce_product_stock_status_options', 10, 1 );
Этот код добавляет два новых статуса: «Предварительный заказ» и «Свяжитесь с нами».
Отображение индивидуального запаса Доступность
Чтобы обеспечить правильное отображение пользовательских статусов во внешнем интерфейсе, примените следующие изменения:
// Availability text
function filter_woocommerce_get_availability_text( $availability, $product ) {
// Get stock status
switch( $product->get_stock_status() ) {
case 'pre_order':
$availability = __( 'Pre Order', 'woocommerce' );
break;
case 'contact_us':
$availability = __( 'Contact us', 'woocommerce' );
break;
}
return $availability;
}
add_filter( 'woocommerce_get_availability_text', 'filter_woocommerce_get_availability_text', 10, 2 );
// Availability CSS class
function filter_woocommerce_get_availability_class( $class, $product ) {
// Get stock status
switch( $product->get_stock_status() ) {
case 'pre_order':
$class = 'pre-order';
break;
case 'contact_us':
$class = 'contact-us';
break;
}
return $class;
}
add_filter( 'woocommerce_get_availability_class', 'filter_woocommerce_get_availability_class', 10, 2 );
Отображение статуса запасов в списке продуктов администратора
Для отображения пользовательских статусов запасов в списке продуктов администратора таблицу, измените следующую функцию:
// Admin stock html
function filter_woocommerce_admin_stock_html( $stock_html, $product ) {
// Simple
if ( $product->is_type( 'simple' ) ) {
// Get stock status
$product_stock_status = $product->get_stock_status();
// Variable
} elseif ( $product->is_type( 'variable' ) ) {
foreach( $product->get_visible_children() as $variation_id ) {
// Get product
$variation = wc_get_product( $variation_id );
// Get stock status
$product_stock_status = $variation->get_stock_status();
}
}
// Stock status
switch( $product_stock_status ) {
case 'pre_order':
$stock_html = '<mark class="pre-order" style="background:transparent none;color:#33ccff;font-weight:700;line-height:1;">' . __( 'Pre order', 'woocommerce' ) . '</mark>';
break;
case 'contact_us':
$stock_html = '<mark class="contact-us" style="background:transparent none;color:#cc33ff;font-weight:700;line-height:1;">' . __( 'Contact us', 'woocommerce' ) . '</mark>';
break;
}
return $stock_html;
}
add_filter( 'woocommerce_admin_stock_html', 'filter_woocommerce_admin_stock_html', 10, 2 );
Необязательно: использование пользовательского статуса запасов в крючках
Вы можете использовать пользовательские статусы запасов в крючках, когда у вас есть доступ к объекту $product или вы можете использовать глобальный $product.
Примечание:
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3